学习rsyslog总结
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习rsyslog总结相关的知识,希望对你有一定的参考价值。
问题:
syslog与rsyslogd有什么关系?rsyslogd是syslog的升级版
如何增加自定义服务?通过local0 ~ local7可以自定义一些服务信息
如何与数据库相关联?
如何确定使用的什么协议传输?根据配置
业务场景有哪些?记录系统日志、开发业务日志
如何升级?
#
syslog缺点:
- 记录丢失,默认使用UDP 514端口传输 UDP没有检测,重发等功能
- 记录缓慢 磁盘IO利用率较高进而导致CPU阻塞影响系统性能
#
rsyslog优点:
- 支持数据库
- 日志内容筛选
- 自定义日志格式模板
- 支持UDP、TCP、RELP传输协议
重启服务:
systemctl restart rsyslog
/etc/init.d/rsyslog restart
syslog日志消息既可以记录在本地文件中,也可以通过网络发送到接收syslog的服务器。
完整的syslog日志中包含产生日志的程序模块(Facility)、严重性(Severity或 Level)、时间、主机名或IP、进程名、进程ID和正文。
配置文件的格式
facility.level action
facility: 服务
level: 等级
action: 动作
日志服务:
sysloggd:主要登录系统与网络等服务
klodg:主要登录内核产生的各项信息
logrotate:主要进行日志文件的轮替功能
日志记录的主要数据
- 事件发生的日期与时间
- 发生此事的主机名
- 启动此事件的服务名或函数名称
- 该信息的实际数据内容
服务名称(facility)
服务类型 | 说明 |
---|---|
auth(authpriv) | 授权信息 主要是认证有关的机制,例如login ssh eu等需要账号、密码 |
cron | 例行性工作调度信息 |
daemon | 守护进程、后台进程 |
kern | 内核信息 |
lpr | 打印相关 |
邮件 | |
news | 与新闻服务器相关 |
syslog | 系统信息 |
user | 用户进程 |
uucp | 由uucp产生的消息 |
local0~local7 | 自定义程序使用 |
消息级别(level)一下表中为由高到低
等级名称 | 说明 |
---|---|
* | 所有级别,除了none |
none | 没有重要级,通常用于排错(不记录任何日志消息) |
debug | 不包含函数条件或问题的其他信息(调试级-信息量最多) |
info | 仅是一些基本的消息(通知类) |
notice | 具有重要性的普通消息(普通单重要的消息) |
warning(warn) | 阻止某些工具或子系统功能实现的错误条件(重要消息) |
error(err) | 阻止工具或某些子系统部分功能实现的错误条件(出错消息 |
crit | 比error还要严重 |
alert | 需要立即被修改的条件(紧急消息) |
panic | 该系统不可用(最紧急消息) |
服务与等级之间的连接符“.=!”
. 代表比当前等级要高(包含自己)的都要记录下来
.= 仅记录后面标记的等级
.! 记录处后面的所有等级
信息记录的文件名、设备、主机(action 动作域)
- 文件的绝对路径:通常记录到 /var/log/
- 打印机或其他:/dev/lp0
- 用户名称:显示给某用户
- 远程主机:例如@www.vbird.tsai
-
- :代表在线的所有人
封装好的调用函数
bool openlog ( string $ident , int $option , int $facility )
bool syslog ( int $priority , string $message )
bool closelog ( void )
rsyslog服务配置案例:
$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
$ModLoad imklog # provides kernel logging support (previously done by rklogd)
$ModLoad imudp #应用UDP协议模块
$UDPServerRun 514 #设置UDP使用的端口
$ModLoad imtcp #应用tcp协议模块
$InputTCPServerRun 514 #设置TCP使用的端口
$AllowedSender tcp, 192.168.18.248 #设置允许的iP
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$template Remote,"/data/log/%fromhost-ip%/%fromhost-ip%_%$YEAR%-%$MONTH%-%$DAY%.log"
:fromhost-ip, !isequal, "127.0.0.1" ?Remote #过滤本机的日志
$IncludeConfig /etc/rsyslog.d/*.conf
*.info;mail.none;authpriv.none;cron.none /var/log/messages
authpriv.* /var/log/secure
mail.* -/var/log/maillog
cron.* /var/log/cron
*.emerg *
uucp,news.crit /var/log/spooler
local7.* /var/log/boot.log
配置文件
加载模块
Module (load="imuxsock")
$ModLoad imuxsock
#
日志记录格式
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat #默认格式
$template name , "路径" #定义一种模板
$template Remote,"/data/log/%fromhost-ip%/%fromhost-ip%_%$YEAR%-%$MONTH%-%$DAY%.log"
#
参考:
[RSYSLOG服务实时传输日志配置请添加链接描述](https://www.cnblogs.com/blueswu/p/3564763.html)
[syslog简介——系统日志写入API请添加链接描述](https://www.cnblogs.com/bonelee/p/6234647.html)
[Rsyslog的远程传输日志(系统日志篇)请添加链接描述](http://blog.csdn.net/love910809/article/details/70761526)
[官方参考手册请添加链接描述](http://www.rsyslog.com/guides-for-rsyslog/)
以上是关于学习rsyslog总结的主要内容,如果未能解决你的问题,请参考以下文章