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
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服务器端收不到日志,那就回来再点这货
就这么简单,此时去rsyslog服务器端去 tail /var/log/messages几次就能看到juniper ssg-520传过来的日志了。
七、配置Windows发送syslog日志到Rsyslog服务器
1.下载rsyslog agent for windows软件
https: //download.adiscon.com / rsyslogwa. exe
2.安装rsyslog的agent for windows 软件
这个agent程序貌似支持全系列windows os
建议右键单击“以管理员身份运行”去安装它。然后一路下一步即可。
3.从开始菜单找到Rsyslog/RSyslog windows Agent Configuration
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】,开始发送日志。
截一段在Rsyslog服务器端收到的windows日志tac /var/log/messages |grep pc2602-PC |less
八、扩展部分
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会吃不消
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*
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
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
保存退出配置文件。
2-12.重启服务器端的rsyslog服务
执行命令--->systemctl restart rsyslog
2-13.赶紧检验结果吧
还是将密码xpwd123换成你自己的mysql的root密码,或者用syslog身份登录也行 mysql -uroot -pxpwd123 -e "select * from Syslog.SystemEvents"
全文结束!
标签:---,none,Rsyslog,Centos7,rsyslog,mysql,服务器,日志 From: https://www.cnblogs.com/iancloud/p/17239420.html