0%
简介
syslog协议属于一种主从式协议,通常被用于信息系统管理及信息安全审核。虽然它有不少缺陷,但仍获得相当多的设备及各种平台的接收端支持。因此syslog能被用来将来自许多不同类型系统的日志记录集成到集中的存储库中。
协议内容
syslog格式为一个长字符串,整个数据报分为三个部分:PRI、HEADER、MSG
PRI: 只能为3、4、5个字符,并且以小于符号开始,以大于符号结束,中间为一个1到3位的数字
HEADER: 由TimeStamp与HostName组成。HEADER部分紧跟PRI,中间没有空格。TimeStamp与HostName之间间隔一个空格。HostName后面紧跟一个空格。
TimeStamp: 字段使用local time,格式为:Mmm dd hh:mm:ss
Mmm: 是英语月份的单词缩写,例如:Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec
dd: 某个月的多少号,固定宽度2个字符,不足两个字符在数字前面用空格填充。
hh:mm:ss: 本地时间
hh: 24时制的小时,在00-23之间
mm和ss: 分和秒,在00-59之间
HostName: 该字段为主机的hostname。该字段后面紧跟一个空格
MSG: 该字段又两部分组成: TAG和CONTENT
TAG: 该字段的值为产生日志的程序名,即推送日志到外部系统的程序名(不超过32个字符)。TAG后面紧跟一个用中括号包含着的pid,即[pid],并且再追加一个:,pid为该推送程序的进程号
CONTENT: 该字段为具体的日志内容
- 综上,整个数据报为:
1
| <xxx>Mmm dd hh:mm:ss hostname tag[pid]: xxxxxxxxx
|
rsyslog服务器配置
安装syslog服务
1
| sudo yum install rsyslog -y
|
修改配置文件
1 2 3 4 5 6 7 8 9
| $ModLoad imudp $UDPServerRun 514
$ModLoad imtcp $InputTCPServerRun 514
$template RemoteLogs,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log" * *.* ?RemoteLogs & ~
|
启动rsyslog服务生效
1
| systemctl restart rsyslog
|
参考文献