Centos7之Rsyslog服务器部署

 

一、目标

centos7平台下部署Rsyslog服务器监视linux端、windows端、juniper SSG 520

二、平台

[root@kahn ~]# cat /etc/redhat-release

CentOS Linux release 7.6.1810 (Core)

[root@kahn ~]# rpm -qa |grep rsyslog

rsyslog-8.24.0-34.el7.x86_64

三、解析

1.rsyslog既可以当服务器,又可以当客户端。

2.rsyslog的主配置文件/etc/rsyslog.conf

四、Centos7服务器上部署rsyslog服务器

1.查看本机是否安装了rsyslog服务?(可能这东西是默认安装上的)

我的版本是rsyslog-8.24.0-34.el7.x86_64

如果你的系统上没装,那就装一下rsyslog(安装方法百度一下,我想应该会很简单)

执行命令--->rpm -qa |grep rsyslog

centos7 sybase安装 centos7安装syslog服务器_数据库

2.启动rsyslog服务

执行命令--->systemctl start rsyslog

3.查看rsyslog服务的状态

执行命令--->systemctl status rsyslog

4.编辑rsyslog主配置文件

执行命令--->vim /etc/rsyslog.conf

并将下面几行配置的注释符号#去掉。

$ModLoad imklog

$ModLoad immark

$ModLoad imudp

$UDPServerRun 514

$ModLoad imtcp

$InputTCPServerRun 514

最后保存退出

5.重启rsyslog服务器

执行命令--->systemctl restart rsyslog

6.关闭centos防火墙(生产环境不建议这么玩,可单独开放udp/tcp的514端口即可)

执行命令--->systemctl stop firewalld

7.简单介绍一下rsyslog.conf配置文件的套路(还是放在下面介绍吧,今天重感冒炒鸡难受,为了更新博客就忍了)

没错,至此一个简单的rsyslog服务器就安装配置完成了。此时的rsyslog会存放各种日志到/var/log/下,一般是/var/log/message文件中存放日志。

五、Centos7服务器上部署rsyslog客户端(将centos的syslog日志发送到Rsyslog服务器上)

1.同服务器端一样先看看是否安装了rsyslog软件

2.修改rsyslog配置文件,将配置文件中的rsyslog的服务器地址改成上面的那台服务器

第一行是原有的,给复制下来一行,然后将原有的注释掉,别问我为啥这么干(长的帅的人都这么做)

#*.info;mail.none;authpriv.none;cron.none /var/log/messages *.info;mail.none;authpriv.none;cron.none @192.168.0.47

其实就是将#去掉,然后后面的日志路径由原来的 /var/log/messages 改成存放到@192.168.0.47上去,@必须有哈。 再解释下, /var/log/messages 改成存放到@192.168.0.47。说白了就是本机的日志原来就是存放在messages文件中,现在改成了远程主机0.47

3.重启客户端的rsyslog服务

执行命令--->systemctl restart rsyslog

搞定了,到此为止,在服务器端使用tail /var/log/messages 就能看到由客户端到rsyslog服务器端的日志了。

六、配置Juniper SSG 520发送syslog日志到Rsyslog服务器

1.登录juniper SSG 520,依次点开Configuration-----Report Settings-----Syslog

Enable syslog messages ----> 启用juniper的syslog服务

Source interface ethernet0/0 ----> 设定从哪个端口发送syslog日志到Rsyslog服务器

Enable ---->启用本条syslog设定

IP / Hostname ---->设定rsyslog服务器的ip地址

Port ---->设定rsyslog服务器的端口,默认就是514

Security Facility ---->这是设置日志等级

Facility ---->不知道这是啥,自己有时间再尝试

Event Log ---->发送事件日志到rsyslog服务器

Traffic Log ---->发送流量日志到rsyslog服务器

TCP ---->这里我猜是,更改juniper发送日志时使用tcp协议,不建议选这一项。

Apply ---->应用配置

Apply and Reset connections ---->不知道这是啥,如果rsyslog服务器端收不到日志,那就回来再点这货

centos7 sybase安装 centos7安装syslog服务器_数据库_02

就这么简单,此时去rsyslog服务器端去 tail /var/log/messages几次就能看到juniper ssg-520传过来的日志了。

centos7 sybase安装 centos7安装syslog服务器_mysql_03

七、配置Windows发送syslog日志到Rsyslog服务器

1.下载rsyslog agent for windows软件

https: //download.adiscon.com / rsyslogwa. exe

2.安装rsyslog的agent for windows 软件

这个agent程序貌似支持全系列windows os

centos7 sybase安装 centos7安装syslog服务器_数据库_04

建议右键单击“以管理员身份运行”去安装它。然后一路下一步即可。

3.从开始菜单找到Rsyslog/RSyslog windows Agent Configuration

centos7 sybase安装 centos7安装syslog服务器_服务器_05

4.添加syslog服务器配置信息到windows上

依次点击【Rsyslog windows agent configuration client】的RuleSets---Default RuleSet---ForwardSyslog---Actions---Rsyslog

在【Syslog Target Options】选项卡里选use single syslog server with optional backup server

然后在syslog server文本框里输入上你的Rsyslog服务器的ip地址:我的是192.168.0.47

syslog Port:默认的是514

然后点一下【Syslog Message Options】选项卡里

选中Use RFC 5424 processing (recommended)

在Output Encoding:选[Unicode (UTF8)],并勾选Include UTF8 BOM in message (如果不选这里,那么Rsyslog服务器收到的中文就会是乱码)

再点上面的confirm保存配置。

最后点顶部的菜单【Start】,开始发送日志。

centos7 sybase安装 centos7安装syslog服务器_mysql_06

centos7 sybase安装 centos7安装syslog服务器_服务器_07

截一段在Rsyslog服务器端收到的windows日志tac /var/log/messages |grep pc2602-PC |less

centos7 sybase安装 centos7安装syslog服务器_数据库_08

八、扩展部分

1.解读rsyslog的配置文件/etc/rsyslog.conf(百度去查rsyslog.conf比我弄的详细的多)

$ModLoad imuxsock 提供对本地系统日志记录的支持(例如通过logger命令);

$ModLoad imjournal 提供对systemd日志的访问;

$ModLoad imklog 读取内核消息(从journald读取相同的消息);

$ModLoad immark 提供—标记—消息功能;

$ModLoad imudp 开启rsyslog服务器并使用UDP协议接收日志;

$UDPServerRun 514 使用UDP接收客户端发来的日志的时候使用本地的UDP514端口接收;

$ModLoad imtcp 开启rsyslog服务器并使用TCP协议接收日志;

$InputTCPServerRun 514 当使用TCP接收客户端发来的日志时使用本地的TCP514端口接收;

定义日志级别,*.info代表所有消息,用分号分割后面的级别设置,mail.none代表忽略邮件类的info类消息,/var/log/messages代表日志存放在本地的messages文件里。倘若本机是客户端的话,那么可以将这个路径改为@192.168.0.47,@必须有,后面跟远程rsyslog的ip地址即可。

*.info;mail.none;authpriv.none;cron.none /var/log/messages

authpriv.* /var/log/secure 记录ssh日志到/var/log/secure文件中

mail.* -/var/log/maillog 记录邮件日志,日志路径前加减号“-”代表异步存储日志,不是实时存储。因为邮件日志非常多,实时存储到磁盘的话IO会吃不消

centos7 sybase安装 centos7安装syslog服务器_mysql_09

centos7 sybase安装 centos7安装syslog服务器_mysql_10

2.将syslog日志从记录在/var/log/messages更改存储到mysql数据库

2-1.安装mysql数据库(略过,自行百度),

2-2.看本机的数据库是否启用。确保数据库已经启动。

执行命令--->ss -ntl |grep :3306

或 rpm -q mariadb

2-3.查看yum仓库里关于rsyslog的软件,(此步可略过)

执行命令--->yum list all rsyslog*

centos7 sybase安装 centos7安装syslog服务器_centos7 sybase安装_11

2-4.安装rsyslog连接mysql或mariaDB的驱动

执行命令--->yum install rsyslog-mysql -y

2-5.查看刚才安装了关于mysql的哪些东西

[root@com47 ~]# rpm -ql rsyslog-mysql x输出:/usr/lib64/rsyslog/ommysql.so x输出:/usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql

2-6.看一下刚才安装的一个mysql-createDB.sql文件。这是个sql脚本要创建rsyslog所需要的数据库和表。从结果中可以看出,Rsyslog默认时候用的数据库名叫【Syslog】。

执行命令--->head /usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql

2-7.我觉得吧,因为我们要手机的日志有中文的,还是自己创建一个utf8的数据库拉倒。

直接执行下面的命令去创建数据库,将你的数据库和密码换上去就行了(root是用户,xpwd123是密码)执行命令--->mysql -uroot -pxpwd123 -e "CREATE DATABASE IF NOT EXISTS Syslog DEFAULT CHARSET utf8 COLLATE utf8_general_ci;"

2-8.创建mysql用户(创建给rsyslog服务器用的数据库登录账号syslog,密码是xpwd456)

执行命令--->mysql -uroot -pxpwd123 -e "GRANT ALL PRIVILEGES ON Syslog.* TO 'syslog'@'%' IDENTIFIED BY 'xpwd456';"

再刷新一下权限表

执行命令--->mysql -uroot -pxpwd123 -e "FLUSH PRIVILEGES;"

2-9.导入rsyslog的数据库脚本/usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql

执行命令--->mysql -uroot -pxpwd123 < /usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql

Duang。报错了ERROR 1007 (HY000) at line 1: Can't create database 'Syslog'; database exists。说是数据库存在了。不能创建。那好办,把数据库脚本的第一行给删掉vim /usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql ,删掉第一行并保存,再执行一次mysql -uroot -pxpwd123 < /usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql,这里看不懂的朋友可以略过2-7步骤从而就不会报错。

2-10.查看数据库导入的结果

此时在数据库Syslog中就出现了两个表SystemEvents和SystemEventsProperties

centos7 sybase安装 centos7安装syslog服务器_服务器_12

2-11.设置rsyslog服务器的配置文件,让其支持存储日志到mysql数据库

执行命令--->vim /etc/rsyslog.conf

2-11-1.在modules模块下【#### MODULES ####】添加一行$ModLoad ommysql,启用rsyslog对mysql引擎的支持

$ModLoad ommysql

2-11-2.修改*.info;mail.none;authpriv.none;cron.none /var/log/messages部分的存储路径,即改为*.info;mail.none;authpriv.none;cron.none :ommysql:127.0.0.1,Syslog,syslog,xpwd456。

下面是的代码是在一行上:

*.info;mail.none;authpriv.none;cron.none :ommysql:127.0.0.1,Syslog,syslog,xpwd456

保存退出配置文件。

centos7 sybase安装 centos7安装syslog服务器_centos7 sybase安装_13

2-12.重启服务器端的rsyslog服务

执行命令--->systemctl restart rsyslog

2-13.赶紧检验结果吧

还是将密码xpwd123换成你自己的mysql的root密码,或者用syslog身份登录也行 mysql -uroot -pxpwd123 -e "select * from Syslog.SystemEvents"

centos7 sybase安装 centos7安装syslog服务器_centos7 sybase安装_14

全文结束!