rsyslog: 日志:历史事件的相当记录 记录的内容:事件发生的时间、事件内容 日志级别:事件的关键性程序,loglevel
Linux:应用程序,内核 syslogd 为系统记录日志的程序 klogd 为内核记录日志的程序
程序包:syslog (centos5之前的版本)--> rsyslog
rsyslog: 多线程; 基于此些UDP,TCP, SSL, TLS, RELP协议来进行远程记录。 日志可以记录在MySQL,PGSQL, Oracle等多种关系数据库中 强大的过滤器,可实现过滤系统信息中的任意部分 自定义输出格式 适用于企业级别日志记录需求
还有一种日志工具为:elk:elasticsearch, logstash, kibana
日志生成方:应用程序和内核 每个应用程序都可自行记录日志 内核也可记录日志
核心概念: facility: 设施,从功能或程序上对日志进行分类,并由专门的工具负责记录相应的日志信息; 由下列相应的工具来记录相应的信息: auth authpriv cron daemon kern lpr mail mark news security syslog user uucp local0- local7 priority:级别 debug info notice warn,warning err,error crit alert emerg,panic
指定级别的方式: *: 所有级别 none: 没有级别 priority: 比此级别高的(包含)所有级别的日志信息都会记录 =priority: 仅记录指定级别
rsyslog的配置文件:/etc/rsyslog.conf RULES: facility.priority target 设施.级别 何处
target: 文件路径:将日志记录于指定的文件中;在文件路径之前使用"-",表示异步写入; 用户:将日志信息通知给文件 *: 所有用户 日志服务器:@SERVER 管道:| COMMAND
文件记录日志文件的格式: 事件产生的时间 主机 进程(PID): 事件
有些日志记录二进制格式,例如,两个日志文件: 成功登录系统的日志:/var/log/wtmp 查看命令:last 失败的登录的尝试:/var/log/btmp 查看命令:lastb
lastlog命令:显示当前系统每个用户各自最近一次的登录信息;
模块: 启用本机成为日志服务器: $ModLoadimudp $UDPServerRun514 udp模块启用后可以用ss -unl查看是否监听在514端口上
$ModLoadimtcp $InputTCPServerRun514 tcp模块启用后可以使用ss -tan查看是否监听在514端口上 更配置文件后,servicersyslog restart
rsyslog支持把日志存储于mysql中: (1) 有可用的MySQL服务器; yum install mysql-server -y service mysqld start
(2) 安装rsyslog-mysql程序包; yuminstall rsyslog-mysql -y
(3) 创建rsyslog依赖的数据库; #mysql < /usr/share/doc/rsyslog-mysql-VERSION/createDB.sql 在mysql中可以查到相关的Syslog以及相关的表;
(4) 配置rsyslog启用ommysql模块,在/etc/rsyslog.conf配置文件内添加; ####MODULES #### $ModLoadommysql (5) 定义某facility把日志记录至指定的数据库的指定表中; ####RULES #### facility.priority :ommysql:SERVER_IP,DATABASE,USERNAME,PASSWORD 例: *.info;mail.none;authpriv.none;cron.none :ommysql:127.0.0.1,Syslog,rsyslog,rsyslog 在数据库中创建用户: mysql>GRANT ALL ON Syslog.* TO 'rsyslog'@'127.0.0.1' IDENTIFIED BY 'rsyslog'; mysql>GRANT ALL ON Syslog.* TO 'rsyslog'@'localhost' IDENTIFIED BY 'rsyslog'; mysql>FLUSH PRIVILEGES; mysql>select * from SystemEvents\G
(6) 可选:使用loganalyzer(WebGUI)来展示日志信息; 第一步:下载依赖的lamp组件; #yum install httpd php php-mysql php-gd 第二步:看是否php能够正常执行 servicehttpd start 在/var/www/html下创建index.php测试页面 <?php phpinfo; ?> service httpd reload 在浏览器下输入IP查看测试页面
下载loganalyzer,并展开;这里以loganalyzer-3.6.5为例 #cp -r loganalyzer-3.6.5/src /var/www/html/loganalyzer #cp loganalyzer-3.6.5/contrib/* /var/www/html/loganalyzer #cd /var/www/html/loganalyzer #chmod +x configure.sh secure.sh #./configure.sh #./secure.sh #chmod 666 config.php
访问:http://SERVER_IP/loganalyzer/install.php 如下界面需要配置后才能显示:
|