日志采集的几种方式 |
您所在的位置:网站首页 › 收集氮气的方法有几种 › 日志采集的几种方式 |
个人博客请访问 http://www.x0100.top 由于nginx功能强大,性能突出,越来越多的web应用采用nginx作为http和反向代理的web服务器。而nginx的访问日志不管是做用户行为分析还是安全分析都是非常重要的数据源之一。如何有效便捷的采集nginx的日志进行有效的分析成为大家关注的问题。本文通过几个实例来介绍如何通过filebeat、logstash、rsyslog采集nginx的访问日志和错误日志。 大家都知道ELK技术栈是采集、分析日志的利器。所以这里介绍的是从nginx采集日志到ES。当然至于日志采集以后存到看大家的需要。通过logstash可以方便的配置日志输出存储的方式。 一般来说nginx默认安装后,日志文件在 /usr/local/nginx/logs 目录下。分别有 access.log和error.log 访问日志和错误日志。 这次示例Elasitcsearch是三个节点组成的集群172.28.65.22、172.28.65.23、172.28.65.24,172.28.65.30 是kibana的地址,172.28.65.32是数据采集服务器,上面装有logstash、nginx、 filebeat。一般来说采集服务器上有logstash,而nginx、 filebeat应该是装在采集目标上。 一、直接通过filebeat采集日志到ES
- type: log # Change to true to enable this input configuration. enabled: true # Paths that should be crawled and fetched. Glob based paths. paths: #- /var/log/*.log - /usr/local/nginx/logs/*.log #- c:\programdata\elasticsearch\logs\*
./filebeat -e -c filebeat.yml -d "publish" 通过elasticsearch-head插件查看es索引中的日志信息
input { beats { port => "5044" } } output { elasticsearch { hosts => ["172.28.65.24:9200"] } stdout { codec => rubydebug} } input配置表示通过5044端口接收beats的数据 output配置表示输出到elasticsearch,并且同时输出到标准输出也就是控制台。 然后通过命令 bin/logstash -f filebeat-pipeline.conf --config.reload.automatic 应用filebeat-pipeline.conf启动logstash。 ./filebeat -e -c filebeat.yml -d "publish" 我们访问nginx服务提供的web服务http://172.28.65.32/ 在logstash的控制台 可以看到相应的访问access.log 日志 在很多情况下你需要采集的web服务器并不是自己能够控制的,不是说你想装filebeat就可以让你装的,这时候就可以要求目标数据源通过 syslog 的方式将日志发出来。我们可以再通过 logstash送到ES或其他的日志存储处理平台。 access_log syslog:server=172.28.65.32:514,facility=local7,tag=nginx_access_log,severity=info; error_log syslog:server=172.28.65.32:514,facility=local7,tag=nginx_error_log,severity=info;
input { syslog{ type => "system-syslog" port => 514 } } output { elasticsearch { hosts => ["172.28.65.24:9200"] index => "system-syslog-%{+YYYY.MM}" } stdout { codec => rubydebug} } input配置表示通过514端口接收syslog的数据 output配置表示输出到elasticsearch,并且同时输出到标准输出也就是控制台。 通过执行 bin/logstash -f syslog-pipeline.conf --config.reload.automatic 启动logstash $IncludeConfig /etc/rsyslog.d/*.conf
$ModLoad imfile $InputFilePollInterval 1 $WorkDirectory /var/spool/rsyslog $PrivDropToGroup adm ##Nginx访问日志文件路径,根据实际情况修改: $InputFileName /usr/local/nginx/logs/access.log $InputFileTag nginx-access: $InputFileStateFile stat-nginx-access $InputFileSeverity info $InputFilePersistStateInterval 25000 $InputRunFileMonitor ##Nginx错误日志文件路径,根据实际情况修改: $InputFileName /usr/local/nginx/logs/error.log $InputFileTag nginx-error: $InputFileStateFile stat-nginx-error $InputFileSeverity error $InputFilePersistStateInterval 25000 $InputRunFileMonitor *.* @172.28.65:514 配置好了以后,重启rsyslog服务 systemctl restart rsyslog 我们访问nginx服务提供的web服务http://172.28.65.32/ 在logstash的控制台 可以看到同样的效果。 本文介绍了如何通过filebeat、logstash、rsyslog采集nginx的访问日志和错误日志的几种方式,具体需要根据实际情况灵活的运用。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |