rsyslog日志服务介绍以及日志收集

rsyslog日志服务介绍以及日志收集 一、Rsyslog服务介绍 1.1 rsyslog简介 rsyslog,是Centos系统自带的很强大的一块系统日志工具。 /var/log/messages这个日志大家并不陌生,是我们出现问题经常去查看的一个日志记录文件,这个日志里面信息的填写是由rsyslog服务维护的。 以前旧版本Centos 5系列的时候,此服务叫做syslog,从Centos 6版本开始,更名为rsyslog服务。以前是两个进程,rsyslogd(系统日志包括用户空间的各应用程序相关的日志)进程,klogd(内核日志包括kernel相关的日志)进程但是此进程由rsyslogd代为管理。所以只看到了rsyslogd一个进程。 以前旧版本syslog不能进行并行数据存储、效率低,不能实现放在专用数据管理文件中,升级到rsyslog之后有了下面的优点: (1). 多线程的服务,并发性能好。 (2). 可以使用udp、tcp、ssl、tls、relp等协议完成信息收集,可以集中存储在远程日志服务器中,早期的syslog仅支持简单的文本传输模式实现日志发送,不安全。 (3). 支持将日志放到mysql,pgsql,oracle等多种数据库中,这种行级锁的存储形式,不仅可以让多主机的信息写入更快,而且可以为web的界面展示提供很好的支持。 (4). 强大的过滤器,自定义过滤器,可实现过滤系统信息中的任意部分。 (5). 支持完整的自定义格式的输出格式配置。 1.2 rsyslog日志格式 完整的rsyslog日志中包含产生日志的程序模块(Facility)、严重性(Severity或Level)、时间、主机名或IP、进程名、进程ID和正文。 按照RFC 3164格式的话,rsyslog包分为3个部分,RPI,HEADER以及MSG总长度不能超过1024个字节: PRI(代表了facility以及severity)此字段只存在于rsyslog报文包头部分在log中并不常见。 HEADER部分包含一个时间戳以及发送方的主机名或ip地址,并且HEADER部分必须是一些可打印字符,时间戳部分是格式为“Mmm dd hh:mm:ss”的本地时间,其中Mmm是3个字母的英文缩写,如果日期小于10,必须空格代替缺少的一个数字,主机部分一般使用主机名,如果没有的话可以使用IPv4或者IPv6的地址。需要注意的是主机名中不能包含任何空格,时间戳和主机名后面都各自跟一个空格。 MSG部分一般包含生成消息的进程信息(TAG field)以及消息正文(CONTENT field)。TAG部分主要是包含生成消息的进程信息,不能超过32个字符。消息体必须是一些可见字符,这部分就是消息正文。TAG与CONTENT之间的间隔用非字母表字母隔开,一般用[或者:或者空格隔开。 1.3  Facility 包含 Facility(产生日志的设施,从功能和程序上对日志收集进行分类)在rsyslog中指定了产生日志消息的子系统,可选值为: auth : 身份认证 aupriv : 授权 cron : 计划任务 daemon:守护进程 kern : 内核 lpr Read more…