rsyslog:日志收集和存储系统;
日志:历史事件记录;
syslog:
klogd:kernel
syslogd:service(application)
事件记录格式:
日期时间 主机进程[pid]:事件内容
C/S架构:服务,可监听于某套接字,帮其它主机记录日志信息;
S:udp, tcp协议;
rsyslog特性:
- 多线程;
- UDP,TCP,SSL/TLS,RELP;
- 存储日志信息于MySQL、PGSQL、Oracle等RDBMS;
- 强大的过滤器,实现过滤日志信息中任何部分的内容;
- 自定义的输出格式;
rsyslog中的术语:
facility:设施、信道;
auth, authpriv, cron, daemon, kern, lpr, mail, mark, news, security, user, uucp, syslog, local0-local7
priority:
debug, info, notice, warn(warning), err(error), crit(critical), alert, emerg(panic)
程序包:rsyslog
程序环境:
- 配置文件:/etc/rsyslog.conf, /etc/rsyslog.d/
- 主程序:/usr/sbin/rsyslogd
- 模块路径:/usr/lib64/rsyslog/
- Unit File:/usr/lib/systemd/system/rsyslog.service
配置文件:
有三部分组成:严格按照配置段位置添加配置
#### MODULES ####
#### GLOBAL DIRECTIVES ####
#### RULES ####
RULES:
facility.prioritytarget
facility:
*:所有的facility;
f1,f2,f3,...:列表中给定的所有facility;
auth,authpriv,security.info
f1.p1;f2,p2;f3.p3;...:列表中给定的所有facility;
auth.info;authpriv.notic;security,warn;
priority:
*:所有级别
none:没有级别,不记录日志;
PRIORITY:此级别(含)及其以上的所有级别;
=PRIORITY:仅指定的级别;
target:
文件:将日志信息记录到指定的文件中;文件路径之前的“-”表示异步写入之意;
用户:将日志事件通知给指定的用户;一般指登录到当前系统上的所有用户的终端;
日志服务器:@rsyslog_server,把日志信息发往指定的日志服务器;
管道:|COMMAND
命令行客户端程序:
logger - a shell command interface to the syslog(3) system log module
logger [options] [message]
配置rsyslog服务器:
#### modules ####
…………
# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514
# Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514
其它几个日志文件:
last, lastb - show listing of last logged in users
-num, -n num
/var/log/btmp:登录当前系统的所有的失败的尝试;
/var/log/wtmp:所有成功登录至当前系统的相关信息;
lastlog - reports the most recent login of all users or of a given user
/var/log/dmesg:系统引导过程中的日志信息;
文本查看工具;
也可以使用dmesg命令;
rsyslog记录日志于mysql:
前提:准备好msql server或mariadb server;
(1) 安装rsyslog连接至mysql server的驱动模块;
yum install rsyslog-mysql
(2) 在mysql server准备rsyslog专用的用户账号;
GRANT ALL ON Syslog.* TO 'rsyslog'@'127.0.0.1' IDENTIFIED BY 'rsyslogpass';
GRANT ALL ON Syslog.* TO 'rsyslog'@'local' IDENTIFIED BY 'rsyslogpass';
(3) 生成所需要的数据库和表;
mysql -ursyslog -h127.0.0.1 -prsyslogpass < /usr/share/doc/rsyslog-7.4.7/mysql-createDB.sql
(4) 配置rsyslog使用ommysql模块
#### MODULES ####
......
$ModLoad ommysql
(5) 配置RULES,将所期望的日志信息记录于mysql中;
facility.priority :ommysql:DBHOST,DB,DBUSER,DBUSERPASS
(6) 重启rsyslog服务;
(7) loganalyzer
WebGUI, 运行amp环境中;
(a) 准备amp环境
yum install httpd php php-mysql php-gd
systemctl start httpd.service
(b) 安装loganalyzer
tar xf loganalyzer-VERSION.tar.gz
cd loganalyzer-VERSION
cp -a src /var/www/html/loganalyzer-VERSION
cd /var/www/html
ln -sv loganalyzer-VERSION log
cd log
touch config.php
chmod 666 config.php
打开浏览器,配置;
MySQL Native, Syslog Field
Table Type:"Monitorware“
chmod 644 config.php
配置rsyslog+mysql+loganalyzer
先配置在同一台主机上
1,安装程序包
yum install httpd php php-mysql rsyslog-mysql mariadb-server php-gd -y
2,启动MariaDB数据库
3,配置rsyslog服务和mariadb数据库的连接
编辑rsyslog配置文件
vim /etc/rsyslog.conf
在浏览器访问