why->what->where->when->who->how
1.为什么要进行日志收集?为什么要用到rsyslog?
日志是我们对系统和应用程序的运行状况分析的根本依据,同时一些日志也有其特殊的作用,例如mysql的二进制日志和事务日志。因此要进行日志收集,为了避免重复的进行日志系统的实现,因此在linux发行版中提供了系统日志收集-rsyslogd
2.什么是rsyslog?
rsyslog的前身是syslog,其是一个日志收集器,用于应用程序日志收集和内核日志收集。
rsyslog相比syslog的改进:
(1)支持为远程主机收集日志,以多线程工作,监听在tcp/udp的514端口
(2)强大的过滤器,可实现过滤日志信息中的任何部分
(3)传输过程支持ssl加密
(4)支持将日志存储在mysql,pgsql等关系型数据库中
3.什么地方会用到rsyslog?
在应用程序没有实现日志收集系统的时候,可以通过rsyslog记录日志。
在网络设备上的日志需要集中管理时,通过rsyslog服务器进行统一收集。
4.什么时候会用到rsyslog?
对于一个应用程序而来,其开始运行就需要记录日志,如果本身没有实现日志记录的功能,就可以借助于rsyslog
在进行日志的集中收集的时候
5.怎么使用rsyslog?
rsyslog使用涉及的概念:
facility:可理解为设施,作用是在功能或程序上对日志进行分类
//多个程序产生的日志可设置为一个facility,由rsyslog统一从facility对这些日志完成收集
facility有:auth,authprvi,cron,mail,kern,mark,user,uucp
local0-local7(用户自定义使用)
priority:日志信息的优先级
日志的优先级列表:debug,info,warn,notice,error,alert,emerg
rsyslog软件包系统会自动安装,并以守护进程的形式开机自动运行,其主配置文件是/etc/rsyslog.conf
配置文件分为三段组成:
###MODULES###
加载哪些模块
###GLOBAL DIRECTORY###
###RULES###
定义日志收集规则
facility:priority target
target可以是:文件(/var/log)
@host(日志服务器)
:mysql:ip,db,user,pass
rsyslog+mysql+loganalyzer实现日志展示收集?
1.准备好mysql
yum -y install mysql-server
2.配置rsyslog
(1)安装rsyslog-mysql //rsyslog连接mysql的模块
(2)rsyslog.conf的###MODULE###段中:
$ModLoad ommysql
###RULE###段中
facility:priority :ommysql:localhost:Syslog:username:password
(3)重启rsyslog服务
(4)初始化记录数据库,安装rsyslog-mysql生成一个sql文件,导入到mysql中,并做好授权
mysql -uusername -hlocalhost -ppasswd < /usr/share/doc/rsyslog-mysql-5.3.10-creatdb.sql
3.安装loganalyzer
loganalyzer是一个php应用程序,因此需要先准备运行环境
(1)安装apache
(2)安装php
(3)测试php能否正常连接mysql
<?php
$conn=mysql_connect(‘localhost‘,‘user‘,‘pass‘);
if $conn echo "ok!";
else echo "fail!";
mysql_close()
?>
(4)解压loganlyzer到文档目录下
tar xf loganalyzer-3.6.4.tar.gz -C /var/www/html/
cd /var/www/html
ln -sv loganalyzer-3.6.4 log
cd log
mv contrib/* src
移动着两个脚本之后,除src目录之外,其他文件都用不上,可以移除
cd src
chmod 777 ./*.sh
./configure.sh //生成config.php文件
./secure.sh
在浏览器访问http://localhost/log/src/install.php进行安装即可