nginx log response_[日志分析]Graylog2采集Nginx日志 被动方式

66c83ef2c83c169670d0fc2f33b9b5ca.png

graylog可以通过两种方式采集nginx日志,一种是通过Graylog Collector Sidecar进行采集(主动方式),另外是通过修改nginx配置文件的方式进行收集(被动方式)。
这次说一下修改nginx配置文件(被动方式)。

被动方式的好处就是nginx将定义好的日志字段以json格式直接发送到graylog的自定义端口中,graylog通过json解析直接将字段提取出来。

优势在于不用配置复杂的正则进行日志字段的解析,极大减少graylog对于cpu的资源占用。如果使用正则解析日志字段的话,你每次新增字段,相应的正则解析就要进行修改,非常不灵活。

当然这种方式也有缺点,一是需要nginx 1.12.1以上版本,二是nginx配置发送到graylog的ip是固定的,如果graylog群集的这个节点挂了的话是无法转移到其他节点上的,三是nginx直接将日志发送到graylog后,本地不会打印日志输出了。
本文以graylog 2.5.2为例,向大家介绍一下如何以被动方式采集nginx日志。
1、前往graylog marketplace 下载 content pack文件并导入到graylog。
(1)content pack文件下载链接:nginx content pack
(2)菜单中选择 System / Content Packs -> Content packs -> Import content pack 选择文件并上传

81957dd23d83ce4b2da51ca94ea8c07d.png

(3)菜单中选择Select content packs -> Web Servers -> nginx 并点击 Apply content 按钮

40909c1e77d4cb2ed9dcdfb563bb88c5.png

(4)选择导航条 Streams 查看,关于nginx的相关stream 已经自动创建完成

ef9c88901bb9659ec11c7a1702428c44.png

(5)选择导航条 System / Inputs -> input 可以看到,nginx相关的input端口已经建立完成

2d4e27e120f0fd00e51c362241f6e313.png

2、修改nginx相关配置,假设graylog日志服务器的ip地址为192.168.251.3
(1)修改nginx log_format 相关配置

log_format graylog2_json escape=json '{ "timestamp": "$time_iso8601", ' '"remote_addr": "$remote_addr", ' '"remote_user": "$remote_user", ' '"body_bytes_sent": $body_bytes_sent, ' '"request_time": $request_time, ' '"status": $status, ' '"request": "$request", ' '"request_method": "$request_method", ' '"host": "$host",' '"source": "192.168.251.3",' '"upstream_cache_status": "$upstream_cache_status",' '"upstream_addr": "$upstream_addr",' '"http_x_forwarded_for": "$http_x_forwarded_for",' '"http_referrer": "$http_referer", ' '"http_user_agent": "$http_user_agent" }'; access_log syslog:server=192.168.251.3:12301 graylog2_json; error_log syslog:server=192.168.251.3:12302;

(2)带ssl的nginx配置

log_format json_combined escape=json '{ "timestamp": "$time_iso8601", ' '"remote_addr": "$remote_addr", ' '"remote_user": "$remote_user", ' '"request_url": "$request_uri", ' '"req_status": "$status", ' '"response_size_B": "$bytes_sent", ' '"req_protocol": "$server_protocol",' '"req_method": "$request_method",' '"req_srvname": "$server_name",' '"req_time": "$request_time",' '"connection-id": "$request_id",' '"ssl_prot_version": "$ssl_protocol",' '"ssl_cipher": "$ssl_cipher",' '"ssl_conn_reused": "$ssl_session_reused",' '"ssl_session_id": "$ssl_session_id",' '"http_referrer": "$http_referer", ' '"http_user_agent": "$http_user_agent", ' '"http_x_referer": "$http_x_referer" }';  access_log syslog:server=192.168.251.3:12301,facility=local0,tag=nginx,severity=info graylog2_json; error_log syslog:server=192.168.251.3:12302,facility=local0,tag=nginx,severity=error warn;

(3)修改完毕后,执行nginx -t 查看配置是否无误,最后执行nginx -s reload 加载配置。

选择导航条 Streams -> nginx 就能看到相关nginx日志已经收集并将各个字段解析完成了。

f09331be8eea6c1abafaa3788e2c2598.png

知乎:酒局下饭

微信公众号:酒局下饭

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值