rsyslogd系统日志服务总结
简单介绍
- syslog系统日志服务协议,标准出来的比较晚
- 用于记录系统日志或者用户程序产生的日志
- 采用C/S架构,本地可以通过socket和syslogd守护进程通讯,远程通过TCP/UDP协议通信,支持加密,默认端口是514
- 除了可以记录本地日志之外,还可以作为中继器(relay转发)或者接收器(collector)接收来自支持syslog协议客户端的日志
- CentOS6.0后,使用rsyslogd代替syslogd,rsyslogd是对syslogd的增强和扩展
- rsyslogd支持文件写入本地文件,也支持写入关系型数据库,或者写入Kafka以及hdfs
- 注意
- 如果日志信息包含多行,每一行是syslog的一个msg,对于整体分析会有问题
- syslog整体架构
- rsyslogd内部实现
(图片来源rsyslog官方文档)
syslog格式
HEADER MSG - <>包含的是Facility+Severity
- HEADER部分包含 时间 + host/ip
- MSG是具体的消息内容
syslog配置文件
- 每一行表示一个项目,格式为:facility.level action
- 常见的facility有:
- kern: 内核信息
- user: 用户进程相关信息
- mail: 电子邮件相关信息
- daemon: 后台进程相关信息
- authpriv: 包括特权信息如用户名在内的认证活动等
- cron: 计划任务信息
- syslog: 系统日志信息
- 重要级(按严重程度由低到高排序):
- debug: 调试信息
- info: 打印的信息
- none: 没有重要级,通常用于排错
- notice: 具有重要信息的普通条件
- warning: 警告信息
- err: 错误信息
- crit: 阻止某些工具或子系统功能实现的错误条件
- alert: 需要立即被修改的条件
- emerg: 该系统不可用
- 操作动作
- 文件
- 远程日志服务
- 其他存储
# /etc/rsyslog.conf
# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514
# php-fpm daemon messages
if $syslogfacility-text == "daemon" and $programname == "php-fpm" then /var/log/php-fpm-error.log
# php error messages
if $syslogfacility-text == "user" and $programname == "php" then /var/log/php-error.log
- 重启rsyslogd服务(CentOS7)
[root@wadeyu ~]# systemctl restart rsyslog
参考资料
作者:WadeYu
出处:http://www.cnblogs.com/wadeyu/
本文版权归本人和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
出处:http://www.cnblogs.com/wadeyu/
本文版权归本人和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。