[TOC]
日志:历史事件;
历史事件:时间、地点、事件;
syslog:
klogd:kernel
syslogd:system(application)
事件记录格式:
日期时间 主机 进程[pid]: 事件内容;
C/S架构:通过TCP或UDP协议的服务完成日志记录传送;
rsyslog:
rsyslog的特性:
多线程;
UDP/TCP/SSL/TLS/RELP;
存储日志信息于MySQL, PGSQL, Oracle等RDBMS;
强大的过滤器,实现过滤日志信息中的任何部分的内容;
自定义的输出格式;
……
ELK:
E: elasticsearch, L: logstash, K: kibana
rsyslog日志收集器的基本术语:
facility:设施,收束日志数据流为有限几个;
auth, authpriv, cron, daemon, kern, lpr, mail, mark, news, security, user, uucp, syslog, local0-local7
proirity:优先级
debug, info, notice, warn(warning), err(error), crit(critical), alert, emerg(panic)
程序包:rsyslog
程序环境:
配置文件:/etc/rsyslog.conf,/etc/rsyslog.d/*.conf
主程序:/usr/sbin/rsyslogd
CentOS 6:service rsyslogs {start|stop|restart|status}
CentOS 7:/usr/lib/systemd/system/rsyslog.service
配置文件格式:
由三部分组成:
MODULES:模块配置
GLOBAL DIRECTIVES:全局配置
RULES:日志记录相关的配置
RULES:
配置格式:
facility.priority target
facility:
*: 所有的facility;
f1,f2,f3,...:指定的facility列表;
priority:
*: 所有级别;
none:没有级别;
PRIORITY:指定级别(含)以上的所有级别;
=PRIORITY:仅记录指定级别的日志信息;
target:
文件:将日志信息记录到指定的文件中;文件路径前的-表示异步写入;
用户:将日志事件通知给指定的用户;
日志服务器:@host,把日志通过网络送往指定的服务器记录,而非由本地记录;
管道: | COMMAND
配置rsyslog成为日志服务器:
#### MODULES ####
# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514
# Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514
其它的日志文件:
/var/log/secure:系统安装日志,应该周期性分析;
/var/log/btmp:当前系统上,用户的失败尝试登录相关的日志信息,lastb命令进行查看;
/var/log/wtmp:当前系统上,用户正常 登录系统的相关日志信息,last命令可以查看;
lastlog命令:用于查看当前系统上每一个用户最近一次的登录信息;
/var/log/messages:系统日志信息;
/var/log/dmesg:系统引导过程中的日志信息;
文本查看工具查看;
也可以使用专用命令dmesg查看;
rsyslog将日志记录于MySQL中:
(1) 准备MySQL Server;
(2) 在mysql server上授权rsyslog能连接至当前服务器;
mysql> GRANT ALL ON Syslog.* TO 'USER'@'HOST' IDENTIFIED BY 'PASSWORD';
(3) 在rsyslog主机上安装mysql模块相关的程序包;
yum install rsyslog-mysql
(4) 为rsyslog创建数据库及表;
mysql -uUSERNAME -hHOST -pPASSWORD < /usr/share/doc/rsyslog-7.4.7/mysql-createDB.sql
(5) 配置rsyslog将日志保存到mysql中;
#### MODULES ####
$ModLoad ommysql
#### RULES ####
facility.priority :ommysql:DBHOST,DBNAME,DBUSER,DBUSERPASSWORD
(6) 重启rsyslog服务;
通过loganalyzer展示数据库中的日志:
(1) 准备amp或nmp组合;
# yum install httpd php php-mysql php-gd
(2) 安装LogAnalyzer:
# tar xf loganalyzer-3.6.5.tar.gz
# cp -a loganalyzer-3.6.5/src /var/www/html/loganalyzer
# cd /var/www/html/loganalyzer
# touch config.php
# chmod 666 config.php
(3) 配置loganalyzer:
systemctl start httpd.service
http://HOST/loganalyzer
MySQL Native, Syslog Fields, Monitorware
(4) 安全加强
# cd /var/www/html/loganalyzer
# chmod 644 config.php