利用loganalyzer 展示数据库中的日志,并使用logrotate做日志转储
目标: 利用loganalyzer 展示数据库中的日志,并使用logrotate做日志转储
环境准备:三台主机
一台日志服务器:10.0.0.113
一台数据库服务器:10.0.0.115
一台当httpd+php服务器 ,并安装loganalyzer展示web图形,IP: 10.0.0.110
实验步骤:
1.在rsyslog服务器(10.0.0.113)上安装连接mysql模块相关的程序包。
yum -y install rsyslog-mysql
rpm -ql rsyslog-mysql
scp /usr/share/doc/rsyslog/mysql-createDB.sql 10.0.0.115:/data
2.准备安装MySQL Server(10.0.0.115)
yum -y install mariadb-server
systemctl enable --now mariadb
systemctl start mariadb
#在mariadb数据库服务器上创建相关数据库和表,并授权rsyslog能连接至当前服务器
mysql
source /data/mysql-createDB.sql
GRANT ALL ON Syslog.* TO 'rsyslog'@'10.0.0.%' IDENTIFIED
BY '123456';
配置日志服务器将日志发送至指定数据库(10.0.0.113)
#配置rsyslog将日志保存到mysql中
[root@centos8 ~]#vim /etc/rsyslog.conf
#
####MODULES####
#在 MODULES 语言下面,如果是 CentOS 8 加下面行
module(load="ommysql")
#在 MODULES 语言下面,如果是 CentOS 7,6 加下面行
$ModLoad ommysql
#在RULES语句块加下面行的格式
#facility.priority :ommysql:DBHOST,DBNAME,DBUSER, PASSWORD
*.info :ommysql:10.0.0.115,Syslog,rsyslog,123456
[root@centos8 ~]#systemctl restart rsyslog.service
测试:
#在日志服务器上生成日志
[root@centos8 ~]#logger "this is a aaaaaaasssssssss"
![](https://img2020.cnblogs.com/blog/2225806/202103/2225806-20210313194949833-979554795.png)
3.在10.0.0.110主机上安装httpd, php和相关软件包
[root@centos8 ~]#yum -y install httpd php-fpm php-mysqlnd php-gd
[root@centos8 ~]#systemctl enable --now httpd php-fpm
#从http://loganalyzer.adiscon.com/downloads/ 下载loganalyzer-4.1.10.tar.gz
[root@centos8 ~]#tar xvf loganalyzer-4.1.10.tar.gz
[root@centos8 ~]#mv loganalyzer-4.1.10/src/ /var/www/html/log
#创建配置文件
[root@centos8 ~]#touch /var/www/html/log/config.php
[root@centos8 ~]#chmod 666 /var/www/html/log/config.php
初始化loganalyzer 浏览器打开地址http://10.0.0.110/log
#注意:别填写错了数据信息(把config.php信息清了再配置一次)
#注意:配置完成后把config.php的权限修改为644.
![](https://img2020.cnblogs.com/blog/2225806/202103/2225806-20210313200659933-280825398.png)
![](https://img2020.cnblogs.com/blog/2225806/202103/2225806-20210313200914236-1882862799.png)
![](https://img2020.cnblogs.com/blog/2225806/202103/2225806-20210313201216632-705166254.png)
Logrotate日志存储
软件包:logrotate
相关文件
计划任务:/etc/cron.daily/logrotate
程序文件:/usr/sbin/logrotate
配置文件: /etc/logrotate.conf
日志文件:/var/lib/logrotate/logrotate.status
主要参数
compress 通过
gzip
压缩转储以后的日志
nocompress 不需要压缩时,用这个参数
copytruncate 用于还在打开中的日志文件,把当前日志备份并截断
nocopytruncate 备份日志文件但是不截断
create mode owner group 转储文件,使用指定的文件模式创建新的日志文件
nocreate 不建立新的日志文件
delaycompress 和 compress 一起使用时,转储的日志文件到下一次转储时才压缩
nodelaycompress 覆盖 delaycompress 选项,转储并压缩
errors address 转储时的错误信息发送到指定的Email 地址
ifempty 即使是空文件也转储,是缺省选项。
notifempty 如果是空文件的话,不转储
mail address 把转储的日志文件发送到指定的E-mail 地址
nomail 转储时不发送日志文件
olddir directory 转储后的日志文件放入指定的目录,必须和当前日志文件在同一个文件系统
noolddir 转储后的日志文件和当前日志文件放在同一个目录下
prerotate
/endscript
在转储以前需要执行的命令可以放入这个对,这两个关键字必须单独成行
postrotate
/endscript
在转储以后需要执行的命令可以放入这个对,这两个关键字必须单独成行
daily 指定转储周期为每天
weekly 指定转储周期为每周
monthly 指定转储周期为每月
size 大小 指定日志超过多大时,就执行日志转储
rotate count 指定日志文件删除之前转储的次数,0 指没有备份,5 指保留5 个备份
Missingok 如果日志不存在,提示错误
Nomissingok如果日志不存在,继续下一次日志,不提示错误
[root@centos8 ~]#cat /etc/logrotate.d/mysql
/var/lib/mysql {
daily
rotate 5
compress
delaycompress
missingok
size 1k
notifempty
create 640 bin nobody
postrotate
echo `date +%F_%T` >> /data/mysql.log
endscript
}
[root@centos8 ~]# logrotate /etc/logrotate.conf
补充:常用日志文件
/var/log/secure:系统安全日志,文本格式,应周期性分析
/var/log/btmp:当前系统上,用户的失败尝试登录相关的日志信息,二进制格式,lastb命令进行
查看
/var/log/wtmp:当前系统上,用户正常登录系统的相关日志信息,二进制格式,last命令可以查
看
/var/log/lastlog:每一个用户最近一次的登录信息,二进制格式,lastlog命令可以查看
/var/log/dmesg:CentOS7 之前版本系统引导过程中的日志信息,文本格式,开机后的硬件变化将不再记录,专用命令dmesg查看,可持续记录硬件变化的情况。
/var/log/boot.log 系统服务启动的相关信息,文本格式
/var/log/messages :系统中大部分的信息
/var/log/anaconda : anaconda的日志