一、随着管理的服务器与网络设备的增加,系统日志的采集与收集变得繁琐起来。此时在一台服务器上构建集中日志管理服务器,实现从其他服务器上采集到的系统日志发送到日志管理服务器进行统一管理与存储就变得很有必要了。
日志管理服务器可以解决以下问题:
1、不再需要逐台服务器去查询系统日志文件
2、将日常的系统信息存储在mysql数据中,方便进行查询、统计、审计过滤等操作
3、通过其他软件可以实现扩平台日志收集,如使用evtsys采集window日志发送到linux日志服务器上
4、在linux下rsyslog配置比较简单,维护较为容易。
5、rsyslog+loganalyzer可以实现前端图形化查询等操作.

二、rsyslog的安装与配置

使用yum安装相关程序包:

1、安装LAMP:yum install mysql-server,mysql-devel, httpd,php-mysql

php ,php-gd, php-xml

2、安装rsyslog及驱动 libcurl-devel ,net-snmp-devel ,rsyslog, rsyslog-mysql

3、阿里云服务器上自带的yum仓库源上默认没有mysql-server,网上下载mysql57-community-release-el7-11.noarch.rpm并使用rpm安装:rpm -ivh mysql57-community-release-el7-11.noarch.rpm

三、启动mysql服务:

1、初次启动时会在/var/log/mysqld.log随机生成root密码,使用grep 'password' '/var/log/mysqld.log'查看:

centos7 rsyslog centos7 rsyslog SERVER_运维


2、使用刚才找到的密码登录并修改root密码:

mysqladmin -u root password 'yourpassword'.

假设将root密码设为123456:

set password for root@'localhost'=password('12345678');

将会提示错误信息:

centos7 rsyslog centos7 rsyslog SERVER_运维_02


原因为mysql默认参数validate_password_policy=medium,将这个值设为0,set global validate_password_policy=0;修改就能使用较为简单的密码。

3、设置mysql默认字符集为UTF-8:编辑/etc/my.cnf文件,在[mysqld]下添加一行:character-set-server = utf8

skip-name-resolve=on ###禁止域名解析

然后重启mysql服务:systemctl restart mysqld

4、使用刚才安装的rsyslog-mysql程序包文档目录下的sql文件创建rsyslog数据库:

使用rpm -ql rsyslog-mysql 查询并找到该sql文件

centos7 rsyslog centos7 rsyslog SERVER_数据库_03


使用该文件创建数据库 mysql -u root -p < mysql-createDB.sql

创建的数据库名为:syslog

5、mysql中创建数据库Syslog的使用用户syslog并授权:

grant all on Syslog.* to 'syslog'@'127.0.0.1';

flush privileges;6、修改rsyslog配置文件:

vim /etc/sysconfig/rsyslog

添加两行:

SYSLOGD_OPTIONS="-c 2 -r -x -m 180"

KLOGD_OPTIONS="-x"

centos7 rsyslog centos7 rsyslog SERVER_centos7 rsyslog_04

编辑rsyslog主配置文件/etc/rsyslog.conf:

在#### MODULES ####下进行以下操作:

取消$ModLoad imudp、$UDPServerRun 514 这2行的注释表示通过UPD协议的514端口接收日志文件。

centos7 rsyslog centos7 rsyslog SERVER_php_05

添加$ModLoad ommysql 一行 #######配置服务端支持rsyslog-mysql模块

添加. :ommysql:127.0.0.1,Syslog,rsyslog,123456789

centos7 rsyslog centos7 rsyslog SERVER_运维_06


重启rsyslog:

systemctl restart rsyslog四、loganalyzer的配置

1、在apache的默认documentRoot目录下创建loganalyzer目录:

mkdir -p /var/www/html/loganalyzer

创建loganalyzer日志目录:

mkdir -p /var/log/httpd/loganalyzer

2、官网上下载Loganalyzer解压到/usr/loca/src下:

wget http://download.adiscon.com/loganalyzer/loganalyzer-4.1.6.tar.gzcd /usr/local/src

tar -zxvf loganalyzer-4.1.6.tar.gz

在解压后的loganalyzer-4.1.6目录内复制src/与contrib/下的所有文件到/var/www/html/loganalyzer目录下:

cp -r src/* /var/www/html/loganalyzer

cp -r contrib/* /var/www/html/loganalyzer

centos7 rsyslog centos7 rsyslog SERVER_数据库_07

3、在/var/www/html/loganalyzer下创建config.php并设置权限:
touch config.php
chmod 666 config.php

4.在/etc/httpd/conf/httpd.conf文件为找到并修改配置为:
Listen 8080
DocumentRoot "/var/www/html/loganalyzer"
ErrorLog /var/log/httpd/loganalyzer/error.log
CustomLog /var/log/httpd/loganalyzer/access_log combined
重启httpd: systemctl restart httpd

5、浏览器上输入日志服务器ip+端口号:

centos7 rsyslog centos7 rsyslog SERVER_mysql_08


点击next 到step3:

centos7 rsyslog centos7 rsyslog SERVER_php_09


配置后数据库用户及密码,点击next。step6:创建loganalyzer登录用户:

centos7 rsyslog centos7 rsyslog SERVER_运维_10

step7:

centos7 rsyslog centos7 rsyslog SERVER_运维_11


点击next并登录即可完成初始化配置:

centos7 rsyslog centos7 rsyslog SERVER_数据库_12

6、可以在网上搜索下载loganalyzer3.6.5 中文语言包并将解压后的3个文件放在/var/www/html/loganalyzer/lang下并重启rsyslog即可使用loganalyzer中文界面:

centos7 rsyslog centos7 rsyslog SERVER_运维_13

7.修改客户端服务器/etc/rsyslog.conf文件实现将日志传输至构建好的日志服务器:

centos7 rsyslog centos7 rsyslog SERVER_mysql_14


在#### RULES ####中添加配置:

@表示使用upd协议传输文件,划线部分为搭建的集中日志服务器ip.

也可以使用. @ip 表示所有日志文件都传输至日志服务器

8、刷新loganalyzer页面就可看到客户端服务器的日志信息也被记录到数据库中,构建完成.