简介
系统日志:记录历史事件,通常都是按时间顺序将发生的事件予以记录,linux上的日志分为syslogd(系统进程相关日志)和klogd(内核事件日志)centos5:syslog 缺点:不能进行并行数据存储,效率低,不能实现放在专用数据管理文件中centos6:rsyslog 优点: 1、支持多线程 2、基于tcp,tls,relp放在远程日志服务器中,早期的syslog仅支持简单的文本传输模式实现日志发送,不安全 3、支持将日志放到mysql,pgsql,oracle等多种数据库中 4、强大的过滤器,可实现过滤系统信息中的任意部分 5、支持完整的输出格式配置(自定义格式),特别适合企业级需求facility:设施,从功能或程序上对日志进行分类,并由专门的工具负责记录其日志,不是syslog一个进程来接受,而是由代理人帮忙接受并记录下来auth:认证相关
authpriv :授权信息cron :计划任务daemon:守护进程相关lpr:打印机相关mail:邮件相关kern:内核相关mark:防火墙标记相关news:新闻组security:安全syslog:系统日志user:用户相关uucp:unix to unix copylocal0 through local7:8个自定义的设施指定设施可以使用通配符:
*:所有设备f1;f2;f3:列表!:取反日志级别: debug :(调试信息) notice :(注意或警告) warn|warning(此级别及以上级别都应该重视) error (错误) crit(蓝色警戒,再不处理就挂了) alert(橙色警戒) emerg|panic(红色警戒)能使用的通配符:
*:所有级别 none:不记录target(将保存至的目标文件):文件:例如/var/log/message用户:*当前系统登录的所有用户日志服务器:@server_ip管道:| command事件格式:
时间 主机 进程 事件本身配置文件:/etc/rsyslog.conf或/etc/rsyslog.d/*配置文件段落[root@iptablesRouter ~]# grep "###" /etc/rsyslog.conf #### MODULES ######## GLOBAL DIRECTIVES ######## RULES ##### ### begin forwarding rule #### ### end of the forwarding rule ###
格式:facility.priority target
例如:mail.info /var/log/maillog info及以上级别mail.=info /var/log/maillog 明确指定级别mail.!info 除了指定级别*.info 所有facility的info及以上级别mail.* mail的所有级别mail,news.info mail和news的info及以上级别mail.notice;news.info如果级别不同,使用;分隔*.info | command日志一般是同步的,只有产生日志,就从内存写到磁盘,若使用异步,则在target前面加–下面我们开始配置Centos 6.5 rsyslog日志系统服务:
系统环境:
Rsyslog Server OS:CentOS 6.5
Rsyslog Server IP:172.16.100.7 Rsyslog 版本:rsyslog-5.8.10-8.el6.i686 LogAnalyzer 版本:LogAnalyzer 3.6.5 (v3-stable) LAMP 版本:httpd-2.2.15-30.el6.centos.i686 + mysql-5.1.73-3.el6_5.i686 + php-5.3.3-27.el6_5.i686 防火墙已关闭/iptables: Firewall is not running. SELINUX=disabled Rsyslog Client OS:RHEL 6.5 Rsyslog Client IP:172.16.100.8配置日志服务器及客户端(本次案例实现为:单机作为服务器同时也是客户端):
去掉注释并重启即可打开日志服务器功能# Provides UDP syslog reception$ModLoad imudp$UDPServerRun 514# Provides TCP syslog reception$ModLoad imtcp$InputTCPServerRun 514重启日志服务器[root@iptablesRouter ~]# service rsyslog restartShutting down system logger: [ OK ]Starting system logger: [ OK ][root@iptablesRouter ~]# netstat -tunlp | grep 514tcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN 5017/rsyslogd tcp 0 0 :::514 :::* LISTEN 5017/rsyslogd udp 0 0 0.0.0.0:514 0.0.0.0:* 5017/rsyslogd udp 0 0 :::514 :::* 5017/rsyslogd配置客户端:修改配置文件:#*.info;mail.none;authpriv.none;cron.none /var/log/messages*.info;mail.none;authpriv.none;cron.none @172.16.100.7 --指定日志服务器地址重启:[root@iptablesInclient ~]# service rsyslog restartShutting down system logger: [ OK ]Starting system logger: [ OK ]测试安装gcc:[root@iptablesInclient ~]# yum -y install gcc检测日志记录:[root@iptablesRouter ~]# tail -f /var/log/messagesMar 26 22:37:20 iptablesInclient yum[16488]: Installed: zsh-4.3.10-7.el6.x86_64
将日志放到mysql中
实现该功能需要用模块来实现,用mysql驱动连接安装mysql-server,rsyslog-mysql:[root@iptablesRouter ~]# yum -y install mysql-server rsyslog-mysql查看rsyslog-mysql安装生成的文件:[root@iptablesRouter ~]# rpm -ql rsyslog-mysql/lib64/rsyslog/ommysql.so/usr/share/doc/rsyslog-mysql-5.8.10/usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql启动mysql服务:[root@iptablesRouter ~]# service mysqld start编辑/etc/rsyslog.conf模块端添加:#log event to mysql$ModLoad ommysqlroles端添加:*.info :ommysql:127.0.0.1,Syslog,rsysloguser,rsyslogpass导入文件(即创建数据库):[root@iptablesRouter ~]# mysql < /usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql进入数据库[root@iptablesRouter ~]# mysql查看数据库mysql> SHOW DATABASES;+--------------------+| Database |+--------------------+| information_schema || Syslog || mysql || test |+--------------------+4 rows in set (0.01 sec)使用Syslog:mysql> USE Syslog;查看表:mysql> SHOW TABLES;+------------------------+| Tables_in_Syslog |+------------------------+| SystemEvents || SystemEventsProperties |+------------------------+2 rows in set (0.01 sec)创建用户、密码mysql> GRANT ALL ON Syslog.* TO rsysloguser@127.0.0.1 IDENTIFIED BY 'rsyslogpass';Query OK, 0 rows affected (0.01 sec) mysql> GRANT ALL ON Syslog.* TO rsysloguser@localhost IDENTIFIED BY 'rsyslogpass';Query OK, 0 rows affected (0.00 sec)刷新权限:mysql> FLUSH PRIVILEGES;Query OK, 0 rows affected (0.00 sec)重启rsyslog:[root@iptablesRouter ~]# service rsyslog restartShutting down system logger: [ OK ]Starting system logger: [ OK ]
客户端安装tree程序:
[root@iptablesInclient ~]# yum -y install tree
查看服务器的客户端日志文件:
[root@iptablesRouter ~]# tail -f /var/log/messagesMar 26 23:03:57 iptablesInclient yum[16580]: Installed: tree-1.5.3-2.el6.x86_64
查看服务器mysql记录日志:
mysql> use Syslog;Database changedmysql> SELECT FromHost,ReceivedAt,DeviceReportedTime,Message FROM SystemEvents\G;*************************** 1. row *************************** FromHost: iptablesInclient ReceivedAt: 2016-04-20 11:16:36DeviceReportedTime: 2016-03-26 23:03:57 Message: Installed: tree-1.5.3-2.el6.x86_641 row in set (0.00 sec)
通过loganalyzer展示
安装并设置LAMP环境
[root@iptablesRouter ~]# yum -y install httpd php php-mysql php-gd mysql-server
启动httpd服务:
[root@iptablesRouter ~]# service httpd startStarting httpd: [ OK ]
提供测试页:
[root@iptablesRouter ~]# vim /web/htdocs/index.php
测试访问web测试页:
安装LogAnalyzer
[root@iptablesRouter ~]# tar xf loganalyzer-3.6.5.tar.gz ^C[root@iptablesRouter ~]# cd loganalyzer-3.6.5[root@iptablesRouter loganalyzer-3.6.5]# mkdir -p /web/htdocs/loganalyzer[root@iptablesRouter loganalyzer-3.6.5]# rsync -a src/* /web/htdocs/loganalyzer/[root@iptablesRouter loganalyzer-3.6.5]# cp contrib/* /web/htdocs/loganalyzer/[root@iptablesRouter loganalyzer-3.6.5]# chmod +x /web/htdocs/loganalyzer/configure.sh [root@iptablesRouter loganalyzer-3.6.5]# chmod +x /web/htdocs/loganalyzer/secure.sh[root@iptablesRouter loganalyzer-3.6.5]# cd /web/htdocs/loganalyzer/[root@iptablesRouter loganalyzer]# ./configure.sh [root@iptablesRouter loganalyzer]# ./secure.sh[root@iptablesRouter loganalyzer]# touch config.php [root@iptablesRouter loganalyzer]# chmod 666 config.php [root@iptablesRouter loganalyzer]# chown -R apache.apache ./*
在浏览器安装向导中安装LogAnalyzer
打开浏览器访问:
提示没有配置文件,点击 here 利用向导生成。
第一步:测试系统环境
点击 “Next”,进入第二步。
点击 “Next”,进入第三步
在User Database Options 中,填入上面设置的参数,然后点击 Next.
点击 Next 开始创建表
检查SQL结果
创建管理用户
创建第一个系统日志source
完成配置:
LogAnalyzer 首页
Rsyslog + LogAnalyzer 日志服务器部署完毕