作为运维人员,熟悉系统日志是一项基本功。本文将介绍centos6的系统日志rsyslog及loganalyzer工具。
简介
系统日志:记录历史事件,通常都是按时间顺序将发生的事件予以记录,linux上的日志分为syslogd(系统进程相关日志)和klogd(内核事件日志)
一、rsyslog日志系统配置参数
1、配置文件,以及配置文件的定义格式
/etc/rsyslog.conf \\配置文件
日志定义格式: facility.priority Target
facility: 设施,从功能或程序上对日志进行分类,并由专门的工具负责记录日志;
常用的facility:
lpr: 打印相关的日志
auth:认证相关的日志
user:用户相关的日志
cron:计划任务相关的日志
kern:内核相关的日志
mail:邮件相关的日志
mark:标记相关的日志
news:新闻相关的日志
uucp:文件copy相关的日志
daemon:系统服务相关的日志
authpri: 授权相关的日志
security:安全相关的日志
local0-local7:自定义相关的日志信息(自定义时可以使用通配符)
通配符:
*:所有
f1,f2,f3......:列表
!:取反
priority:日志级别
常用的日志级别:
debug: 调试
info: 消息
notice: 注意
warn,warning: 警告
err,error: 错误
crit: 严重级别
alert: 需要立即修改该的信息
emerg,panic: 内核崩溃,内核恐慌等严重的信息
通配符:
*:所有日志级别
none:没有任何级别,也就是不记录日志信息
Target:文件路径
可以使用的有:
①/var/log/messages
②用户:*当前登录系统的所有用户
③日志服务器:@SERAVER_IP
④管道:| COMMAND
事件格式:
时间 主机 进程 事件本身
举例:
mail.info /var/log/maillog: 比指定级别更高的日志级别,包括指定级别自身,保存到/var/log/maillog中
mail.=info /var/log/maillog: 明确指定日志级别为info,保存至/var/log/maillog
mail.!info /var/log/maillog: 除了指定的日志级别(info)所有日志级别信息,保存至/var/log/maillog
*.info /var/log/maillog: 所有facility的info级别,保存至/var/log/maillog
mail.* /var/log/maillog: mail的所有日志级别信息,都保存至/var/log/maillog
mail.notice;news.info /var/log/maillog: mail的notice以上记得日志级别和news的info以上的级别保存至/var/log/maillog
mail,news.crit -/var/log/maillog: mail和news的crit以上的日志级别保存/var/log/maillog中;“-”代表异步模式
二、实验环境
主机名 | IP地址 | 负责 |
---|---|---|
www.jcwtime.hk | 192.168.10.100 | 收集日志,MySQL |
c1.jcwtime.hk | 192.168.10.101 | web |
注意:所有服务器或客户端关闭selinux、iptables
2.1启用日志服务器接受其他服务器(Web)日志
---日志服务器(服务器)---
编辑配置文件,去掉注释并重启服务
[root@www ~]# vim /etc/rsyslog.conf
# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514
[root@www ~]# service rsyslog restart
---Web(客户端)---
编辑配置文件,注释新添规则并重启服务
[root@C1 ~]# vim /etc/rsyslog.conf
#*.info;mail.none;authpriv.none;cron.none /var/log/messages
*.info;mail.none;authpriv.none;cron.none @192.168.10.100
[root@C1 ~]# service rsyslog restart
在Web(客户端)测试安装zsh,日志服务器可查看到日志
[root@www ~]# tail /var/log/messages
Aug 5 11:21:37 C2 yum[29781]: Installed: zsh-4.3.11-4.el6.centos.2.x86_64
2.2配置将日志信息存储到数据库
---日志服务器(服务器)---
安装mysql及驱动
[root@www ~]# yum install -y mysql-server rsyslog-mysql
[root@www ~]# rpm -ql rsyslog-mysql
/lib64/rsyslog/ommysql.so \\rsyslog连接mysql的驱动模块
/usr/share/doc/rsyslog-mysql-5.8.10 \\ rsyslog的文档
/usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql \\rsyslog的数据库以及表的各项定义,直接导入数据即可使用
[root@www ~]# service mysqld start
将生成的createDB.sql导入mysql数据库
[root@www ~]# mysql -uroot -p </usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql
mysql -uroot -p
查看数据库:
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| Syslog |
| mysql |
| test |
+--------------------+
4 rows in set (0.05 sec)
使用Syslog:
mysql> USE Syslog;
查看表:
mysql> SHOW TABLES;
+------------------------+
| Tables_in_Syslog |
+------------------------+
| SystemEvents |
| SystemEventsProperties |
+------------------------+
2 rows in set (0.01 sec)
创建用户、密码并授权本地 访问Syslog数据库
mysql> GRANT ALL ON Syslog.* TO 'rsysloguser'@'127.0.0.1' IDENTIFIED BY 'rsyslogpass';
Query OK, 0 rows affected (0.01 sec)
刷新权限:
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
配置ryslog.conf文件添加模块ommysql,添加规则输出到本地数据库Syslog,重启服务
[root@www ~]# vim /etc/rsyslog.conf
#### MODULES ####
$ModLoad ommysql
$ModLoad imuxsock
$ModLoad imklog
#### RULES ####
#*.info;mail.none;authpriv.none;cron.none /var/log/messages
*.info;mail.none;authpriv.none;cron.none :ommysql:127.0.0.1,Syslog,rsysloguser,rsyslogpass
[root@www ~]# service rsyslog restart
Web(客户端)测试安装zsh,日志服务器tail /var/log/messages不会有zsh安装日志,而是输出到mysql
mysql> select * from SystemEvents\G;
*************************** 4. row ***************************
ID: 4
CustomerID: NULL
ReceivedAt: 2016-08-05 14:04:52
DeviceReportedTime: 2016-08-05 14:04:52
Facility: 1
Priority: 6
FromHost: C2
Message: Installed: zsh-4.3.11-4.el6.centos.2.x86_64
NTSeverity: NULL
Importance: NULL
EventSource: NULL
EventUser: NULL
EventCategory: NULL
EventID: NULL
EventBinaryData: NULL
MaxAvailable: NULL
CurrUsage: NULL
MinUsage: NULL
MaxUsage: NULL
InfoUnitID: 1
SysLogTag: yum[32658]:
EventLogType: NULL
GenericFileName: NULL
SystemID: NULL
4 rows in set (0.00 sec)
2.3由于loganalzyer提供的动态网页,所以我们要安装httpd和php
[root@www ~]# yum -y install httpd php php-mysql
[root@www ~]# service httpd start
2.3.1访问web
1434074590797982.png编辑测试页并访问php
[root@www ~]# vim /var/www/html/index.php
<?php
phpinfo();
?>
2.3.2访问web
QQ截图20160805141757.png2.4配置loganalyzer日志分析工具,便于日常维护
[root@www ~]# mkdir /var/www/html/loganalyzer
[root@www ~]# cd /var/www/html/loganalyzer
[root@www loganalyzer]# cp -a /root/loganalyzer-3.6.5/src/* .
[root@www loganalyzer]# cp -a /root/loganalyzer-3.6.5/contrib/* .
[root@www loganalyzer]# chmod +x ./configure.sh
[root@www loganalyzer]# chmod +x ./secure.sh
[root@www loganalyzer]# ./configure.sh
[root@www loganalyzer]# ./secure.sh
[root@www loganalyzer]# chmod 666 config.php
[root@www loganalyzer]# chown -R apache.apache ./*
2.4.1访问网页安装loganalyzer
1.png 2.png 3.png 4.png 5.png 6.png 7.png 8.png
网友评论