VPS测评 VPS推荐 VPS优惠
Linux运维

rsyslog教程: linux系统日志服务

rsyslog是CentOS 6 以后版本的系统管理服务。它提供了高性能,出色的安全性和模块化设计。 尽管 rsyslog最初是常规的syslogd,但已发展成为一种瑞士军刀式的记录工具,能够接受来自各种来源的输 入,并将其转换,然后输出到不同的目的地。

官方网站: https://www.rsyslog.com/

rsyslog 特性

  • 多线程
  • UDP, TCP, SSL, TLS, RELP
  • MySQL, PGSQL, Oracle实现日志存储
  • 强大的过滤器,可实现过滤记录日志信息中任意部分
  • 自定义输出格式
  • 适用于企业级中继链

rsyslog 管理

系统日志术语

facility:设施,从功能或程序上对日志进行归类

#内置分类
auth, authpriv, cron, daemon,ftp,kern, lpr, mail, news, security(auth),
user, uucp, syslog
#自定义的分类
local0-local7

Priority:优先级别,从低到高排序

debug, info, notice, warn(warning), err(error), crit(critical), alert,emerg(panic)

查看帮助:man 3 syslog,man logger,man rsyslogd

rsyslog 相关文件

  • 程序包:rsyslog
  • 主程序:/usr/sbin/rsyslogd
  • CentOS 6:/etc/rc.d/init.d/rsyslog {start|stop|restart|status}
  • CentOS 7,8、Ubuntu: /lib/systemd/system/rsyslog.service
  • 配置文件:/etc/rsyslog.conf,/etc/rsyslog.d/*.conf
  • 库文件: /lib64/rsyslog/*.so

rsyslog配置文件

/etc/rsyslog.conf 配置文件格式:由三部分组成

  • MODULES:相关模块配置
  • GLOBAL DIRECTIVES:全局配置
  • RULES:日志记录相关的规则配置

RULES配置格式:

facility.priority; facility.priority… target

facility格式:

* #所有的facility
facility1,facility2,facility3,... #指定的facility列表

priority格式:

*: 所有级别
none:没有级别,即不记录
PRIORITY:指定级别(含)以上的所有级别
=PRIORITY:仅记录指定级别的日志信息

target格式:

文件路径:通常在/var/log/,文件路径前的-表示异步写入(不立即写磁盘节约I/O)
用户:将日志事件通知给指定的用户,* 表示登录的所有用户
日志服务器:@host,把日志送往至指定的远程UDP日志服务器 @@host 将日志发送到远程TCP日志服务器
管道: | COMMAND,转发给其它命令处理

通常的日志文件的格式:

日志文件有很多,如: /var/log/messages,cron,secure等,基本格式都是类似的。

事件产生的日期时间 主机 进程(pid):事件内容

范例:将ssh服务的日志记录至自定义的local的日志设备(Ubuntu20.04)

#修改sshd服务的配置
vim /etc/ssh/sshd_config
SyslogFacility AUTH
service sshd reload

#修改rsyslog的配置
vim /etc/rsyslog.d/50-default.conf
local2.*       -/var/log/sshd.log
systemctl restart rsyslog

#logger测试 可以看到记录
logger -p local2.info "hello sshd"
tail /var/log/sshd.log

启用网络日志服务

启用网络日志服务功能,可以将多个远程主机的日志,发送到集中的日志服务器,方便统一管理。

#在接受日志的远程主机配置
vim /etc/rsyslog.conf
#################
#### MODULES ####
#################

module(load="imuxsock") # provides support for local system logging
#module(load="immark") # provides --MARK-- message capability
 
# provides UDP syslog reception
module(load="imudp")
input(type="imudp" port="514")

# provides TCP syslog reception
module(load="imtcp")
input(type="imtcp" port="514")

# provides kernel logging support and enable non-kernel klog messages
module(load="imklog" permitnonkernelfacility="on")

#在本地主机配置,IP换成接受日志的主机地址
vim /etc/rsyslog.d/50-default.conf
*.info;mail.none;authpriv.none;cron.none @@107.182.18.49
*.info;mail.none;authpriv.none;cron.none @107.182.18.49

#配置完两台主机都重启服务
systemctl restart rsyslog
#发送测试日志
logger "test log"
#可以看到远程主机有日志
tail /var/log/syslog
May 12 05:09:16 DMIT-iJboSKPbP4 root: test log
May 12 05:09:16 DMIT-iJboSKPbP4 root: test log

常见日志文件

  • /var/log/secure:系统安全日志,文本格式,应周期性分析
  • /var/log/btmp:当前系统上,用户的失败尝试登录相关的日志信息,二进制格式,lastb命令进行查看
  • /var/log/wtmp:当前系统上,用户正常登录系统的相关日志信息,二进制格式,last命令可以查看
  • /var/log/lastlog: 每一个用户最近一次的登录信息,二进制格式,lastlog命令可以查看
  • /var/log/dmesg:CentOS7 之前版本系统引导过程中的日志信息,文本格式,开机后的硬件变化将不再记录。专用命令dmesg查看,可持续记录硬件变化的情况
  • /var/log/boot.log 系统服务启动的相关信息,文本格式
  • /var/log/messages :系统中大部分的信息
  • /var/log/anaconda : anaconda的日志

找出失败登录次数最多的前10个IP

lastb|grep -v btmp|awk '/^[^ ]/{print $3}'|sort|uniq -c|sort -nr|head
未经允许不得转载:青蛙主机 » rsyslog教程: linux系统日志服务

VPS相关常用工具

PING测试工具自用毛子接码站