一、rsyslog
rsyslog 是一个快速处理收集系统日志的程序,提供了高性能、安全功能和模块化设计。rsyslog 是syslog 的升级版,它将多种来源输入输出转换结果到目的地,
- 历史事件: 时间,事件
- 事件级别(日志级别):事件的关键性程度;
- 事件:系统引导启动、应用程序启动、应用程序尤其是服务类应用程序运行过程中的一些事件;
系统日志服务:
syslog:
syslogd: system
klogd:kernel - 事件格式较为简单时,可统一由syslog进行记录:
- 事件产生的日期时间 主机 进程[pid] :事件内容
- 支持C/S架构:可通过UDP或TCP协议提供日志记录服务;
二、 rsyslogd特性:
1、多线程;
2、支持协议: UDP,TCP,SSL,TLS,RELP;
3、存储日志信息于MySQL、PGSQL、Oracle等数据管理系统;
4、强大的过滤器,实现过滤日志信息中任何部分的内容;
5、自定义输出格式;
三、rsyslog日志收集器重要术语:
1.facility:设施,从功能或程序上对日志收集进行分类;
auth---认证,
authpriv---认证授权,
cron---周期性计划,
daemon---守护进程,
kern---内核,
lpr---打印系统,
mail---邮件服务组件,
mark---防火墙标记,
news---新闻组,
security---安全相关,
user---用户产生的日志,
uucp---Unix拷贝,
local0-local7---自定义,
syslog---日志
2.priority:优先级,日志级别
debug----最低级别-调试,
info----消息,
notice----注意提醒,
warn(warning)----警告,
err(error)----错误,
crit(critical)----蓝色警报,
alert----橙色警报,
emerg(panic) ----红色警报
3.指定级别:
*:所有级别;
none:没有级别;
priority:此级别以高于此级别的所有级别;
=priorty:仅此级别;
……
4. 程序环境:
主程序:rsyslogd
主配置文件:/etc/rsyslog.conf,/etc/rsyslog.d/*.conf
服务脚本(centos6):/etc/rc.d/init.d/rsyslog
Unit File(CentOS 7):/usr/lib/systemd/system/rsyslog.service
配置文件格式rsyslog.conf
主要由三部分组成:
MODULES模式
GLOBAL DRICTIVES全局工作日志
RULES那个级别记录在那个文件里
RULES:
facilty.priority target
target:
文件:记录日志事件于指定的文件中;通常应该位于/var/log目录下;文件路径之前的"-"表示异步写入;
用户:将日志事件通知给指定的用户;是通过将信息发送给登录到系统上的用户的终端进行的;
日志服务器:@host,把日志送往指定的服务器主机;
image.png
host:即日志服务器地址,监听在tcp或udp协议的514端口以提供服务;
管道: | COMMAND
其它日志文件:
/var/log/wtmp:当前系统成功登录系统的日志;
需要使用last命令查看
/var/log/btmp:当前系统尝试登录系统失败相关的日志;
需要使用lastb命令查看
lastlog:显示当前系统上的所有用户最近一次登录系统的时间;
/var/log/dmesg:系统引导过程中的日志信息;
也可以使用dmesg命令进行查看;
四:mysql和rsyslog搭建loganalyzer
1、在数据库服务器上:
首先关闭selinux和防火墙。
[root@mariadb-107 ~]# yum -y install mariadb #安装数据库
[root@mariadb-107 ~]# vim /etc/my.cnf.d/server.cnf #配置数据库
[mysqld]
skip_name_resolve=ON #添加
innodb_file_per_table=ON
[root@mariadb-107 ~]# systemctl start mariadb #启动数据库
[root@mariadb-107 ~]# mysql
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 5.5.56-MariaDB MariaDB Server
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| Syslog | #生成日志数据库
| mysql |
| performance_schema |
| test |
| vsftpd |
+--------------------+
6 rows in set (0.01 sec)
MariaDB [(none)]> use Syslog
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
MariaDB [Syslog]> SHOW TABLES #查看库中的表
-> ;
+------------------------+
| Tables_in_Syslog |
+------------------------+
| SystemEvents |
| SystemEventsProperties |
+------------------------+
2 rows in set (0.00 sec)
MariaDB [Syslog]> GRANT ALL ON Syslog.* TO 'rsyslog'@'172.16.15.%' IDENTIFIED BY 'rsyspass'; #授权syslog数据库用户
Query OK, 0 rows affected (0.00 sec)
MariaDB [Syslog]> FLUSH PRIVILEGES; #刷新
Query OK, 0 rows affected (0.00 sec)
MariaDB [Syslog]> EXIT#退出
Bye
2、在客户端上安装rsyslog数据库模块:
首先关闭selinux和防火墙。
[root@client-90 ~]# yum -y install rsylog rsyslog-mysql #安装rsyslog数据库模块
[root@client-90 ~]# rpm -ql rsyslog-mysql #查询
/usr/lib64/rsyslog/ommysql.so #已安装模块
/usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql #控制脚本
[root@client-90 ~]# mysql -h172.16.15.107 -ursyslog -prsyspass < /usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql #登录数据库倒入执行脚本生成日志数据库
[root@client-90 ~]# vim /etc/rsyslog.conf
#### MODULES ####
# Provides UDP syslog reception
$ModLoad imudp #开启udp
$UDPServerRun 514
# Provides TCP syslog reception
$ModLoad imtcp #开启tcp
$InputTCPServerRun 514
$ModLoad ommysql #添加
#### RULES ####
*.info:ommysql:172.16.15.107,Syslog,rsyslog,rsyspass #设置远端syslog数据库用户名和密码
[root@client-90 ~]# systemctl restart rsyslog
[root@client-90 ~]# yum install wget #安装一个wget程序测试用
3、回到数据服务器查看日志记录:
MariaDB [Syslog]> SELECT * FROM SystemEvents \G;
*************************** 400. row ***************************
ID: 400
CustomerID: NULL
ReceivedAt: 2018-07-04 02:28:08
DeviceReportedTime: 2018-07-04 02:28:08
Facility: 1
Priority: 6
FromHost: client-90
Message: Installed: wget-1.14-15.el7_4.1.x86_64 #客户端安装wget时候产生的日志
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[17658]:
EventLogType: NULL
GenericFileName: NULL
SystemID: NULL
400 rows in set (0.00 sec)
4、安装loganalyzer
[root@client-90 ~]# wget http://download.adiscon.com/loganalyzer/loganalyzer-4.1.6.tar.gz#下载loganalyzer
[root@client-90 ~]# tar xf loganalyzer-4.1.6.tar.gz #解压缩到当前目录
[root@client-90 ~]# yum install -y httpd php php-mysql php-gd #安装http、php、php-mysql、php-gd服务
[root@client-90 ~]# mkdir /var/www/html/syslog #创建syslog目录
[root@client-90 ~]# cp -r loganalyzer-4.1.6/src/* /var/www/html/syslog #拷贝loganalzer到syslog目录
[root@client-90 ~]# cp -r loganalyzer-4.1.6/contrib/*.sh /var/www/html/syslog/ #拷贝loganalzer到syslog目录
[root@client-90 ~]# cd /var/www/html/syslog/#切换到syslog目录
[root@client-90 syslog]# chmod +x *.sh #设置脚本的执行权限
[root@client-90 syslog]# ./configure.sh #执行
[root@client-90 syslog]# chmod 666 config.php#修改config.php文件权限
[root@client-90 syslog]# systemctl start httpd #启动http
- 浏览器打开:
开始安装.png
验证文件权限.png
基本设置.png
设置数据库.png
设置完成.png
网友评论