Centos6.3下利用rsyslog+loganalyzer+mysql部署Log Service器

來源:互聯網
上載者:User

     作為一名系統營運工程師,平時查看分析LINUX系統日誌我覺得是我們每天必做的功課,但時間長了會發現每次查看網站日誌都得挨個進後台,幾台伺服器還可以這麼對付,但如果管理成百上千台線上伺服器,這種方法就捉襟見肘了。

     後來想了想能不能有一台Log Service器集中管理日誌,並以WEB形式將日誌顯示到前台方便查看,頓時碼字的想法油然而生,呵呵。

     本人有一個習慣,那就是會把群裡或者網上看到的圈內比較認可的LINUX系統軟體先儲存在備忘錄,等閑下來研究研究,剛好前段時間有位朋友提到rsyslog+loganalyzer集中管理日誌,所以今天剛好就抽空研究了下,過程雖有曲折網上的文檔各種坑跌),最後還是利用一天時間搞定,將自己的理解分享給搭建,僅供參考。


我的部落格新站已經建好,更多新的內容即將在新站更新。。

歡迎訪問     http://www.showerlee.com



     本文檔是利用rsyslog+loganalyzer+mysql將網內所有LINUX伺服器的系統日誌集中到Log Service器進行管理,所有日誌會儲存在mysql資料庫表中

註:loganalyzer在擷取用戶端日誌會有兩種儲存模式,一種是直接讀取用戶端/var/log/目錄下的日誌並儲存到服務端該目錄下,一種是讀取後儲存到Log Service器資料庫中,本文檔推薦後者


解決方案:


一.環境部署


作業系統:        centos6.3 x64

rsyslog:          系統預設yum源

loganalyzer:      loganalyzer-3.6.3  

LAMP:             httpd-2.4.4,mysql-5.6.10,php-5.4.13




650) this.width=650;" src="http://www.bkjia.com/uploads/allimg/131227/1JTA555-0.jpg" title="rsyslog.jpg" />


rsyslog server: 192.168.7.201    lamp.example.com

rsyslog client: 192.168.7.74     www2.example.com


1.安裝LAMP環境

本博傳送門:http://showerlee.blog.51cto.com/2047005/1174141


2.關閉iptables和SELINUX

# service iptables stop

註:這裡若要開啟iptables服務增加系統安全性

服務端需添加rsyslog UDP 514連接埠以及loganalyzer TCP 80連接埠通過規則

# iptables -A INPUT -p udp  --dport 514 -j ACCEPT

# iptables -P OUTPUT ACCEPT

# iptables -A INPUT -p TCP --dport 80 -j ACCEPT

用戶端只需添加OUTPUT通過規則

# iptables -P OUTPUT ACCEPT

從規則可見,rsyslog server端為被動擷取資料,client端為主動發送資料

關閉iptables的朋友可以無視。。

# setenforce 0

# vi /etc/sysconfig/selinux

---------------

SELINUX=disabled

---------------


3.同步時間

# ntpdate asia.pool.ntp.org


二.安裝配置rsyslog

(rsyslog server)

# yum install rsyslog rsyslog-mysql -y

註:rsyslog-mysql為rsyslog將記錄傳送到mysql資料庫的一個模組,這裡必須安裝

# cd /usr/share/doc/rsyslog-mysql-5.8.10/

# mysql -uroot -p123456 < createDB.sql

註:這裡匯入資料庫操作其實博主最後研究了下,就是建立了Syslog庫並在該庫中建立了兩張空表

建立rsyslog使用者在mysql下的相關許可權

# mysql -uroot -p123456

> grant all privileges on Syslog.* to rsyslog@localhost  identified by "123456";

> flush privileges;

> exit

佈建服務端支援rsyslog-mysql模組,並開啟UDP服務連接埠擷取網內其他LINUX系統日誌

# vi /etc/rsyslog.conf

在#### MODULES ####下添加這兩行

------------------

$ModLoad ommysql.so  

*.* :ommysql:localhost,Syslog,rsyslog,123456

------------------  

注:localhost表示本地主機,Syslog為資料庫名,rsyslog為資料庫的使用者,123456為該使用者密碼

取消下面三行注釋

-----------------

$ModLoad immark  

$ModLoad imudp

$UDPServerRun 514

-----------------

重啟服務:

# service rsyslog restart


(rsyslog client)

# yum install rsyslog -y

配置rsyslog用戶端發送本地日誌到服務端

# vi /etc/rsyslog.conf

末行添加如下內容

-------------------

*.*   @192.168.7.201

-------------------

注:192.168.7.201 為Log Service器端IP地址

重啟服務:

# service rsyslog restart


三.安裝loganalyzer

# wget http://download.adiscon.com/loganalyzer/loganalyzer-3.6.3.tar.gz

# tar zxvf loganalyzer-3.6.3.tar.gz

# cd loganalyzer-3.6.3

# mkdir -p /usr/local/apache2/htdocs/loganalyzer

複製loganalyzer原始碼到apache的DocumentRoot下loganalyzer目錄

# cp -r src/*   /usr/local/apache2/htdocs/loganalyzer

# cp -r contrib/*  /usr/local/apache2/htdocs/loganalyzer

# chown -R daemon.daemon /usr/local/apache2/htdocs/loganalyzer

通過web嚮導安裝loganalyzer前,必須先執行以下兩個指令碼

# cd /usr/local/apache2/htdocs/loganalyzer/

# sh configure.sh

# sh secure.sh

註:該指令碼實際上是建立該目錄下的config.php,並配置該檔案許可權。


在瀏覽器輸入網址,進入安裝嚮導

http://192.168.7.201/loganalyzer

1.提示沒有設定檔,點擊here利用嚮導產生

650) this.width=650;" src="http://www.bkjia.com/uploads/allimg/131227/1JTA344-1.png" style="float:none;" title="1.png" />


2.NEXT


650) this.width=650;" src="http://www.bkjia.com/uploads/allimg/131227/1JT64408-2.png" style="float:none;" title="2.png" />


3.按照輸入配置,點擊NEXT:

650) this.width=650;" src="http://www.bkjia.com/uploads/allimg/131227/1JT64296-3.png" title="14.png" />

註:點擊NEXT時若報錯,後台執行如下命令後繼續

# ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock


4.開始寫入資料庫,NEXT

650) this.width=650;" src="http://www.bkjia.com/uploads/allimg/131227/1JTC452-4.png" title="5.png" />


5.提示寫入成功,NEXT

650) this.width=650;" src="http://www.bkjia.com/uploads/allimg/131227/1JTCc0-5.png" title="6.png" />


6.設定管理員賬戶,配置完畢NEXT

650) this.width=650;" src="http://www.bkjia.com/uploads/allimg/131227/1JT62A2-6.png" title="7.png" />


7.設定監控日誌儲存到mysql資料庫中,按照配置後NEXT

650) this.width=650;" src="http://www.bkjia.com/uploads/allimg/131227/1JT62934-7.png" title="15.png" />

650) this.width=650;" src="http://www.bkjia.com/uploads/allimg/131227/1JT635F-8.png" title="16.png" />


8.完成配置,FINISH

650) this.width=650;" src="http://www.bkjia.com/uploads/allimg/131227/1JT62133-9.png" title="10.png" />


9.進入登陸介面:

650) this.width=650;" src="http://www.bkjia.com/uploads/allimg/131227/1JT64V2-10.png" title="11.png" />

10.進入主介面:

查看loganalyzer是否擷取192.168.7.201和192.168.7.74系統日誌

650) this.width=650;" src="http://www.bkjia.com/uploads/allimg/131227/1JT64612-11.png" title="19.png" />


利用navicat查看rsyslog服務端和用戶端系統日誌是否都寫入資料庫Syslog-SystemEvents表

650) this.width=650;" src="http://www.bkjia.com/uploads/allimg/131227/1JT64963-12.png" title="18.png" />



---------- 大功告成------------


後記:

1.本人在loganalyzer安裝嚮導配置的web後台賬戶,在登陸介面無法登陸,提示帳號或密碼錯誤,不知道是什麼原因?最後是在嚮導一處去掉登陸認證才勉強通過,有遇到相同問題的朋友望幫忙解答。

經過一位朋友指點,終於找到了原因

首先利用以下命令守株待兔

# tail -f /usr/local/mysql/log/mysql.log

然後在loganalyzer嚮導STEP6輸入web後台帳號密碼後,點擊NEXT

查看到mysql.log日誌裡出現了一條INSERT語句

650) this.width=650;" src="http://www.bkjia.com/uploads/allimg/131227/1JTA951-13.png" title="20.png" />

然後將該語句複製到後台手動執行,看報什麼錯誤

# mysql -uroot -p123456;

> INSERT INTO logcon_users (username, password, is_admin) VALUES ('admin', '00a1f187721cxxxxxxx6bf791e69382c', 1);

ERROR 1364 (HY000): Field 'last_login' doesn't have a default value

提示'last_login'欄不可為空值

OK,直接登入navicat,將這欄設定為允許空值儲存即可

650) this.width=650;" src="http://www.bkjia.com/uploads/allimg/131227/1JT61017-14.png" title="21.png" />

從新執行這條語句

> INSERT INTO logcon_users (username, password, is_admin) VALUES ('admin', '00a1f187721cxxxxxxx6bf791e69382c', 1);

Query OK, 1 row affected (0.06 sec)

顯示執行成功

利用navicat 查看後台該表,顯示成功插入一條記錄

650) this.width=650;" src="http://www.bkjia.com/uploads/allimg/131227/1JT61495-15.png" title="22.png" />

重新利用該帳號即可成功登入loganalyzer web後台


看來是mysql在執行該語句時,發現last_login欄預設為非空,所以拒絕這條insert語句執行,解決辦法就是將該欄設定為允許空值即可

博主線上上老版本mysql-5.0.56無需進行上述手動操作,即可成功登入後台

但本篇出現的問題則是在mysql-5.6.10版本上

看來這應該不算是loganalyzer的BUG,應該是mysql在高版本執行insert語句提高了嚴謹性

這裡給卡在這裡的朋友點思路,僅供參考。

在此感謝longeleven11朋友的提點。。。。



2.安裝rsyslog可謂是過程曲折,之前本想全部編譯安裝,最後才發現網上的文檔各種誤導,編譯rsyslog最後花了2個小時安裝了其6個依賴包,全部找的老外的文檔挨個測試,裝完網上給出的文檔又不能合理給出如何與系統內建的rsyslog共存保證不衝突,也就是編譯的rsyslog的啟動方法如何與系統內建的區別,索性就yum吧,實屬無奈之舉,還有吐槽下google各種間歇性抽風,至於原因,大家都懂的。。。


3.Windows用戶端安裝(win2008 server 64bit)

1.下載evtsys

http://eventlog-to-syslog.googlecode.com/files/Evtsys_4.4.3_64-Bit.zip


2.解壓檔案將包內64-Bit檔案夾下的所有檔案複製C:\Windows\System32下


3.開啟evtsys服務

運行- cmd

> cd c:\Windows\System32

> evtsys -i -s 10 -h 192.168.7.11 -p 514

> net start evtsys


4.驗證效果

650) this.width=650;" src="http://www.bkjia.com/uploads/allimg/131227/1JT625F-16.png" title="1.png" />



本文出自 “一路向北” 部落格,請務必保留此出處http://showerlee.blog.51cto.com/2047005/1231160

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.