CentOS下使用rsyslog+loganalyzer配置日志服务器及Linux客户端配置

一、前言

随着机房内服务器及网络设备的增加,日志管理及查询成了运维人员较头疼的事。

系统管理员遇到的常见问题如下:

日常维护过程中不可能登录到每一台服务器和设备上去查看日志;

网络设备上的存储空间有限,不可能存储日期太长的日志,而系统出现问题又有可能是很久以前发生的某些操作造成的;

在某些非法入侵的情况下,入侵者一般都会清除本地日志,清除入侵痕迹;

zabbix等监控系统无法代替日志管理,无法监控如系统登录、计划任务执行等项目。

基于上述原因,在当前的网络环境中搭建一台用于日志集中管理的Rsyslog日志服务器就显得十分有必要了。

Rsyslog服务的优点如下:

Rsyslog服务器可以大多数的网络设备支持,在网络设备的系统设备选项中大多都有远程日志服务的配置选项。只需要填写上IP地址和端口(大多数设备已经默认是514了),然后确定就可以了;

Linux服务器只需要在本地的Rsyslog服务配置中加入简单的一行就可以将日志发送到日志服务器,布署和配置起来十分简单;

通过软件(如evtsys)也可以支持Windows服务器,布署和配置也不是很难,但是有些软件是要收费的;

搭配前端的loganalyzer等软件,可以轻松实现图形化管理和查询日志。

二、系统配置

2.1 环境说明

Server Version: CentOS release 6.9 (Final)
IP: 192.168.223.15
Rsyslog Version: 7.4.10
LogAnalyzer Version: loganalyzer-4.1.5.tar
MySQL Version: 5.1.73
Httpd Version: 2.2.15
PHP Version: 5.3.3
2.2 环境准备
2.2.1 关闭防火墙
service stop iptables
2.2.2 禁用selinux
setenforce 0
sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/sysconfig/selinux
2.3 Rsyslog软件升级
因为Centos6.9版本下Rsyslog软件版本默认为5.8.10,建议升级该软件使用,具体操作如下。
首先移除rsyslog旧版本
yum -y remove rsyslog
然后再重新安装rsyslog7新版本
yum -y install rsyslog7 rsyslog7-mysql rsyslog7-gnutls rsyslog7-gssapi rsyslog7-relp
重新安装移除rsyslog时自动删除的依赖软件包
yum -y install cronie cronie-anacron crontabs redhat-lsb redhat-lsb-compat redhat-lsb-core redhat-lsb-graphics redhat-lsb-printing sysstat
设置rsyslog系统服务自动启动
chkconfig rsyslog on
service rsyslog start
2.4 LAMP环境配置
2.4.1 安装LAMP环境
yum -y install mysql-server httpd php php-mysql php-gd php-xml php-pear
2.4.2 启动LAMP相关服务并配置
chkconfig httpd on
service httpd start
chkconfig mysqld on
service mysqld start
2.4.3 MySQL数据库初始化配置
修改my.conf配置文件
vim /etc/my.conf
增加默认语言及设置默认数据引擎等配置
[mysqld]
character-set-server=utf8
collation_server=utf8_general_ci
skip-character-set-client-handshake
default-storage-engine=INNODB
innodb_file_per_table=1
[mysql]
default-character-set=utf8
[client]
default-character-set=utf8
2.4.4 LAMP环境测试
cd /var/www/html
vi phpinfo.php
phpinfo();
?>
2.5 Rsyslog环境配置
2.5.1 rsyslog数据库配置
进入rsyslog7-mysql文档目录,导入数据库创建脚本
cd /usr/share/doc/rsyslog7-mysql-7.4.10
mysql -u root -p < createDB.sql
Enter password:
2.5.2 Rsyslog数据库确认

登录数据库,查看并确认Rsyslog数据库创建成功,并创建了SystemEvents和

SystemEventsProperties两张空表。

Windows服务器rsync配置ssh_linux日志客户端配置

2.5.3 创建syslog授权用户

GRANT ALL ON Syslog.* TO 'syslog'@'localhost' IDENTIFIED BY 'Nu3g2_MoTqVA';
FLUSH PRIVILEGES;
2.5.4 配置Rsyslog服务端
配置rsyslog支持rsyslog-mysql模块,启动udp/tcp等服务端口获取其它系统日志。
vim /etc/rsyslog.conf
增加以下配置启动mysql模块支持和开启tcp/udp端口
$ModLoad ommysql
*.* :ommysql:localhost,Syslog,syslog,Nu3g2_MoTqVA
#localhost 表示本地主机,Syslog 为数据库名,syslog 为数据库的用户,Nu3g2_MoTqVA为该用户密码。
$ModLoad imudp
$UDPServerRun 514
$ModLoad imtcp
$InputTCPServerRun 514
$AllowedSender UDP,127.0.0.1,192.168.223.0/24
$AllowedSender TCP,127.0.0.1,192.168.223.0/24
#192.168.223.0/24为允许接受发来的某个网段IP
保存rsyslog.conf配置文件后重启rsyslog服务
service rsyslog restart
2.5.5 配置Rsyslog客户端
检查确认rsyslog是否存在,如无则安装
rpm -qa | grep rsyslog
yum -y install rsyslog
修改rsyslog.conf配置文件并增加以下配置
vim /etc/rsyslog.conf
*.* @192.168.223.155:514
#在最后一行增加 *.* @serverip:514,serverip为日志服务器ip
保存配置后重启rsyslog服务
service rsyslog restart
2.5.6 测试rsyslog服务端是否可正常接收client日志
首先在本机或客户端编辑bashrc配置文件,使操作日志都写入到messages日志中
vim /etc/bashrc
export PROMPT_COMMAND='{ msg=$(history 1 | { read x y; echo $y; });logger "[euid=$(whoami)]":$(who am i):[`pwd`]"$msg"; }'
使其配置生效
source /etc/bashrc
然后随便操作一下,使操作日志写入到/var/log/messages中
ls /tmp
tail /var/log/messages

确认日志文件和服务端数据表中均有数据即表示配置正常

Windows服务器rsync配置ssh_mysql_02

Windows服务器rsync配置ssh_mysql_03

2.6 Loganalyzer安装配置

2.6.1 下载安装Loganalyzer软件

wget http://download.adiscon.com/loganalyzer/loganalyzer-4.1.5.tar.gz
tar -xf loganalyzer-4.1.5.tar.gz
cd loganalyzer-4.1.5
mkdir -p /var/www/html/loganalyzer
cp -a src/* /var/www/html/loganalyzer
cp -a contrib/* /var/www/html/loganalyzer
初始化配置loganalyzer
cd /var/www/html/loganalyzer/
chmod u+x *.sh
./configure.sh
#./configure.sh脚本是生成空的loganalyzer配置文件
#./secure.sh脚本是设置loganalyzer配置文件的权限的
2.6.2 在浏览器中配置Loganalyzer
在浏览器打开http://192.168.223.155/loganalyzer

提示无配置,点击here按钮生成

Windows服务器rsync配置ssh_数据库_04

点击下一步进行环境测试

Windows服务器rsync配置ssh_mysql_05

根据测试结果显示配置文件无权限修改(如果提示无config.php配置文件,则使用./configure.sh脚本进行配置文件生成)

Windows服务器rsync配置ssh_linux日志客户端配置_06

按测试结果重新设置config.php配置文件权限后,重新进行测试

Windows服务器rsync配置ssh_analyzer_07

然后点击下一步配置loganalyzer数据库相关信息

登录到数据库创建loganalyzer数据库及授权用户

CREATE DATABASE loganalyzer;
GRANT ALL ON loganalyzer.* TO 'loganalyzer'@'localhost' IDENTIFIED BY 'CmjBFxy_aydR';
FLUSH PRIVILEGES;

Windows服务器rsync配置ssh_数据库_08

点击一步继续,根据提示生成loganalyzer相关表

Windows服务器rsync配置ssh_数据库_09

Windows服务器rsync配置ssh_数据库_10

点击下一步,创建loganalyzer管理帐户

Windows服务器rsync配置ssh_mysql_11

管理帐户创建成功后,根据提示添加日志数据源

Windows服务器rsync配置ssh_analyzer_12

最后完成loganalyzer软件配置

Windows服务器rsync配置ssh_analyzer_13

点击here进入首页使用管理帐户登录

Windows服务器rsync配置ssh_mysql_14

登录成功后,主页如下所示。

Windows服务器rsync配置ssh_analyzer_15

2.6.3 loganalyzer安全加固

修改config.php配置文件权限

cd /var/www/html/loganalyzer
./secure.sh