rsyslog日志服务

守給你的承諾、 提交于 2019-12-06 02:16:38

rsyslog简介

rsyslog是CentOS6和CentOS7默认的记录日志的服务

支持特性:

  • UDP, TCP, SSL, TLS, RELP
  • MySQL, PGSQL, Oracle实现日志存储
  • 强大的过滤器,可实现过滤记录日志信息中任意部分
  • 自定义输出格式


常见术语:

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

auth, authpriv, cron, daemon,ftp,kern, lpr, mail, news, security(auth), user, uucp, local0-local7, syslog

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

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


配置文件格式:

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

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


RULES设置方式:

  • facility

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

  • priority:

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

  • target:

文件路径:通常在/var/log/,文件路径前的-表示异步写入
用户:将日志事件通知给指定的用户,* 表示登录的所有用户
日志服务器:@host,把日志送往至指定的远程服务器记录
管道: | COMMAND,转发给其它命令处理


启动网络日志服务:

    可以把开启自己的网络服务模式,把其他主机的日志保存到本机,相当于日志服务器的功能。

  • 通常的日志格式:

事件产生的日期时间 主机 进程(pid):事件内容
如: /var/log/messages,cron,secure等

  • 配置rsyslog成为日志服务器

#### MODULES ####         在MODULES模块下把对应的配置注释取消即可
# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514
# Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514


常用的日志说明:

  • /var/log/secure:系统安装日志,文本格式,应周期性分析
  • /var/log/btmp:当前系统上,用户的失败尝试登录相关的日志信息,二进制格式,lastb命令进行查看
  • /var/log/wtmp:当前系统上,用户正常登录系统的相关日志信息,二进制格式,last命令可以查看
  • /var/log/lastlog:每一个用户最近一次的登录信息,二进制格式,lastlog命令可以查看
  • /var/log/dmesg:系统引导过程中的日志信息,文本格式。可以通过文本查看工具查看,也可以通过专用命令dmesg查看
  • /var/log/messages :系统中大部分的信息
  • /var/log/anaconda : anaconda的日志


rsyslog设置举例

我们知道sshd的默认日志是保存在/var/log/secure的

# 查看sshd的默认配置
# cat /etc/ssh/sshd_config
SyslogFacility AUTHPRIV      # 默认是保存在AUTHPRIV设施里的


# 查看rsyslog配置
# cat /etc/rsyslog.conf
authpriv.*         /var/log/secure
# 可以看到authpriv设施下的所有级别的日志都保存到/var/log/secure中


这里我们设置把sshd的日志保存到一个没占用的设施local0中,并将local0的所有日志保存到/var/log/ssh文件中

1、修改sshd配置
# vim /etc/ssh/sshd_config
SyslogFacility local0

2、修改rsyslog配置
#vim /etc/rsyslog.conf 
在文挡最后新增如下行
local0.*        /var/log/ssh

重3、启rsyslog和sshd服务
# systemctl restart rsyslog sshd

4、查看新生成的日志文件
#cat /var/log/ssh
Nov 29 10:02:06 225 sshd[19629]: Server listening on 0.0.0.0 port 22.
Nov 29 10:02:06 225 sshd[19629]: Server listening on :: port 22.
Nov 29 10:02:22 225 sshd[19634]: Address x.x.x.x maps to localhost, but this does not map back to the address - POSSIBLE BREAK-IN ATTEMPT!
Nov 29 10:02:22 225 sshd[19634]: Accepted password for root from x.x.x.x  port 4686 ssh2


rsyslog将日志记录在mysql中

1、安装mariadb和rsyslog-mysql程序包
# yum install mariadb-server rsyslog-mysql

2、创建rsyslog-mysql依赖的数据库
# rpm -ql rsyslog-mysql
/usr/lib64/rsyslog/ommysql.so
/usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql

# systemctl start mariadb
# msyql < /usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql

3、创建用户,授权对Syslog数据库的全部访问权限
mysql> GRANT ALL ON Syslog.* TO 'wangq'@'172.16.%' IDENTIFIED BY '123456';

4、修改rsyslog配置
# vim /etc/rsyslog.conf
新增下面配置注意配置mysql的格式    :ommysql:DBHOST,DBNAME,DBUSER,PASSWORD
$ModLoad ommysql
*.info;mail.none;authpriv.none;cron.none        :ommysql:172.16.100.215,Syslog,wangqiang,123456

5、重启服务
# systemctl restart rsyslog


web显示rsyslog日志

安装开源loganalyzer,通过web查看mysql存储的日志

1、配置LAMP
# yum install httpd php php-mysql php-gd
# service httpd start

2、网上下载 loganalyzer-4.1.7.tar.gz
# tar xf loganalyzer-4.1.7.tar.gz
# cd loganalyzer-4.1.7
# cp src /var/www/html
# cd /var/www/html
# mv src log
# cd log
# touch config.php
# chmod 666 config.php

3、登录web页面(http://x.x.x.x)配置loganalyzer,然后把权限改回664
# chmod 644 config.php
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!