分析系统日志有助于排查故障,管理几台服务器可以通过远程登录的方式逐台搜集分析,随着服务器设备越来越多,集中分析管理各类日志信息也就显得越来越重要。搭建合适的日志管理平台有助于提高日志分析工作效率,对于服务器设备不多的机房而言,推荐使用Rsyslog+MySQL+Loganalyzer搭建日志管理服务器。
实验环境
操作系统:CentOS 7.9
服务端IP:192.168.168.201
服务端篇
第一步 安装软件
- # yum -y install httpd mariadb-server php php-gd php-mysql rsyslog rsyslog-mysql
- # systemctl enable rsyslog
- # systemctl enable httpd
- # systemctl enable mariadb
第二步 启动配置数据库
根据向导按需修改数据库root密码、禁止root远程登录、移除测试用户、删除多余数据库、刷新表权限。
- # systemctl start mariadb
- # mysql_secure_installation
第三步 创建数据库
初始化过程中我已修改数据库root管理员密码为123456,数据库默认名称为Syslog,再新建一个rsyslog用户来管理Syslog数据库,密码设置为123456。
- # mysql -uroot -p123456 < /usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql
- # mysql -uroot -p123456
- MariaDB [(none)]> grant ALL on Syslog.* to rsyslog@'localhost' identified by '123456';
- MariaDB [(none)]> flush privileges;
- MariaDB [(none)]> exit
第四步 配置启动Rsyslog
- # mv /etc/rsyslog.conf /etc/rsyslog.conf.bak
- # vim /etc/rsyslog.conf
- #开启DNS功能
- global(net.enableDNS = "on")
- #使用IPv4协议
- global(net.ipprotocol = "ipv4-only")
- #加载MySQL数据库模块
- module(load="ommysql")
- #加载本地系统日志记录模块
- module(load="imuxsock")
- #加载内核级别日志记录模块
- module(load="imklog")
- #加载TCP协议接收日志模块
- module(load="imtcp")
- input(type="imtcp" address="192.168.168.201" port="514")
- #日志截断最大容量
- $maxMessageSize 16K
- #设置允许发送日志的来路(传输协议、主机IP地址范围)
- $AllowedSender TCP,127.0.0.1,192.168.168.0/24
- #设置默认的TimeStamp格式
- $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
- #设置配置文件路径
- $IncludeConfig /etc/rsyslog.d/*.conf
- #记录所有的kernel日志到/var/log/kernel
- kern.* /var/log/kernel
- #记录大于等于info级别的日志到/var/log/messages(不记录类型为mail、authpriv、cron的日志)
- *.info;mail.none;authpriv.none;cron.none /var/log/messages
- #记录类型为auth、authpriv的所有级别日志到/var/log/secure
- auth.*;authpriv.* /var/log/secure
- #记录类型为mail的所有级别日志到/var/log/maillog
- mail.* /var/log/maillog
- #记录类型为cron的所有级别日志到/var/log/cron
- cron.* /var/log/cron
- #记录类型为daemon的所有级别日志到/var/log/daemon
- daemon.* /var/log/daemon
- #记录类型为user的所有级别日志到/var/log/user
- user.* /var/log/user
- #记录所有类型的严重级别日志,并让全体用户看到
- *.emerg :omusrmsg:*
- #记录uucp、news的重要级别日志到/var/log/spooler
- uucp,news.crit /var/log/spooler
- #记录自定义程序(boot)的所有级别到/var/log/boot
- local7.* /var/log/boot
- #发送所有日志信息到MySQL数据库
- *.* :ommysql:localhost,Syslog,rsyslog,123456
- # systemctl restart rsyslog
第五步 安装Loganalyzer
打开浏览器访问:http://192.168.168.201,根据安装向导输入相关信息,多注意一下数据库、表名称的大小写。
- # cd /var/www/html/
- # wget --no-check-certificate http://download.adiscon.com/loganalyzer/loganalyzer-4.1.7.tar.gz
- # tar xzf loganalyzer-4.1.7.tar.gz && rm -rf loganalyzer-4.1.7.tar.gz
- # mv loganalyzer-4.1.7/src/* ./ && rm -rf loganalyzer-4.1.7
- # chown -R apache:apache ./
- # systemctl start httpd
客户端篇
第一步 安装软件
- # yum -y install rsyslog
- # systemctl enable rsyslog
第二步 配置软件
- # mv /etc/rsyslog.conf /etc/rsyslog.conf.bak
- # vim /etc/rsyslog.conf
- #开启DNS功能
- global(net.enableDNS = "on")
- #使用IPv4协议
- global(net.ipprotocol = "ipv4-only")
- #加载本地系统日志记录模块
- module(load="imuxsock")
- #加载内核级别日志记录模块
- module(load="imklog")
- #日志截断最大容量
- $maxMessageSize 16K
- #设置默认的TimeStamp格式
- $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
- #设置配置文件路径
- $IncludeConfig /etc/rsyslog.d/*.conf
- #记录所有的kernel日志到/var/log/kernel
- kern.* /var/log/kernel
- #记录大于等于info级别的日志到/var/log/messages(不记录类型为mail、authpriv、cron的日志)
- *.info;mail.none;authpriv.none;cron.none /var/log/messages
- #记录类型为auth、authpriv的所有级别日志到/var/log/secure
- auth.*;authpriv.* /var/log/secure
- #记录类型为mail的所有级别日志到/var/log/maillog
- mail.* /var/log/maillog
- #记录类型为cron的所有级别日志到/var/log/cron
- cron.* /var/log/cron
- #记录类型为daemon的所有级别日志到/var/log/daemon
- daemon.* /var/log/daemon
- #记录类型为user的所有级别日志到/var/log/user
- user.* /var/log/user
- #记录所有类型的严重级别日志到/var/log/emerg
- *.emerg /var/log/emerg
- #记录uucp、news的重要级别日志到/var/log/spooler
- uucp,news.crit /var/log/spooler
- #记录自定义程序(boot)的所有级别到/var/log/boot
- local7.* /var/log/boot
- #使用TCP通信协议发送所有日志信息到指定日志服务器
- *.* @@192.168.168.201:514
- # systemctl restart rsyslog
测试篇
打开浏览器访问:http://192.168.168.201,输入相关用户名、密码登陆,顺利的话便能看到服务端、客户端相关日志记录。如果出现中文乱码,请参考扩展阅读。
扩展阅读展开
- # vim /var/www/html/include/functions_common.php
大约在第1214行,找到:
- return htmlentities($myStr, ENT_NOQUOTES, $content['HeaderDefaultEncoding']); //"UTF-8");
修改为:
- return htmlentities($myStr, ENT_NOQUOTES, $content['HeaderDefaultEncoding'],"UTF-8");
再访问Loganalyzer网站,进入Admin Center找到Default character encoding,选择UTF-8,点击Send Change保存退出。再次刷新网页时,就可以正常显示中文日志了。
您可以选择一种方式赞助本站
支付宝扫一扫
微信扫一扫
赏