阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

RPM方式搭建的LAMP+rsyslog+loganalyzer以实现集中式日志管理系统

97次阅读
没有评论

共计 8704 个字符,预计需要花费 22 分钟才能阅读完成。

日志系统中相关名词解释:
#facility: 设备(或日志类型):
auth#pam 产生的日志,认证日志
authpriv#ssh,ftp 等登录信息的验证信息,认证授权认证
cron# 时间任务相关
kern# 内核相关的日志
lpr# 打印
mail# 邮件相关的日志
mark(syslog) #rsyslog 服务内部的信息, 时间标识
news# 新闻组
user# 用户程序产生的相关信息
uucp#unix to unix copy, unix 主机之间相关的通讯
local 1-7# 自定义的日志设备
#priority: 日志级别:
debug# 有调式信息的,日志信息最多
info# 一般信息的日志,最常用
notice# 最具有重要性的普通条件的信息
warning, warn# 警告级别
err, error# 错误级别,阻止某个功能或者模块不能正常工作的信息
crit# 严重级别,阻止整个系统或者整个软件不能正常工作的信息
alert# 需要立刻修改的信息
emerg, panic# 内核崩溃等严重信息
### 从上到下,级别从低到高,记录的信息越来越少,如果设置的日志内性为 info,则日志不会记录比 info 级别低的日志,只会记录比 info 更高级别的日志,也包括 info 本身的日志。
Target:日志存放位置,
# 文件, 如 /var/log/messages
# 用户,root,*(表示所有用户)
# 日志服务器,@172.16.1.2
# 管道 | COMMAND
rsyslog 支持通配机制:
*:所有
,: 列表
! : 取反

实验环境:
RHEL 6.4
clone2.victor.com 为 rsyslog 服务器,其 ip:192.168.222.133
ip 192.168.222.131 的主机位客户端

一.RPM 方式搭建的 LAMP+rsyslog 以实现集中式日志管理系统

1. 挂载光盘至 /mnt/cdrom, 配置本地 yum 源.
vim /etc/yum.repos.d/local.repo
[localbase]
name=RedHat6
baseurl=file:///mnt/cdrom
enabled=1
gpgcheck=0

2.rmp 包方式搭建 LAMP 环境

yum -y insatll httpd MySQL mysql-server php php-mysql mysql-devel php-gd

httpd 用来提供 web 服务
php 使 apache 支持 php,因为 loganalyzer 是用 php 编写
php-mysql 用于 loganalyzer 连接数据库
php-gd 用于绘图
环境搭好之后启动 httpd 及 mysql 服务

3. 安装 rsyslog 以及 rsyslog 连接 mysql 的驱动

[root@clone2~]yum install rsyslog rsyslog-mysql
[root@clone2 ~]# rpm -ql rsyslog-mysql    #查看 rsyslog-mysql 生成哪些文件
/lib/rsyslog/ommysql.so
/usr/share/doc/rsyslog-mysql-5.8.10
/usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql

4. 创建日志文件的数据库
[root@clone2 ~]# cd /usr/share/doc/rsyslog-mysql-5.8.10/ # 查看日志文件的 sql 脚本
[root@clone2 rsyslog-mysql-5.8.10]# ls
createDB.sql
[root@clone2 rsyslog-mysql-5.8.10]# mysql -u root -p < createDB.sql  #导入日志文件的 sql 脚本,生成日志文件的数据库

mysql> show databases;  #此时登录 mysql 数据库,可以查看到生成了一个名为 Syslog 的数据库
+——————–+
| Database          |
+——————–+
| information_schema |
| Syslog  #记录日志文件的数据库(日志主要记录在 SystemEvents 这张表格中。)|
| mysql              |
| test              |
+——————–+

5.# 建立一个普通用户,授予此用户具有操控 Syslog 数据库的权限
mysql> GRANT ALL ON Syslog.* TO ‘rsysloguser’@’localhost’ IDENTIFIED BY ‘password’;
Query OK, 0 rows affected (0.00 sec)
mysql> GRANT ALL ON Syslog.* TO ‘rsysloguser’@’127.0.0.1’ IDENTIFIED BY ‘password’;
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;

6. 配置 rsylog 服务器端:

编辑 rsyslog 的配置文件 /etc/rsyslog.conf
ModLoad imudp          #加载 udp 的模块
$UDPServerRun 514        #允许接收 udp 514 的端口传来的日志
$ModLoad imtcp          #加载 tcp 的模块
$InputTCPServerRun 514  #允许接收 tcp 514 的端口传来的日志
$ModLoad ommysql        #加载 mysql 的模块
*.* :ommysql:127.0.0.1,Syslog,rsysloguser,password  #添加这行,把其他行都注释掉,这行表示把所有的设施的所有日志都记录到数据库服务器中的 Syslog
数据库中,以 rsysloguser 用户,password 密码访问数据库
*.* :ommysql:127.0.0.1,Syslog(数据库名称),rsysloguser(用户名),rsyslogp@ss(密码)
[root@clone2 ~]# service rsyslog restart

7. 客户端(192.168.222.131)配置:
vim /etc/rsyslog.conf
*.* @192.168.222.133 #添加这一行,用于客户端和服务器端通信
service rsyslog restart

8. 测试:

在客户端 即 192.168.222.131 这台机器上
logger -p notice “test log from 192.168.222.131”
验证是否在远端服务器的 mysql 数据库里有日志记录:
mysql -ursysloguser -p
USE Syslog
SELECT * FROM SystemEvents;

************************** 1519. row ***************************
              ID: 1519
      CustomerID: NULL
      ReceivedAt: 2014-02-04 17:34:20
DeviceReportedTime: 2014-02-04 17:34:20
        Facility: 1
        Priority: 5
        FromHost: www
          Message:  test log from 192.168.222.131  #远程客户端的日志测试记录。
      NTSeverity: NULL
      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
1519 rows in set (0.02 sec)

虽然日志存放在 mysql 数据库服务器中,是解决了日志集中管理,但是存放在 mysql 服务器日志不便于查看分析,于是搭建一个日志分析工具就非常的有必要了。

推荐阅读

Ubuntu 13.04 安装 LAMP\Vsftpd\Webmin\phpMyAdmin 服务及设置 http://www.linuxidc.com/Linux/2013-06/86250.htm

CentOS 5.9 下编译安装 LAMP(Apache 2.2.44+MySQL 5.6.10+PHP 5.4.12) http://www.linuxidc.com/Linux/2013-03/80333p3.htm

RedHat 5.4 下 Web 服务器架构之源码构建 LAMP 环境及应用 PHPWind http://www.linuxidc.com/Linux/2012-10/72484p2.htm

LAMP 源码环境搭建 WEB 服务器 Linux+Apache+MySQL+PHP http://www.linuxidc.com/Linux/2013-05/84882.htm

二、基于 web 的 loganalyzer 日志分析工具的搭建

所需软件包:
loganalyzer-3.6.4.tar.gz
1. 解压软件包,生成配置文件

[root@clone2 ~]# tar xvf loganalyzer-3.6.4.tar.gz
[root@clone2 ~]# cd loganalyzer-3.6.4
[root@clone2 ~]# mv src/* /usr/local/apache/htdocs/syslog/
[root@clone2 ~]# mv contrib/* /usr/local/apache/htdocs/syslog/
[root@clone2 ~]# chmod u+x /usr/local/apache/htdocs/syslog/*.sh
[root@clone2 ~]# ./configure.sh                                    #生成 loganalyzer 的配置文件 config.php
[root@clone2 ~]# ./secure.sh
[root@clone2 ~]# setfacl -m u:apache:rw config.php  #授予 apache 对 loganalyzer 配置文件的读写权限。
2. 建立 loganalyzer 所需的数据库,创建用户并授权。
MySQL> create database loganalyzer;
mysql>grant all on loganalyzer.* to ‘loganalyzer’@’loaclhost’ identified by ‘password’;
mysql>grant all on loganalyzer.* to ‘loganalyzer’@’127.0.0.1’ identified by ‘password’;
mysql>flush privileges;

3. 安装 loganalyzer
在浏览器中输入你的主机名(本机以 clone2.victor.com 为例)

RPM 方式搭建的 LAMP+rsyslog+loganalyzer 以实现集中式日志管理系统

RPM 方式搭建的 LAMP+rsyslog+loganalyzer 以实现集中式日志管理系统

RPM 方式搭建的 LAMP+rsyslog+loganalyzer 以实现集中式日志管理系统

RPM 方式搭建的 LAMP+rsyslog+loganalyzer 以实现集中式日志管理系统

RPM 方式搭建的 LAMP+rsyslog+loganalyzer 以实现集中式日志管理系统

RPM 方式搭建的 LAMP+rsyslog+loganalyzer 以实现集中式日志管理系统

RPM 方式搭建的 LAMP+rsyslog+loganalyzer 以实现集中式日志管理系统

RPM 方式搭建的 LAMP+rsyslog+loganalyzer 以实现集中式日志管理系统

RPM 方式搭建的 LAMP+rsyslog+loganalyzer 以实现集中式日志管理系统

Rsyslog 的详细介绍:请点这里
Rsyslog 的下载地址:请点这里

相关阅读:

RHEL5.4 部署中央日志服务器之 rsyslog+Log Analyzer http://www.linuxidc.com/Linux/2012-01/51853.htm

CentOS 6.3 下利用 Rsyslog+LogAnalyzer+MySQL 部署日志服务器 http://www.linuxidc.com/Linux/2013-07/86956.htm

RHEL5.4 部署中央日志服务器之 rsyslog+loganalyzer http://www.linuxidc.com/Linux/2010-12/30801.htm

使用 rsyslog mysql 和 logAnalyzer 的日志服务器 http://www.linuxidc.com/Linux/2012-09/70717.htm

CentOS 6.3 下利用 Rsyslog+LogAnalyzer+MySQL 部署日志服务器 http://www.linuxidc.com/Linux/2013-07/86956.htm

日志系统中相关名词解释:
#facility: 设备(或日志类型):
auth#pam 产生的日志,认证日志
authpriv#ssh,ftp 等登录信息的验证信息,认证授权认证
cron# 时间任务相关
kern# 内核相关的日志
lpr# 打印
mail# 邮件相关的日志
mark(syslog) #rsyslog 服务内部的信息, 时间标识
news# 新闻组
user# 用户程序产生的相关信息
uucp#unix to unix copy, unix 主机之间相关的通讯
local 1-7# 自定义的日志设备
#priority: 日志级别:
debug# 有调式信息的,日志信息最多
info# 一般信息的日志,最常用
notice# 最具有重要性的普通条件的信息
warning, warn# 警告级别
err, error# 错误级别,阻止某个功能或者模块不能正常工作的信息
crit# 严重级别,阻止整个系统或者整个软件不能正常工作的信息
alert# 需要立刻修改的信息
emerg, panic# 内核崩溃等严重信息
### 从上到下,级别从低到高,记录的信息越来越少,如果设置的日志内性为 info,则日志不会记录比 info 级别低的日志,只会记录比 info 更高级别的日志,也包括 info 本身的日志。
Target:日志存放位置,
# 文件, 如 /var/log/messages
# 用户,root,*(表示所有用户)
# 日志服务器,@172.16.1.2
# 管道 | COMMAND
rsyslog 支持通配机制:
*:所有
,: 列表
! : 取反

实验环境:
RHEL 6.4
clone2.victor.com 为 rsyslog 服务器,其 ip:192.168.222.133
ip 192.168.222.131 的主机位客户端

一.RPM 方式搭建的 LAMP+rsyslog 以实现集中式日志管理系统

1. 挂载光盘至 /mnt/cdrom, 配置本地 yum 源.
vim /etc/yum.repos.d/local.repo
[localbase]
name=RedHat6
baseurl=file:///mnt/cdrom
enabled=1
gpgcheck=0

2.rmp 包方式搭建 LAMP 环境

yum -y insatll httpd MySQL mysql-server php php-mysql mysql-devel php-gd

httpd 用来提供 web 服务
php 使 apache 支持 php,因为 loganalyzer 是用 php 编写
php-mysql 用于 loganalyzer 连接数据库
php-gd 用于绘图
环境搭好之后启动 httpd 及 mysql 服务

3. 安装 rsyslog 以及 rsyslog 连接 mysql 的驱动

[root@clone2~]yum install rsyslog rsyslog-mysql
[root@clone2 ~]# rpm -ql rsyslog-mysql    #查看 rsyslog-mysql 生成哪些文件
/lib/rsyslog/ommysql.so
/usr/share/doc/rsyslog-mysql-5.8.10
/usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql

4. 创建日志文件的数据库
[root@clone2 ~]# cd /usr/share/doc/rsyslog-mysql-5.8.10/ # 查看日志文件的 sql 脚本
[root@clone2 rsyslog-mysql-5.8.10]# ls
createDB.sql
[root@clone2 rsyslog-mysql-5.8.10]# mysql -u root -p < createDB.sql  #导入日志文件的 sql 脚本,生成日志文件的数据库

mysql> show databases;  #此时登录 mysql 数据库,可以查看到生成了一个名为 Syslog 的数据库
+——————–+
| Database          |
+——————–+
| information_schema |
| Syslog  #记录日志文件的数据库(日志主要记录在 SystemEvents 这张表格中。)|
| mysql              |
| test              |
+——————–+

5.# 建立一个普通用户,授予此用户具有操控 Syslog 数据库的权限
mysql> GRANT ALL ON Syslog.* TO ‘rsysloguser’@’localhost’ IDENTIFIED BY ‘password’;
Query OK, 0 rows affected (0.00 sec)
mysql> GRANT ALL ON Syslog.* TO ‘rsysloguser’@’127.0.0.1’ IDENTIFIED BY ‘password’;
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;

6. 配置 rsylog 服务器端:

编辑 rsyslog 的配置文件 /etc/rsyslog.conf
ModLoad imudp          #加载 udp 的模块
$UDPServerRun 514        #允许接收 udp 514 的端口传来的日志
$ModLoad imtcp          #加载 tcp 的模块
$InputTCPServerRun 514  #允许接收 tcp 514 的端口传来的日志
$ModLoad ommysql        #加载 mysql 的模块
*.* :ommysql:127.0.0.1,Syslog,rsysloguser,password  #添加这行,把其他行都注释掉,这行表示把所有的设施的所有日志都记录到数据库服务器中的 Syslog
数据库中,以 rsysloguser 用户,password 密码访问数据库
*.* :ommysql:127.0.0.1,Syslog(数据库名称),rsysloguser(用户名),rsyslogp@ss(密码)
[root@clone2 ~]# service rsyslog restart

7. 客户端(192.168.222.131)配置:
vim /etc/rsyslog.conf
*.* @192.168.222.133 #添加这一行,用于客户端和服务器端通信
service rsyslog restart

8. 测试:

在客户端 即 192.168.222.131 这台机器上
logger -p notice “test log from 192.168.222.131”
验证是否在远端服务器的 mysql 数据库里有日志记录:
mysql -ursysloguser -p
USE Syslog
SELECT * FROM SystemEvents;

************************** 1519. row ***************************
              ID: 1519
      CustomerID: NULL
      ReceivedAt: 2014-02-04 17:34:20
DeviceReportedTime: 2014-02-04 17:34:20
        Facility: 1
        Priority: 5
        FromHost: www
          Message:  test log from 192.168.222.131  #远程客户端的日志测试记录。
      NTSeverity: NULL
      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
1519 rows in set (0.02 sec)

虽然日志存放在 mysql 数据库服务器中,是解决了日志集中管理,但是存放在 mysql 服务器日志不便于查看分析,于是搭建一个日志分析工具就非常的有必要了。

推荐阅读

Ubuntu 13.04 安装 LAMP\Vsftpd\Webmin\phpMyAdmin 服务及设置 http://www.linuxidc.com/Linux/2013-06/86250.htm

CentOS 5.9 下编译安装 LAMP(Apache 2.2.44+MySQL 5.6.10+PHP 5.4.12) http://www.linuxidc.com/Linux/2013-03/80333p3.htm

RedHat 5.4 下 Web 服务器架构之源码构建 LAMP 环境及应用 PHPWind http://www.linuxidc.com/Linux/2012-10/72484p2.htm

LAMP 源码环境搭建 WEB 服务器 Linux+Apache+MySQL+PHP http://www.linuxidc.com/Linux/2013-05/84882.htm

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-20发表,共计8704字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中