nginx logs通过rsyslog收集至mysql数据库使用LogAnalyzer查询

nginx日志做一个集中管理查询

环境:CentOS7.3+NGINX1.12.1+RSYSLOG8.3.4+MYSQL5.6+PHP7.1.9+LogAnalyzer4.1.6

正常配置nginx日志即可

log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" "$scheme"';
access_log logs/access.log main;

安装rsyslog

我用的是yum安装

yum install rsyslog rsyslog-msyql

配置rsyslog.conf

编辑/etc/rsyslog.conf文件

#导入imfile模块

module(load="imfile")

导入nginx日志文件路径,设置为Nginx标签,并定义服务等级为info,设置日志设备为local6

input(type="imfile" File="/usr/local/nginx/logs/access.log" Tag="nginx" Severity ="info"Facility="local6")

#导入momysql模块

$ModLoad ommysql

#将local6日志设备全部写入指定数据库内

#具体格式为:*.*:ommysql:database-server,database-name,database-userid,database-password

local6.*:ommysql:192.168.1.141,nginxlog,root,123456;

还有一个重要的事情之前一直忘记做了,然后一直不成功。就是要把数据库创建好,并且创建两张表。创建的文件rsyslog-mysql自带的。

然后会创建两张表SystemEvents和SystemEventsProperties

具体的sql文件可以通过

rpm -lq rsyslog-mysql
/usr/lib64/rsyslog/ommysql.so
/usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql

查询看到

并将/usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql文件导入数据库,库名字是默认Syslog,我这里改成了自己的nginxlog了

重启rsyslog服务

这个时候开始数据库已经可以开始工作

下载并安装loganalyer。这算个绿色软件。直接下载下来吧src文件复制到nginx+php环境

这里需要先生成一个config.php文件并指定666权限,然后根据INSTALL来完成基本配置即可。

这里要注意的是数据库名字是区分大小写的,不然无法工作。如果发现初始化的时候写错了,直接去编辑config.php文件即可。

这道理基本上就完成了整个过程。自己做个记录以备后用。

posted @ 2018-04-24 16:20  colinshi  阅读(603)  评论(0编辑  收藏  举报