设为首页 收藏本站
查看: 1888|回复: 0

[经验分享] rsyslog日志系统

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-5-14 08:20:34 | 显示全部楼层 |阅读模式
1 rsyslog日志系统
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这样一个统一的日志服务。内核也可记录日志。
1.2 配置文件
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
1
2
3
4
[root ~]# file /var/log/btmp
/var/log/btmp: DBase 3 index file
[root ~]# file /var/log/wtmp
/var/log/wtmp: data



这两个命令可以实现过滤功能
lastlog命令:显示当前系统每个用户各自最近一次的登录信息。
1.3 模块
配置文件中$ModLoad表示装载模块。
允许从udp/tcp 514端口收集日志信息:
$ModLoad imtcp
$InputTCPServerRun 514
$ModLoad imudp
$UDPServerRun 514
一般使用udp,查看rsyslog支持哪些模块:man rsyslog.conf
1.4 搞个日志服务器收集其他主机的日志信息
1、启用本机成为日志服务器
使用udp 协议514端口传输
1
2
3
[root ~]# vim /etc/rsyslog.conf
#$ModLoad imudp
#$UDPServerRun 514



2、把日志存储于mysql
a. mysql已经准备就绪,安装rsyslog-mysql
1
[root ~]# yum install rsyslog-mysql



查看生成的文件:
1
2
3
4
[root ~]# rpm -ql rsyslog-mysql
/lib64/rsyslog/ommysql.so # 就靠这个模块了
/usr/share/doc/rsyslog-mysql-5.8.10
/usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql # 创建rsyslog依赖的数据库所需的脚本。里面就是创建数据库和表的命令。



b. 创建rsyslog依赖的数据库
1
[root ~]# mysql < /usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql



进入数据库查看
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
[root ~]# mysql
MariaDB [(none)]> SHOW DATABASES; # 查看库
+--------------------+
| Database           |
+--------------------+
| information_schema |
| Syslog             |
| mysql              |
| performance_schema |
| test               |
+--------------------+
MariaDB [(none)]> use Syslog; # 此库就是脚本建立的了
MariaDB [Syslog]> SHOW tables; # 查看表
+------------------------+
| Tables_in_Syslog       |
+------------------------+
| SystemEvents           |
| SystemEventsProperties |
+------------------------+
MariaDB [Syslog]> DESC SystemEvents; # 表的结构
+--------------------+------------------+------+-----+---------+----------------+
| Field              | Type             | Null | Key | Default | Extra          |
+--------------------+------------------+------+-----+---------+----------------+
| ID                 | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| CustomerID         | bigint(20)       | YES  |     | NULL    |                |
| ReceivedAt         | datetime         | YES  |     | NULL    |                |
| DeviceReportedTime | datetime         | YES  |     | NULL    |                |
| Facility           | smallint(6)      | YES  |     | NULL    |                |
| Priority           | smallint(6)      | YES  |     | NULL    |                |
| FromHost           | varchar(60)      | YES  |     | NULL    |                |
| Message            | text             | YES  |     | NULL    |                |
| NTSeverity         | int(11)          | YES  |     | NULL    |                |
| Importance         | int(11)          | YES  |     | NULL    |                |
| EventSource        | varchar(60)      | YES  |     | NULL    |                |
| EventUser          | varchar(60)      | YES  |     | NULL    |                |
| EventCategory      | int(11)          | YES  |     | NULL    |                |
| EventID            | int(11)          | YES  |     | NULL    |                |
| EventBinaryData    | text             | YES  |     | NULL    |                |
| MaxAvailable       | int(11)          | YES  |     | NULL    |                |
| CurrUsage          | int(11)          | YES  |     | NULL    |                |
| MinUsage           | int(11)          | YES  |     | NULL    |                |
| MaxUsage           | int(11)          | YES  |     | NULL    |                |
| InfoUnitID         | int(11)          | YES  |     | NULL    |                |
| SysLogTag          | varchar(60)      | YES  |     | NULL    |                |
| EventLogType       | varchar(60)      | YES  |     | NULL    |                |
| GenericFileName    | varchar(60)      | YES  |     | NULL    |                |
| SystemID           | int(11)          | YES  |     | NULL    |                |
+--------------------+------------------+------+-----+---------+----------------+



3、配置rsyslog启用ommysql模块。在rsyslog配置文件的MODULES字段中定义。
1
2
3
[root ~]# vim /etc/rsyslog.conf
#### MODULES ####
$ModLoad ommysql



4、定义某facility把日志记录至指定的数据库的指定表中,RULES段中定义。
1
2
#### RULES ####
*.info;mail.none;authpriv.none;cron.none  :ommysql:127.0.0.1,Syslog,rsyslog,rsyslog



5、数据库中创建rsyslog用户并授权
1
2
3
MariaDB [(none)]> GRANT ALL ON Syslog.* TO 'rsyslog'@'127.0.0.1' IDENTIFIED BY 'rsyslog';
MariaDB [(none)]> GRANT ALL ON Syslog.* TO 'rsyslog'@'localhost' IDENTIFIED BY 'rsyslog';
MariaDB [(none)]> FLUSH PRIVILEGES;



6、重启服务
1
[root ~]# service rsyslog restart



7、测试
1
2
3
[root ~]# yum install -y zsh
[root ~]# tail -1 /var/log/messages
May  9 05:44:07 www rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="924" x-info="http://www.rsyslog.com"] exiting on signal 15. # 没有yum的日志信息



进入数据库查看,测试OK
1
2
MariaDB [Syslog]> use Syslog;
MariaDB [Syslog]> SELECT * FROM SystemEvents\G




1.5 使用loganalyzer(WebGUI)来展示日志信息
由于是web工具,所以依赖lamp。lamp已然就绪,并且php没有问题。config.php是该工具的主配置文件,如果第一次配置错误,将该文件内容清空即可。
1、解压程序包
1
2
[root ~]# tar xf loganalyzer-3.6.5.tar.gz -C /vhosts/a.com/htdocs/
[root ~]# cd /vhosts/a.com/htdocs/



2、搞定一些文件
1
2
3
[root htdocs]# mv loganalyzer-3.6.5/src/ log
[root htdocs]# cd log
[root log]# cp ../loganalyzer-3.6.5/contrib/* . # 两个脚本文件



3、执行脚本
1
2
3
4
5
[root log]# chmod +x configure.sh secure.sh
[root log]# ./configure.sh
[root log]# ./secure.sh
[root log]# chmod 666 config.php # 此文件就是该工具的主配置文件
[root log]# chown -R daemon.daemon ./* 将所有文件的属主属组改为httpd进程的属主



4、浏览器访问http://172.16.45.10/log/
wKiom1VTM8PQe3egAAEiYVqVdWU733.jpg
点击here之后,一路下一步
wKioL1VTNUPBjReIAAJfQf0p__I706.jpg
    就是这么个情况: wKiom1VTM9yh8E62AA2LrIRrTWw424.jpg


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-66718-1-1.html 上篇帖子: linux上安装eclipse并配置mapreduce程序开发环境 下篇帖子: linux下的多进程,多线程编程
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表