Rsyslog服务简介
Rsyslog是syslog的升级版本, 其在RHEL5的版本中, 名称为syslog.在RHEL6/7其升级为Rsyslog. Rsyslog是一个日志管理系统,记录过去某个时间发生的事件,及事件级别进行定义并记录到指定位置. 其支持C/S架构,可通过UDP/TCP协议提供日志记录服务.Rsyslog日志格式较为简单.
Rsyslog的服务进程
-
syslogd
: 系统日志(用户空间的各应用程序相关的日志) -
Klogd
: 内核日志(kernel相关的日志),在RHEL6中, Klogd由syslog代为管理.
Rsyslog的特性:
- 多线程的服务,并发性能好
- 可以使用udp,tcp,ssl,tls,relp等协议完成信息收集
- 将日志可存储在mysql,pgsql,oracle等数据库管理系统中
- 强大的自定义过滤器,实现过滤日志信息中任何部分内容
- 自定义输出格式
Rsyslog的相关文件
-
/etc/rsyslog.conf
: 主配置文件 -
/etc/rsyslog.d/*.conf
: 辅助配置文件 -
/lib64/rsyslog/*.so
: rsyslog的功能扩展模块位置,I开始的文件表示,从那收集, O开始的文件表示,将日志记录到那
Rsyslog的重要术语
-
facility
(产生日志的设施,从功能和程序上对日志收集进行分类)-
auth
: 身份认证 -
aupriv
: 授权 -
cron
: 计划任务 daemon
-
kern
: 内核 -
lpr
: 打印 -
mail
: 邮件 -
mark
: 防火墙 -
news
: 新闻 -
security
: 安全 -
user
: 用户 uucp
-
syslog
: 系统日志 -
local0-local7
: 用户自定义级别
-
-
priority
(日志级别)debug
: 调度信息info
: 基本信息notice
: 提醒warn
: warning, 警告err
: critical, 危险的alert
: 橙色警告emerg
: 红色警告-
指定级别:
-
*
: 所有级别 -
none
: 没有级别,不记录 -
PRIORITY
: 此级别以及高于此级别的所有级别 -
=PRIORITY
: 仅此级别
-
/etc/rsyslog.conf的组成部分
-
加载的模块
- $ModLoad ommysql
全局配置指令
-
日志记录规则
- facility.priority target
####记录系统所有的info及以上的日志,但不包含mail,authpriv,cron的日志 *.info;mail.none;authpriv.none;cron.none /var/log/message ####记录任务计划的所有日志 cron.* /var/log/cron ####记录所有的emerg级别日志,通过模块输出给所有用户一则消息 *.emerg :omusrmsg:* ####将指定的日志发送给指定的日志服务器 cron.* @172.16.36.70
-
target
- 文件: 记录日志事件于指定的文件中,通常应用位于/var/log目录下,文件路径之前的"-"表示异步写入
- 用户: 将日志事件通知给指定的用户, 是通过将信息发送给登陆到系统上的用户的终端上
- 日志服务器: 使用@host,把日志送往指定的服务器主机
- Host : 即日志服务器地址,监听在tcp/udp的514端口
- 管道: |COMMAND
注意: 在日志文件中, 填写的指令必须在相应的段出来,例如:不能将加载的模块配置信息填写到rules(日志记录规则)处
/etc/rsyslog.conf的日志的配置格式
事件产生的时间及日期 主机 进程[PID]:事件信息本身
利用rsyslog服务输出到数据库中,并且由loganalyzer展示
-
安装rsyslog连接数据库的驱动
-
yum install rsyslog-mysql
: 生成ommysql.so模块,和createdb.sql数据脚本(用于创建所需的数据库)
-
-
连接数据库,并且为此创建用户及建立所需数据库
mysql < /usr/share/doc/rsyslog-mysql-7.4.7/createdb.sql
-
source /usr/share/doc/rsyslog-mysql-7.4.7/createdb.sql
(两个方法使用其中一个即可)
-
配置rsyslog.conf文件
- 模块位置定义
- $ModLoad ommysql
- rules定义位置
- cron.* :ommysql:172.16.36.70,DATABASE,USER,PASSWORD
- 模块位置定义
重启rsyslog服务
-
安装loganalyzer
-
准备lamp环境
yum install httpd php php-mysql php-gd
-
下载loganalyzer软件包
- tar xf loganalyer-3.6.5.tar.gz
- cp -r loganalyer-3.6.5.tar.gz/src/var/www/html/loganalyzer
- cp -r loganalyzer-3.6.5/contrib/*sh /var/www/html/loganalyzer
- cd /var/www/html/loganalyzer/
- chmod +x *.sh
- ./configure.sh
- ./secure.sh
- chmod 666 config.php
-
通过URL访问并配置
-
last命令
查看当前系统成功登录系统的日志,日志位置/var/log/wtmp
lastb命令
当前系统尝试登录失败的日志,日志位置/var/log/btmp
dmesg
内核完成自身初始化过程中, 探测的各种硬件的日志信息,日志位置/var/logdmesg.
lastlog
显示当前系统上所有用户的最近一次登陆时间
Linux强大的日志收集及展示平台
- elk stack : elasticsearch ,强大的分布式日志收集引擎
- logstash : 从各主机收集日志, 导入elk stack的工具
- kibana : 极为美观的展示日志结果的界面工具