CentOS7下利用rsyslog+loganalyzer配置日志服务器及Linux和windows客户端配置

随着机房内的服务器和网络设备增加,日志管理和查询就成了让系统管理员头疼的事。

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

1、日常维护过程中不可能登录到每一台服务器和设备上去查看日志; 
2、网络设备上的存储空间有限,不可能存储日期太长的日志,而系统出现问题又有可能是很久以前发生的某些操作造成的; 
3、在某些非法入侵的情况下,入侵者一般都会清除本地日志,清除入侵痕迹; 
4、zabbix等监控系统无法代替日志管理,无法监控如系统登录、计划任务执行等项目。

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

Rsyslog服务的优点如下:

1、Rsyslog服务器可以大多数的网络设备支持,在网络设备的系统设备选项中大多都有远程日志服务的配置选项。只需要填写上IP地址和端口(大多数设备已经默认是514了),然后确定就可以了; 
2、Linux服务器只需要在本地的Rsyslog服务配置中加入简单的一行就可以将日志发送到日志服务器,布署和配置起来十分简单; 
3、通过软件(如evtsys)也可以支持Windows服务器,布署和配置也不是很难,但是有些软件是要收费的; 
4、搭配前端的loganalyzer等软件,可以轻松实现图形化管理和查询日志。

二、系统环境及软件版本:

    Rsyslog_server: CentOS7.2

    Rsyslog_server IP:192.168.253.160

    Rsyslog_client: CentOS7.2 + Windows7

    所用软件:

    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.1 关闭防火墙:

# systemctl stop firewalld

3.2 将SELINUX设置为disabled

# setenforce 0
# sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config

四、配置LAMP环境:

4.1 安装MySQL,由于CentOS7默认会安装Mariadb,因此使用MySQL官方提供快速的安装方法,地址:http://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/

# 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
    <?php
    phpinfo()
    ?>

在浏览器中输入http://192.168.253.160/index.php,若显示以下内容,则配置成功。

itdadao-CentOS7下利用rsyslog+loganalyzer配置日志服务器及Linux和windows客户端配置

五、检查并安装服务端软件

5.1 检查是否安装了rsyslog软件

# rpm -qa rsyslog                  #CentOS7默认会安装rsyslog

5.2 安装rsyslog 连接MySQL数据库的模块

# yum install rsyslog-mysql -y     #rsyslog使用此模块将数据传入MySQL数据库,必须安装

六、配置服务器端

6.1 导入rsyslog-mysql 数据库文件

# cd /usr/share/doc/rsyslog-7.4.7/
# mysql -uroot -p<mysql-createDB.sql
# Enter password:

6.2 登录数据库查看:

mysql> show databases;

itdadao-CentOS7下利用rsyslog+loganalyzer配置日志服务器及Linux和windows客户端配置

mysql> show tables;

itdadao-CentOS7下利用rsyslog+loganalyzer配置日志服务器及Linux和windows客户端配置

导入数据库操作创建了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 为数据库的用户,123456为该用户密码。    
    $ModLoad immark                                # immark是模块名,支持日志标记
    $ModLoad imudp                                 #imupd是模块名,支持udp协议
    $UDPServerRun 514                              #允许514端口接收使用UDP和TCP协议转发过来的日志
    #### RULES ####                                #在RULES下注释掉*.info;mail.none;authpriv.none;cron.none改为 *.info;mail.none;authpriv.none;cron.none       
    #         :ommysql:localhost,Syslog,rsyslog,MyNewPass4!
    #*.info;mail.none;authpriv.none;cron.none                /var/log/messages
    *.info;mail.none;authpriv.none;cron.none                :ommysql:localhost,Syslog,rsyslog,MyNewPass4!

6.5 重启rsyslog服务

# systemctl restart rsyslog.service

七、配置客户端

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

八、测试rsyslog_server可否正常接收rsyslog_client的日志

[root@syslog log]# mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 207
Server version: 5.7.17 MySQL Community Server (GPL)

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| Syslog             |
| mysql              |
| performance_schema |
+--------------------+
4 rows in set (0.00 sec)

mysql> use Syslog;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;
+------------------------+
| Tables_in_Syslog       |
+------------------------+
| SystemEvents           |
| SystemEventsProperties |
| logcon_charts          |
| logcon_config          |
| logcon_dbmappings      |
| logcon_fields          |
| logcon_groupmembers    |
| logcon_groups          |
| logcon_savedreports    |
| logcon_searches        |
| logcon_sources         |
| logcon_users           |
| logcon_views           |
+------------------------+
13 rows in set (0.00 sec)

mysql>  select count(*) from SystemEvents;
+----------+
| count(*) |
+----------+
|       75 |               #####这里不为零 说明mysql已经和rsyslog连接正常并接受到数据
+----------+
1 row in set (0.00 sec)

mysql>

九、安装LogAnalyzer

# cd /home/rsyslog_server/tools/
# wget http://download.adiscon.com/loganalyzer/loganalyzer-3.6.5.tar.gz
# tar zxf loganalyzer-3.6.5.tar.gz
# cd loganalyzer-3.6.5
# mkdir -p /var/www/html/loganalyzer
# cp -rf src/* /var/www/html/loganalyzer/
#cp  -rf contrib/* /var/www/html/loganalyzer

十、在浏览器中进行安装LogAnalyzer

10.1 打开浏览器,输入http://192.168.253.160/loganalyzer

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

itdadao-CentOS7下利用rsyslog+loganalyzer配置日志服务器及Linux和windows客户端配置

10.2 点击next进行系统环境测试:

itdadao-CentOS7下利用rsyslog+loganalyzer配置日志服务器及Linux和windows客户端配置

此处提示没有config.php文件,使用contrib中的configure.sh脚本可生成;

itdadao-CentOS7下利用rsyslog+loganalyzer配置日志服务器及Linux和windows客户端配置

# 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命令执行。

itdadao-CentOS7下利用rsyslog+loganalyzer配置日志服务器及Linux和windows客户端配置

10.3 继续下一步,填写数据库信息

itdadao-CentOS7下利用rsyslog+loganalyzer配置日志服务器及Linux和windows客户端配置

点击next生成数据库中的表;

itdadao-CentOS7下利用rsyslog+loganalyzer配置日志服务器及Linux和windows客户端配置

10.4 设置管理员

itdadao-CentOS7下利用rsyslog+loganalyzer配置日志服务器及Linux和windows客户端配置

10.5 创建第一个系统日志source

itdadao-CentOS7下利用rsyslog+loganalyzer配置日志服务器及Linux和windows客户端配置

itdadao-CentOS7下利用rsyslog+loganalyzer配置日志服务器及Linux和windows客户端配置

10.6 完成

itdadao-CentOS7下利用rsyslog+loganalyzer配置日志服务器及Linux和windows客户端配置

Rsyslog + LogAnalyzer 日志服务器部署完毕,可根据需要进行设置。

最后的问题

帐号登出后 再登陆loganalyzer的web页面老是提示帐号密码错误

使用phpmyadmin在Syslog数据库里更改密码加密方式为MD5

CentOS7下利用rsyslog+loganalyzer配置日志服务器及Linux和windows客户端配置

点击执行 再次登陆后正常

CentOS7下利用rsyslog+loganalyzer配置日志服务器及Linux和windows客户端配置

原创文章,作者:N22-昆山-Dexter_Wang,如若转载,请注明出处:http://www.178linux.com/67498

(0)
N22-昆山-Dexter_WangN22-昆山-Dexter_Wang
上一篇 2017-03-15
下一篇 2017-03-15

相关推荐

  • 有关磁盘管理与文件系统

    硬盘物理结构      扇区  磁头  磁道   柱面   磁道数      扇区*一个磁道上的扇区个数*磁头数=柱面      柱面*磁道数=硬盘大小      一个扇区512字节   &…

    2017-08-19
  • 网络的冰山一角

        这周我们学习了网络管理,每一天进度特别快,上课认真听了,但是感觉也只能听懂一半。所以我决定把网络管理作为这周博客写一写,这样相当于又复习了一边,能加深印象。 一、用户应用程序对网络的影响     1、批处理应用程序:无需直接人工交互,宽带很重要,但是并非关键性因素。 &n…

    2017-09-04
  • SSH端口转发

      SSH 会自动加密和解密所有SSH 客户端与服务端之间的网络数据。但是,SSH 还能够将其他TCP 端口的网络数据通过SSH 链接来转发,并且自动提供了相应的加密及解密服务。这一过程也被叫做“隧道”(tunneling),这是因为SSH 为其他TCP 链接提供了一个安全的通道来进行传输而得名。例如,Telnet,SMTP,LDAP 这些TCP 应用均能够…

    2017-09-10
  • iptables学习笔记   Netfilter:是Linux操作系统核心层内部的一个数据包处理模块。   Hook point:数据包在Netfilter中的挂载点。(PRE_ROUTIN   ,INPUT,OUTPUT,FORWARD,POST_ROUTING)   iptables 规则组成:四张表+五条链(Ho…

    Linux干货 2016-12-05
  • select基本用法和软件包管理

    一、select语句     select语句在脚本中用于创建菜单,按数字顺序排列的菜单项显示在标准输出上,并用PS3提示符,等待用户输入。用户输入菜单中的某个数字,执行相应的命令,并被保存在内置变量REPLY中。 用法:     select NAME [in WORDS &#…

    Linux干货 2016-08-21
  • sed的用法小结

    sed的用法小结 sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等sed [OPTION]… ‘script’ [input-file] … OPTION: -n 不输出模式空间中的内容至屏幕,仅显示script处理后的结果 -e 多点编辑,eg: ~]# sed -e ‘s@^#[[…

    Linux干货 2017-08-22