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文件即可。
这道理基本上就完成了整个过程。自己做个记录以备后用。