1、简介:
随着机房内的服务器和网络设备增长,日志管理和查询就成了让系统管理员头疼的事。php
系统管理员遇到的常见问题以下:html
一、平常维护过程当中不可能登陆到每一台服务器和设备上去查看日志;
二、网络设备上的存储空间有限,不可能存储日期太长的日志,而系统出现问题又有多是好久之前发生的某些操做形成的;
三、在某些非法***的状况下,***者通常都会清除本地日志,清除***痕迹;
四、zabbix等监控系统没法代替日志管理,没法监控如系统登陆、计划任务执行等项目。前端
基于上述缘由,在当前的网络环境中搭建一台用于日志集中管理的Rsyslog日志服务器就显得十分有必要了。mysql
Rsyslog服务的优势以下:linux
一、Rsyslog服务器能够大多数的网络设备支持,在网络设备的系统设备选项中大多都有远程日志服务的配置选项。只须要填写上IP地址和端口(大多数设备已经默认是514了),而后肯定就能够了;
二、Linux服务器只须要在本地的Rsyslog服务配置中加入简单的一行就能够将日志发送到日志服务器,布署和配置起来十分简单;
三、经过软件(如evtsys)也能够支持Windows服务器,布署和配置也不是很难,可是有些软件是要收费的;
四、搭配前端的loganalyzer等软件,能够轻松实现图形化管理和查询日志。sql
2、系统环境及软件版本:数据库
Rsyslog_server: CentOS7.2centos
Rsyslog_server IP:192.168.253.160浏览器
Rsyslog_client: CentOS7.2 + Windows7bash
所用软件:
Rsyslog Version: rsyslog-7.4.7-12.el7.x86_64
LogAnalyzer Version: loganalyzer-3.6.5.tar.gz
MySQL Version:MySQL5.7
Httpd Version:httpd-2.4.6-40.el7.centos.x86_64
PHP Version:php-5.4.16-36.el7_1.x86_64
3、环境准备:
3.1 关闭防火墙:
# systemctl stop firewalld
3.2 将SELINUX设置为disabled
# setenforce 0
# sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config
4、配置LAMP环境:
4.1 安装MySQL,因为CentOS7默认会安装Mariadb,所以使用MySQL官方提供快速的安装方法,地址:
# mkdir /home/rsyslog_server/tools -p #建立下载文件存放目录
# cd /home/rsyslog_server/tools
# yum install wget -y
# wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
# rpm -Uvh mysql57-community-release-el7-8.noarch.rpm #安装MySQL官方yum仓库
# yum install mysql-community-server -y #安装MySQL
# systemctl start mysqld.service
# systemctl status mysqld.service
# grep 'temporary password' /var/log/mysqld.log #查看初始密码
# mysql -u root -p
>ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
#更改密码,密码须要符合如下规则:至少一个大写字母,一个小写字母,一个数字,一个特殊字符,并且密码长度须要超过8位
4.2 安装Apache及PHP
# yum install httpd -y
# yum install php php-gd php-xml php-mysql -y
4.3 启动服务并加入开机自启动:
# systemctl start httpd.service
# systemctl enable httpd.service
# systemctl start mysqld.service
# systemctl enable mysqld.service
4.4 测试PHP环境
# vi index.php
phpinfo()
?>
5、检查并安装服务端软件
5.1 检查是否安装了rsyslog软件
# rpm -qa rsyslog #CentOS7默认会安装rsyslog
5.2 安装rsyslog 链接MySQL数据库的模块
# yum install rsyslog-mysql -y #rsyslog使用此模块将数据传入MySQL数据库,必须安装
6、配置服务器端
6.1 导入rsyslog-mysql 数据库文件
# cd /usr/share/doc/rsyslog-7.4.7/
# mysql -uroot -p
# Enter password:
6.2 登陆数据库查看:
mysql> show databases;
mysql> show tables;
导入数据库操做建立了Syslog 库并在该库中建立了两张空表SystemEvents 和SystemEventsProperties。
6.3 在MySQL下建立rsyslog用户并受权:
mysql> grant all on Syslog.* to rsyslog@'localhost' identified by 'MyNewPass4!';
mysql> flush privileges;
mysql> exit
6.4 配置服务端支持rsyslog-mysql 模块,并开启UDP服务端口获取网内其余LINUX系统日志;
# vi /etc/rsyslog.conf #按以下进行更改
#### MODULES ####
$Modload ommysql
*.* :ommysql:localhost,Syslog,rsyslog,MyNewPass4!
#localhost 表示本地主机,Syslog 为数据库名,rsyslog 为数据库的用户,MyNewPass4!为该用户密码。
$ModLoad immark # immark是模块名,支持日志标记
$ModLoad imudp # imupd是模块名,支持udp协议
$UDPServerRun 514 #容许514端口接收使用UDP和TCP协议转发过来的日志
6.5 重启rsyslog服务
# systemctl restart rsyslog.service
7、配置客户端
7.1 检查客户端有没有安装rsyslog
# rpm -qa rsyslog
7.2 配置rsyslog客户端发送本地日志到服务端
# vi /etc/rsyslog.conf *.* @192.168.253.160:514 #在文件结尾处增长此内容
7.3 重启rsyslog服务
# systemctl restart rsyslog.service
7.4 编辑/etc/bashrc,将客户端执行的全部命令写入系统日志/var/log/messages中
# vi /etc/bashrc
export PROMPT_COMMAND='{ msg=$(history 1 | { read x y; echo $y; });logger "[euid=$(whoami)]":$(who am i):[`pwd`]"$msg"; }' #在结尾处加上此内容
设置使其生效
# source /etc/bashrc
8、测试rsyslog_server能否正常接收rsyslog_client的日志
rsyslog_client执行如下操做:
rsyslog_server查看:
说明服务端能够正常接收客户端的日志。
9、安装LogAnalyzer
# cd /home/rsyslog_server/tools/
# tar zxf loganalyzer-3.6.5.tar.gz
# cd loganalyzer-3.6.5
# mkdir -p /var/www/html/loganalyzer# cp -a src/* /var/www/html/loganalyzer/
10、在浏览器中进行安装LogAnalyzer
提示无配置文件,点击here按钮生成;
10.2 点击next进行系统环境测试:
此处提示没有config.php文件,使用contrib中的configure.sh脚本可生成;
# cd contrib/
# cp configure.sh /var/www/html/loganalyzer/
# cd /var/www/html/loganalyzer/
# sh configure.sh
此部分操做在/var/www/html/loganalyzer/目录下建立config.php文件并配置权限为666,也可使用mkdir及chmod命令执行。
10.3 继续下一步,填写数据库信息
点击next生成数据库中的表;
10.4 设置管理员
10.5 建立第一个系统日志source
10.6 完成
Rsyslog + LogAnalyzer 日志服务器部署完毕,可根据须要进行设置。
参考:http://www.cnblogs.com/mchina/p/linux-centos-rsyslog-loganalyzer-mysql-log-server.html