环境:Centos7.2
前言:系统日日夜夜不停地运行着,有这么一个守护进程,兢兢业业地不断记录它运行产生的日志,有不起眼的闲言碎语,值得管理员撇一眼的系统报错,也默默地接收来自进程的严厉警告,甚至在内核崩溃前夕,同样不遗余力记录着当时发生的情形。他是无言的记录者,没有特别的修辞,但他的记录的文字却掷地有声。本文的主角——rsyslog。
官方介绍rsyslog是增强型的,多线程的syslog守护进程。rsyslogd – reliable and extended syslogd.
一、rsyslog
rsyslog特性:
1.多线程
2.支持MySQL,PGSQL,Oracle等关系型数据库存储
3.强大的过滤器,实现过滤日志信息中任何部分的内容
4.自定义输出格式
yum install rsyslog 即可安装
主配置文件:/etc/rsyslog.conf,/etc/rsyslog.d/*.conf
rsyslog记录日志,分为若干信道,每个信道有细分多个信息等级
信道-facility:
auth认证
authpriv认证(私有的)
cron计划任务
daemon守护进程
kern内核
lpr打印服务
mail邮件
mark防火墙标记
news新闻组
security 安全
user用户相关
uucpUnix主机之间拷贝文件
syslog自身的记录
local0-local7 自定义的信道
信息等级-priority:越向下级别越严格
debug 有调式信息的,日志信息最多,最详细的信息
info一般信息的日志
notice具有重要性意义的普通信息
warn(warning)警告信息,需要注意
err(error)严重错误,模块不能正常工作
crit(critical)临界预警,服务或系统不能正常运行
alert告警信息,需要马上修改的错误
emerg(panic) 严重告警,内核级别错误,系统马上崩溃
配置文件分为三部分,需严格安装配置段位置添加配置
#### MODULES #### 模块配置
#### GLOBAL DIRECTIVES #### 全局指令
#### RULES #### 记录规则
其中RULES 配置段:
基本格式:facility.priority target
facility可选内容:
前面所介绍的值
* :表示通配所有facility
priority可选内容:
前面所介绍的值
* :表示通配所有级别
none :不记录日志
facility.priority 可用特别组合:
1)f1,f2,f3.pri 代表f1-f3指定的级别为pri
2)f1.pri1,f2.pri2,f3.pri3 代表分开指定级别pri
target可选内容
文件:将日志信息记录到指定的文件中;文件路径之前的“-”表示异步写入之意;
用户:将日志事件通知给指定的用户;一般指登录到当前系统上的所有用户的终端;
日志服务器:@rsyslog_server,把日志信息发往指定的日志服务器;
管道:|COMMAND
二、配置一台rsyslog收集服务器,负责记录其他主机日志
服务端:修改配置文件启用udp,tcp模块
#### modules ####
…………
# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514
# Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514
修改完成,重启服务。
systemctl restart rsyslog
客户端:
facility.priority @server_ip
三、配置rsyslog记录日志于mysql
首先准备好mysql数据库服务
(1) 安装rsyslog连接至mysql server的驱动模块;
yum install rsyslog-mysql
(2) 在mysql server准备rsyslog专用的用户账号;
mysql> GRANT ALL ON Syslog.* TO 'rsyslog'@'%.cutemsyu' IDENTIFIED BY 'rsyslogpass';
//数据库名Syslog需固定,后面mysql语句会创建该库。授权地址依照实际情况添加。
(3) 生成所需要的数据库和表;
mysql -ursyslog -prsyslogpass
#模块自带的sql语句
(4) 配置rsyslog使用ommysql模块
#### MODULES ####
……
$ModLoad ommysql
(5) 配置RULES,将所期望的日志信息记录于mysql中;
facility.priority :ommysql:DBHOST,DB,DBUSER,DBUSERPASS
//例如: *.info,authpriv.none :ommysql:node-02.cutemsyu,Syslog,rsyslog,rsyslogpass
(6) 重启rsyslog服务;
四、结合loganalyzer页面显示
loganalyzer 用于显示日志的web GUI页面,php编写。需要amp环境。
准备amp环境,mysql数据库前面已经配置好
yum install httpd php php-mysql php-gd #php-gd 为绘图所用库
tar xf loganalyzer-4.1.5.tar.gz #解压项目包
cd loganalyzer-4.1.5
cp -a src /var/www/html/log #拷贝项目下src目录至web server 目录下
cd /var/www/html/log
touch config.php #后续安装所需的配置文件
chmod 666 config.php
现在打开浏览器,输入http://web_server_ip/log 准备配置loganalyzer。
初次打开,如果配置正确,出现缺少配置文件的错误,属于正常情况,点击继续配置
一路可按需修改,next
到下图页面,
source type:MYSQL Native
table type:Monitor Ware
database name 和table name 是固定的
配置完成后,安全起见把配置文件权限做严格一些
chmod 644 config.php
至此大功告成!
原创文章,作者:cutemsyu,如若转载,请注明出处:http://www.178linux.com/53680