本文主要是介绍RHEL 6.x 搭建rsyslog日志服务器和loganalyzer 日志分析工具,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | [root@jie1 ~] # rpm -qa | grep rsyslog rsyslog-5.8.10-6.el6.x86_64 #软件包系统默认已经安装 [root@jie1 ~] # 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 /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/lmzlibw .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 .so |
1 2 3 4 5 6 7 8 | #### MODULES 日志的模块#### $ModLoad imuxsock #imuxsock是模块名,支持本地系统日志的模块 $ModLoad imklog #imklog是模块名, 支持内核日志的模块 #$ModLoad immark #immark是模块名,支持日志标记 #$ModLoad imudp #imupd是模块名,支持udp协议 #$UDPServerRun 514 #允许514端口接收使用UDP和TCP协议转发过来的日志 #$ModLoad imtcp #imtcp是模块名,支持tcp协议 #$InputTCPServerRun 514 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | #### GLOBAL DIRECTIVES ####定义全局日志格式的指令 $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat #定义日志格式默认模板 $IncludeConfig /etc/rsyslog .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/secure mail.* - /var/log/maillog #####邮件的所有信息存放在/var/log/maillog; 这里有一个-符号, 表示是使用异步的方式记录, 因为日志一般会比较大 cron .* /var/log/cron ####计划任务有关的信息存放在/var/log/cron *.emerg * (*表示所有用户) ###记录所有的大于等于emerg级别信息, 以wall方式发送给每个登录到系统的人 uucp,news.crit /var/log/spooler ####记录uucp,news.crit等存放在/var/log/spooler local7.* /var/log/boot .log ####本地服务器的启动的所有日志存放在/var/log/boot.log中 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | ###rsyslog.conf中日志规则的定义的格式 facitlity.priority Target #facility: 日志设备(可以理解为日志类型): ============================================================== auth #pam产生的日志,认证日志 authpriv #ssh,ftp等登录信息的验证信息,认证授权认证 cron #时间任务相关 kern #内核 lpr #打印 mail #邮件 mark(syslog) #rsyslog服务内部的信息,时间标识 news #新闻组 user #用户程序产生的相关信息 uucp #unix to unix copy, unix主机之间相关的通讯 local 1~7 #自定义的日志设备 =============================================================== #priority: 级别日志级别: ===================================================================== debug #有调式信息的,日志信息最多 info #一般信息的日志,最常用 notice #最具有重要性的普通条件的信息 warning, warn #警告级别 err, error #错误级别,阻止某个功能或者模块不能正常工作的信息 crit #严重级别,阻止整个系统或者整个软件不能正常工作的信息 alert #需要立刻修改的信息 emerg, panic #内核崩溃等严重信息 ###从上到下,级别从低到高,记录的信息越来越少,如果设置的日志内性为err,则日志不会记录比err级别低的日志,只会记录比err更高级别的日志,也包括err本身的日志。 ===================================================================== Target: #文件, 如/var/log/messages #用户, root,*(表示所有用户) #日志服务器,@172.16.22.1 #管道 | COMMAND |
1 2 3 4 5 6 7 8 9 10 11 12 13 | [root@jie1 ~] # rpm -qa | grep logrotate logrotate-3.7.8-16.el6.x86_64 #日志回滚的软件包默认已经安装 [root@jie1 ~] # 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/doc/logrotate-3 .7.8 /COPYING /usr/share/man/man5/logrotate .conf.5.gz /usr/share/man/man8/logrotate .8.gz /var/lib/logrotate .status |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | [root@jie1 ~] # sed -e '/^#/d' -e '/^$/d' /etc/logrotate.conf weekly #每周清理一次日志文件 rotate 4 #保存四个轮换日志 create #清除旧日志的同时,创建新的空日志文件 dateext #使用日期为后缀的回滚文件 #可以去/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 1 } [root@jie1 ~] # 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 } |
1 2 3 4 5 6 7 8 9 10 11 12 13 | [root@jie1 ~] # 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/messages文件中,除了邮件的所有信息,认证授权的所有信息,计划任务的所有信息。 #authpriv.* /var/log/secure === #这行表示认证授权的所有信息,都会保存在/var/log/secure文件中 *.* /systemlog/jie .log === #添加的这行表示所有设施的所有信息都会保存在 /systemlog/jie.log文件中,而且此文件不必自己创建,启动rsyslog服务时系统会自动创建,而且权限都是600 |
1 2 3 4 5 6 7 8 9 | [root@jie3 ~] # vim /etc/rsyslog.conf #############/etc/rsyslog.conf########################################### #*.info;mail.none;authpriv.none;cron.none /var/log/messages *.* @172.16.22.1 #添加此行,注释掉其他两行 #authpriv.* /var/log/secure ######################################################################## [root@jie3 ~] # service rsyslog restart Shutting down system logger: [ OK ] Starting system logger: [ OK ] |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | [root@jie1 ~] # grep -v "^#" /etc/rsyslog.conf | grep -v "^$" ######修改配置文件只需开启两个模块和协议支持的端口 $ModLoad 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的端口传来的日志 $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat $IncludeConfig /etc/rsyslog .d/*.conf *.info;mail.none;authpriv.none; cron .none /var/log/messages authpriv.* /var/log/secure mail.* - /var/log/maillog cron .* /var/log/cron *.emerg * uucp,news.crit /var/log/spooler local7.* /var/log/boot .log $template SpiceTmpl, "%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 ################################# [root@jie1 ~] # service rsyslog restart Shutting down system logger: [ OK ] Starting system logger: [ OK ] [root@jie1 ~] # |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 | [root@jie1 log] # yum -y install mysql-server rsyslog-mysql mysql #安装mysql服务器和rsyslog连接mysql的驱动 [root@jie1 ~] # rpm -ql rsyslog-mysql #查看rsyslog-mysql安装生成了那些文件 /lib64/rsyslog/ommysql .so /usr/share/doc/rsyslog-mysql-5 .8.10 /usr/share/doc/rsyslog-mysql-5 .8.10 /createDB .sql [root@jie1 ~] # service mysqld start Starting mysqld: [ OK ] [root@jie1 ~] # mysqladmin -u root password redhat #设置mysql的密码 [root@jie1 ~] # mysql -u root -p Enter password: #登录mysql服务器 mysql> show databases; #显示数据库服务器中没有日志的数据库 +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | test | +--------------------+ 3 rows in set (0.00 sec) mysql> \q Bye [root@jie1 ~] # cd /usr/share/doc/rsyslog-mysql-5.8.10/ #日志文件sql脚本的路径 [root@jie1 rsyslog-mysql-5.8.10] # ls createDB.sql [root@jie1 rsyslog-mysql-5.8.10] # mysql -u root -p < createDB.sql Enter password: #导入日志文件的sql脚本,生成日志文件的数据库 [root@jie1 rsyslog-mysql-5.8.10] # mysql -u root -p Enter password: mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | Syslog | | mysql | | test | +--------------------+ 4 rows in set (0.01 sec) mysql> use Syslog; #Syslog即是记录日志文件的数据库 Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> show tables; +------------------------+ | Tables_in_Syslog | +------------------------+ | SystemEvents | | SystemEventsProperties | +------------------------+ 2 rows in set (0.00 sec) mysql> grant all on Syslog.* to 'syslogroot' @ '127.0.0.1' identified by 'syslogpass' ; #设置用户访问数据库服务器中Syslog数据库的用户名和密码 Query OK, 0 rows affected (0.00 sec) mysql> grant all on Syslog.* to 'syslogroot' @ '172.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> \q Bye [root@jie1 rsyslog-mysql-5.8.10] #cd / [root@jie1 /] # grep -v "^$" /etc/rsyslog.conf | grep -v "^#" #####vim /etc/ryslog.conf##################################### $ModLoad imuxsock $ModLoad imklog $ModLoad imudp #加载udp的模块 $UDPServerRun 514 #允许接收udp 514的端口传来的日志 $ModLoad imtcp #加载tcp的模块 $InputTCPServerRun 514 #允许接收tcp 514的端口传来的日志 $ModLoad ommysql #加载mysql的模块 $ActionFileDefaultTemplateRSYSLOG_TraditionalFileFormat $IncludeConfig /etc/rsyslog .d/*.conf *.* :ommysql:172.16.22.1,Syslog,syslogroot,syslogpass #添加这行,把其他行都注释掉,这行表示把所有的设施的所有日志都记录到数据库服务器中的Syslog数据库中,以syslogroot用户,syslogpass密码访问数据库 local7.* /var/log/boot .log $template SpiceTmpl, "%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 ###################################################################### [root@jie1 /] # service rsyslog restart Shutting down system logger: [ OK ] Starting system logger: [ OK ] |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | [root@jie3 ~] # sed -e '/^$/d' -e '/^#/d' /etc/rsyslog.conf ################ /etc/rsyslog.conf###################### $ModLoad imuxsock # provides support for local system logging (e.g. via logger command) $ModLoad imklog # provides kernel logging support (previously done by rklogd) $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat $IncludeConfig /etc/rsyslog .d/*.conf *.* @172.16.22.1 #添加这行用于和服务器通信 *.* :ommysql:172.16.22.1,Syslog,syslogroot,syslogpass #添加这行,把其他行都注释掉,这行表示把所有的设施的所有日志都记录到数据库服务器中的Syslog数据库中,以syslogroot用户,syslogpass密码访问数据库 $template SpiceTmpl, "%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 #################################################################### [root@jie3 ~] # service rsyslog restart Shutting down system logger: [ OK ] Starting system logger: [ OK ] |
1 2 3 4 | [root@jie1 ~] # yum -y install httpd php php-mysql php-gd [root@jie1 ~] # mkdir -pv /web/loganalyzer #存放loganalyzer的网页文件 mkdir : created directory ` /web ' mkdir : created directory ` /web/loganalyzer ' |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | [root@jie1 ~] # ls anaconda-ks.cfg install .log install .log.syslog loganalyzer-3.6.4. tar .gz [root@jie1 ~] # tar xf loganalyzer-3.6.4.tar.gz [root@jie1 ~] # ls anaconda-ks.cfg install .log.syslog loganalyzer-3.6.4. tar .gz install .log loganalyzer-3.6.4 [root@jie1 ~] # cd loganalyzer-3.6.4 [root@jie1 loganalyzer-3.6.4] # ls ChangeLog contrib COPYING doc INSTALL src [root@jie1 loganalyzer-3.6.4] # mv src/* /web/loganalyzer/ #把src目录的所有文件移到存放loganalyzer的文件中 [root@jie1 loganalyzer-3.6.4] # cd contrib/ [root@jie1 contrib] # ls configure.sh secure.sh [root@jie1 contrib] # mv ./*.sh /web/loganalyzer/ #把脚本文件也移到loganalyzer文件中 |
1 2 | [root@jie1 contrib] #cd /web/loganalyzer/ [root@jie1 loganalyzer] # bash configure.sh |
1 2 3 4 5 6 7 8 9 10 | vim /etc/httpd/conf/httpd .conf ################## ServerName 172.16.22.1:80 DirectoryIndex index.php index.html index.html.var #DocumentRoot "/var/www/html" #注释掉默认存放网页文件的路径 <VirtualHost *:80> DocumentRoot /web/loganalyzer #指定存放loganalyzer网页文件的路径 ServerName www.jie.com < /VirtualHost > ################# |
1 2 3 4 5 6 7 8 9 10 11 | [root@jie1 loganalyzer] # service httpd restart Stopping httpd: [ OK ] Starting httpd: [ OK ] [root@jie1 loganalyzer] # mysql -u root -p Enter password: mysql> create database loganalyzer; Query OK, 1 row affected (0.04 sec) mysql> grant all on loganalyzer.* to lyzeruser@ '172.16.22.1' identified by 'lyzeruser' ; Query OK, 0 rows affected (0.00 sec) mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) |
这篇关于RHEL 6.x 搭建rsyslog日志服务器和loganalyzer 日志分析工具的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!