logstash通过rsyslog对nginx的日志收集和分析

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:

logstash通过rsyslog对nginx的日志收集和分析

http://bbotte.blog.51cto.com/6205307/1613571 logstash&elasticsearch&kibana的安装和配置

http://bbotte.blog.51cto.com/6205307/1614453  这一篇文章里面是以nginx打补丁的方式实现rsyslog把nginx的日志同步到logstash做分析,不过线上环境种种不一样,下面是把nginx的日志直接通过rsyslog同步到logstash服务器上,不用对nginx做更改,相对来说更简单明了。

nginx服务器端

nginx的配置文件不用改动,例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
[root@db2 ~] # grep -v ^.*# /usr/local/nginx/conf/nginx.conf|sed '/^$/d'
worker_processes  1;
events {
     worker_connections  1024;
}
http {
     include       mime.types;
     default_type  application /octet-stream ;
     log_format  main   '$remote_addr - $remote_user [$time_local] "$request" '
                       '$status $body_bytes_sent "$http_referer" '
                       '"$http_user_agent" "$http_x_forwarded_for"' ;
     sendfile        on;
     keepalive_timeout  65;
     server {
         listen       80;
         server_name  localhost;
index index.html;                                     #默认配置,修改了下面几行
root  /var/www ;
access_log  /var/log/nginx/access .log main;
error_log  /var/log/nginx/error .log;
         error_page   500 502 503 504   /50x .html;
         location =  /50x .html {
             root   html;
         }
     }
}

rsyslog的配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
[root@db2 ~] # grep -v ^# /etc/rsyslog.conf|sed '/^$/d'
$ModLoad imuxsock  # provides support for local system logging (e.g. via logger command)
$ModLoad imklog    # provides kernel logging support (previously done by rklogd)
$ModLoad imfile    # imfile模块必须启用 Load the imfile input module 
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$IncludeConfig  /etc/rsyslog .d/*.conf
*.info;mail.none;authpriv.none; cron .none                 /var/log/messages
authpriv.*                                               /var/log/secure
mail.*                                                  - /var/log/maillog
cron .*                                                   /var/log/cron
*.emerg                                                 *
uucp,news.crit                                           /var/log/spooler
local7.*                                                 /var/log/boot .log
#下面是nginx的设置
$InputFileName  /var/log/nginx/error .log
$InputFileTag kibana-nginx-errorlog:
$InputFileStateFile state-kibana-nginx-errorlog
$InputRunFileMonitor
$InputFileName  /var/log/nginx/access .log
$InputFileTag kibana-nginx-accesslog:
$InputFileStateFile state-kibana-nginx-accesslog
$InputRunFileMonitor
$InputFilePollInterval 10                  #等待10秒钟发送一次
if  $programname ==  'kibana-nginx-errorlog'  then  @192.168.10.1:514
if  $programname ==  'kibana-nginx-errorlog'  then  ~
if  $programname ==  'kibana-nginx-accesslog'  then  @192.168.10.1:514
if  $programname ==  'kibana-nginx-accesslog'  then  ~
*.* @192.168.10.1:514

配置说明:

$InputFileTag定义的NAME必须唯一,同一台主机上不同的应用应当使用不同的NAME,否则会导致新定义的TAG不生效;

$InputFileStateFile定义的StateFile必须唯一,它被rsyslog用于记录文件上传进度,否则会导致混乱;


@192.168.10.1:514用于指定接收日志的服务器域名或者主机名;

有需要的话,$InputFileSeverity info 也添加上


再把rsyslog服务重启

1
2
3
[root@db2 ~] # service rsyslog restart
Shutting down system logger:                               [  OK  ]
Starting system logger:                                    [  OK  ]

现在nginx的日志,已经同步到logstash服务器的/var/log/messages,如下图

wKiom1TuxnSzHoFiAAr9mfojxVU826.jpg


logstash.conf 配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
input {
  file  {
     type  =>  "syslog"
#    path => [ "/var/log/*.log", "/var/log/messages", "/var/log/syslog" ]
     path => [  "/var/log/messages"  ]
     sincedb_path =>  "/var/sincedb"
   }
   redis {
     host =>  "192.168.10.1"
     type  =>  "redis-input"
     data_type =>  "list"
     key =>  "logstash"
   }
   syslog {
     type  =>  "syslog"
     port =>  "5544"
   }
}
 
filter {
   grok {
     type  =>  "syslog"
     match => [  "message" "%{SYSLOGBASE2}"  ]
     add_tag => [  "syslog" "grokked"  ]
   }
}
 
output {
  elasticsearch { host =>  "192.168.10.1"  }
}


nginx的日志:

Feb 26 14:41:47 db2 kibana-nginx-accesslog: 192.168.10.50 - - [26/Feb/2015:14:41:42 +0800] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 6.2; WOW64; Trident/7.0; rv:11.0) like Gecko LBBROWSER" "-"

logstash界面:

wKioL1Tu2tKDORaIAAMFp3-KEZ4374.jpg










本文转自 bbotte 51CTO博客,原文链接:http://blog.51cto.com/bbotte/1615477,如需转载请自行联系原作者
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
7天前
|
存储 运维 监控
Linux--深入理与解linux文件系统与日志文件分析
深入理解 Linux 文件系统和日志文件分析,对于系统管理员和运维工程师来说至关重要。文件系统管理涉及到文件的组织、存储和检索,而日志文件则记录了系统和应用的运行状态,是排查故障和维护系统的重要依据。通过掌握文件系统和日志文件的管理和分析技能,可以有效提升系统的稳定性和安全性。
25 7
|
9天前
|
监控 安全 Linux
启用Linux防火墙日志记录和分析功能
为iptables启用日志记录对于监控进出流量至关重要
|
1月前
|
监控 应用服务中间件 定位技术
要统计Nginx的客户端IP,可以通过分析Nginx的访问日志文件来实现
要统计Nginx的客户端IP,可以通过分析Nginx的访问日志文件来实现
|
2月前
|
存储 SQL 监控
|
2月前
|
运维 监控 安全
|
2月前
|
监控 关系型数据库 数据库
怎样分析慢查询日志?
【10月更文挑战第29天】怎样分析慢查询日志?
63 2
|
2月前
|
XML 安全 Java
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
本文介绍了Java日志框架的基本概念和使用方法,重点讨论了SLF4J、Log4j、Logback和Log4j2之间的关系及其性能对比。SLF4J作为一个日志抽象层,允许开发者使用统一的日志接口,而Log4j、Logback和Log4j2则是具体的日志实现框架。Log4j2在性能上优于Logback,推荐在新项目中使用。文章还详细说明了如何在Spring Boot项目中配置Log4j2和Logback,以及如何使用Lombok简化日志记录。最后,提供了一些日志配置的最佳实践,包括滚动日志、统一日志格式和提高日志性能的方法。
426 30
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
|
22天前
|
监控 安全 Apache
什么是Apache日志?为什么Apache日志分析很重要?
Apache是全球广泛使用的Web服务器软件,支持超过30%的活跃网站。它通过接收和处理HTTP请求,与后端服务器通信,返回响应并记录日志,确保网页请求的快速准确处理。Apache日志分为访问日志和错误日志,对提升用户体验、保障安全及优化性能至关重要。EventLog Analyzer等工具可有效管理和分析这些日志,增强Web服务的安全性和可靠性。
|
3月前
|
XML JSON Java
Logback 与 log4j2 性能对比:谁才是日志框架的性能王者?
【10月更文挑战第5天】在Java开发中,日志框架是不可或缺的工具,它们帮助我们记录系统运行时的信息、警告和错误,对于开发人员来说至关重要。在众多日志框架中,Logback和log4j2以其卓越的性能和丰富的功能脱颖而出,成为开发者们的首选。本文将深入探讨Logback与log4j2在性能方面的对比,通过详细的分析和实例,帮助大家理解两者之间的性能差异,以便在实际项目中做出更明智的选择。
354 3
|
1月前
|
存储 监控 安全
什么是事件日志管理系统?事件日志管理系统有哪些用处?
事件日志管理系统是IT安全的重要工具,用于集中收集、分析和解释来自组织IT基础设施各组件的事件日志,如防火墙、路由器、交换机等,帮助提升网络安全、实现主动威胁检测和促进合规性。系统支持多种日志类型,包括Windows事件日志、Syslog日志和应用程序日志,通过实时监测、告警及可视化分析,为企业提供强大的安全保障。然而,实施过程中也面临数据量大、日志管理和分析复杂等挑战。EventLog Analyzer作为一款高效工具,不仅提供实时监测与告警、可视化分析和报告功能,还支持多种合规性报告,帮助企业克服挑战,提升网络安全水平。