Linux日志管理之rsyslog

rsyslog

1.基础术语

  • 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

[root@centos8 ~]#yum -y install man-pages
[root@centos8 ~]#man 3 syslog

2.文件组成

  • 程序包:rsyslog
  • 主程序:/usr/sbin/rsyslogd
  • CentOS 6:/etc/rc.d/init.d/rsyslog
  • CentOS 7,8:/usr/lib/systemd/system/rsyslog.service
  • 配置文件:/etc/rsyslog.conf,/etc/rsyslog.d/*.conf
  • 库文件: /lib64/rsyslog/*.so

3.配置文件

/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/,文件路径前的-表示异步写入
用户:将日志事件通知给指定的用户,* 表示登录的所有用户
日志服务器:@host,把日志送往至指定的远程UDP日志服务器 @@host 将日志发送到远程TCP日志服务器
管道: | COMMAND,转发给其它命令处理

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

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

范例:日志文件格式

[root@centos8 ~]#tail /var/log/messages
Nov 12 08:34:18 centos8 dnf[14114]: Metadata cache created.
Nov 12 08:34:18 centos8 systemd[1]: Started dnf makecache.
Nov 12 09:35:14 centos8 systemd[1]: Starting dnf makecache...
Nov 12 09:35:14 centos8 dnf[14249]: Metadata cache refreshed recently.
Nov 12 09:35:14 centos8 systemd[1]: Started dnf makecache.
Nov 12 10:21:22 centos8 systemd[1]: Starting man-db-cache-update.service...
Nov 12 10:21:22 centos8 systemd[1]: Reloading.
Nov 12 10:21:22 centos8 systemd[1]: Started man-db-cache-update.service.
[root@centos8 ~]#tail /var/log/secure
Nov 11 18:27:12 centos8 groupadd[11940]: group added to /etc/group: name=dhcpd, GID=177
Nov 11 18:27:12 centos8 groupadd[11940]: group added to /etc/gshadow: name=dhcpd
Nov 11 18:27:12 centos8 groupadd[11940]: new group: name=dhcpd, GID=177
Nov 11 18:27:12 centos8 useradd[11948]: new user: name=dhcpd, UID=177, GID=177, home=/, shell=/sbin/nologin

范例:将ssh服务的日志记录至自定义的local的日志设备

#修改sshd服务的配置
Vim /etc/ssh/sshd_config
SyslogFacility local2
Service sshd reload

#修改rsyslog的配置
Vim /etc/rsyslog.conf
Local2.* /var/log/sshd.log
Systemctl  restart rsyslog

#测试
Ssh登录后,查看/var/log/sshd.log有记录

#logger测试
logger -p local2.info "hello sshd"
tail /var/log/sshd.log有记录

4.网络日志服务

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

CentOS 7 和6 启用网络日志功能

vim /etc/rsyslog.conf
####MODULES####
# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514

# Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514

CentOS 8 启用网络日志功能

[root@centos8 ~]#vim /etc/rsyslog.conf
## MODULES ####
...省略...
# 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")

#在客户端指定将日志发送到远程的TCP、UDP的日志服务器
[root@centos7 ~]#vim /etc/rsyslog.conf
*.info;mail.none;authpriv.none;cron.none               /var/log/messages
*.info;mail.none;authpriv.none;cron.none               @@10.0.0.18:514  #TCP
*.info;mail.none;authpriv.none;cron.none               @10.0.0.18:514   #UDP

5.常见日志文件

  • /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的日志

范例:找到失败登录的IP

[root@centos8 ~]#awk '/Failed password/{print $(NF-3)}' /var/log/secure
192.168.39.7
192.168.39.18
192.168.39.18

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

[root@centos8 ~]#lastb -f btmp-test1 | awk '{print $3}'|sort | uniq -c|sort -nr|head
  8374 112.64.33.38
  7041 221.125.235.4
  6502 183.247.184.220
  5970 203.190.163.125
  5297 202.89.0.27
  3062 119.163.122.32
  2961 124.126.248.6
  2921 92.222.1.40
  2896 112.65.170.186
  1955 118.97.213.118

[root@centos8 ~]#lastb -f btmp-test2 | awk '{ip[$3]++}END{for(i in ip){print
ip[i],i}}'|sort -nr|head
86294 58.218.92.37
43148 58.218.92.26
18036 112.85.42.201
10501 111.26.195.101
10501 111.231.235.49
10501 111.204.186.207
10501 111.11.29.199
10499 118.26.23.225
6288 42.7.26.142
4236 58.218.92.30

posted on 2021-03-09 15:54  求墨  阅读(729)  评论(0编辑  收藏  举报