rsyslog+loganalyzer遠程日志系統搭建教程(CentOS6.8)


一、說明

本文主要是對“CentOS 6.7搭建Rsyslog日志服務器”進行整理,同時在本地進行環境搭建,驗證在CentOS6.8上的正確性。

 

二、安裝配置rsyslog

1.清空iptables關閉selinux

1.1 清空iptables

一般iptables不要限制對rsyslog端口(默認UDP,514)的訪問就不會rsysylog造成影響,可以不用清。

iptables -F                      #清空iptables策略
service iptables save      #保存iptables策略配置

1.2關閉selinux

selinux老問題,過於嚴格可能會造成功能異常,將其關閉

setenforce 0

上邊只是臨時關閉,如果配置為啟用狀態則系統重啟后selinux還是啟用,要徹底關閉selinux到其配置文件/etc/selinux/config,將屬性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

看這意思沒什么問題,但是由於本機之前已零散地安裝了這些東西,mysql還手動安裝成了5.5,在執行此句時報沖突libXtst-1.2.3-1.el6.i686 is a duplicate with libXtst-1.2.2-2.1.el6.x86_64,直接跳過了

 

3、設置mysql和apache開機啟動,並啟動服務

chkconfig --level 35 mysql on        #配置mysql開機自啟動;5.5及之前版本用mysql,5.6及之后版本用mysqld
chkconfig --level 35 httpd on         #配置apache開機自啟動

service mysql start                         #啟動mysql
service httpd start                         #啟動apache

 

4、修改mysql的root密碼

mysqladmin -u root password "abcd1234"    #abcd1234修改成你想要的密碼

默認安裝的5.1版本的mysqlroot默認密碼應該為空可以直接這樣修改密碼,如果之前已配置密碼,則要登錄mysql修改:

update MySQL.user set password=PASSWORD('abcd1234') where User='root';
flush privileges;

 

5、修改mysql的配置文件,支持uft8

編緝/etc/my.cnf配置如下(主要是各節區值為utf8的項):

[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

mysql5.1版本好像配置配置defalut-character-set就可以了,character_set_server參數5.5版本之后才有,不過多配上去也不要緊。改完要重啟mysql使配置生效

server mysql restart   #5.6及之后版本使用mysqld

 

6、導入rsyslog數據庫到mysql

rsyslog的mysql數據庫腳本默認文件是(版本相應修改):

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

可以使用以下命令中確認其位置:

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

 導入數據庫(輸入密碼):

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

可以看到導入后已創建syslog數據庫

 

7、設置rsyslog數據庫的字符集

按原文講syslog數據庫默認不是utf8編碼,所以要使用以下命令修改編碼(但就我查看似乎是utf8的,多執行一次無所謂)

mysql> use syslog
#修改Syslog數據庫的字符集
mysql> ALTER DATABASE `syslog` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; 
#修改SystemEvents表的字符集
mysql> alter table systemEvents  default character set =utf8;
#修改SystemEventsPorperties表的字符集
mysql> alter table systemeventsproperties  default character set =utf8;

查看修改后的結果:

#查看數據庫的字符集設置
mysql> show variables like 'character%';

#查看systlog數據庫所有表的字符集設置
mysql> use syslog;
mysql> show table status from Syslog\G;

 

8、創建Rsyslog數據庫用戶

登錄mysql創建用於管理rsyslog的數據庫用戶rsyslog,下邊只授予了其localhost登錄的權限,abcd1234改為自己想要的密碼

mysql> grant all privileges on syslog.* to 'rsyslog'@'localhost' identified by 'abcd1234'; 
mysql> flush privileges; 

 

9、修改rsyslog配置

cat > /etc/sysconfig/rsyslog << EOF
# 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"
EOF

各參數詳解:
-c 指定運行兼容模式。
-r 指定監聽端口。 默認514
-x 在接收客戶端消息時,禁用DNS查找。需和-r參數配合使用。
-m 標記時間戳。單位是分鍾,為0時,表示禁用該功能。

 

10、配置服務端支持rsyslog-mysql模塊,並開啟UDP服務端口

編緝/etc/rsyslog.conf,在#### MODULES ####下添加前邊兩行,然后取消后邊三行的注釋

$ModLoad ommysql.so
*.* :ommysql:localhost,syslog,rsyslog,abcd1234
#注:localhost表示本地主機,syslog為數據庫名,rsyslog為數據庫的用戶,abcd1234為前邊創建該用戶時指定的密碼

$ModLoad immark
$ModLoad imudp
$UDPServerRun 514

保存后重啟rsyslog使配置生效

service rsyslog restart

 

11、添加服務端iptables防火牆規則

開頭說過iptables策略可以不用清,當如果確實不清為確保萬一,執行以下命令開放TCP和UDP的514端口

iptables -I INPUT -p tcp --dport 514 -m comment --comment "accept for rsyslog" -j ACCEPT
iptables -I INPUT -p udp --dport 514 -m comment --comment "accept for rsyslog" -j ACCEPT
service iptables save

 

三、Loganalyzer安裝與配置

1、下載Loganalyzer

Loganalyzer官網下載安裝文件到/usr/local/src目錄下,最新版本是4.1.6

cd /usr/local/src
wget http://download.adiscon.com/loganalyzer/loganalyzer-4.1.6.tar.gz

 

2、解壓文件並復制源代碼到apache的loganalyzer目錄

cd /usr/local/src
tar -zxf loganalyzer-4.1.6.tar.gz
cd loganalyzer-4.1.6
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

service iptables restart

 

6、loganalyzer初始化配置

httpd默認主路徑為/var/www/html,現在loganalyzer目錄為/var/www/html/loganalyzer,所以訪問http://192.168.220.128/loganalyzer/進行配置

 

 

四、Linux客戶端配置

CentOS默認都會安裝rsyslog,這里我們以一台CentOS 7為例。CentOS 6和7配置都是一樣的,只是啟停命令有所改變

1、確認rsyslog服務是否啟動

systemctl list-unit-files rsyslog.service    #確認rsyslog是否開機自啟動
systemctl enable rsyslog.service             #如果沒有則配置其開機自啟動
systemctl status rsyslog.service             #查看rsyslog狀態
systemctl start rsyslog.service              #如果rsyslog沒啟動,將其啟動

 

2、配置rsyslog客戶端發送本地日志到服務端

編緝/etc/rsyslog.conf,在最后### begin forwarding rule ###和### end of the forwarding rule ###之間,新建一行追加遠程日志服務器地址(我這是192.168.220.128,根據自己實際情況配置):

*.* @192.168.220.128

 

3.重啟rsyslog

systemctl restart rsyslog.service

這樣192.168.220.142的日志就會自動發送到192.168.220.128,192.168.220.128接收后就會自動存入syslog庫。最后loganalyzer從syslog中讀出然后在界面展現

如上圖所示,Host列ls即是192.168.220.128,lsx即是192.168.220.142。

 

參考:

http://www.linuxidc.com/Linux/2016-06/132418.htm


免責聲明!

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



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