Rsyslog
ryslog 是一个快速处理收集系统日志的程序,提供了高性能、安全功能和模块化设计。rsyslog 是syslog 的升级版,它将多种来源输入输出转换结果到目的地,据官网介绍,现在可以处理100万条信息。
. 特性:1.多线程
2.支持加密协议:ssl,tls,relp
3.mysql、oracle、postgreSQL
4.等等..
日志分类(facility)
auth,authpriv,cron,daemon,kern,lpr,mail,mark,news,security,user,uucp,syslog,local0-local7
日志级别(priority)
编码 | 优先级 | 严重性 |
---|---|---|
0 | emerg(panic) | 系统不可用 |
1 | alert | 必须采取措施 |
2 | crit(critical) | 严重状况 |
3 | err | 非严重错误状况 |
4 | warning | 警告状况 |
5 | notice | 正常但重要的事件 |
6 | info | 信息性事件 |
7 | debug | 调试级别信息 |
常用参数介绍
参数 | 解释 |
---|---|
* | 所有级别 |
none | 没有级别,不记录 |
=priority | 只记录此级别,不记录上层级别 |
facility.* | 当前类型的所有级别 |
*.priority | 所有类型的当前级别及以上层级别将被记录日志 |
配置rsyslog日志服务器
安装rsyslog程序,并配置以下相关内容
shell> yum install rsyslog
shell> vim /etc/rsyslog.conf
#### MODULES ####
$ModLoad imudp
$UDPServerRun 514 开启UDP,TCP和UDP 可以共存的
$AllowedSender udp,172.16.0.0/24 #允许172.16.0网段内的主机以UDP协议来传输
$template Remote,"/data/log/%fromhost-ip%/%fromhost-ip%_%$YEAR%-%$MONTH%-%$DAY%.log" #定义模板,接受日志文件路径,区分了不同主机的日志
:fromhost-ip,!isequal,"127.0.0.1" ?Remote #过滤server 本机的日志
创建日志目录,并重启服务配置防火墙
shell> mkdir -p /data/log
shell> systemctl restart rsyslog
shell> firewall-cmd --permanent --add-port=514/udp
shell> firewall-cmd --reload
客户机安装rsyslog
shell> yum install rsyslog
编辑配置文件,将所有日志的info级别以上日志信息(mail,authpriv,cron信息除外)发送给日志服务器
shell> vim /etc/rsyslog.conf
*.info;mail.none;authpriv.none;cron.none @172.16.0.102:514
shell> systemctl restart rsyslog
在日志服务器中查看日志目录新增的日志文件
shell> ls /data/log/
172.16.0.105
shell> file /data/log/172.16.0.105/172.16.0.105_2017-06-22.log
/data/log/172.16.0.105/172.16.0.105_2017-06-22.log: ASCII text
基于LAMP和loganalyzer搭建WEB监控日志系统
安装LAMP架构,此处不做赘述
shell> yum install mariadb-server mariadb php php-mysql
安装rsyslog rsyslog-mysql
shell> yum install rsyslog rsyslog-mysql
配置数据库
shell> cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
shell> vi /etc/my.cnf
skip_name_resolve=on
innodb_file_per_table=on
数据库安装初始化(不做赘述)
shell> mysql_secure_installation
重启服务
systemctl restart mariadb
查看rsyslog-mysql库文件,以及sql脚本路径
shell> rpm -ql rsyslog-mysql
/usr/lib64/rsyslog/ommysql.so
/usr/share/doc/rsyslog-7.4.7/mysql-createDB.sql
导入sql脚本
shell> mysql -p < /usr/share/doc/rsyslog-7.4.7/mysql-createDB.sql
配置日志用户权限
MariaDB >grant all on Syslog.* to 'syslog'@'172.16.0.%' identified by 'syspass';
MariaDB >flush privileges;
配置相关服务的防火墙
shell> firewall-cmd --permanent --add-service=http
shell> firewall-cmd --permanent --add-service=mysql
shell> firewall-cmd --reload
客户端
首先确保可以用日志用户连接数据库
shell> mysql -usyslog -h172.16.0.102 -psyspass -e "show databases;" &> /dev/null && echo "ok" || echo "error"
ok
安装rsyslog以及rsyslog-mysql使日志可以发送给数据库
shell> yum install rsyslog rsyslog-mysql
shell> vi /etc/rsyslog.conf
#### MODULES ####
$ModLoad ommysql
#### RULES ####
*.info;mail.none;authpriv.none;cron.none :ommysql:172.16.0.102,Syslog,syslog,syspass
名词解释
调用的模块 | 主机地址 | 数据库 | 用户名 | 密码 |
---|---|---|---|---|
:ommysql | :172.16.0.102, | Syslog, | syslog, | syspass |
重启服务加载配置文件
shell> systemctl restart rsyslog
LAMP安装loganalyzer
loganalyzer下载地址
https://files.cnblogs.com/files/xyhome/loganalyzer-3.6.5.tar.gz
shell> tar xf loganalyzer-3.6.5.tar.gz
shell> cp loganalyzer-3.6.5/src/* /var/www/html -rf
shell> cd /var/www/html
shell> touch config.php
shell> chmod 666 config.php
安装步骤
此处显示无法显示图形,提醒安装php-gd即可显示
安装php-gd后,重启httpd服务,刷新网页即可显示