搭建rsyslog日志服务器和loganalyzer日志分析工具.docx
《搭建rsyslog日志服务器和loganalyzer日志分析工具.docx》由会员分享,可在线阅读,更多相关《搭建rsyslog日志服务器和loganalyzer日志分析工具.docx(26页珍藏版)》请在冰豆网上搜索。
搭建rsyslog日志服务器和loganalyzer日志分析工具
搭建rsyslog日志服务器和loganalyzer日志分析工具
一、rsyslog的介绍2
rsyslog日志服务器的优势:
2
rsyslog的新功能:
2
rsyslog的软件包2
rsyslog配置文件(/etc/rsyslog.conf)的详解3
二、logrotate日志滚动的介绍5
logrotate的软件包6
logrotate的配置文件(/etc/logrotate.conf)详解6
三、rsyslog的存储途径7
a)日志存储在指定的文件中7
b)日志存储在指定的rsyslog服务器中8
rsyslog客户端的配置:
9
rsyslog服务器的配置:
9
rsyslog+Mysql服务器端的配置:
11
rsyslog客户端的配置:
14
验证客户端的日志文件存放位置:
15
四、基于web的loganalyzer日志分析工具的搭建16
rsyslog服务器的配置步骤:
16
1、安装httpd,php,php-gd,php-mysql16
2、下载loganalyzer源码包17
3、执行脚本17
4、修改httpd的配置文件,新建一个虚拟主机17
5、重启服务,创建loganalyzer的数据库,并授权18
6、安装loganalyzer18
一、rsyslog的介绍
Linux的日志记录了用户在系统上一切操作,看日志去分析系统的状态是运维人员必须掌握的基本功。
rsyslog日志服务器的优势:
1、日志统一,集中式管理
2、日志实时传送到一个更加安全的远端服务器上,真正记录用户行为,使日志的2次更改可能性大大降低,从而能够对日志进行真实回放,便于问题追踪。
rsyslog的新功能:
rsyslog是一个加强版的syslog,具有各种各样的新功能,典型的有:
1、直接将日志写入到数据库。
2、日志队列(内存队列和磁盘队列)。
3、灵活的模板机制,可以得到多种输出格式。
4、插件式结构,多种多样的输入、输出模块。
5、可以把日志存放在Mysql,PostgreSQL,Oracle等数据库中
rsyslog的软件包
[root@jie1~]#rpm-qa|greprsyslog
rsyslog-5.8.10-6.el6.x86_64#软件包系统默认已经安装
[root@jie1~]#rpm-qlrsyslog#只显示了部分信息
/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
rsyslog配置文件(/etc/rsyslog.conf)的详解
####MODULES日志的模块####
$ModLoadimuxsock#imuxsock是模块名,支持本地系统日志的模块
$ModLoadimklog#imklog是模块名,支持内核日志的模块
#$ModLoadimmark#immark是模块名,支持日志标记
#$ModLoadimudp#imupd是模块名,支持udp协议
#$UDPServerRun514#允许514端口接收使用UDP和TCP协议转发过来的日志
#$ModLoadimtcp#imtcp是模块名,支持tcp协议
#$InputTCPServerRun514
####GLOBALDIRECTIVES####定义全局日志格式的指令
$ActionFileDefaultTemplateRSYSLOG_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
*.emerg*(*表示所有用户)
###记录所有的大于等于emerg级别信息,以wall方式发送给每个登录到系统的人
uucp,news.crit/var/log/spooler
####记录uucp,news.crit等存放在/var/log/spooler
local7.*/var/log/boot.log
####本地服务器的启动的所有日志存放在/var/log/boot.log中
###rsyslog.conf中日志规则的定义的格式
facitlity.priorityTarget
#facility:
日志设备(可以理解为日志类型):
==============================================================
auth#pam产生的日志,认证日志
authpriv#ssh,ftp等登录信息的验证信息,认证授权认证
cron#时间任务相关
kern#内核
lpr#打印
mail#邮件
mark(syslog)#rsyslog服务内部的信息,时间标识
news#新闻组
user#用户程序产生的相关信息
uucp#unixtounixcopy,unix主机之间相关的通讯
local1~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
二、logrotate日志滚动的介绍
所有的日志文件都会随着时间的推移和访问次数的增加而迅速增长,因此必须对日志文件进行定期清理以免造成磁盘空间的不必要的浪费,同时也加快了管理员查看日志所用的时间。
因而logrotate就非常有存在的必要了,Redhat系统中已经默然安装logrotate且利用logrotate设置了相关对rsyslog日志迅速增长的设置。
logrotate的执行由crond服务实现。
在/etc/cron.daily目录中,有个文logrotate,它实际上是个shellscript,用来启动logrotate。
logrotate程序每天由cron在指定的时间(/etc/crontab)启动。
logrotate的软件包
[root@jie1~]#rpm-qa|greplogrotate
logrotate-3.7.8-16.el6.x86_64#日志回滚的软件包默认已经安装
[root@jie1~]#rpm-qllogrotate
/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
logrotate的配置文件(/etc/logrotate.conf)详解
[root@jie1~]#sed-e'/^#/d'-e'/^$/d'/etc/logrotate.conf
weekly#每周清理一次日志文件
rotate4#保存四个轮换日志
create#清除旧日志的同时,创建新的空日志文件
dateext#使用日期为后缀的回滚文件#可以去/var/log目录下看看
include/etc/logrotate.d#包含/etc/logrotate.d目录下的所有配置文件
/var/log/wtmp{#对/var/log/wtmp这个日志文件按照下面的设定日志回滚
monthly#每月轮转一次
create0664rootutmp#设置wtmp这个日志文件的权限,属主,属组
minsize1M#日志文件必须大于1M才会去轮换(回滚)
rotate1#保存一个轮换日志
}
/var/log/btmp{
missingok#如果文件丢失不报错
monthly
create0600rootutmp
rotate1
}
[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.pid2>/dev/null`2>/dev/null||true
endscript
}
三、rsyslog的存储途径
a)日志存储在指定的文件中
[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
b)日志存储在指定的rsyslog服务器中
rsyslog客户端的配置:
[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~]#servicersyslogrestart
Shuttingdownsystemlogger:
[OK]
Startingsystemlogger:
[OK]
rsyslog服务器的配置:
[root@jie1~]#grep-v"^#"/etc/rsyslog.conf|grep-v"^$"
######修改配置文件只需开启两个模块和协议支持的端口
$ModLoadimuxsock#providessupportforlocalsystemlogging(e.g.vialoggercommand)
$ModLoadimklog#provideskernelloggingsupport(previouslydonebyrklogd)
$ModLoadimudp#开启支持upd的模块
$UDPServerRun514#允许接收udp514的端口传来的日志
ModLoadimtcp#开启支持tcp的模块
$InputTCPServerRun514#允许接收tcp514的端口传来的日志
$ActionFileDefaultTemplateRSYSLOG_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
$templateSpiceTmpl,"%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~]#servicersyslogrestart
Shuttingdownsystemlogger:
[OK]
Startingsystemlogger:
[OK]
[root@jie1~]#
c)日志存储在指定的数据库服务器中
思路:
1、安装mysql服务器,且要安装rsyslog连接mysql的驱动
2、解决生成rsyslog服务器的日志特定的格式,
3、在rsyslog配置文件中加载连接mysql的模块,把日志存储到mysql中
rsyslog+Mysql服务器端的配置:
[root@jie1log]#yum-yinstallmysql-serverrsyslog-mysqlmysql
#安装mysql服务器和rsyslog连接mysql的驱动
[root@jie1~]#rpm-qlrsyslog-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~]#servicemysqldstart
Startingmysqld:
[OK]
[root@jie1~]#mysqladmin-urootpasswordredhat
#设置mysql的密码
[root@jie1~]#mysql-uroot-p
Enterpassword:
#登录mysql服务器
mysql>showdatabases;#显示数据库服务器中没有日志的数据库
+--------------------+
|Database|
+--------------------+
|information_schema|
|mysql|
|test|
+--------------------+
3rowsinset(0.00sec)
mysql>\q
Bye
[root@jie1~]#cd/usr/share/doc/rsyslog-mysql-5.8.10/
#日志文件sql脚本的路径
[root@jie1rsyslog-mysql-5.8.10]#ls
createDB.sql
[root@jie1rsyslog-mysql-5.8.10]#mysql-uroot-pEnterpassword:
#导入日志文件的sql脚本,生成日志文件的数据库
[root@jie1rsyslog-mysql-5.8.10]#mysql-uroot-p
Enterpassword:
mysql>showdatabases;
+--------------------+
|Database|
+--------------------+
|information_schema|
|Syslog|
|mysql|
|test|
+--------------------+
4rowsinset(0.01sec)
mysql>useSyslog;#Syslog即是记录日志文件的数据库
Readingtableinformationforcompletionoftableandcolumnnames
Youcanturnoffthisfeaturetogetaquickerstartupwith-A
Databasechanged
mysql>showtables;
+------------------------+
|Tables_in_Syslog|
+------------------------+
|SystemEvents|
|SystemEventsProperties|
+------------------------+
2rowsinset(0.00sec)
mysql>grantallonSyslog.*to'syslogroot'@'127.0.0.1'identifiedby'syslogpass';#设置用户访问数据库服务器中Syslog数据库的用户名和密码
QueryOK,0rowsaffected(0.00sec)
mysql>grantallonSyslog.*to'syslogroot'@'172.16.22.1'identifiedby'syslogpass';
QueryOK,0rowsaffected(0.04sec)
mysql>flushprivileges;#重读授权表,及时生效
QueryOK,0rowsaffected(0.00sec)
mysql>\q
Bye
[root@jie1rsyslog-mysql-5.8.10]#cd/
[root@jie1/]#grep-v"^$"/etc/rsyslog.conf|grep-v"^#"
#####vim/etc/ryslog.conf################################