安装配置Syslog

安装配置Syslog,第1张

一、配置安装环境

linux centOS 7.4

配置网络,具体见 https://www.jianshu.com/p/cb8d0e6758ab

二、安装配置rsyslog

1)安装rsyslog

[root@localhost ~]#yum -y install rsyslog

2)更新下系统的其他包

[root@localhost ~]#yum update

(说明:

配置文件/etc/rsyslog.conf大概分为三个部分

####MODULES####

这个部分是针对接收配置的,主要是指定接收日志的协议和端口。若要配置日志服务器,则需要将相应的配置项去掉注释。

####GLOBAL DIRECTIVES####

这个部分主要用来配置模板,模板的作用是指定你希望在日志文件中保存的日志格式。

#### RULES ####

这一部分是规则文件,每行配置分两个字段,第一字段是说明要记录哪类日志(包括消息类型和等级),第二字段是说明日志存放位置(action),可以是本地文件,也可以是远程服务器。)

3)[root@localhost ~]#vi /etc/rsyslog.conf

4):set nu显示行号

5)允许rsyslog后台进程在TCP/UDP协议的514端口上接收日志信息,rsyslog后台进程是可以同时监听TCP/UDP连接的。

15,16,19,20前面的#去掉

6)在#### GLOBAL DIRECTIVES ####前添加下面的内容:

#将所有从远程客户端接受到的消息写入到一个以它们的IP地址命名的单个文件中

$template RemoteLogs,"/var/log/devicelog/%HOSTNAME%/%PROGRAMNAME%.log"

*.* ?RemoteLogs

&~

#排除本地主机IP日志记录,只记录远程主机日志

fromhost-ip, !isequal, "127.0.0.1"

?Remote

&~

(说明:

第一行$template 定义模板名称RemoteLogs(“RemoteLogs” 可以为其它名字),日志存入到/var/log/devicelog路径下。而日志文件名则依据发送远程日志的机器名及应用程序名来定义。

第二行*.*  ?RemoteLogs暗含运行用模板RemoteLogs于所有的接收日志。

第三行&~则告诉rsyslog后台进程停止进一步去处理日志信息,即不对它们进行本地化写入,它是代表一个重定向规则。如果没有这一行,则意味着接收到的日志会写入两次,一次如前两行写的方式写,第二次则以本地日志记录的方式写入。运行这个规则的另一个结论则是日志服务器自己的日志信息只会写入到依照机器主机名命名的文件中。)

7)重启下服务,并加入开机启动

[root@localhost ~]#systemctl restart rsyslog

[root@localhost ~]#systemctl enable rsyslog

8)验证下端口

[root@localhost ~]#netstat -antup | grep 514

9)配置防火墙规则

[root@localhost ~]#firewall-cmd --permanent --zone=public --add-port=514/tcp

[root@localhost ~]#firewall-cmd --permanent --zone=public --add-port=514/udp

[root@localhost ~]#firewall-cmd --reload

10)将要连接syslog的设备设置好syslog环境的ip和端口,然后在本机查看日志

[root@localhost ~]#mkdir /var/log/devicelog/

[root@localhost ~]#cd /var/log/devicelog/

syslog 可能是运维领域最流行的数据传输协议了。当你想从设备上收集系统日志的时候,syslog 应该会是你的第一选择。尤其是网络设备,比如思科 —— syslog 几乎是唯一可行的办法。

我们这里不解释如何配置你的syslog.conf,rsyslog.conf或者syslog-ng.conf来发送数据,而只讲如何把 logstash 配置成一个 syslog 服务器来接收数据。

配置示例

运行结果

作为最简单的测试,我们先暂停一下本机的syslogd(或rsyslogd)进程,然后启动 logstash 进程(这样就不会有端口冲突问题)。现在,本机的 syslog 就会默认发送到 logstash 里了。我们可以用自带的logger命令行工具发送一条 "Hello World"信息到 syslog 里(即 logstash 里)。看到的 logstash 输出像下面这样:

en

conf t

clock timezone GMT +8        #设置正8区北京时间

exit

clock set HH:MM:SS DAY MOTH YEAR  #设置当前时间 小时:分钟:秒 日 月 年

service timestamps debug uptime #开启debug调试信息增加时间戳

service timestamps log datetime localtime #开启log日志增加时间戳

logging on                  #启动log机制

logging 10.1.1.23  #配置日志发送服务器,将日志发送到10.1.1.23上

logging facility local2    #将记录时间类型记录为local2

logging trap warning    #将记录事件严重级别定义为从warningl开始,一直到最紧急级别的事件全部记录到前边指定的syslog server.

logging source-interface loopback0 #指定记录事件的发送源地址为loopback0的IP地址,根据自己的实际情况

service timestamps log datetime localtime    #发送记录事件的时候包含时间标记

end        #退出

wr         #保存


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/300611.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-26
下一篇2023-04-26

发表评论

登录后才能评论

评论列表(0条)

    保存