设为首页 收藏本站
查看: 7725|回复: 0

[经验分享] 部署rsyslog+loganalyzer日志服务器

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-8-15 09:43:49 | 显示全部楼层 |阅读模式
一、简要说明

    日志记录了对服务器系统的一切操作,因此,对服务器日志的管理,是我们每个运维人员每天的必要工作,也是评估服务器安全状况的有效手段之一,可是如何管理众多服务器的日志?如果要是一台一台看的话,怕是不止盯的眼花缭乱,累也的累坏了。

    所以,我们要搭建一台日志服务器,要把所有服务器的日志通通存到这台远程日志服务器上来,这样,不仅可以集中管理、评估各服务器的安全状况,还可以减少各服务器的磁盘占用率。

    即使所有服务器的日志都保存在一台服务器上的mysql(也可存到本地磁盘)了,如何管理、分析这些日志也是一个问题,好在有loganalyzer这个日志分析工具,它会让日志分析变得so easy!
    服务器说明:192.168.200.106是rsyslog日志服务器,其它服务器均为rsyslog客户端

二、部署rsyslog+loganalyzer日志服务器
    我们的首要工作即是配置好rsyslog服务器,接下来的任务即是部署loganalyzer这个日志分析工具,这就是一个LAMP,直接yum安装,配置配置参数就搞定了。但此次,在公司部署的时候,却碰到几个问题,导致日志服务器不能正常获取各服务器的日志数据,因此,部署过程中还是需要细心的,下面就进入正题。
1、配置rsyslog日志服务器
(1)安装软件包

    因为rsyslog要把日志存到mysql中,所以要有mysql服务器,还要有rsyslog配置文件加载连接mysql的模块
1
[iyunv@rsyslog ~]# yum -y install rsyslog mysql-server rsyslog-mysql



(2)配置数据库
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
[iyunv@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文件就是需要导入到数据库中的数据文件
#
[iyunv@rsyslog ~]# service mysqld start             #启动mysqld服务
[iyunv@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日志服务器配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
[iyunv@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%"
:programname, startswith, "spice-vdagent"   /var/log/spice-vdagent.log;SpiceTmpl



(4)修改完成后,重启rsyslog服务
1
2
3
[iyunv@rsyslog ~]# service rsyslog restart
Shutting down system logger:                               [  OK  ]
Starting system logger:                                    [  OK  ]



2、配置rsyslog客户端
(1)修改配置文件
1
2
3
4
5
6
7
8
9
[iyunv@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%"
:programname, startswith, "spice-vdagent"   /var/log/spice-vdagent.log;SpiceTmpl



(2)修改完成后,重启rsyslog服务
1
2
3
[iyunv@rsyslog ~]# service rsyslog restart
Shutting down system logger:                               [  OK  ]
Starting system logger:                                    [  OK  ]



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

(1)使用logger生成一条日志信息
1
[iyunv@mariadb ~]# logger -p info "I'm mariadb"



(2)在rsyslog服务器上验证
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
[iyunv@rsyslog ~]# mysql
mysql> use Syslog;
mysql> select * from SystemEventsG
*************************** 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、安装LAMP环境
1
2
3
[iyunv@rsyslog ~]# yum -y install httpd php php-mysql php-gd
[iyunv@rsyslog ~]# mkdir /var/www/html/loganalyzer/
mkdir: created directory `/var/www/html/loganalyzer/'



2、解压loganalyzer源码包
1
2
3
4
5
6
7
8
9
10
11
12
[iyunv@rsyslog ~]# tar xf loganalyzer-3.6.5.tar.gz
[iyunv@rsyslog ~]# cd loganalyzer-3.6.5
[iyunv@rsyslog loganalyzer-3.6.5]#
[iyunv@rsyslog loganalyzer-3.6.5]# ls
ChangeLog  contrib  COPYING  doc  INSTALL  src
[iyunv@rsyslog loganalyzer-3.6.5]# mv src/* /var/www/html/loganalyzer/          #src下是php的网页文件
[iyunv@rsyslog loganalyzer-3.6.5]# ls contrib/
configure.sh  secure.sh
[iyunv@rsyslog loganalyzer-3.6.5]# mv contrib/* /var/www/html/loganalyzer/      #contrib目录下的两个脚本,可以打开看看
#
[iyunv@rsyslog loganalyzer-3.6.5]# cd /var/www/html/loganalyzer/
[iyunv@rsyslog loganalyzer]# sh configure.sh                                    #执行脚本



3、配置httpd

    修改DocumentRoot网页根目录
1
2
3
4
[iyunv@rsyslog ~]# vim /etc/httpd/conf/httpd.conf
DocumentRoot "/var/www/html/loganalyzer"
#
[iyunv@rsyslog ~]# service httpd start



4、配置httpd和mysql开机启动
1
2
[iyunv@rsyslog ~]# chkconfig mysqld on
[iyunv@rsyslog ~]# chkconfig httpd on



5、创建loganalyzer数据库,并授权
1
2
3
4
5
6
7
8
[iyunv@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)安装界面
wKioL1PsIlfiOLZeAABquvXDTC4299.png
(2)step 1

wKiom1PsIVTTUlnbAADM3WKzmDk997.png
(3)step 2
wKioL1PsIonz2zexAADqKOiUPOM107.png
(4)setp 3
wKiom1PsIYaixqQbAAEZ8AIpcvc759.png
(5)setp 4

wKioL1PsIraDnTUFAADZM7ZNkGk359.png
(6)setp 5
wKioL1PsIs7RkNMTAAKJgP4gbwE940.png
(7)step 6

wKioL1PsIumTCKMbAAB_sTB70ns683.png
(8)setp 7

wKioL1PsIv_ADEgwAADnh60ziIo232.png
(9)setp 8

wKiom1PsIf3SUHv8AABN8J_yFCY473.png
(10)开始报错

wKioL1PsIynRWp_OAAEdNAQ1GfY306.png
排错阶段

1、重新安装
wKioL1PsI1XjP7MxAABIUlA92OQ550.png
2、修改表名为正确的表名

wKioL1PsI2jhZr3gAADcNzodDiY820.png
3、安装完成,enjoy it

wKioL1PsI4Xzsae8AAJd-IwfiuI760.png





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-23894-1-1.html 上篇帖子: CentOS 6.5下利用Rsyslog+LogAnalyzer+MySQL部署日志服务器 下篇帖子: 基于Centos 6.5+MariaDB+loganalyzer+syslog搭建远程系统日志收集和分析环境 服务器
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表