centos rsyslog mysql_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

0f0d71bd9924dea650088ce598f99272.png

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服务器端收不到日志,那就回来再点这货

98fc3f508a6244043798c814a9f4ed33.png

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

493ff5b885ed74d047d6205946074152.png

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

1.下载rsyslog agent for windows软件

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

2.安装rsyslog的agent for windows 软件

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

b8bd4e28c624d94c946f658e709ee594.png

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

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

a7ba28613cc4fff2e15eec2a99243dea.png

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】,开始发送日志。

f195aefcb0e9c0fd47cba24c125322b4.png

fd6390f4d0324355de9551de1571e1b0.png

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

ec02fcad811f2723641e60fdbab53ba8.png

八、扩展部分

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会吃不消

698ee4d0a695502bd7a16fbabccbcc84.png

77828f98cc611c50c97fd4af869564be.png

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*

d93d3d107d9242c779747b018a917bbe.png

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

38086f4713c40065bf66209189c8573e.png

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

保存退出配置文件。

2fd1570d345af6bf58d288a042c42bd0.png

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

执行命令--->systemctl restart rsyslog

2-13.赶紧检验结果吧

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

2cd32d804067d2cb2655ed0ec6d43706.png

全文结束!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值