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