Linux基于rsyslog启用网络日志服务实现日志实时转储

Posted 白-胖-子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux基于rsyslog启用网络日志服务实现日志实时转储相关的知识,希望对你有一定的参考价值。

日志

Linux日志管理基本概念

rsyslog

rsyslog 系统日志服务简介

土办法

  • 使用scp或者rsync添加计划任务cron定期执行拷贝
  • 如果突然宕机则损失备份

基于rsyslog实现日志服务异地存储

  • 生产中操作系统和应用程序都会产生海量日志信息
  • 启用网络日志服务功能,可以将多个远程主机的日志,发送到集中的日志服务器,方便统一管理。
  • 使用系统自带rsyslog可以做到几乎实时将生成的日志转储至远程日志服务器

搭建日志服务器

  • 集中管理日志
  • 514默认端口
  • 由imtcp.so和imudp.so功能
  • 要在配置文件中取消掉注释开启功能
  • 找到/etc/rsyslog.conf文件中的功能模块
# Provides UDP syslog reception
# for parameters see http://www.rsyslog.com/doc/imudp.html
#module(load="imudp") # needs to be done just once
#input(type="imudp" port="514")

# Provides TCP syslog reception
# for parameters see http://www.rsyslog.com/doc/imtcp.html
#module(load="imtcp") # needs to be done just once
#input(type="imtcp" port="514")
  • 把module和input前的注释去掉
sed -ri.bak 's/^#(.*\\(.*\\=\\"im.*p\\".*\\)).*/\\1/' /etc/rsyslog.conf
  • 查看修改后的配置文件确认模块已启用
# Provides UDP syslog reception
# for parameters see http://www.rsyslog.com/doc/imudp.html
module(load="imudp")
input(type="imudp" port="514")

# Provides TCP syslog reception
# for parameters see http://www.rsyslog.com/doc/imtcp.html
module(load="imtcp")
input(type="imtcp" port="514")
  • 重启rsyslog服务
systemctl restart rsyslog.service
  • 查看服务器端口确保514已启用
ss -nl | grep 514
udp               UNCONN              0                    0                                                                   0.0.0.0:514              0.0.0.0:*                                                                               
udp               UNCONN              0                    0                                                                      [::]:514                 [::]:*                                                                               
tcp               LISTEN              0                    25                                                                  0.0.0.0:514              0.0.0.0:*                                                                               
tcp               LISTEN              0                    25                                                                     [::]:514                 [::]:* 

客户端服务器配置

  • 修改配置将需要的日志发到远端日志服务器
  • 例如将本地messages日志发送至服务器
sed -i.bak '/\\/var\\/log\\/messages/h;s#/var/log/messages#@@10.0.0.186:514#;/@@10.0.0.186:514/G' /etc/rsyslog.conf
  • 一个@使用UDP,两个@@使用TCP
  • 实现日志推送到远端服务同时也要保存在本地呀!
  • 改完以后是这个样子滴!
# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none                @@10.0.0.186:514
*.info;mail.none;authpriv.none;cron.none                /var/log/messages
  • 重启rsyslog服务
systemctl restart rsyslog.service

测试

  • 日志服务器端查看对应日志中是否有客户端日志内容
  • tail -F /var/log/messages
[root@C8-186 ~]# tail -F  /var/log/messages
Jun  2 01:46:44 C8-192 systemd[3337]: Reached target Paths.
Jun  2 01:46:44 C8-192 systemd[3337]: Starting D-Bus User Message Bus Socket.
Jun  2 01:46:44 C8-192 systemd[3337]: Reached target Timers.
Jun  2 01:46:44 C8-192 systemd[3337]: Listening on D-Bus User Message Bus Socket.
Jun  2 01:46:44 C8-192 systemd[3337]: Reached target Sockets.
Jun  2 01:46:44 C8-192 systemd[3337]: Reached target Basic System.
Jun  2 01:46:44 C8-192 systemd[3337]: Reached target Default.
Jun  2 01:46:44 C8-192 systemd[3337]: Startup finished in 18ms.
Jun  2 01:46:44 C8-192 systemd[1]: Started User Manager for UID 0.
Jun  2 01:46:44 C8-192 sshd[3334]: Accepted publickey for root from 10.0.0.88 port 49366 ssh2: RSA SHA256:SkkJUczJ2TjwOv/dIQbqe5s9mQlhDLk+YXeNiOK2Fs0
Jun  2 01:49:05 C8-192 root[3369]: hello sshd
Jun  2 01:49:05 C8-192 root[3369]: hello sshd
Jun  2 01:51:40 C8-192 sshd[3347]: Received disconnect from 10.0.0.88 port 49366:11: disconnected by user
Jun  2 01:51:40 C8-192 sshd[3347]: Disconnected from user root 10.0.0.88 port 49366
Jun  2 01:51:40 C8-192 systemd[1]: sshd@4-10.0.0.192:22-10.0.0.88:49366.service: Succeeded.
Jun  2 01:51:40 C8-192 systemd[1]: session-11.scope: Succeeded.
Jun  2 01:51:40 C8-192 sshd[3347]: Received disconnect from 10.0.0.88 port 49366:11: disconnected by user
Jun  2 01:51:40 C8-192 sshd[3347]: Disconnected from user root 10.0.0.88 port 49366
……

以上是关于Linux基于rsyslog启用网络日志服务实现日志实时转储的主要内容,如果未能解决你的问题,请参考以下文章

rsyslog

Ubuntu中怎么启用Crontab日志记录

Ubuntu中怎么启用Crontab日志记录

Ubuntu中怎么启用Crontab日志记录

Linux通过Rsyslog搭建集中日志服务器

实现基于MySQL管理rsyslog日志