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> 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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM