简单罗列基础命令,只分享我的想法! (1)关于rsyslog介绍 rsyslog服务是多线程的日志管理工具,因为是多线程所以比之前的syslog处理事务的能力更加出色,支持SSL/TCP/UDP/TLS/RELP,并且日志可以记录在MySQL/PGSQL/Oracle等关系库中。 rsyslog是CentOS提供的,主要是记录系统产生的日志信息,并且专门为那些产生日志较少的第三方程序或不愿意开发日志功能的程序提供记录日志的功能,以更加统一的管理日志。 (2)配置文件/etc/syslog.conf中关于####RULES ####说明 rsyslog的配置文件是/etc/rsyslog.conf,主要理解两个核心概念,主要在RULE部分体现(facility.priority target),即facility和priority,一般记录日志的时候,已经明确说明由哪个facility记录,记录的级别是什么。 facility是从功能或程序上对日志进行分类,并由专门的工具负责记录相应的日志信息,也就是说,记录关于什么的日志。如auth记录关于认证方面的日志、cron记录定期任务的日志等。 priority,记录日志的级别。Debug代表事无巨细全部记录,从一般信息到严重信息分别为,info/notice/warn/err/crit/alert/emerg。 指定级别的方式有: - *:所有级别;
- none:没有级别,任何信息都不记录;
- PRIORITY:比PRIORITY这个优先级高的(包括PRIORITY)所有级别的日志信息全部记录;
- =PRIORITY:仅记录PRIORITY这个级别的日志记录;
target主要是说明日志所在的路径: - 文件路径:将日志记录于指定的文件中,如果在路径之前有“-”号,代表是async,一般日志信息sync;
- 用户:将日志信息通知给用户,比如*.emerg *,代表不管哪一种emerg级别的日志信息都会通知在线的所有用户。
- 日志服务器:@SERVER;
- 管道:|COMMAND;
(3)关于日志文件的格式说明 事件产生的时间 主机 进程(pid) 事件 (4)关于/etc/syslog.conf中#### MODULES####说明 $ModLoad 模块名(不要加.so后缀,只是模块的名字)。 - 配置rsyslog服务器并通过loganalyzer工具进行管理
(1)环境说明 rsyslog服务器使用CentOS6.6,IP为192.168.0.22通过mysql保存日志信息。 client使用CentOS 6.6,IP为172.16.49.5。 (2)client配置说明 Client配置较为简单。
在#### RULES ####中修改下面一行(主要是测试用) 1
| *.info;mail.none;authpriv.none;cron.none @192.168.0.22
|
重新启动rsyslog服务 1
| /etc/init.d/rsyslog restart
|
(3)rsyslog服务器配置说明
修改#### MODULES ####中的以下两行,启用rsyslog服务器 1
2
| $ModLoad imudp
$UDPServerRun 514
|
rsyslog服务器的日志信息仍然记录在本地 必须重启该服务 1
| /etc/init.d/rsyslog restart
|
查看UDP的514端口是否开启
(注意:此时在client卸载telnet-server,那么rsyslog服务器的/var/log/message中会有记录,如下图:) 图1 因为loganalyzer需要用到php而日志的存储用到MySQL,所以安装lamp。还需要安装另一个库,那就是rsyslog与mysql连接的一个库,叫做rsyslog-mysql 1
| yum install httpd php mysql-server php-mysql php-gd rsyslog-mysql –y
|
确保httpd正常工作 1
2
| vim /var/www/html/index.html
<h> 192.168.0.22 <h\>
|
确保php正常工作 1
2
3
4
| vim /var/www/html/index.php
<?php
phpinfo();
?>
|
初始化函数库 1
| /etc/init.d/mysqld start
|
创建rsyslog依赖的函数库 1
2
| cd /usr/share/doc/rsyslog-mysql-5.8.10/
mysql < createDB.sql
|
进入数据库查看是否已经有了Syslog数据库
创建rsyslog用户并授权查看Syslog数据库中的任何数据 1
2
| mysql> GRANT ALL ON Syslog.* TO 'rsyslog'@'localhost' IDENTIFIEDBY 'rsyslog';
mysql> GRANT ALL ON Syslog.* TO 'rsyslog'@'127.0.0.1' IDENTIFIEDBY 'rsyslog';
|
可以看到Syslog数据库中有两个表 1
2
3
4
5
6
7
8
| mysql> SHOW TABLES;
+------------------------+
| Tables_in_Syslog |
+------------------------+
| SystemEvents |
| SystemEventsProperties |
+------------------------+
2 rows in set (0.00 sec)
|
配置rsyslog启用ommysql(可以通过rpm -qlrsyslog-mysql知道模块)模块
添加一行
修改一行 1
2
| //*.info;mail.none;authpriv.none;cron.none :ommysql:SQL-IP,DATABASE,USERNAME,PASSWORD
*.info;mail.none;authpriv.none;cron.none :ommysql:127.0.0.1,Syslog,rsyslog,rsyslog
|
注意:测试是否已经已经把日志存储到数据库中,在client中安装telnet-server,在server端打开SystemEvents进行查看,如下图: 图2 (4)配置loganalyzer这个GUI管理rsyslog的工具 解压缩loganalyzer-3.6.5.tar.gz 1
2
3
| cd loganalyzer-3.6.5/
mv src/ /var/www/html/loganalyzer
cp contrib/* /var/www/html/loganalyzer
|
给configure和secure这两个脚本执行权限 1
2
| cd /var/www/html/loganalyzer
chmod +x configure.sh secure.sh
|
创建config.php文件,loganalyzer需要 1
2
| vim config.php
chmod 666 config.php
|
运行脚本 1
2
| ./configure.sh
./secure.sh
|
图3
|