当前位置: 首页 > 科技观察

Graylog2:从Nginx采集日志并在Grafana中展示分析

时间:2023-03-12 19:13:00 科技观察

本文转载自微信公众号《新钛云服务》,作者朱翔。转载本文请联系新钛云服务公众号。本文讨论了在Graylog2系统中收集Nginx日志的可能性,以及如何在Grafana中进行展示和分析。本文所有操作均在Debian9.5操作系统上完成。Nginx版本:Nginx/1.15.7Debian上安装Graylog2介绍Graylog2的安装。Graylog2是一个开源系统,用于集中收集、存储和分析保存在服务器上的日志。它可以用作系统日志服务器并支持TCP和UDP协议。另外,它还支持以TCP/UDP方式接收GELF格式的日志。这个格式很简单,就是一个JSON字符串。Graylog2将日志以GELF格式存储在ElasticSearch中,并将一些统计信息写入MongoDB。Yi提供了一个用Ruby编写的Web应用程序,可以搜索日志并可视化搜索结果的时间分布。Graylog2集群由三部分组成,Graylog-server(日志收集、清洗、分析)、MongoDB(用于graylog集群共享配置信息)、ElasticSearch(日志存储)。Graylog2.4.X只支持ElasticSearch5,从Graylog2.5.2开始支持ElasticSearch6,当前版本为3。基本包安装aptinstalllapt-transport-httpsopenjdk-8-jre-headlessuuid-runtimepwgenInstallMongoDBDBMSapt-getinstallmongodb-serverInstallElasticsearchwget-qO-https://artifacts.elastic.co/GPG-KEY-elasticsearch|apt-keyadd-echo"debhttps://artifacts.elastic.co/packages/5.x/aptstablemain"|tee-a/etc/apt/sources.list.d/elastic-5.x.listaptupdate&&aptinstallelasticsearch这完成了Gaylog正常工作所需的所有包.配置elasticsearch配置它,打开文件:nano/etc/elasticsearch/elasticsearch.yml在描述末尾添加如下一行:cluster.name:graylog我们配置elasticsearch自动启动运行:systemctldaemon-reloadsystemctlenableelasticsearch.servicesystemctlstartelasticsearch。serviceInstallGraylogwgethttps://packages.graylog2.org/repo/packages/graylog-2.4-repository_latest.debdpkg-igraylog-2.4-repository_latest.debaptupdate&&aptinstallgraylog-serverGraylog服务器设置:为了让服??务器工作,你需要创建两个密钥。一个是使用加密,一个是第一次登录web界面的admin用户的密码创建加密密钥,运行以下命令:pwgen-N1-s96将生成的密钥复制到记事本中,然后编辑配置文件时使用它。要为管理员用户创建密码,请运行以下命令:echo-npassword|sha256sum我们还将生成的密钥复制到记事本中,并在编辑配置文件时使用它。编辑server.confnano/etc/graylog/server/server.conf我们对以下行感兴趣:password_secret=secret,我们输入从上面获得的加密密钥root_password_sha2=密码,我们输入密钥rest_listen_uri=从管理员用户http获得://0.0.0.0:9000/api/rest_transport_uri=http://IP-Address:9000/api/web_listen_uri=http://0.0.0.0:9000/设置自动运行并启动Graylog:systemctldaemon-reloadsystemctlenablegraylog-server.servicesystemctlstartgraylog-server.service做完所有点后打开浏览器,我们在地址栏输入9000端口IP-Address:portNginxlogconfigurationtosendtoGraylogNginx会将登录发送到Gryalog本身。nano/etc/nginx/nginx.conf可以备份之前的位置(/var/log/nginx/)和日志配置。在该部分http添加以下内容:log_formatgraylog2_format'$remote_addr-$remote_user[$time_local]"$request"$status$body_bytes_sent"$http_referer""$http_user_agent""$http_x_forwarded_for"$access_logsyslog:server=GraylogIP-Address:11004graylog2_format;error_logsyslog:server=GraylogIP-Address:11005;重新启动Nginx:serviceniginxrestart准备Graylog以接收来自Nginx的日志为此,您需要从GraylogStorage安装附加组件,可从(https://marketplace.graylog.org/addons/6bbc0407-0fc1-4ee7-be6d-4ea08ff1b482)下载。接下来,要从菜单中选择系统-内容包安装下载的附加组件,选择导入内容包位置并下载文件JSON。之后,在同一个位置,Contentpacks中,会出现一个新的项目NginxWebServer,必须选中它,然后点击Applycontent。接下来,从菜单中选择Systems-Inputs,确保连接良好,然后单击Showreceivedmessages以显示传入消息的位置。为了便于跟踪收到的消息,窗口顶部有一个自动更新按钮。Elasticsearch设置在配置文件的末尾,我们会为查询条件的数量指定一个新的值,因为标准的1000个条件可能不够用:nano/etc/elasticsearch/elasticsearch.ymlindices.query.bool.max_clause_count:10240restartElasticsearchserviceelasticsearchrestart如果Grafana和Graylog在不同的服务器上怎么办1.更改设置以从其他设备访问。nano/etc/elasticsearch/elasticsearch.yml在此部分网络中指定:network.host:IP-AddressserverElasticsearch\Grayloghttp.port:92002。为了成功运行Graylog,必须在配置中输入以上Elasticsearch的地址和访问端口:nano/etc/graylog/server/server.confelasticsearch_hosts=http://IP-Address:9200重启Graylog和Elasticsearch:serviceelasticsearchrestartservicegraylog-serverrestart设置对Elasticsearch的Grafana配置访问:为此,打开GrafanaWeb界面,选择Configuration-DataSources,然后单击Adddatasource。在名称字段中输入连接的名称;在字段中,选择Elasticsearch作为类型;在字段URL中输入服务器地址Elasticsearch;在时间字段名称问题中:时间戳;在该字段中,为版本选择5.x;单击保存并测试。如果一切正确,那么应该没有错误。在Grafana中创建仪表板完成的仪表板可以在Grafana官方网站上找到,链接:(https://grafana.com/dashboards/8486)。添加之前,请安装Grafana必要的附加组件:grafana-clipluginsinstallgrafana-piechart-panel重启Grafana服务器:servicegrafana-serverrestart将json面板文件添加到Grafana选择并导入下载的文件并指定:Dashboards``—Manage,нажимаемImport—Upload.jsonFile在名称字段中输入所需的面板名称;在该字段中,GraylogElasticsearch表示与上面创建的Elasticsearch数据库的连接。然后按下按钮导入。调用Nginx时,图形将开始显示: