日志服务器
在centos7系统中,默认的日志系统是rsyslog,它是一类unix系统上使用的开源工具,用于在ip网络中转发日志信息,rsyslog采用模块化设计,是syslog的替代品。
rsyslog特点
实现了基本的syslog协议
直接兼容syslogd的syslog.conf配置文件
在同一台机器上支持多个rsyslogd进程,支持多线程
丰富的过滤功能,可以实现过滤日志信息中的任何部分,可将消息过滤后在转发
灵活的配置选项,配置文件中可以写简单的逻辑判断,自定义输出格式等
增加了重要的功能,如使用tcp进行消息传输,支持UDP,TCP,SSL,TLS,RELP
有现成的前端web展示程序
可以使用MySQL,PGSQL,Oralce实现日志存储
默认安装的rsyslog软件包提供的守护进程是rsyslog,它是一项系统的基础服务,应该设置开机运行
loganalyzer是一款syslog日志和其他网络时间数据的web前端,它提供了对日志的简单浏览、搜索、基本分析和一些图表报告的功能。数据可以从数据库或一般syslog文本文件中获取,所有loganalyzer不需要改变现有的记录架构。基于当前的日志数据,它可以处理syslog日志消息windows事件日志记录,支持故障排除,使用户能快速查找日志数据中看出问题的解决方案
loganalyzer获取客户端日志会有两种保存模式,一种是直接读取客户端/var/log目录下的日志并保存到服务端该目录下,一种是读取后保存日志服务器数据库中,这里测试的是mariadb数据库
loganalyzer采用php开发,所以服务需要php的运行环境,这里用的lamp。
其他类似的日志系统:Logrotate
静态页面
动态页面
LAMP:linux+apache/httpd+mysql+php
centos701日志服务器
centos702 应用服务器
需求:应用服务器产生的数据传输至日志服务器,用数据库存储并以图形化界面查看、管理;
配置步骤:
一、应用服务器日志同步至日志服务器
702:
1.部署应用/web服务器的rsyslog-client,messages日志发送到日志服务器
修改配置文件指定日志服务器
# vim /etc/rsyslog.conf
*.info;mail.none;authpriv.none;cron.none /var/log/messages //此约54行下加入下一行
*.info;mail.none;authpriv.none;cron.none @192.168.1.11
$ModLoad imudp //指明使用udp传输并指定端口号 约15行左右
$UDPServerRun 514
# systemctl enable rsyslog
# systemctl restart rsyslog
# yum install -y httpd
701:
# vim /etc/rsyslog.conf
$ModLoad imudp //指明使用udp传输并指定端口号
$UDPServerRun 514
# systemctl enable rsyslog
# systemctl restart rsyslog
702:
# systemctl restart httpd //重启服务,产生日志数据
701:
在日志服务器中查询web服务器同步过来的日志信息:
# tail /var/log/messages
二、日志服务器通过数据库存储web服务器的日志数据
702:
# yum install -y rsyslog-mysql
701:
# yum install -y mariadb-server mariadb
# systemctl start mariadb
# systemctl enable mariadb
创建存储日志数据的数据库:
# mysql
use mysql; //切换到mysql库
update user set password=password('admin123') where user='root'; //设置root密码为admin123
GRANT ALL ON Syslog.* TO 'Syslog'@'192.168.1.%'IDENTIFIED BY 'admin123'; //创建用户syslog,密码为admin123,并授权给syslog库的所有权限
FLUSH PRIVILEGES;
数据库优化
# vim /etc/my.cnf
skip_name_resolve=on //禁止域名解析
innodb_file_per_table=on //共享表空间转化为独立表空间
# systemctl restart mariadb
702:
可以看到连接服务器所默认的数据库和用户名信息
# less /usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql
测试连接服务器数据库:
# yum install mysql -y
# mysql -u Syslog -h 192.168.1.11 -p
导入数据到web服务器:
#mysql -u Syslog -h 192.168.1.11 -p < /usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql
修改配置文件使得数据传输至701的数据库而非/var:
# vim /etc/rsyslog.conf
$ModLoad ommysql //增加此项
*.info;mail.none;authpriv.none;cron.none :ommysql:192.168.1.11,Syslog,Syslog,admin123 //删除原来的,增加此项
# systemctl restart rsyslog //重启服务
# systemctl restart httpd //重启服务,产生日志
701:
日志服务器查看获取到的数据:
# mysql -uroot -p
show databases; //查看所有的数据库
use Syslog; //切换到syslog库
show tables; //查看表名
select count(*) from SystemEvents; //查看日志数量
select * from SystemEvents; //查看表中的日志数据
安装loganalyzer:
# mkdir /loganalyzer
# tar zxf loganalyzer-4.1.5.tar.gz
# cp -rf loganalyzer-4.1.5/src/* /loganalyzer/
# cp -rf loganalyzer-4.1.5/contrib/* /loganalyzer/
# cd /loganalyzer
# chmod +x *.sh
# ./configure.sh
# ./secure.sh
# chmod 666 config.php
# yum install -y httpd php php-mysql /LAMP需要的组件
# vim /var/www/html/index.php
<?php
phpinfo();
?>
# systemctl restart httpd
# vim /etc/php.ini
extension=php_mysqli.dll //加在约731行
验证php可用性:192.168.1.11/index.php
在http主配置文件中设置/loganalyze为网页根目录:
# vim /etc/httpd/conf/httpd.conf
DocumentRoot "/loganalyzer" //约119行,改为"/loganalyzer" 原为/var/www/html
<Directory "/loganalyzer"> //约131行,改为"/loganalyzer" 原为/var/www/html
<IfModule dir_module>
DirectoryIndex index.html index.php //164行
</IfModule>
# systemctl restart httpd
网页访问并安装:192.168.1.11
安装完成后将权限改回去:
chmod 644 /loganalyzer/config.php
中文补丁包:
# cp -rf zh/ /loganalyzer/lang/
# chmod 655 -R /loganalyzer/lang/zh
配置后的效果如下图所示