搭建日志服务器

搭建日志服务器,第1张

部署rsyslog+loganalyzer日志服务器

一、简要说明

日志记录了服务器系统的所有 *** 作。因此,服务器日志的管理是我们每个运维人员的日常必需品,也是评估服务器安全状况的有效手段之一。但是如何管理很多服务器的日志呢?如果你一个一个看,恐怕我不仅眼花缭乱,还会精疲力尽。

因此,我们需要构建一个日志服务器,并将所有服务器的所有日志存储在这个远程日志服务器中。这样不仅可以集中管理和评估每台服务器的安全状态,还可以降低每台服务器的磁盘占用率。

即使所有服务器的日志都存储在一台服务器上的mysql中(也可以存储在本地磁盘上),如何管理和分析这些日志仍然是个问题。好在日志分析工具loganalyzer会让日志分析变得如此简单!

服务器描述:192.168.200.106是rsyslog服务器,其他所有服务器都是rsyslog客户端

二。部署rsyslog+loganalyzer的日志服务器

我们的第一项工作是配置rsyslog服务器,接下来的任务是部署loganalyzer,一个日志分析工具,这是一盏灯。可以通过yum直接安装,配置配置参数。但是这次公司部署的时候遇到了几个问题,导致日志服务器无法正常获取各个服务器的日志数据。所以在部署过程中还是要慎重。让我们言归正传。

1。配置rsyslog日志服务器

(1)安装软件包

Rsyslog将日志存储在mysql中,所以必须有一个mysql服务器和一个rsyslog的配置文件来加载连接到mysql的模块。

[root@rsyslog ~]# yum -y install rsyslog mysql-server rsyslog-mysql

(2)配置数据库

[root@rsyslog ~]# rpm -ql rsyslog-mysql            #首先查看rsyslog-mysql安装生成了那些文件 /lib64/rsyslog/ommysql.so /usr/share/doc/rsyslog-mysql-5.8.10 /usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql   #此sql文件就是需要导入到数据库中的数据文件 # [root@rsyslog ~]# service mysqld start             #启动mysqld服务 [root@rsyslog ~]# mysql                            #连接mysql Welcome to the MySQL monitor.  Commands end with ; or \g. Your MySQL connection id is 2 Server version: 5.1.73 Source distribution Copyright (c) 2000, 2013, 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>  mysql>  mysql> show databases; +--------------------+ | Database           | +--------------------+ | information_schema | | mysql              | | test               | +--------------------+ 3 rows in set (0.00 sec)  #此时,只有3个库 # mysql> source /usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql;   #导入rsyslog的数据文件 mysql> show databases; +--------------------+ | Database           | +--------------------+ | information_schema | | Syslog             | | mysql              | | test               | +--------------------+ 4 rows in set (0.01 sec) mysql> use Syslog;              #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 | +------------------------+ 2 rows in set (0.00 sec) # #接下来,即是为rsyslog服务器授权。此处一定是rsyslog服务器的IP #如果写成各服务器的IP,那就错了 mysql> grant all on Syslog.* to 'syslogroot'@'127.0.0.1' identified by 'syslogpass'; Query OK, 0 rows affected (0.00 sec) mysql> grant all on Syslog.* to 'syslogroot'@'192.168.200.106' identified by 'syslogpass'; Query OK, 0 rows affected (0.04 sec) mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) mysql> \q Bye

(3)修改rsyslog日志服务器的配置文件。

[root@rsyslog ~]# grep -v "^$" /etc/rsyslog.conf | grep -v "^#" $ModLoad imuxsock $ModLoad imklog $ModLoad imudp            #加载udp的模块 $UDPServerRun 514         #允许接收udp 514的端口传来的日志 $ModLoad imtcp            #加载tcp的模块 $InputTCPServerRun 514    #允许接收tcp 514的端口传来的日志 $ModLoad ommysql          #加载mysql的模块 $ActionFileDefaultTemplateRSYSLOG_TraditionalFileFormat $IncludeConfig /etc/rsyslog.d/*.conf *.*       :ommysql:192.168.200.106,Syslog,syslogroot,syslogpass      #添加此行,所有设施的所有日志都记录到此数据库服务器的Syslog数据库中,以syslogroot用户,syslogpass密码访问数据库 local7.*                          /var/log/boot.log $template SpiceTmpl,"%TIMESTAMP%.%TIMESTAMP:::date-subseconds% %syslogtag% %syslogseverity-text%:%msg:::sp-if-no-1st-sp%%msg:::drop-last-lf%\n" :programname, startswith, "spice-vdagent"   /var/log/spice-vdagent.log;SpiceTmpl

(4)修改完成后,重启rsyslog服务。

[root@rsyslog ~]# service rsyslog restart Shutting down system logger:                               [  OK  ] Starting system logger:                                    [  OK  ]

2。配置rsyslog客户端

(1)修改配置文件

[root@mariadb ~]# grep -v "^$" /etc/rsyslog.conf | grep -v "^#" $ModLoad imuxsock # provides support for local system logging (e.g. via logger command) $ModLoad imklog   # provides kernel logging support (previously done by rklogd) $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat $IncludeConfig /etc/rsyslog.d/*.conf *.*       @192.168.200.106 *.*       :ommysql:192.168.200.106,Syslog,syslogroot,syslogpass $template SpiceTmpl,"%TIMESTAMP%.%TIMESTAMP:::date-subseconds% %syslogtag% %syslogseverity-text%:%msg:::sp-if-no-1st-sp%%msg:::drop-last-lf%\n" :programname, startswith, "spice-vdagent"   /var/log/spice-vdagent.log;SpiceTmpl

(2)修改完成后,重启rsyslog服务。

[root@rsyslog ~]# service rsyslog restart Shutting down system logger:                               [  OK  ] Starting system logger:                                    [  OK  ]

验证客户端日志文件的存储

(1)使用日志记录器生成日志消息。

[root@mariadb ~]# logger -p info "I'm mariadb"

(2)在rsyslog服务器上验证

[root@rsyslog ~]# mysql mysql> use Syslog; mysql> select * from SystemEvents\G *************************** 279. row ***************************                 ID: 279         CustomerID: NULL         ReceivedAt: 2014-08-13 20:07:39 DeviceReportedTime: 2014-08-13 20:07:40           Facility: 1           Priority: 6           FromHost: mariadb            Message:  I'm mariadb        #我在做的时候,就是因为第二部的1的(2)中mysql授权时,写的是客户端IP,导致这里获取不到数据。         NTSeverity: NULL                #因此,在数据库授权的时候,要授权的是rsyslog日志服务器的IP         Importance: NULL        EventSource: NULL          EventUser: NULL      EventCategory: NULL            EventID: NULL    EventBinaryData: NULL       MaxAvailable: NULL          CurrUsage: NULL           MinUsage: NULL           MaxUsage: NULL         InfoUnitID: 1          SysLogTag: root:       EventLogType: NULL    GenericFileName: NULL           SystemID: NULL          processid:            checksum: 0 279 rows in set (0.00 sec)

此时,已经部署了rsyslog日志服务器,但是此时日志都在rsyslog日志服务器的mysql数据库中,不方便查看和管理,所以我们又部署了一个loganalyzer来降低日志管理的复杂度。

三。部署loganalyzer日志分析器

1.安装灯环境

[root@rsyslog ~]# yum -y install httpd php php-mysql php-gd [root@rsyslog ~]# mkdir /var/www/html/loganalyzer/ mkdir: created directory `/var/www/html/loganalyzer/'

2.解压缩loganalyzer源代码包

[root@rsyslog ~]# tar xf loganalyzer-3.6.5.tar.gz [root@rsyslog ~]# cd loganalyzer-3.6.5 [root@rsyslog loganalyzer-3.6.5]#  [root@rsyslog loganalyzer-3.6.5]# ls ChangeLog  contrib  COPYING  doc  INSTALL  src [root@rsyslog loganalyzer-3.6.5]# mv src/* /var/www/html/loganalyzer/          #src下是php的网页文件 [root@rsyslog loganalyzer-3.6.5]# ls contrib/ configure.sh  secure.sh [root@rsyslog loganalyzer-3.6.5]# mv contrib/* /var/www/html/loganalyzer/      #contrib目录下的两个脚本,可以打开看看 # [root@rsyslog loganalyzer-3.6.5]# cd /var/www/html/loganalyzer/ [root@rsyslog loganalyzer]# sh configure.sh                                    #执行脚本

3.配置httpd

修改DocumentRoot网页的根目录

[root@rsyslog ~]# vim /etc/httpd/conf/httpd.conf  DocumentRoot "/var/www/html/loganalyzer" # [root@rsyslog ~]# service httpd start

4.配置httpd和mysql来引导。

[root@rsyslog ~]# chkconfig mysqld on [root@rsyslog ~]# chkconfig httpd on

5.创建loganalyzer数据库并对其进行授权。

[root@rsyslog ~]# mysql Enter password: mysql> create database loganalyzer; Query OK, 1 row affected (0.04 sec) mysql> grant all on loganalyzer.* to dianyi@'192.168.200.106' identified by 'dianyi123'; Query OK, 0 rows affected (0.00 sec) mysql> flush privileges; Query OK, 0 rows affected (0.00 sec)

6.安装loganalyzer

(1)安装界面

(2)第一步

(3)步骤2

(4)步骤3

在这一步中,需要建立一个数据库来授权监控服务器访问。

mysql>create database loganalyzer; mysql>grant all on loganalyzer.* to loguser@'192.168.200.106' identified by 'dianyi_888'; mysql>flush privileges;

(5)步骤4

(6)步骤5

第六步

(8)第7步

(9)步骤8

(10)开始报告错误

调试阶段

1.重新设置

2.将表名修改为正确的表名

3.安装完成,尽情享受吧



欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/zz/784394.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-04
下一篇 2022-05-04

发表评论

登录后才能评论

评论列表(0条)

保存