共计 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 为例)
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