Rsyslog 日志服务器
一、简介
- 在centos7系统中,默认的日志系统是rsyslog,它是一类unix系统上使用的开源工具,用于在ip网络中转发日志信息,rsyslog采用模块化设计,是syslog的替代品。
- rsyslog 日志管理服务器可以解决以下问题:
- 不再需要逐台服务器去查询系统日志文件
- 将日常的系统信息存储在mysql数据中,方便进行查询、统计、审计过滤等操作
- 通过其他软件可以实现扩平台日志收集,如使用evtsys采集window日志发送到linux日志服务器上
- 在linux下rsyslog配置比较简单,维护较为容易。
- rsyslog+loganalyzer可以实现前端图形化查询等操作.
1、rsyslog 特点
-
实现了基本的syslog协议
-
直接兼容syslogd的syslog.conf配置文件
-
在同一台机器上支持多个rsyslogd进程,支持多线程
-
丰富的过滤功能,可以实现过滤日志信息中的任何部分,可将消息过滤后在转发
-
灵活的配置选项,配置文件中可以写简单的逻辑判断,自定义输出格式等
-
增加了重要的功能,如使用tcp进行消息传输,支持UDP,TCP,SSL,TLS,RELP
-
有现成的前端web展示程序
-
可以使用MySQL,PGSQL,Oralce实现日志存储
-
默认安装的rsyslog软件包提供的守护进程是rsyslog,它是一项系统的基础服务,应该设置开机运行
2、核心组成
- facility(设施,收集管道),priority(级别),target(路径)
二、loganalyzer 部署
1、loganalyzer 简介
-
loganalyzer是一款syslog日志和其他网络时间数据的web前端,它提供了对日志的简单浏览、搜索、基本分析和一些图表报告的功能。数据可以从数据库或一般syslog文本文件中获取,所有loganalyzer不需要改变现有的记录架构。基于当前的日志数据,它可以处理syslog日志消息windows事件日志记录,支持故障排除,使用户能快速查找日志数据中看出问题的解决方案
-
loganalyzer 获取客户端日志会有两种保存模式,一种是直接读取客户端/var/log目录下的日志并保存到服务端该目录下,一种是读取后保存日志服务器数据库中,这里测试的是mariadb数据库
-
loganalyzer采用php开发,所以服务需要php的运行环境,这里用的lnmp**
2、环境配置
角色 | 主机名 | IP地址 |
---|---|---|
web | web1 | 192.168.145.132 |
mysql | mysql | 192.168.145.133 |
rsyslog-mysql | web3 | 192.168.145.134 |
1、软件版本
[root@web1 ~]# cat /etc/centos-release
CentOS Linux release 7.6.1810 (Core)
[root@web1 ~]# yum -y install nginx
[root@web1 ~]# rpm -qa | grep nginx
nginx-mod-stream-1.16.1-1.el7.x86_64
nginx-1.16.1-1.el7.x86_64
nginx-filesystem-1.16.1-1.el7.noarch
nginx-mod-http-perl-1.16.1-1.el7.x86_64
nginx-mod-http-xslt-filter-1.16.1-1.el7.x86_64
nginx-mod-http-image-filter-1.16.1-1.el7.x86_64
nginx-mod-mail-1.16.1-1.el7.x86_64
nginx-all-modules-1.16.1-1.el7.noarch
[root@web1 ~]# yum -y install php-fpm
[root@web1 ~]# rpm -qa | grep php-fpm
php-fpm-5.4.16-48.el7.x86_64
[root@web1 ~]# yum -y install rsyslog rsyslog-mysql
[root@web1 ~]# rpm -qa | grep rsyslog
rsyslog-mysql-8.24.0-52.el7_8.2.x86_64
rsyslog-8.24.0-52.el7_8.2.x86_64
[root@web1 ~]# yum -y install mariadb mariadb-server
[root@web1 ~]# rpm -qa | grep mariadb
mariadb-libs-5.5.65-1.el7.x86_64
mariadb-5.5.65-1.el7.x86_64
mariadb-server-5.5.65-1.el7.x86_64
2、部署web的rsyslog-client,messages日志发送到rsyslog服务器
[root@web1 ~]# cp /etc/rsyslog.conf{,.bak}
[root@web1 ~]# vim /etc/rsyslog.conf
$ModLoad imtcp 放开端口
$InputTCPServerRun 514
#*.info;mail.none;authpriv.none;cron.none /var/log/messages
*.info;mail.none;authpriv.none;cron.none @192.168.145.134 指向后端rsyslog服务器web3
# web3服务器配置为 rsyslog-server
[root@web3 ~]# vim /etc/rsyslog.conf
$ModLoad imudp
$UDPServerRun 514 # 指定端口
[root@web3 ~]# systemctl restart rsyslog
[root@web3 ~]# systemctl enable rsyslog
3、测试效果
w