首页 > 系统相关 >Centos7之Rsyslog服务器部署

Centos7之Rsyslog服务器部署

时间:2023-03-21 11:46:54浏览次数:57  
标签:--- none Rsyslog Centos7 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

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

相关文章

  • 服务器内存占用高,如何排查是哪个项目占用的资源?
    服务器内存占用高,如何排查是哪个项目占用的资源?最直观的查看方式ps-e-opid,user,%mem,command--sort=-%mem|headA1要查看服务器上的哪个项目占用资源,可以执行以......
  • jmeter-HTTP代理服务器-录制浏览器操作
     HTTP代理服务器,可以对浏览器手动操作的过程进行录制,然后修改各种参数后,可以进行反复运行测试 1、添加HTTP代理服务器  2、添加后的界面如下图  3、在浏......
  • 小记:踩搭到海光服务器的坑
    日前,采购了一台海光服务器然后怎么安装anolis8.4的及centos8.4之前的各种操作系统都会失败,要么是安装操作系统直接黑屏,要么是安装操作系统完成后直接黑屏。。。找厂家,技......
  • umijs服务器代理配置,多个代理
    同时代理api和资源://服务器代理proxy:{'/api':{target:'http://xxx',changeOrigin:true,pathRewrite:{'^/api/':'/api/',......
  • SQL Server 导出链接服务器用户名密码
    DACconnectivitytoMSSQLinstancesLocaladministratorprivileges(neededtoaccessregistrykey)SysadminprivilegestoMSSQLinstancesfunctionGet-MSSQLL......
  • Comet4J AJAX 服务器推送框架
    Comet4J(CometforJava)是一个纯粹基于AJAX(XMLHTTPRequest)的服务器推送框架,消息以JSON方式传递,具备长轮询、长连接、自动选择三种工作模式。功能特性推送消息广播。......
  • JavaMelody监控web服务器
    JavaMelody监控web服务器JavaMelody监控java项目摘要JavaMelody的是一款监控Java或JavaEE应用服务器在质量保证和生产环境。它不是一个工具来模拟......
  • CentOS7.X 部署OpenVPN
    1、实验环境CentOS7.9内网ens32:172.16.9.129外网ens33:10.33.56.1002、配置路由转发echo"net.ipv4.ip_forward=1">>/etc/sysctl.d/99-sysctl.confsysctl-p3、安装openv......
  • 泰国服务器租用有何优势
    泰国服务器位于曼谷机房,泰国实行自由经济政策,制造业尤其是电子工业发展迅速,经济持续高速增长。泰国积极应对国际金融危机,推动经济发展。E3       8核  ......
  • centos7通过CDH部署Hadoop
    一、角色分配及安装环境准备资料下载地址:链接:百度网盘1.机器及机器角色规划2.关闭防火墙及SELinux3.安装依赖(server)yuminstall-ycyrus-sasl-plaincyrus-sa......