rsyslog+mariadb+loganalyzer
一个可以使用web页面查看日志的架构
环境准备:与前面课程提到的集中式日志服务器的架构一样,只是这个架构是在server上搭建的,也就是IP地址为192.168.1.55的这台主机上
server端的环境准备和设置
setp1 安装所需要的软件包
[root@localhost ~]# dnf install mariadb mariadb-server rsyslog-mysql -y
step2 启动mariadb服务
[root@localhost ~]# systemctl restart mariadb
[root@localhost ~]# systemctl status mariadb
step3 设置mariadb
##将mariadb的管理员密码设置为‘123456’
[root@localhost ~]# mysqladmin -u root password 123456
##建立日志服务需要用到的数据库
[root@localhost ~]# cd /usr/share/doc/rsyslog/
[root@localhost rsyslog]# mysql -u root -p < mysql-createDB.sql
Enter password:
##进入到mariadb中验证一下是否有一个叫Syslog的数据库,如果有就代表前面的操作成功
[root@localhost rsyslog]# mysql -u root -p
Enter password:
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| Syslog |
step4 为后面将要用到的用户进行授权,允许用户访问mairadb中的Syslog库
#允许一个叫syslogroot的用户从127.0.0.1、192.168.1.55、192.168.1.18这三个ip地址访问我的数据库,密码为syslogpass,设置完成之后刷新一下并退出(如果你的架构中还有其它的主机,只要修改数据库语句中的IP地址即可)
MariaDB [(none)]> grant all on Syslog.* to 'syslogroot'@'127.0.0.1'identified by 'syslogpass';
Query OK, 0 rows affected (0.000 sec)
MariaDB [(none)]> grant all on Syslog.* to 'syslogroot'@'192.168.1.55'identified by 'syslogpass';
Query OK, 0 rows affected (0.000 sec)
MariaDB [(none)]> grant all on Syslog.* to 'syslogroot'@'192.168.1.18'identified by 'syslogpass';
Query OK, 0 rows affected (0.000 sec)
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.000 sec)
MariaDB [(none)]> quit
Bye
setp5 修改rsyslog服务的配置文件
[root@localhost ~]# vim /etc/rsyslog.conf
7 #### MODULES ####
.
.
.
24 module(load="imtcp") # needs to be done just once
25 input(type="imtcp" port="514")
26 module(load="ommysql")#加载一个叫ommysql的模块是日志服务可以连接mariadb
.
.
65 local7.* /var/log /boot.log
66
#告诉日志服务通过ommysql模块,将日志信息发送到192.168.1.55的Syslog库中,使用的用户名和密码就是我们在前一步设置的syslogroot,syslogpass
67 *.* :ommysql:192.168.1.55,Syslog,syslogroot,syslogpass
##重启日志服务
[root@localhost ~]# systemctl restart rsyslog
step6 测试一下日志信息能否记录到数据库中
[root@localhost ~]# logger "hello test test test"
[root@localhost ~]# mysql -u root -p
Enter password:
MariaDB [(none)]> use Syslog;
Database changed
MariaDB [Syslog]> select * from SystemEvents\G
*************************** 8. row ***************************
ID: 8
CustomerID: NULL
ReceivedAt: 2019-12-07 03:22:31
DeviceReportedTime: 2019-12-07 03:22:31
Facility: 1
Priority: 5
FromHost: localhost
Message: hello test test test
###如果可以看到我们之前使用logger产生的日志信息及代表rsyslog可以将日志信息存入数据库中
step7 设置client(192.168.1.18),此步骤是唯一一步需要对client的做出的设置
##安装软件包
[root@localhost ~]# dnf install rsyslog-mysql -y
##修改服务的配置文件添加相应内容(与server端添加的内容一致)
[root@localhost ~]# vim /etc/rsyslog.conf
module(load="ommysql")
*.* :ommysql:192.168.1.55,Syslog,syslogroot,syslogpass
[root@localhost ~]# systemctl restart rsyslog
###测试一下client的日志信息能否在server端的数据库中查看
###client
[root@localhost ~]# logger "hello this is a test from client 18"
####server端使用与刚才相同的方法去查看内容
MariaDB [Syslog]> select * from SystemEvents\G
*************************** 28. row ***************************
ID: 28
CustomerID: NULL
ReceivedAt: 2019-12-07 03:30:28
DeviceReportedTime: 2019-12-07 03:30:28
Facility: 1
Priority: 5
FromHost: localhost
Message: hello this is a test from client 18
step8 server端安装支持web页面查看日志的工具loganalyzer
[root@localhost ~]# dnf install httpd php php-mysqlnd php-gd -y
[root@localhost ~]# tar fx loganalyzer-4.1.8.tar.gz
[root@localhost ~]# cp -r loganalyzer-4.1.8/src/* /var/www/html/
[root@localhost ~]# cp loganalyzer-4.1.8/contrib/* /var/www/html/
[root@localhost ~]# cd /var/www/html/
[root@localhost html]# sh configure.sh
[root@localhost html]# systemctl restart httpd
step9 在mariadb中创建lyzeruser工具需要用到的库、用户并授权
[root@localhost html]# mysql -u root -p
Enter password:
MariaDB [(none)]> create database loganalyzer;
Query OK, 1 row affected (0.000 sec)
MariaDB [(none)]> grant all on loganalyzer.* to lyzeruser@'192.168.1.55' identified by 'lyzeruser';
Query OK, 0 rows affected (0.000 sec)
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.001 sec)
MariaDB [(none)]> quit
Bye
step10 打开浏览器,部署loganalyzer