1、搭建rsyslog日志服务器和loganalyzer日志分析工具搭建rsyslog日志服务器和loganalyzer日志分析工具一、rsyslog的介绍 2rsyslog日志服务器的优势: 2rsyslog的新功能: 2rsyslog的软件包 2rsyslog配置文件(/etc/rsyslog.conf)的详解 3二、logrotate日志滚动的介绍 5logrotate的软件包 6logrotate的配置文件(/etc/logrotate.conf)详解 6三、rsyslog的存储途径 7a)日志存储在指定的文件中 7b)日志存储在指定的rsyslog服务器中 8rsyslog客户端的配置:
2、 9rsyslog服务器的配置: 9rsyslog+Mysql服务器端的配置: 11rsyslog客户端的配置: 14验证客户端的日志文件存放位置: 15四、基于web的loganalyzer日志分析工具的搭建 16rsyslog服务器的配置步骤: 161、安装httpd,php,php-gd,php-mysql 162、下载loganalyzer源码包 173、执行脚本 174、修改httpd的配置文件,新建一个虚拟主机 175、重启服务,创建loganalyzer的数据库,并授权 186、安装loganalyzer 18一、rsyslog的介绍Linux的日志记录了用户在系统上一切操作,看
3、日志去分析系统的状态是运维人员必须掌握的基本功。rsyslog日志服务器的优势:1、日志统一,集中式管理2、日志实时传送到一个更加安全的远端服务器上,真正记录用户行为,使日志的2次更改可能性大大降低,从而能够对日志进行真实回放,便于问题追踪。rsyslog的新功能:rsyslog是一个加强版的syslog,具有各种各样的新功能,典型的有:1、直接将日志写入到数据库。2、日志队列(内存队列和磁盘队列)。3、灵活的模板机制,可以得到多种输出格式。4、插件式结构,多种多样的输入、输出模块。5、可以把日志存放在Mysql ,PostgreSQL,Oracle等数据库中rsyslog的软件包rootji
4、e1 # rpm -qa | grep rsyslogrsyslog-5.8.10-6.el6.x86_64 #软件包系统默认已经安装rootjie1 # rpm -ql rsyslog #只显示了部分信息/etc/logrotate.d/syslog/etc/rsyslog.conf #rsyslog的配置文件/etc/sysconfig/rsyslog/lib64/rsyslog/imfile.so/lib64/rsyslog/imklog.so #rsyslog的模块,i开头的是输入模块/lib64/rsyslog/immark.so/lib64/rsyslog/impstats.so/
5、lib64/rsyslog/imptcp.so/lib64/rsyslog/imtcp.so/lib64/rsyslog/imudp.so/lib64/rsyslog/imuxsock.so/lib64/rsyslog/lmnet.so/lib64/rsyslog/lmnetstrms.so/lib64/rsyslog/lmnsd_ptcp.so/lib64/rsyslog/lmregexp.so/lib64/rsyslog/lmstrmsrv.so/lib64/rsyslog/lmtcpclt.so/lib64/rsyslog/lmtcpsrv.so/lib64/rsyslog/lmzlib
6、w.so/lib64/rsyslog/ommail.so #o开头的模块是输出模块/lib64/rsyslog/omprog.so/lib64/rsyslog/omruleset.so/lib64/rsyslog/omtesting.so/lib64/rsyslog/omuxsock.so/lib64/rsyslog/pmlastmsg.sorsyslog配置文件(/etc/rsyslog.conf)的详解# MODULES 日志的模块#$ModLoad imuxsock #imuxsock是模块名,支持本地系统日志的模块$ModLoad imklog #imklog是模块名, 支持内核日志的
7、模块#$ModLoad immark #immark是模块名,支持日志标记#$ModLoad imudp #imupd是模块名,支持udp协议#$UDPServerRun 514 #允许514端口接收使用UDP和TCP协议转发过来的日志#$ModLoad imtcp #imtcp是模块名,支持tcp协议#$InputTCPServerRun 514# GLOBAL DIRECTIVES #定义全局日志格式的指令$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat #定义日志格式默认模板$IncludeConfig /etc/rsysl
8、og.d/*.conf #载入rsyslog.d文件中所有以conf结尾的文件# RULES #*.info;mail.none;authpriv.none;cron.none /var/log/messages#记录所有日志类型的info级别以及大于info级别的信息到/var/log/messages,但是mail邮件信息,authpriv验证方面的信息和cron时间#任务相关的信息除外authpriv.* /var/log/secure#authpriv验证相关的所有信息存放在/var/log/securemail.* -/var/log/maillog#邮件的所有信息存放在/var/l
9、og/maillog; 这里有一个-符号, 表示是使用异步的方式记录, 因为日志一般会比较大/cron*.emerg * (*表示所有用户)#记录所有的大于等于emerg级别信息, 以wall方式发送给每个登录到系统的人uucp,news.crit /var/log/spooler#记录uucp,news.crit等存放在/var/log/spoolerlocal7.* /var/log/boot.log#本地服务器的启动的所有日志存放在/var/log/boot.log中#rsyslog.conf中日志规则的定义的格式facitlity.priority Target#facility: 日
10、志设备(可以理解为日志类型):=auth #pam产生的日志,认证日志authpriv #ssh,ftp等登录信息的验证信息,认证授权认证cron #时间任务相关kern #内核lpr #打印mail #邮件mark(syslog) #rsyslog服务内部的信息,时间标识news #新闻组user #用户程序产生的相关信息uucp #unix to unix copy, unix主机之间相关的通讯local 17 #自定义的日志设备=#priority: 级别日志级别:=debug #有调式信息的,日志信息最多info #一般信息的日志,最常用notice #最具有重要性的普通条件的信息wa
11、rning, warn #警告级别err, error #错误级别,阻止某个功能或者模块不能正常工作的信息crit #严重级别,阻止整个系统或者整个软件不能正常工作的信息alert #需要立刻修改的信息emerg, panic #内核崩溃等严重信息#从上到下,级别从低到高,记录的信息越来越少,如果设置的日志内性为err,则日志不会记录比err级别低的日志,只会记录比err更高级别的日志,也包括err本身的日志。=Target: #文件, 如/var/log/messages #用户, root,*(表示所有用户) #日志服务器,172.16.22.1 #管道 | COMMAND二、logrot
12、ate日志滚动的介绍所有的日志文件都会随着时间的推移和访问次数的增加而迅速增长,因此必须对日志文件进行定期清理以免造成磁盘空间的不必要的浪费,同时也加快了管理员查看日志所用的时间。因而logrotate就非常有存在的必要了,Redhat系统中已经默然安装logrotate且利用logrotate设置了相关对rsyslog日志迅速增长的设置。logrotate的执行由crond服务实现。在/etc/cron.daily目录中,有个文logrotate,它实际上是个shell script,用来启动logrotate。logrotate程序每天由cron在指定的时间(/etc/crontab)启动
13、。logrotate的软件包rootjie1 # rpm -qa | grep logrotatelogrotate-3.7.8-16.el6.x86_64 #日志回滚的软件包默认已经安装rootjie1 # rpm -ql logrotate/etc/cron.daily/logrotate/etc/logrotate.conf #日志回滚的配置文件/etc/logrotate.d #日志回滚的子目录/usr/sbin/logrotate/usr/share/doc/logrotate-3.7.8/usr/share/doc/logrotate-3.7.8/CHANGES/usr/share
14、/doc/logrotate-3.7.8/COPYING/usr/share/man/man5/logrotate.conf.5.gz/usr/share/man/man8/logrotate.8.gz/var/lib/logrotate.statuslogrotate的配置文件(/etc/logrotate.conf)详解rootjie1 # sed -e /#/d -e /$/d /etc/logrotate.confweekly #每周清理一次日志文件rotate 4 #保存四个轮换日志create #清除旧日志的同时,创建新的空日志文件dateext #使用日期为后缀的回滚文件 #可以
15、去/var/log目录下看看include /etc/logrotate.d #包含/etc/logrotate.d目录下的所有配置文件/var/log/wtmp #对/var/log/wtmp这个日志文件按照下面的设定日志回滚 monthly #每月轮转一次 create 0664 root utmp #设置wtmp这个日志文件的权限,属主,属组 minsize 1M #日志文件必须大于1M才会去轮换(回滚) rotate 1 #保存一个轮换日志/var/log/btmp missingok #如果文件丢失不报错 monthly create 0600 root utmp rotate 1r
16、ootjie1 # cat /etc/logrotate.d/syslog/var/log/cron #这些文件是rsyslog.conf文件中全局配置定义中指定的Target的路径/var/log/maillog/var/log/messages/var/log/secure/var/log/spooler sharedscripts postrotate # 轮换之后重启rsyslog服务 /bin/kill -HUP cat /var/run/syslogd.pid 2 /dev/null 2 /dev/null | true endscript三、rsyslog的存储途径a)日志存储在
17、指定的文件中rootjie1 # vim /etc/rsyslog.conf#vim /etc/rsyslog.conf#=注释掉两行,然后添加一行#*.info;mail.none;authpriv.none;cron.none /var/log/messages*.* /systemlog/jie.log#authpriv.* /var/log/secure#*.info;mail.none;authpriv.none;cron.none /var/log/messages=#这行表示,所有facitlity(设施)的info消息记录,及info级别以上的记录都会保存到 /var/log/
18、messages文件中,除了邮件的所有信息,认证授权的所有信息,计划任务的所有信息。#authpriv.* /var/log/secure=#这行表示认证授权的所有信息,都会保存在/var/log/secure文件中*.* /systemlog/jie.log=#添加的这行表示所有设施的所有信息都会保存在 /systemlog/jie.log文件中,而且此文件不必自己创建,启动rsyslog服务时系统会自动创建,而且权限都是600b)日志存储在指定的rsyslog服务器中rsyslog客户端的配置:rootjie3 # vim /etc/rsyslog.conf#/etc/rsyslog.co
19、nf#*.info;mail.none;authpriv.none;cron.none /var/log/messages*.* 172.16.22.1 #添加此行,注释掉其他两行#authpriv.* /var/log/secure#rootjie3 # service rsyslog restartShutting down system logger: OK Starting system logger: OK rsyslog服务器的配置:rootjie1 # grep -v # /etc/rsyslog.conf | grep -v $#修改配置文件只需开启两个模块和协议支持的端口$M
20、odLoad imuxsock # provides support for local system logging (e.g. via logger command)$ModLoad imklog # provides kernel logging support (previously done by rklogd)$ModLoad imudp #开启支持upd的模块$UDPServerRun 514 #允许接收udp 514的端口传来的日志ModLoad imtcp #开启支持tcp的模块$InputTCPServerRun 514 #允许接收tcp 514的端口传来的日志$Actio
21、nFileDefaultTemplate RSYSLOG_TraditionalFileFormat$IncludeConfig /etc/rsyslog.d/*.conf*.info;mail.none;authpriv.none;cron.none /var/log/messagesauthpriv.* /var/log/securemail.* -/var/log/maillogcron.* /var/log/cron*.emerg *uucp,news.crit /var/log/spoolerlocal7.* /var/log/boot.log$template SpiceTmpl,
22、%TIMESTAMP%.%TIMESTAMP:date-subseconds% %syslogtag% %syslogseverity-text%:%msg:sp-if-no-1st-sp%msg:drop-last-lf%n:programname, startswith, spice-vdagent /var/log/spice-vdagent.log;SpiceTmpl#rootjie1 # service rsyslog restartShutting down system logger: OK Starting system logger: OK rootjie1 #c)日志存储在
23、指定的数据库服务器中思路:1、安装mysql服务器,且要安装rsyslog连接mysql的驱动2、解决生成rsyslog服务器的日志特定的格式,3、在rsyslog配置文件中加载连接mysql的模块,把日志存储到mysql中rsyslog+Mysql服务器端的配置:rootjie1 log# yum -y install mysql-server rsyslog-mysql mysql#安装mysql服务器和rsyslog连接mysql的驱动rootjie1 # rpm -ql rsyslog-mysql#查看rsyslog-mysql安装生成了那些文件/lib64/rsyslog/ommys
24、ql.so/usr/share/doc/rsyslog-mysql-5.8.10/usr/share/doc/rsyslog-mysql-5.8.10/createDB.sqlrootjie1 # service mysqld start Starting mysqld: OK rootjie1 # mysqladmin -u root password redhat#设置mysql的密码rootjie1 # mysql -u root -pEnter password: #登录mysql服务器mysql show databases; #显示数据库服务器中没有日志的数据库+-+| Datab
25、ase |+-+| information_schema | mysql | test |+-+3 rows in set (0.00 sec)mysql qByerootjie1 # cd /usr/share/doc/rsyslog-mysql-5.8.10/#日志文件sql脚本的路径rootjie1 rsyslog-mysql-5.8.10# lscreateDB.sqlrootjie1 rsyslog-mysql-5.8.10# mysql -u root -p show databases;+-+| Database |+-+| information_schema | Syslog
26、 | mysql | test |+-+4 rows in set (0.01 sec)mysql use Syslog; #Syslog即是记录日志文件的数据库Reading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -ADatabase changedmysql show tables;+-+| Tables_in_Syslog |+-+| SystemEvents | SystemEventsPr
27、operties |+-+2 rows in set (0.00 sec)mysql grant all on Syslog.* to syslogroot127.0.0.1 identified by syslogpass; #设置用户访问数据库服务器中Syslog数据库的用户名和密码Query OK, 0 rows affected (0.00 sec)mysql grant all on Syslog.* to syslogroot172.16.22.1 identified by syslogpass;Query OK, 0 rows affected (0.04 sec)mysql flush privileges; #重读授权表,及时生效Query OK, 0 rows affected (0.00 sec)mysql qByerootjie1 rsyslog-mysql-5.8.10#cd /rootjie1 /# grep -v $ /etc/rsyslog.conf | grep -v #vim /etc/ryslog.conf#
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1