http://litaotao.blog.51cto.com/6224470/1283871
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)
|