在centos7中,默认的日志系统是rsyslog,它是一个类unix计算机系统上使用的开源工具,用于在ip网络中转发日志信息。rsyslog采用模块化设计,是syslog的替代品。rsyslog具备以下特色:前端
实现了基本的syslog协议。mysql
直接兼容syslogd的syslog.conf配置文件sql
在同一台机器上支持多个rsyslogd进程数据库
丰富的过滤功能,可将消息过滤后再转发apache
灵活的配置选项,配置文件中能够写简单的逻辑判断centos
增长了重要的功能,如使用tcp进行消息传输安全
有现成的前端Web展现程序。bash
默认安装的ryslog软件包提供的守护进程是rsyslog,它是一项系统的基础服务。应该设置为开机运行,由systemd启动的。服务器
守护进程rsyslog在启动时会读取其配置文件。管理隐患能够经过编辑/etc/rsyslog.conf、/etc/rsyslog.d/*.conf和/etc/sysconfig/rsyslog来配置rsyslog的行为。/etc/sysconfig/rsyslog文件用于配置守护进程的运行参数,/etc/rsyslog.conf是rsyslog的主配置文件。网络
rsyslog的配置文件/etc/rsyslog.conf的结构以下:
全局命令(Global dirctives):设置全局参数、如主消息尺寸、加载扩展模块等
模版(Templates):指定记录的消息格式,也用于动态文件名称生成
输出通道(Output chananels):对用户指望的消息输出进行预约义。
规则(Rules)【selector +action】:指定消息规则。在规则中能够引用以前的定义模版和输出通道
以#开始的行为注释,全部空行将被忽略
规则配置每一行的格式以下:
设备字段说明:
auth –pam产生的日志
authpriv –ssh,ftp等登陆信息的验证信息
cron –时间任务相关
ftp -FTP守护进程的信息
kern –内核
lpr –打印
mail –邮件
mark(syslog)–rsyslog服务内部的信息,时间标识
news –新闻组
user –用户程序产生的相关信息
uucp –unix to unix copy, unix主机之间相关的通信
local 1~7 –自定义的日志设备
级别字段说明
ebug –有调式信息的,日志信息最多
info –通常信息的日志,最经常使用
notice –最具备重要性的普通条件的信息
warning –警告级别
err –错误级别,阻止某个功能或者模块不能正常工做的信息
crit –严重级别,阻止整个系统或者整个软件不能正常工做的信息
alert –须要马上修改的信息
emerg –内核崩溃等严重信息
none –什么都不记录
动做字段说明
filename -指定绝对路径的日志文件名来记录日志信息
:omusrmsg:users -发送信息到指定的用户,users能够是用逗号分隔符的用户类别,*表示全部用户
device -将信息发送到指定设备中,如/dev/console
|named-pipe -将日志记录到命令管道,用于日志调试很是方便
@hostname -将信息发送可解析远程主机hostname或IP,该主机必须正在运行rsyslogd,并能够识别rsyslog的配置文件,使用upd:514端口传送日志信息
@@hostname -将信息发送可解析远程主机hostname或IP,该主机必须正在运行rsyslogd,并能够识别rsyslog的配置文件,使用tcp:514端口传送日志信息
rsyslog.conf的说明以下所示:(关键配置)
远程日志服务器
为了方便日志监控并防止日志被篡改、一般在工做网络中会架设中央日志服务器用于存放各个服务器的日志。rsyslog支持日志的远程发送和接受
rsyslog客户:负责发送日志到中央日志服务器,支持udp,tcp,relp协议
rsyslog服务器:负责接受从rsyslog客户发送的日志并存储在rsyslog服务器,支持日志文件存储、数据库存储
如下为rsyslog客户与rsyslgo服务器使用到的模块与配置语法
角色 | 功能 | RPM包名 | 模块 | 配置语法 |
客户 | 使用udp协议发送 | rsyslog | - | *.* @hostname:514 |
使用tcp协议发送 | rsyslog | _ | *.* @@hostname:514 | |
使用relp协议发送 | rsyslog-relp | omrelp | *.* :omrelp:hostnames:2514 | |
服务器 | 使用udp协议接收 | rsyslog | imudp | $ModLoad imudp $InputUDPServerRun 514 |
使用tcp协议接收 | rsyslog | imtcp | $ModLoad imtcp $InputTCPServerRun 514 |
|
使用relp协议接收 | rsyslog-relp | imrelp | $ModLoad imrelp $InputRELPServerRun 2514 |
|
将日志记录到MySQL | ryslog-mysql | ommysql | $ModLoad ommysql *.*:ommysql:DBserver,DBname,DBuser,DBpasswd |
|
将日志记录到PostgreSQL | rsyslog-pgsql | ompgsql | $ModLoad ompgsql *.*:ompgsql:DBserver,DBname,DBuser,DBpasswd |
如下举例说明,将日志发送到远程主机
发送测试完毕后,在日志服务器上(splunk)上能够收到发送的测试日志,证实rsyslog配置成功
查看详细信息,能够肯定使用tcp514端口发送的日志
如下为系统中经常使用的日志文件说明,在/var/log/*路径
/var/log/messages — 包括总体系统信息,其中也包含系统启动期间的日志。此外,mail,cron,daemon,kern和auth等内容也记录在var/log/messages日志中。
/var/log/dmesg — 包含内核缓冲信息(kernel ring buffer)。在系统启动时,会在屏幕上显示许多与硬件有关的信息。能够用dmesg查看它们。
/var/log/auth.log — 包含系统受权信息,包括用户登陆和使用的权限机制等。
/var/log/boot.log — 包含系统启动时的日志。
/var/log/daemon.log — 包含各类系统后台守护进程日志信息。
/var/log/dpkg.log – 包括安装或dpkg命令清除软件包的日志。
/var/log/kern.log – 包含内核产生的日志,有助于在定制内核时解决问题。
/var/log/lastlog — 记录全部用户的最近信息。这不是一个ASCII文件,所以须要用lastlog命令查看内容。
/var/log/maillog /var/log/mail.log — 包含来着系统运行电子邮件服务器的日志信息。例如,sendmail日志信息就所有送到这个文件中。
/var/log/user.log — 记录全部等级用户信息的日志。
/var/log/Xorg.x.log — 来自X的日志信息。
/var/log/alternatives.log – 更新替代信息都记录在这个文件中。
/var/log/btmp – 记录全部失败登陆信息。使用last命令能够查看btmp文件。例如,”last -f /var/log/btmp | more“。
/var/log/cups — 涉及全部打印信息的日志。
/var/log/anaconda.log — 在安装Linux时,全部安装信息都储存在这个文件中。
/var/log/yum.log — 包含使用yum安装的软件包信息。
/var/log/cron — 每当cron进程开始一个工做时,就会将相关信息记录在这个文件中。
/var/log/secure — 包含验证和受权方面信息。例如,sshd会将全部信息记录(其中包括失败登陆)在这里。
/var/log/wtmp或/var/log/utmp — 包含登陆信息。使用wtmp能够找出谁正在登录进入系统,谁使用命令显示这个文件或信息等。
/var/log/faillog – 包含用户登陆失败信息。此外,错误登陆命令也会记录在本文件中。
除了上述Log文件之外, /var/log还基于系统的具体应用包含如下一些子目录:
/var/log/httpd/或/var/log/apache2 — 包含服务器access_log和error_log信息。
/var/log/lighttpd/ — 包含light HTTPD的access_log和error_log。
/var/log/mail/ – 这个子目录包含邮件服务器的额外日志。
/var/log/prelink/ — 包含.so文件被prelink修改的信息。
/var/log/audit/ — 包含被 Linux audit daemon储存的信息。
/var/log/samba/ – 包含由samba存储的信息。
/var/log/sa/ — 包含每日由sysstat软件包收集的sar文件。
/var/log/sssd/ – 用于守护进程安全服务