在我们的运维工作中,常常会对系统上的日志进行收集,手动管理少量的几台服务器的日志收集没有太大难度,但是企业当中批量的管理成千上万台服务器的时候,这时候想一台台的收集日志未免太浪费时间了,这时候我们需要一个批量管理日志的系统来解决这一难题,今天我给大家带来的使用
@H_404_3@
1、syslog介绍
日志服务在Centos5上位syslog,随着系统版本的升级之后,日志服务改为rsyslog,rsyslog是syslog的升级版,提供了许多高级的特性。syslog由klogd和syslogd组成,klogd记录的是kernel产生的日志信息,而syslogd是系统上的一些普通信息,rsyslog和syslog的整体框架相同,只不过是rsyslog有了一些高级的特性。
2、rsyslog的特性
Multi-threading 支持多线程工作模型@H_404_3@ TCP,SSL,TLS,RELP 支持ssl加密@H_404_3@ MysqL,Postgresql,Oracle and more 可以将日志放入到数据库当中@H_404_3@ Filter any part of syslog message 可以过滤日志信息的任何部分@H_404_3@ Fully configurable output format 完全可配置的输出模式@H_404_3@ Suitable for enterprise-class relay chains 适用于企业级的中继链
@H_404_3@
3、facility设施,从功能或程序上对日志进行分类,并有专门的工具负责记录其日志
auth 认证信息@H_404_3@ authpriv 授权信息@H_404_3@ cron 计划任务信息@H_404_3@ daemon 守护进程信息@H_404_3@ kern 内核信息@H_404_3@ lpr 打印机信息@H_404_3@ mail 邮件信息@H_404_3@ mark 防火墙标记信息@H_404_3@ news 新闻组信息@H_404_3@ security (same as auth) 安全信息@H_404_3@ syslog 系统日志@H_404_3@ user 用户相关信息@H_404_3@ uucp unix间复制信息@H_404_3@ local0 through local7: 8 customed facility 用户自定义的日志类,分为7个级别
4、priority:级别
debug:调试级别,所有信息都会记录@H_404_3@
info: 普通信息,比debug级别高@H_404_3@
notice :通知信息,比info级别高@H_404_3@
warning,warn :警告信息@H_404_3@
err,error:错误信息,某个功能出现问题,不影响使用@H_404_3@
alert:系统出现严重问题,不立即处理会有严重后果@H_404_3@
emerg:系统将要挂掉
注意:级别越低记录的信息将会越详细,占用的空间也将越大
@H_404_3@
4、target日志存放目标
文件 如/var/log/messages
用户 *表示所有用户,也可以发给指定的用户@H_404_3@
日志服务器 @10.1.0.1
管道 |command 交给特定的命令处理@H_404_3@
facility.priority target@H_404_3@ mail.info /var/log/maillog info及info以上的级别记录 @H_404_3@ mail.=info 仅info级别记录@H_404_3@ mail.!=info 除了info级别以外的都记录
mail.!info 除了info级别以下的记录其他都记录
*.info 所有设施的info级别记录@H_404_3@ mail,news,info 两个设施的info
@H_404_3@
5、rsyslog的配置
rsyslog的配置文件在/etc/rsyslog.conf及/etc/rsysloge.d/*.conf
/etc/rsyslog.conf分为四个区域
MODULES syslog的模块@H_404_3@
GLOBAL 全局定义,记录的格式等等@H_404_3@
RULES记录日志相关@H_404_3@
begin forwarding rule 一些转发的记录信息
我们主要关心的事RULES这个区域,要想使用rsyslog记录特定类,级别的日志,就需要在RULES中定义
日志信息格式@H_404_3@ 时间 主机 进程(PID) 事件@H_404_3@ Aug 30 10:14:16 server kernel: EXT4-fs (dm-7): mounted filesystem with ordered data mode. Opts:
@H_404_3@
通配机制
*:所有级别@H_404_3@
,:列表如a,b,c表示三个级别@H_404_3@
!:取反
@H_404_3@
loganalyzer的介绍
loganalyzer是一块web界面的日志分析工具,可以分析MysqL中的日志信息,有PHP编写,依赖于lamp平台,要想将日志写入到MysqL中,需要安装rsyslog-MysqL工具,并启用rsyslog的mMysqL模块
@H_404_3@
6、环境部署
操作系统:CentOS6.8
rsyslog:系统默认安装
loganalyzer:logananlyzer-3.6.4
LAMP:httpd.2.4,MysqL-5,1,PHP-5.3(我这里就直接二进制安装)
6.1、关闭selinux和iptables,默认这两项都是开启的
setenforce 0 @H_404_3@
service iptables stop
如果不关闭iptables,写下规则
iptables -A INPUT -p udp --dport 514 -j ACCEPT @H_404_3@
iptables -P OUTPUT ACCEPT @H_404_3@
iptables -A INPUT -p tcp --dport 80 -j ACCEPT @H_404_3@
iptables -P OUTPUT ACCEPT @H_404_3@
6.2、安LAMP
yum -y install httpd PHP PHP-MysqL MysqL MysqL-server @H_404_3@
启动服务
service httpd start @H_404_3@
service MysqLd start @H_404_3@
@H_404_3@
@H_404_3@
6.3、配置rsyslog
#yum -y install rsyslog rsyslog-MysqL
注:rsyslog-MysqL为rsyslog将日志传送到MysqL数据库的一个模块,这里必须安装
MysqL< /usr/share/doc/rsyslog-MysqL-5.8.10/createDB.sql 导入数据库就是在Syslog数据库当中 创建两张表
MysqL>GRANT ALL ON Syslog.* TO 'loguser'@'localhost' IDENTIFIED BY 'logpass';
MysqL>GRANT ALL ON Syslog.* TO 'loguser'@'127.0.0.1' IDENTIFIED BY 'logpass';
MysqL>FLUSH PRIVILEGES;
MysqL>quit
配置服务支持rsyslog-MysqL模块,并开启UDP服务端口获取网内其他linux系统日志
vim /etc/rsyslog.conf @H_404_3@
在#### MODULES ####下添加
注意:模块必须要写在MODULES里不然最后结果一直出不来
#### RULES ####z在下面添加要记录的日志
*.* :omMysqL:127.0.0.1,Syslog,loguser,logpass
注:127.0.0.1本地回环地址,Syslog为数据库名,loguser为数据库用户,logpass为数据库用户的密码@H_404_3@
开启一下几行@H_404_3@
$ModLoad imudp@H_404_3@ $UDPServerRun 514@H_404_3@@H_404_3@重启服务
service rsyslog restart @H_404_3@
@H_404_3@
7、配置loganalyzer
7.1首先去官网下载安装包@H_404_3@
#wget http://download.adiscon.com/loganalyzer/loganalyzer-3.6.4.tar.gz
7.2解压@H_404_3@
#tar xf loganalyzer-3.6.4.tar.gz
#cd loganalyzer-3.6.4
#mkdir /var/www/html/loganalyzer
#mv src/* /var/www/html/loganalyzer/@H_404_3@ #mv contrib/*.sh /var/www/html/loganalyzer/@H_404_3@ #cd /var/www/html@H_404_3@ #chmod u+x loganalyzer/*.sh@H_404_3@ #./configure.sh @H_404_3@ #./secure.sh@H_404_3@ #chmod 666 config.PHP @H_404_3@ #chown -R apache.apache * @H_404_3@ 删除那两个脚本
注:两个脚本的执行实际在改目录下创建cofig.PHP文件@H_404_3@
7.3初始化
在浏览器中输入http://10.1.252.100/loganalyzer@H_404_3@
@H_404_3@
2、next
@H_404_3@
3、next
@H_404_3@
注:若点击next报错,后台执行如下命令继续
ln -s /var/lib/MysqL/MysqL.sock/tmp/MysqL.sock
@H_404_3@
4、开始写入数据库,next
5、提示写入成功,next
6、设置管理员账户,配置完毕next
@H_404_3@
7、设置监控日志保存到MysqL数据库中,按照如图配置next
@H_404_3@
8、完成配置@H_404_3@
9、进入登录界面
10、进入主界面
至此,整个配置就完成