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


本文讨论了在Graylog2系统中收集Nginx日志的可能性,以及如何在Grafana中进行展示与分析。

本文的所有的操作都在Debian 9.5 OS上完成配置

Nginx版本:Nginx / 1.15.7

在Debian上安装Graylog2中介绍了安装Graylog2

Graylog2是一个开源系统,用于集中收集,存储和分析服务器上保存的日志。它可以当做 syslog 服务器使,支持 TCP、UDP 协议。另外也支持以 TCP/UDP 方式接收 GELF 格式的日志,这个格式很简单,就是一个 JSON 字符串。Graylog2 把 GELF 格式的日志存入 ElasticSearch 中,另外往 MongoDB 里写入一些统计信息,伊提供了一个 Ruby 写的 Web 应用,可以搜索日志并可视化的显示搜索结果的时间分布。

Graylog2集群有三部分组成,Graylog-server(日志收集、清理、分析)、Mongo DB(用于graylog集群共享配置信息)、ElasticSearch(存储日志)。

Graylog2.4.X只支持ElasticSearch 5,从Graylog2.5.2开始支持ElasticSearch 6,目前的版本为3版本。

基础软件包安装

apt install apt-transport-https openjdk-8-jre-headless uuid-runtime pwgen

安装MongoDB DBMS

apt-get install mongodb-server

安装Elasticsearch

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add -
echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" | tee -a /etc/apt/sources.list.d/elastic-5.x.list
apt update && apt install elasticsearch

这样就完成了Gaylog正常工作所需的所有软件包。

配置elasticsearch

要配置它,请打开文件:

nano /etc/elasticsearch/elasticsearch.yml

在描述的末尾添加以下行:

cluster.name: graylog

我们配置自动启动并运行elasticsearch:

systemctl daemon-reload
systemctl enable elasticsearch.service
systemctl start elasticsearch.service

安装Graylog

wget https://packages.graylog2.org/repo/packages/graylog-2.4-repository_latest.deb
dpkg -i graylog-2.4-repository_latest.deb
apt update && apt install graylog-server

Graylog服务器设置:

为了使服务器正常工作,您需要创建两个密钥。一种是使用加密,另一种是用于首次登录Web界面的admin用户的密码

要创建加密密钥,请运行以下命令:

pwgen -N 1 -s 96

将生成的密钥复制到记事本,并在编辑配置文件时使用它。

要为管理员用户创建密码,请运行以下命令:

echo -n password | sha256sum

我们还将把生成的密钥复制到记事本中,并在编辑配置文件时使用它。

编辑server.conf

nano /etc/graylog/server/server.conf

我们对以下几行感兴趣:

password_secret = secret,我们输入从上面获得的加密密钥

root_password_sha2 = password,我们输入管理员用户获取的密钥

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:

systemctl daemon-reload
systemctl enable graylog-server.service
systemctl start graylog-server.service

完成所有要点并打开浏览器后,我们在地址栏中IP-Address:port的端口中输入端口9000

Nginx日志配置以发送到Graylog

Nginx会将登录名发送给Gryalog本身。

nano /etc/nginx/nginx.conf

可以将先前的位置(/var/log/nginx/)和日志的配置进行备份。

在该部分中,http 添加以下内容:

log_format graylog2_format '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" "$http_x_forwarded_for" $

access_log syslog:server=Graylog IP-Address:11004 graylog2_format;

error_log syslog:server=Graylog IP-Address:11005;

重新启动Nginx:

service niginx restart

准备Graylog以接收来自Nginx的日志

为此,您需要从Graylog存储中安装加载项,可从(https://marketplace.graylog.org/addons/6bbc0407-0fc1-4ee7-be6d-4ea08ff1b482)下载。

接下来,从菜单中安装下载的加载项选择Systems - Content packs,选择Import content pack位置并下载文件JSON。之后,在同一位置的中Content packs,将出现一个新项目Nginx Web Server,必须选择并单击它Apply content

接下来,从菜单中选择Systems - Inputs,确保连接正常,然后单击Show received messages显示传入消息的位置。为了方便跟踪传入消息,窗口顶部有一个自动更新按钮。

Elasticsearch设置

在配置文件的末尾,我们将为查询条件的数量指示一个新值,因为标准的1000个条件可能还不够:

nano /etc/elasticsearch/elasticsearch.yml

indices.query.bool.max_clause_count: 10240

重新启动Elasticsearch

service elasticsearch restart

如果Grafana和Graylog在不同的服务器上怎么办

1.更改从其他设备访问的设置。

nano /etc/elasticsearch/elasticsearch.yml

在该部分中Network指定:

network.host: IP-Address server Elasticsearch\Graylog

http.port: 9200

2.为了成功运行Graylog,必须在配置中输入上述地址和对Elasticsearch的访问端口:

nano /etc/graylog/server/server.conf
elasticsearch_hosts = http://IP-Address:9200
  1. 重新启动Graylog和Elasticsearch:

service elasticsearch restart

service graylog-server restart

设置Grafana

配置对Elasticsearch的访问权限:

为此,请打开Grafana Web界面,选择Configuration - Data Sources并单击Add data source

在字段中输入连接的名称Name

在字段中,Type选择Elasticsearch

在字段中URL输入服务器地址Elasticsearch

Time field name问题:timestamp;

在字段中,Version选择5.x

点击Save & Test。如果一切正确,那么应该没有错误。

在Grafana中创建一个仪表板

完成的仪表板可在Grafana官方网站上找到,链接为:(https://grafana.com/dashboards/8486)。

在添加之前,请为Grafana安装必要的附加组件:

grafana-cli plugins install grafana-piechart-panel

重新启动Grafana服务器:

service grafana-server restart

json面板文件添加到Grafana

选择并导入下载的文件,并指定:Dashboards ``— Manage, нажимаем Import — Upload .json File

在字段中Name输入所需的面板名称;

在该字段中, Graylog Elasticsearch指示上面创建的与Elasticsearch数据库的连接。

然后按一下按钮Import

当调用Nginx时,图形将开始展示:

了解新钛云服

当IPFS遇见云服务|新钛云服与冰河分布式实验室达成战略协议

新钛云服正式获批工信部ISP/IDC(含互联网资源协作)牌照

深耕专业,矗立鳌头,新钛云服获千万Pre-A轮融资

新钛云服,打造最专业的Cloud MSP+,做企业业务和云之间的桥梁

新钛云服一周年,完成两轮融资,服务五十多家客户

上海某仓储物流电子商务公司混合云解决方案

新钛云服出品的部分精品技术干货

低代码开发,全民开发,淘汰职业程序员!

国内主流公有云VPC使用对比及总结

万字长文:云架构设计原则|附PDF下载

刚刚,OpenStack 第 19 个版本来了,附28项特性详细解读!

Ceph OSD故障排除|万字经验总结

七个用于Docker和Kubernetes防护的安全工具

运维人的终身成长,从清单管理开始|万字长文!

OpenStack与ZStack深度对比:架构、部署、计算存储与网络、运维监控等

什么是云原生?

IT混合云战略:是什么、为什么,如何构建?

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值