rsyslog多线程远程日志记录介绍(lamp+rsyslog)

 

rsyslog:

 

rsyslog: 多线程; 支持UDP, TCP, SSL, TLS, RELP远程日志记录 rsyslog支持将日志记录在MySQL, PGSQL, Oracle等多种关系数据库中 rsyslog支持强大的过滤器,可实现过滤系统信息中的任意部分 自定义输出格式 适用于企业级别日志记录需求

 

对于日志产生速率非常快的,保存在数据库中是不明智的,可能会使用nosql,分布式 elk组件: elasticsearch, logstash日志收集工具, kibana图形展示工具 elk:轻量,易用,展示,分析平台 elk:为独立的,大量的日志生成而工作

日志生成方:应用程序和内核 每个应用程序都可自行记录日志 内核也可记录日志

 

rsyslog核心概念: facility: 设施,从功能或程序上对日志进行分类,并由专门的工具负责记录相应的日志信息; auth;认证 authpriv:认证权限 cron:定期任务计划 daemon:守护 kern:内核 lpr:打印系统 mail:邮件 mark:防火墙 news:新的 security:安全 syslog:自己的日志 user:用户 uucp:uinxcp,uinx2 local0 - local7:自定义

 

priority:级别 debug:调试 info:除debug之外 notice:请关注 warn, warning:警告级别 err, error:发生错误 crit:蓝色警报 alert:红色警报 emerg, panic:橙色,红色

指定级别的方式: *: 所有级别 none: 没有级别 priority: 比此级别高的(包含)所有级别的日志信息都会记录 =priority: 仅记录指定级别

文件记录日志文件的格式: 事件产生的时间          主机                  进程(PID):                      事件

有些日志记录二进制格式,例如,两个日志文件: 成功登录系统的日志:/var/log/wtmp 查看命令:last 失败的登录的尝试:/var/log/btmp 查看命令:lastb

lastlog命令:显示当前系统每个用户各自最近一次的登录信息

 

 

rsyslog的配置文件:/etc/rsyslog.conf

一,模块: 启用本机成为日志服务器: vim  /etc/rsyslog.conf UDP $ModLoad imudp $UDPServerRun 514       收集日志信息 开启UDP模块后便可以使用ss -unlp查看514端口是否开启了

TCP $ModLoad imtcp $InputTCPServerRun 514

 

二,rsyslog支持把日志存储于mysql中: (1) 有可用的MySQL服务器; 简单安装:yum -y install mysql-server (2) 安装rsyslog-mysql程序包; yum -y install rsyslog-mysql (3) 创建rsyslog依赖的数据库; 1. mysql -u root -p < /usr/share/doc/rsyslog-mysql-VERSION/createDB.sql (rpm -ql rsyslog-mysql可以查看sql文件位置)

(4)进入mysql查看Syslog是否已经导入

#mysql -u root -p

password: MariaDB [(none)]> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | Syslog | | blog MariaDB [(none)]> use Syslog Database changed MariaDB [Syslog]> show tables; +------------------------+ | Tables_in_Syslog | +------------------------+ | SystemEvents | | SystemEventsProperties | +------------------------+ 2 rows in set (0.00 sec)

MariaDB [Syslog]> desc SystemEventsProperties; +---------------+------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +---------------+------------------+------+-----+---------+----------------+ | ID | int(10) unsigned | NO | PRI | NULL | auto_increment | | SystemEventID | int(11) | YES | | NULL | | | ParamName | varchar(255) | YES | | NULL | | | ParamValue | text | YES | | NULL | | +---------------+------------------+------+-----+---------+----------------+ 4 rows in set (0.05 sec) (5) 配置rsyslog启用ommysql模块; vim /etc/rysylog.conf #### MODULES #### $ModLoad ommysql (6) 定义某facility把日志记录至指定的数据库的指定表中; vim /etc/rysylog.conf #### RULES #### facility.priority :ommysql:SERVER_IP,DATABASE,USERNAME,PASSWORD *.info;mail.none;authpriv.none;cron.none :ommysql:127.0.0.1,Syslog表,rsyslog用户,password密码

当我们保存后,/var/log/messages中的日志将会收集在mysql的Syslog中 创建用户 [root@www ~]# mysql -u root -p MariaDB [(none)]> GRANT ALL ON Syslog.* TO 'rsyslog'@'127.0.0.1' IDENTIFIED BY 'password'; Query OK, 0 rows affected (0.06 sec)

MariaDB [(none)]> GRANT ALL ON Syslog.* TO 'rsyslog'@'localhost' IDENTIFIED BY 'password'; Query OK, 0 rows affected (0.02 sec)

MariaDB [(none)]> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.01 sec)

测试: 安装yum -y install zsh,而后进入数据库查看是否有安装日志! MariaDB [(none)]> use Syslog Database changed MariaDB [Syslog]> SELECT * FROM SystemEvents; +----+------------+---------------------+---------------------+----------+----------+----------+--------------------------------------------------------------------------------------------+------------+------------+-------------+-----------+---------------+---------+-----------------------+-----------+----------+----------+------------+------------+--------------+-----------------+----------+ | ID | CustomerID | ReceivedAt | DeviceReportedTime | Facility | Priority | FromHost | Message | NTSeverity | Importance | EventSource | EventUser | EventCategory | EventID | EventBinaryDAvailable | CurrUsage | MinUsage | MaxUsage | InfoUnitID | SysLogTag | EventLogType | GenericFileName | SystemID | +----+------------+---------------------+---------------------+----------+----------+----------+--------------------------------------------------------------------------------------------+------------+------------+-------------+-----------+---------------+---------+-----------------------+-----------+----------+----------+------------+------------+--------------+-----------------+----------+ | 1 | NULL | 2015-05-16 03:52:07 | 2015-05-16 03:52:07 | 0 | 6 | www | imklog 5.8.10, log source = /proc/kmsg star | NULL | NULL | NULL | NULL | NULL | NULL | NULL NULL | NULL | NULL | NULL | 1 | kernel: | NULL | NULL | NULL | | 2 | NULL | 2015-05-16 03:52:07 | 2015-05-16 03:52:07 | 5 | 6 | www | [origin software="rsyslogd" swVersion="5.8d="5972" x-info="http://www.rsyslog.com"] start | NULL | NULL | NULL | NULL | NULL | NULL | NULL NULL | NULL | NULL | NULL | 1 | rsyslogd: | NULL | NULL | NULL | | 3 | NULL | 2015-05-16 03:54:01 | 2015-05-16 03:54:01 | 1 | 6 | www | Installed: zsh-4.3.10-7.el6.x86_64 | NULL | NULL | NULL | NULL | NULL | NULL

也可以这样查看: MariaDB [Syslog]> SELECT * FROM SystemEventsG DeviceReportedTime: 2015-05-16 03:54:01 Facility: 1 Priority: 6 FromHost: www Message: Installed: zsh-4.3.10-7.el6.x86_64 NTSeverity: NULL Importance: NULL EventSource: NULL EventUser: NULL EventCategory: NULL EventID: NULL EventBinaryData: NULL MaxAvailable: NULL CurrUsage: NULL MinUsage: NULL MaxUsage: NULL InfoUnitID: 1 SysLogTag: yum[5989]: EventLogType: NULL GenericFileName: NULL SystemID: NULL 3 rows in set (0.00 sec)

(7) 可选:使用loganalyzer (WebGUI)来展示日志信息; 依赖:lamp组件; 1. yum install httpd php php-mysql php-gd -y 测试下php vim /var/www/html/index.php 下载loganalyzer,并展开至/var/www/html;这里以loganalyzer-3.6.5为例 loganalyzer是一个Php程序 [root@www ~]# tar -xf loganalyzer-3.6.5.tar.gz -C /var/www/html/ [root@www ~]#cd  /var/www/html/

[root@www ~]#cp -r loganalyzer-3.6.5/src /var/www/html/loganalyzer [root@www ~]# cp loganalyzer-3.6.5/contrib/* /var/www/html/loganalyzer [root@www ~]# cd  /var/www/html/loganalyzer [root@www loganalyzer ]# chmod +x configure.sh secure.sh [root@www loganalyzer]# ./configure.sh [root@www loganalyzer]# ./secure.sh [root@www loganalyzer]# chmod 666 config.php [root@wwwloganalyzer ]# chown -R apache.apache ./* 访问:http://SERVER_IP/loganalyzer/install.php

而后下一步,一直到step7 的时候选择mysql ,在下拉菜单中填写信息即可

rsyslog

 

 

 

 

 

 

 

 

 

2015-05-17_161626rsyslog

 

运行到这里如果出错! 1,将config.php内容删除(:1,$d ),保留config.php文件 2,再次执行 1. chmod 666 config.php 1. chown -R apache.apache ./* 3,重新安装 扩展主机node1! 打开vim /etc/rsyslog.conf *.info;mail.none;authpriv.none;cron.none @172.16.249.117 yum install httpd -y 刷新浏览器!

2015-05-17_163907rsyslog2