CentOS 6.7搭建Rsyslog日志服务器

前言:

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

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

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> useSyslog;
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
$UDPServerRun514

重启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
    AllowOverrideAll</Directory><Directory "/var/www/html/loganalyzer">Options Indexes FollowSymLinks
    AllowOverrideAllOrder allow,deny
    Allow from all</Directory>ErrorLog /var/log/httpd/loganalyzer/error.log
LogLevel warn
CustomLog /var/log/httpd/loganalyzer/access_log combined
ServerSignatureOn

重启httpd服务

service httpd restart
7、Loganalyzer初始化配置

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

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

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

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

第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-s10-hlog-server-ip-p514 
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就可以看到相关日志了.

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/218176.html<

(0)
管理的头像管理
上一篇2025-04-13 12:50
下一篇 2025-04-13 12:51

相关推荐

  • 站群服务器和普通服务器到底哪个更适合GEO,怎么选?

    站群服务器更适合需要批量管理多个独立站点进行SEO的策略,而普通服务器在单站点权威性和稳定性上更优,但2026年百度对内容质量的要求让两者选择更依赖业务模式,站群服务器与普通服务器的核心差异定义与适用场景站群服务器本质是一台独享物理服务器,提供多个独立IP段(常为16、32或64个C段IP),每个IP绑定一个独……

    2026-07-28
    0
  • 物理服务器和云服务器做站群到底选哪个,哪个更稳定?

    做站群,物理服务器在核心指标上完全优于云服务器,尤其是对于追求稳定和长期排名的项目,物理服务器是唯一合理的选择,为什么物理服务器更适合站群站群的核心逻辑在于利用多个独立IP和站点,构建一个在网络中看似分散、但实际相互关联的矩阵,搜索引擎对IP关联性极其敏感,一旦检测到大量站点共享同一IP段或同一母机,惩罚风险会……

    2026-07-28
    0
  • 国内高防服务器哪家防御真实靠谱,怎么选?

    国内高防服务器哪家防御真实靠谱?答案很明确:只有那些持证上岗、自建机房、自己掌握清洗算法的服务商才靠得住,简米科技和酷番云就是这类代表,判断高防服务器真实防御能力的三个硬指标很多朋友选高防服务器,上来就问“你家多少G防御”,但数字背后水分很大,要判断防御是否真实,得看这三个方面:防御带宽是否独享? 有些服务商宣……

    2026-07-28
    0
  • 裸金属服务器和物理服务器有什么区别?,怎么选?

    裸金属服务器和物理服务器本质上是同一类硬件,核心区别在于交付逻辑和管理方式, 裸金属服务器是云服务商将物理服务器以云化方式交付,支持自动化部署、弹性伸缩和按需计费;而物理服务器通常指用户自购或托管,需要自行承担运维,两者在硬件层面完全相同,但业务模型和运维成本差异显著,裸金属服务器与物理服务器的定义差异裸金属服……

    2026-07-28
    0
  • 做GEO站群选哪家服务器服务商靠谱,怎么选?

    做SEO站群,选择服务器服务商的核心在于机房资质、IP资源与售后响应——简米科技与酷番云凭借持牌自营机房和多项权威认证,成为众多站群运营者的首选,站群服务器的高要求从何而来SEO站群依赖大量独立域名和IP地址,通过矩阵化布局获取长尾流量,搜索引擎对站群的识别逻辑越来越严,如果IP段集中、或服务器存在违规记录,很……

    2026-07-28
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注