输出Host1/2的系统日志, 记录到mysql服务器数据库中, 并发布loganalyzer
结构关系如下图:
思路: 通过远程连接mysql, 使得rsyslog的log记录能够写入到mysql中, 这其中要依赖一个rsyslog-mysql的模块, 并启用之;
准备工作:
-
VMware
-
CentOS 7 最小系统安装镜像
-
loganalyzer源码包 下载
-
安装三台主机, 拷贝loganalyzer到MariaDB主机
IP地址与主机对应关系表:
MariaDB主机 | 192.168.142.128/24 |
HOST1 | 192.168.142.135/24 |
HOST2 | 192.168.142.141/24 |
MariaDB服务器操作:
-
yum -y install mariadb mariadb-server httpd php php-mysql php-gd
#安装mysql服务端, httpd服务端, php --> php-gd 是 loganalyzer 需要使用的
systemctl start mariadb - 登陆mysql
- mysql -uroot -p 登陆;
-
GRANT ALL ON Syslog.* TO 'sysloguser'@'192.168.142.%' INDENTIFIED BY '123456'; FLUSH PRIVILEGES;
建立 rsyslog 数据库账号并授权;
-
注意: 此处Syslog数据库并不需要我们自己建立, 在HOST1/2上安装rsyslog-mysql后, 会有一个 sql 脚本, 该数据库及表由 此脚本 建立, 后文有提到
-
- 编辑mysql配置文件
-
vim /etc/my.cnf ###添加如下项目 skip_name_resolve = on innodb_file_per_table = on ####保存退出, 重启服务 systemctl restart mariadb
HOST1/2 操作:
-
yum -y install rsyslog-mysql mariadb
# 安装rsyslog支持mysql的模块, 安装mysql客户端
mysql -usysloguser -p123456 -h192.168.142.128
# 测试是否可以连接上 --> 如果连接失败, 在mariadb服务器端重做授权; 检查服务器的防火墙和selinux是否关闭rsyslog连接mysql并做出记录, 是需要依靠 rsyslog-mysql 这个模块的;
-
查看rsyslog-mysql 这个包相关文件等:
[root@host1 ~]# rpm -ql rsyslog-mysql
/usr/lib64/rsyslog/ommysql.so --> rsyslog模块
/usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql --> 此sql脚本即为上文提到的, rsyslog-mysql这个包提供的 建库脚本 - 通过输入重定向的方式, 安装上述sql脚本:
mysql -usysloguser -h192.168.142.128 -p < /usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql
检查库建立是否成功:
- 编辑 /etc/rsyslog.conf 配置文件
vim /etc/rsyslog.conf ####MODULES#### $ModLoad ommysql --> 加载ommysql模块以支持功能 ####RULES#### *.info;mail.none; :ommysql:192.168.142.128,Syslog,sysloguser,123456
- 重启rsyslog服务 systemctl restart rsyslog
回到MariaDB服务器, 部署 loganalyzer
- mysql -uroot -p -->连接mysql数据库, 查看是否记录成功
MariaDB [(none)]> use Syslog
MariaDB [Syslog]> SELECT * FROM SystemEventsG;
- 测试httpd, php, php-mysql 是否配置成功 --> 参见上一篇
- 这里碰到一个问题:sysloguser 1045拒绝登陆;root可以登陆; 解决办法: 删除所有空密码用户(并给root用户设置密码);
-21-[root@vm]16:07 ~ # mysql -usysloguser -h192.168.142.128 -p Enter password: ERROR 1045 (28000): Access denied for user 'sysloguser'@'vm' (using password: YES)
- 这里碰到一个问题:sysloguser 1045拒绝登陆;root可以登陆; 解决办法: 删除所有空密码用户(并给root用户设置密码);
- 部署loganalyzer
- 下载资源包, 解压
- 我们需要 ./contrib 下的两个脚本, 以及./src 下的全部文件
-44-[root@vm]16:18 ~/loganalyzer-4.1.6 # ls ChangeLog contrib COPYING doc INSTALL src -45-[root@vm]16:18 ~/loganalyzer-4.1.6 # cp -r ./src /var/www/html/log -46-[root@vm]16:20 ~/loganalyzer-4.1.6 # cd /var/www/html/log -47-[root@vm]16:20 /var/www/html/log # ls admin chartgenerator.php cron export.php include js reportgenerator.php statistics.php userchange.php asktheoracle.php classes css favicon.ico index.php lang reports.php templates BitstreamVeraFonts convert.php details.php images install.php login.php search.php themes -48-[root@vm]16:20 /var/www/html/log # cd - /root/loganalyzer-4.1.6 -49-[root@vm]16:20 ~/loganalyzer-4.1.6 # ls ChangeLog contrib COPYING doc INSTALL src -50-[root@vm]16:20 ~/loganalyzer-4.1.6 # cp ./contrib/*.sh /var/www/html/log -51-[root@vm]16:21 ~/loganalyzer-4.1.6 # cd - /var/www/html/log -52-[root@vm]16:21 /var/www/html/log # ls admin chartgenerator.php convert.php details.php images install.php login.php search.php templates asktheoracle.php classes cron export.php include js reportgenerator.php secure.sh themes BitstreamVeraFonts configure.sh css favicon.ico index.php lang reports.php statistics.php userchange.php -53-[root@vm]16:21 /var/www/html/log # chmod +x *.sh -54-[root@vm]16:21 /var/www/html/log # ./configure.sh -55-[root@vm]16:21 /var/www/html/log # ./secure.sh -56-[root@vm]16:21 /var/www/html/log # chmod -x *.sh -57-[root@vm]16:21 /var/www/html/log # touch config.php;chmod 666 config.php
- 直接访问192.168.142.128/log
- 直接点击Click here 开始安装
-
在第三步(Step 3),可以勾选, 并使用mysql做 loganalyzer 的用户数据库; 我们这里做测试就直接跳过了
-
Step 7
-
请务必使用chrome, 点击MYSQL Native后, IE/ EDGE/ 360浏览器不会弹出下面的数据库选项框;
-
- 搞定
总结:
-
使用纯洁的虚拟机安装; 这次偷懒, 上次用完httpd实验后接着使用, 出现了mysql报错的问题;
-
360浏览器垃圾, 浪费我半个小时;
-
不要怕玩坏了, 大不了重装, 反正ks文件做好了, 装系统又不用咱动手