1 rsyslog日志系统
1.1 rsyslog的优势
1.2 配置文件
1.3 模块
1.4 搞个日志服务器收集其他主机的日志信息
1.5 使用loganalyzer(WebGUI)来展示日志信息
就是这么个情况:
linux上,应用程序和内核都需要记录日志。负责记录应用程序的是syslogd,记录内核的则是klogd。centos 5上使用的是syslog,但由于其功能过于薄弱和单一,在centos 6和7上被rsyslog所取代。事实上rsyslog是一个服务。
日志:历史事件的相关记录。早期时就有航海日志。
记录的内容:事件发生的时间、事件内容。
日志级别:事件的关键性程序,loglevel。
1.1 rsyslog的优势
1、支持多线程。
2、能够基于UDP, TCP, SSL, TLS, RELP等协议进行远程日志传输,并且还可以机密。
3、日志可以保存至MySQL, PGSQL, Oracle等多种关系数据库中。
4、支持非常强大的过滤器,可实现过滤系统信息中的任意部分。
5、自定义输出格式。
6、适用于企业级别日志记录需求。
但中等规模站点的日志信息放在数据库中已经不合适了,可能会放在Nosql,分布式系统。比如轻量的日志平台elk:elasticsearch, logstash, kibana。
日志生成方:应用程序和内核。而且每个应用程序都可自行记录日志。这样就会造成每个应用程序之间记录日志的格式并不相同,分析起来很不方便。因此,才诞生了syslog这样一个统一的日志服务。内核也可记录日志。
rsyslog的配置文件:/etc/rsyslog.conf
定义在RULLS中的格式:
facility.priority target
设施.级别 何处
facility:设施,从功能或程序上对日志进行分类,并由专门的工具负责记录相应的日志信息。
auth:认证相关的
authpriv:权限,授权相关的
cron:任务计划相关的
daemon:守护进程相关的
kern:内核相关的
lpr:打印相关的
mail:邮件相关的
mark:标记相关的
news:新闻相关的
security:安全相关的,与auth相似
syslog:syslog自己的
user:用户相关的
uucp:unix to unix copy相关的
local0 - local7:用户自定义使用
priority:级别
debug:程序或系统的调试信息,最详细的记录。
info:一般信息
notice:不影响正常功能,需要注意的消息
warn, warning:可能影响系统功能,需要提醒用户的重要事件
err, error:错误信息
crit:比较严重的
alert:必须马上处理的
emerg, panic:会导致系统不可用的
指定级别的方式:
*:所有级别
none:没有级别
priority:比此级别高的(包含)所有级别的日志信息都会记录
=priority:仅记录指定级别
target:
文件路径:将日志记录于指定的文件中。在文件路径之前使用"-",表示异步写入。
用户:将日志信息通知给文件
*:所有用户
日志服务器:@SERVER
管道:| COMMAND
文本记录日志文件的格式:
事件产生的时间 主机 进程(PID): 事件
[root ~]# tail /var/log/messages
May 8 19:40:27 www kernel: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
May 8 19:56:44 www kernel: e1000: eth1 NIC Link is Down
May 9 00:00:30 www xinetd[1060]: START: telnet pid=2528 from=::ffff:172.16.250.130
特殊日志文件:
有些日志记录二进制格式,例如,两个日志文件:
成功登录系统的日志:/var/log/wtmp,查看命令:last
失败的登录的尝试:/var/log/btmp,查看命令:lastb
这两个命令可以实现过滤功能
lastlog命令:显示当前系统每个用户各自最近一次的登录信息。
配置文件中$ModLoad表示装载模块。
允许从udp/tcp 514端口收集日志信息:
$ModLoad imtcp
$InputTCPServerRun 514
$ModLoad imudp
$UDPServerRun 514
一般使用udp,查看rsyslog支持哪些模块:man rsyslog.conf
1、启用本机成为日志服务器
使用udp 协议514端口传输
2、把日志存储于mysql
a. mysql已经准备就绪,安装rsyslog-mysql
查看生成的文件:
b. 创建rsyslog依赖的数据库
进入数据库查看
3、配置rsyslog启用ommysql模块。在rsyslog配置文件的MODULES字段中定义。
4、定义某facility把日志记录至指定的数据库的指定表中,RULES段中定义。
5、数据库中创建rsyslog用户并授权
6、重启服务
7、测试
进入数据库查看,测试OK
由于是web工具,所以依赖lamp。lamp已然就绪,并且php没有问题。config.php是该工具的主配置文件,如果第一次配置错误,将该文件内容清空即可。
1、解压程序包
2、搞定一些文件
3、执行脚本
4、浏览器访问
http://172.16.45.10/log/
![](http://www.iyunv.com/data/attachment/forum/201505/14/082034fl6a69mlscs09llm.jpg)
点击here之后,一路下一步
![](http://www.iyunv.com/data/attachment/forum/201505/14/082035ki49qql0uw0fw6iq.jpg)
![](http://www.iyunv.com/data/attachment/forum/201505/14/082036wiaibnpjeuzkn33j.jpg)