思路:
1、安装mysql服务器,且要安装rsyslog连接mysql的驱动
2、解决生成rsyslog服务器的日志特定的格式,
3、在rsyslog配置文件中加载连接mysql的模块,把日志存储到mysql中
rsyslog+Mysql服务器端的配置:
[root@jie1 log]# yum -y install mysql-server rsyslog-mysql mysql
#安装mysql服务器和rsyslog连接mysql的驱动
[root@jie1 ~]# rpm -ql rsyslog-mysql
#查看rsyslog-mysql安装生成了那些文件
/lib64/rsyslog/ommysql.so
/usr/share/doc/rsyslog-mysql-5.8.10
/usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql
[root@jie1 ~]# service mysqld start
Starting mysqld: [ OK ]
[root@jie1 ~]# mysqladmin -u root password RedHat
#设置mysql的密码
[root@jie1 ~]# mysql -u root -p
Enter password: #登录mysql服务器
mysql> show databases; #显示数据库服务器中没有日志的数据库
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| test |
+--------------------+
3 rows in set (0.00 sec)
mysql> \q
Bye
[root@jie1 ~]# cd /usr/share/doc/rsyslog-mysql-5.8.10/
#日志文件sql脚本的路径
[root@jie1 rsyslog-mysql-5.8.10]# ls
createDB.sql
[root@jie1 rsyslog-mysql-5.8.10]# mysql -u root -p < createDB.sql
Enter password: #导入日志文件的sql脚本,生成日志文件的数据库
[root@jie1 rsyslog-mysql-5.8.10]# mysql -u root -p
Enter password:
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| Syslog |
| mysql |
| test |
+--------------------+
4 rows in set (0.01 sec)
mysql> use Syslog; #Syslog即是记录日志文件的数据库
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> show tables;
+------------------------+
| Tables_in_Syslog |
+------------------------+
| SystemEvents |
| SystemEventsProperties |
+------------------------+
2 rows in set (0.00 sec)
mysql> grant all on Syslog.* to 'syslogroot'@'127.0.0.1' identified by 'syslogpass'; #设置用户访问数据库服务器中Syslog数据库的用户名和密码
Query OK, 0 rows affected (0.00 sec)
mysql> grant all on Syslog.* to 'syslogroot'@'172.16.22.1' identified by 'syslogpass';
Query OK, 0 rows affected (0.04 sec)
mysql> flush privileges; #重读授权表,及时生效
Query OK, 0 rows affected (0.00 sec)
mysql> \q
Bye
[root@jie1 rsyslog-mysql-5.8.10]#cd /
[root@jie1 /]# grep -v "^$" /etc/rsyslog.conf | grep -v "^#"
#####vim /etc/ryslog.conf#####################################
$ModLoad imuxsock
$ModLoad imklog
$ModLoad imudp #加载udp的模块
$UDPServerRun 514 #允许接收udp 514的端口传来的日志
$ModLoad imtcp #加载tcp的模块
$InputTCPServerRun 514 #允许接收tcp 514的端口传来的日志
$ModLoad ommysql #加载mysql的模块
$ActionFileDefaultTemplateRSYSLOG_TraditionalFileFormat
$IncludeConfig /etc/rsyslog.d/*.conf
*.* :ommysql:172.16.22.1,Syslog,syslogroot,syslogpass #添加这行,把其他行都注释掉,这行表示把所有的设施的所有日志都记录到数据库服务器中的Syslog数据库中,以syslogroot用户,syslogpass密码访问数据库
local7.* /var/log/boot.log
$template SpiceTmpl,"%TIMESTAMP%.%TIMESTAMP:::date-subseconds% %syslogtag% %syslogseverity-text%:%msg:::sp-if-no-1st-sp%%msg:::drop-last-lf%\n"
:programname, startswith, "spice-vdagent" /var/log/spice-vdagent.log;SpiceTmpl
######################################################################
[root@jie1 /]# service rsyslog restart
Shutting down system logger: [ OK ]
Starting system logger: [ OK ]
rsyslog客户端的配置:
[root@jie3 ~]# sed -e '/^$/d' -e '/^#/d' /etc/rsyslog.conf
################ /etc/rsyslog.conf######################
$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
$ModLoad imklog # provides kernel logging support (previously done by rklogd)
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$IncludeConfig /etc/rsyslog.d/*.conf
*.* @172.16.22.1 #添加这行用于和服务器通信
*.* :ommysql:172.16.22.1,Syslog,syslogroot,syslogpass #添加这行,把其他行都注释掉,这行表示把所有的设施的所有日志都记录到数据库服务器中的Syslog数据库中,以syslogroot用户,syslogpass密码访问数据库
$template SpiceTmpl,"%TIMESTAMP%.%TIMESTAMP:::date-subseconds% %syslogtag% %syslogseverity-text%:%msg:::sp-if-no-1st-sp%%msg:::drop-last-lf%\n"
:programname, startswith, "spice-vdagent" /var/log/spice-vdagent.log;SpiceTmpl
####################################################################
[root@jie3 ~]# service rsyslog restart
Shutting down system logger: [ OK ]
Starting system logger: [ OK ]
验证客户端的日志文件存放位置:
1)验证是否存放在客户端本地
2)验证是否存在服务器的/var/log/messages里面
3)验证是否存放在服务器的mysql数据库中
虽然日志存放在mysql数据库服务器中,是解决了日志集中管理,但是存放在mysql服务器中让管理人员头疼的是不便于查看这些大量的日志,于是乎搭建一个日志分析工具就非常的有必要性了。