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

CentOS 6.7搭建Rsyslog日志服务器

187次阅读
没有评论

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

前言:

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

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

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

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

Rsyslog 服务的优点如下:

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

一、Rsyslog 服务器的安装与配置

1、清空 iptabels, 关闭 selinux 避免安装过中报错

清空 iptables

iptables -F
service iptables save

关闭 selinux

setenforce 0
vim /etc/selinux/conifg

将配置文件中的
SELINUX=enforcing
修改为:
SELINUX=disabled

2、yum 安装 LAMP 环境及 rsyslog、rsyslog mysql 支持模块
yum install -y mysql-server mysql-devel libcurl-devel net-snmp-devel php php-gd php-xml php-mysql httpd rsyslog rsyslog-mysql
3、设置 mysqld 和 httpd 开机启动,并启动服务
chkconfig mysqld on
chkconfig httpd on

service mysqld start
service httpd start
4、修改 mysql 的 root 密码
mysqladmin -u root password "你的密码"

修改密码后就可以使用如下命令登录 mysql

mysql -u root -p
5、修改 mysql 的配置文件,支持 uft8

因为通过 yum 安装的 mysql 是不支持 uft8 的,在收集 Windows 服务器的日志和某些支持中文的设备的情况下,收集到的日志无法正确显示,因此需要修改 mysql 配置文件支持中文显示。

配置文件全文如下:

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
character_set_server=utf8
init_connect='SET NAMES utf8'
default-character-set=utf8

[mysql]
default-character-set=utf8

[mysql.server]
default-character-set=utf8

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
default-character-set=utf8

[client]
default-character-set=utf8

重启 mysqld 服务

service mysqld restart
6、导入 Rsyslog 数据库到 mysql

Rsyslog 的 mysql 数据库默认文件是:

/usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql

在 rsyslog-mysql 相应版本的文件夹中
你可以使用下列命令中查询到:

echo  $(rpm -ql rsyslog-mysql | grep sql$)

使用如下命令将文件导入到 mysql:

mysql -u root -p < $(rpm -ql rsyslog-mysql | grep sql$) 

随后输入你在第 3 步中设置的 mysql 密码就可以导入数据库了,数据库名为:Syslog

7、设置 Rsyslog 数据库的字符集

上一步导入的数据库只有二个表: SystemEvents 和 SystemEventsProperties
Syslog 数据库及这二个表的默认字符集也不是 uft8,需要进行修改

# 修改 Syslog 数据库的字符集 
mysql> ALTER DATABASE `Syslog` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

# 修改相应数据表的字符集 
mysql> alter table SystemEvents  default character set =utf8;

mysql> alter table SystemEventsPorperties  default character set =utf8;

查看修改后的效果:

# 查看数据库的字符集设置 
mysql> show variables like 'character%';

# 查看 Systlog 数据库所有表的字符集设置 
mysql> use Syslog;
mysql> show table status from Syslog\G;
8、创建 Rsyslog 数据库用户

登录 mysql 创建 Rsyslog 的数据库用户 logger

# 登录 mysql
mysql -u root -p

# 创建用户 
mysql> grant all privileges on Syslog.* to 'rsyslog'@'localhost' identified by '147258'; 
mysql> flush privileges; 
mysql> exit;
9、修改 rsyslog 配置文件
vim /etc/sysconfig/rsyslog

配置文件如下:

# Options for rsyslogd
# Syslogd options are deprecated since rsyslog v3.
# If you want to use them, switch to compatibility mode 2 by "-c 2"
# See rsyslogd(8) for more details
SYSLOGD_OPTIONS="-c 2 -r -x -m 180"
KLOGD_OPTIONS="-x"

各参数详解:
-c 指定运行兼容模式。
-r 指定监听端口。默认 514
-x 在接收客户端消息时,禁用 DNS 查找。需和 - r 参数配合使用。
-m 标记时间戳。单位是分钟,为 0 时,表示禁用该功能。

10、配置服务端支持 rsyslog-mysql 模块,并开启 UDP 服务端口
vim /etc/rsyslog.conf

在 #### MODULES #### 下添加这两行

$ModLoad ommysql.so
*.* :ommysql:localhost,Syslog,rsyslog,147258

注:localhost 表示本地主机,Syslog 为数据库名,rsyslog 为数据库的用户,147258 为该用户密码

取消下面三行注释

$ModLoad immark
$ModLoad imudp
$UDPServerRun 514

重启 rsyslog 服务:

service rsyslog restart
11、添加服务端 iptables 防火墙规则

如果服务端有需要配置 iptables 规则的话,执行如下命令开放 TCP 和 UDP 的 514 端口

iptables -I INPUT -p tcp --dport 514 -j ACCEPT

iptables -I INPUT -p udp --dport 514 -j ACCEPT

service iptables save

二、Loganalyzer 安装与配置

1、下载 Loganalyzer

从 Loganalyzer 官网下载安装文件到 /usr/local/src 目录下
最新版本是 4.1.3 稳定版本是:3.6.6

2、解压文件并复制源代码到 apache 的 loganalyzer 目录
cd /usr/local/src
tar -zxvf loganalyzer-4.1.3.tar.gz
cd loganalyzer-4.1.3
mkdir -p /var/www/html/loganalyzer/
cp -r src/* /var/www/html/loganalyzer/
cp -r contrib/* /var/www/html/loganalyzer/
3、生成空的配置文件并设置权限
cd /var/www/html/loganalyzer/
touch config.php
chmod 666 config.php
4、修改 php 环境

为配合 LogAnalyzer 对 php 环境的要求,请修改 /etc/php.ini 中的内容为:

memory_limit = 512M  
max_execution_time = 120
5、创建 apache 日志目录
# mkdir -p  /var/log/httpd/loganalyzer
6、配置 apache

这部分,请根据 apache 实际情况操作。以默认系统为例,虚拟主机配置文件都放在 /etc/httpd/conf/httpd.conf

配置文件修改如下:

Listen 80
ServerAdmin root@localhost
ServerName log_server:80
DocumentRoot "/var/www/html/loganalyzer"
<Directory />
    Options FollowSymLinks
    AllowOverride All
</Directory>
<Directory "/var/www/html/loganalyzer">
    Options Indexes FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

ErrorLog /var/log/httpd/loganalyzer/error.log
LogLevel warn
CustomLog /var/log/httpd/loganalyzer/access_log combined
ServerSignature On

重启 httpd 服务

service httpd restart
7、Loganalyzer 初始化配置

在浏览器输入网址,进入安装向导
访问 http://serverip:80
一共 8 个步骤,这里只将需要修改的步骤列出,其余只需要”Next”即可

第 3 步:”Enable User Database”选择“Yes”;

CentOS 6.7 搭建 Rsyslog 日志服务器

第 4、5 二个步骤是指定用户数据库信息(数据库指定为:Syslog)和创建用户

第 7 步:”Source Type”选择“MYSQL Native”并在下载配置数据库信息

CentOS 6.7 搭建 Rsyslog 日志服务器 

第 8 步 Finish 后,完成安装就可登录并查看日志信息了。

三、Linux 客户端配置

CentOS 默认都会安装 rsyslog。

1、确认 rsyslog 服务是否启动
chkconfig | grep rsyslog

如果没有设置为开机启动,执行如下命令:

chkconfig rsyslog on
service rsyslog start
2、配置 Rsyslog 客户端发送本地日志到服务端
vim /etc/rsyslog.conf

在末行添加一行:

*.* @192.168.7.201

注:192.168.7.201 为日志服务器端 IP 地址

3、重启 Rsyslog 服务
service rsyslog restart

这时在服务端刷新就可以看到相关日志信息了。

四、Windows 客户端配置

Loganalyzer 官网推荐在 Winodws 上使用 Winsyslog 来实现日志数据的收集和发送,但是这个软件是收费的。这里用一个开源的软件 Evtsys,但这个软件也有个问题无法在 Server 2012 以上的系统中使用,在 Server 2008 中是没有问题的

Evtsy 官网由于是布署在 google 服务器上的因此现在无法访问,可以到网上去搜索下载。
下载后的文件解压将里面的 evtsys.exe 文件放到 c:\windows\System32 目录下,然后运行 cmd 执行下面的命令:

evtsys -i -s 10 -h log-server-ip -p 514 
net start evtsys

只要看到最后的安装成功即可。
以下附上命令的详细参数

Version: 4.4 (32-bit) 
Usage: evtsys.exe -i|-u|-d [-h host] [-b host] [-f facility] [-p port] 
       [-s minutes] [-l level] [-n] 
  -i           Install service 
  -u           Uninstall service 
  -d           Debug: run as console program 
  -h host      Name of log host 
  -b host      Name of secondary log host (optional) 
  -f facility  Facility level of syslog message 
  -l level     Minimum level to send to syslog.\n", stderr); 
           0=All/Verbose, 1=Critical, 2=Error, 3=Warning, 4=Info 
  -n           Include only those events specified in the config file. 
  -p port      Port number of syslogd 
  -q bool      Query the Dhcp server to obtain the syslog/port to log to 
               (0/1 = disable/enable) 
  -s minutes   Optional interval between status messages. 0 = Disabled 

Default port: 514 
Default facility: daemon 
Default status interval: 0 
Host (-h) required if installing. 

这时在刷新 Loganalyzer 就可以看到相关日志了.

————————————– 分割线 ————————————–

CentOS 上配置 rsyslog 客户端用以远程记录日志  http://www.linuxidc.com/Linux/2015-02/112989.htm

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

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

Rsyslog 配置及使用教程  http://www.linuxidc.com/Linux/2015-02/113614.htm

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

————————————– 分割线 ————————————–

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

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2016-06/132418.htm

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