Loading... <p>一、前言</p> <p> 什么是日志?</p> <p> 日志就是历史事件,按时间序列将发生的事件予以记录;日志记录信息记录的是事件的发生时间以及事件内容</p> <p> Linux下记录日志的系统:</p> <p> syslog:是CentOS 5.0系统上使用的日志系统,有两类日志,分别是syslogd、klogd;</p> <p> syslogd:记录系统进程相关的日志</p> <p> klogd:记录内核相关的日志</p> <p> </p> <p> rsyslog:是CentOS 6.0系统使用的日志系统,与syslog日志系统相比,具有以下优点:</p> <p> ①支持多线程</p> <p> ②支持TCP、SSL、TLS、RELP等协议</p> <p> ③强大的过滤器,可实现过滤日志信息中的任意部分</p> <p> ④支持自定义输出格式</p> <p> ⑤适用于企业级别日志记录需求</p> <p> ⑥模块化</p> <p></p> <p>二、rsyslog日志系统配置</p> <p>1、配置文件,以及配置文件的定义格式</p> <pre class="brush:bash;toolbar:false">/etc/rsyslog.conf \\配置文件</pre> <pre class="brush:bash;toolbar:false">日志定义格式: facility.priority Target facility: 设施,从功能或程序上对日志进行分类,并由专门的工具负责记录日志; 常用的facility: lpr: 打印相关的日志 auth:认证相关的日志 user:用户相关的日志 cron:计划任务相关的日志 kern:内核相关的日志 mail:邮件相关的日志 mark:标记相关的日志 news:新闻相关的日志 uucp:文件copy相关的日志 daemon:系统服务相关的日志 authpri: 授权相关的日志 security:安全相关的日志 local0-local7:自定义相关的日志信息(自定义时可以使用通配符) 通配符: *:所有 f1,f2,f3......:列表 !:取反 priority:日志级别 常用的日志级别: debug: 调试 info: 消息 notice: 注意 warn,warning: 警告 err,error: 错误 crit: 严重级别 alert: 需要立即修改该的信息 emerg,panic: 内核崩溃,内核恐慌等严重的信息 通配符: *:所有日志级别 none:没有任何级别,也就是不记录日志信息 Target:文件路径 可以使用的有: ①/var/log/messages ②用户:*当前登录系统的所有用户 ③日志服务器:@SERAVER_IP ④管道:| COMMAND 举例: mail.info /var/log/maillog: 比指定级别更高的日志级别,包括指定级别自身,保存到/var/log/maillog中 mail.=info /var/log/maillog: 明确指定日志级别为info,保存至/var/log/maillog mail.!info /var/log/maillog: 除了指定的日志级别(info)所有日志级别信息,保存至/var/log/maillog *.info /var/log/maillog: 所有facility的info级别,保存至/var/log/maillog mail.* /var/log/maillog: mail的所有日志级别信息,都保存至/var/log/maillog mail.notice;news.info /var/log/maillog: mail的notice以上记得日志级别和news的info以上的级别保存至/var/log/maillog mail,news.crit -/var/log/maillog: mail和news的crit以上的日志级别保存/var/log/maillog中;“-”代表异步模式</pre> <p> </p> <p> 日志信息格式: 时间 主机 进程(pid) 事件</p> <p><img src="//cto.wang/usr/uploads/2016/07/20160703180401-52.png" title="1434063569312539.png" alt="1.png" /></p> <p> </p> <p>2、启用日志服务器功能,接收其他服务的日志</p> <p> ①编辑/etc/rsyslog.conf,修改以下信息</p> <p> <img src="//cto.wang/usr/uploads/2016/07/20160703180401-88.png" title="1434063786769941.png" alt="2.png" /></p> <p></p> <p> ②重启rsyslog服务,查看监听端口 <img src="//cto.wang/usr/uploads/2016/07/20160703180401-46.png" title="1434064310768842.png" alt="3.png" /></p> <p></p> <p>③在另一台测试机中编辑/etc/rsyslog.conf,将日志信息发送到此服务器,重启rsyslog服务</p> <p> <img src="//cto.wang/usr/uploads/2016/07/20160703180401-27.png" title="1434064786596598.png" alt="4.png" /></p> <p> </p> <p>④在测试机中安装vsftpd,安装完成后再rsyslog服务器中查看日志</p> <p> <img src="//cto.wang/usr/uploads/2016/07/20160703180401-38.png" title="1434065327309786.png" alt="5.png" /></p> <p></p> <p> ⑤至此rsyslog日志服务器已经可以正常工作了</p> <p></p> <p>3、配置将日志信息存储到数据库</p> <p> ①安装数据库,启动数据库</p> <pre class="brush:bash;toolbar:false"># yum -y install mysql-server # service mysqld start</pre> <p> ②安装rsyslog-mysql驱动</p> <pre class="brush:bash;toolbar:false"># yum -y install rsyslog-mysql</pre> <p> ③查看rsyslog-msyql生成的文件</p> <pre class="brush:bash;toolbar:false"># rpm -ql rsyslog-mysql /lib64/rsyslog/ommysql.so \\rsyslog连接mysql的驱动模块 /usr/share/doc/rsyslog-mysql-5.8.10 \\ rsyslog的文档 /usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql \\rsyslog的数据库以及表的各项定义,直接导入数据即可使用</pre> <p> ④将生成的createDB.sql导入mysql数据库</p> <pre class="brush:bash;toolbar:false"># mysql -uroot -p </usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql</pre> <pre class="brush:bash;toolbar:false">Syslog \\生成的数据库名称 SystemEvents \\存放日志文件的数据库表 SystemEventsProperties \\ 生成的日志数据库表</pre> <p> ⑤授权rsyslog用户对到导入的数据库有所有权限</p> <pre class="brush:bash;toolbar:false">mysql> GRANT ALL ON Syslog.* TO 'rsyslog'@'127.0.0.1' IDENTIFIED BY 'syslogpass'; \\用户授权 mysql> GRANT ALL ON Syslog.* TO 'rsyslog'@'localhost' IDENTIFIED BY 'syslogpass';\\用户授权 Query OK, 0 rows affected (0.00 sec) mysql> FLUSH PRIVILEGES; \\进行权限刷新 Query OK, 0 rows affected (0.00 sec)</pre> <p> ⑥编辑/etc/rsyslog.conf配置文件,加载ommysql模块,定义将日志信息存储到mysql数据库</p> <pre class="brush:bash;toolbar:false">#### MODULES #### $ModLoad ommysql #### RULES #### *.info;mail.none;authpriv.none;cron.none :ommysql:127.0.0.1,Syslog,rsyslog,syslogpass :模块驱动:数据库地址,数据库名称,数据用户,用户密码</pre> <p> ⑦重启rsyslog服务</p> <pre class="brush:bash;toolbar:false"># service rsyslog restart Shutting down system logger: [ OK ] Starting system logger: [ OK ]</pre> <p> ⑧在本机上安装vsftpd,在mysql中查看日志信息</p> <pre class="brush:bash;toolbar:false"># yum -y install vsftpd \\安装vsftpd服务 # mysql -uroot -p \\进入数据库 Enter password: \\数据密码,默认root用户的密码为空 mysql> SELECT * FROM Syslog.SystemEvents\G; 查看日志命令,输出信息如下: *************************** 4. row *************************** ID: 4 CustomerID: NULL ReceivedAt: 2014-12-16 11:51:42 DeviceReportedTime: 2014-12-16 11:51:42 Facility: 1 Priority: 6 FromHost: localhost Message: Installed: vsftpd-2.2.2-13.el6_6.1.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[2605]: EventLogType: NULL GenericFileName: NULL SystemID: NULL 4 rows in set (0.00 sec)</pre> <p> ⑨到此为止,日志信息已经成功的存储于数据库中,可以便捷的查询相关的日志信息啦</p> <p></p> <p> </p> <p></p> <p>4、配置loganalyzer日志分析工具,便于日常维护</p> <p> ①安装LAMP平台</p> <pre class="brush:bash;toolbar:false"> # yum -y install httpd php php-mysql \\数据库已安装,现在只安装httpd,php即可</pre> <p> ②启动相关的服务,测试LAMP是否可以正常提供服务</p> <pre class="brush:bash;toolbar:false"># service httpd start \\启动httpd服务</pre> <p> ③测试web服务正常访问<img src="//cto.wang/usr/uploads/2016/07/20160703180401-37.png" title="1434074590797982.png" alt="6.png" /></p> <p></p> <p></p> <p> ④配置loganalyzer</p> <pre class="brush:bash;toolbar:false"> # tar xf loganalyzer-3.6.5.tar.gz \\解压loganalyzer到当前目录 # mkdir /var/www/html/log\\在httpd的DocumentRoot目录中创建log目录,用于存储loganalyzer相关页面 # cp -r loganalyzer-3.6.5/src/* /var/www/html/log \\复制loganalyzer目录中的src目录中的所有文件到刚刚创建的/var/www/html/log目录中 # cp loganalyzer-3.6.5/contrib/* /var/www/html/log \\复制loganalyzer目录中的contrib目录中的脚本文件到刚刚创建的/var/html/www/log目中中 # cd /var/www/html/log \\cd 到/var/www/html/log目录中 # chmod +x configure.sh secure.sh \\给刚刚复制过来的脚本添加执行权限 # ./configure.sh \\执行脚本 # ./secure.sh \\执行脚本 # chown -R apache.apache . \\更改当前目录的属主属组为apache,使用rpm安装的httpd,默认用户是apache # chmod 666 config.php \\ 设置config.php配置文件具有写权限</pre> <p>上述配置完成后,访问http://192.168.10.120/log便可以进行相关的配置</p> <p> <img src="//cto.wang/usr/uploads/2016/07/20160703180402-61.png" title="1434075911711375.png" alt="7.png" /> <img src="//cto.wang/usr/uploads/2016/07/20160703180402-76.png" title="1434075992127601.png" alt="8.png" /></p> <p><img src="//cto.wang/usr/uploads/2016/07/20160703180402-2.png" title="1434076131312792.png" alt="9.png" /></p> <p><img src="//cto.wang/usr/uploads/2016/07/20160703180402-71.png" title="1434076422663820.png" alt="10.png" /></p> <p><img src="//cto.wang/usr/uploads/2016/07/20160703180403-89.png" title="1434076889127754.png" alt="11.png" /></p> <p><img src="//cto.wang/usr/uploads/2016/07/20160703180403-15.png" title="1434077119168170.png" alt="12.png" /></p> <p><img src="//cto.wang/usr/uploads/2016/07/20160703180404-64.png" title="1434078210536463.png" alt="13.png" /></p> <p></p> <p></p> <p>可能会遇到的问题 </p> <p> 1、如果安装完成后提示连接不到数据库,则将第五步中的127.0.0.1改为localhost便可以解决问题</p> <p> 2、使用中出现以下问题 <img src="//cto.wang/usr/uploads/2016/07/20160703180404-73.png" title="1434078440108175.png" alt="14.png" /></p> <pre class="brush:bash;toolbar:false"># yum -y install php-gd \\安装php-gd # service httpd restart \\重启httpd服务</pre> <p> 刷新页面,便可以恢复正常访问</p> <p><img src="//cto.wang/usr/uploads/2016/07/20160703180404-10.png" title="1434078725111412.png" alt="15.png" />77</p> 最后修改:2021 年 12 月 10 日 10 : 53 AM © 允许规范转载 赞赏 如果觉得我的文章对你有用,请随意赞赏 赞赏作者 支付宝微信