歡迎您光臨本站 註冊首頁

Linux下cacti syslog-ng snare

←手機掃碼閱讀     火星人 @ 2014-03-08 , reply:0

Linux下cacti syslog-ng snare

系統環境:CentOS5.4

文檔版本:V1.0.0

整理者:Teasure

更新時間:2011-02-13

說明:運維專用

目 錄

1. 服務端配置…………………………………………………………………………………………………………………………3

1.1.1. 下載所需rpm包... 3

1.1.2. 服務安裝... 3

1.1.3. 伺服器端配置... 4

1.1.4. 安裝syslog插件... 5

1.1.5. 在crontab中添加:... 5

2. Linux客戶端配置:……………………………………………………………………………………………………………6

2.1.1. linux伺服器客戶端安裝及配置... 6

2.1.2. 注意事項: 6

3. windows伺服器客戶端配置………………………………………………………………………………………………6

3.1.1. 安裝syslog-ng代理軟體... 6

3.1.2. 配置snare. 7

3.1.3. 配置Objectives Configuration. 7

4. Troubleshooting…………………………………………………………………………………………………………………..8

4.1.1. 點擊Syslog插件報錯... 8

5. Other thing………………………………………………………………………………………………………………………….9

5.1.1. 使用默認的syslog. 9

5.1.2. 完成配置后重啟syslog服務... 10

6. 防火牆配置……………………………………………………………………………………………………………………….10

6.1.1. 在日誌伺服器上放行514埠... 10


1. 服務端配置

1.1.1. 下載所需rpm包

從syslog-ng的官方網站上下載編譯好的rpm包,針對rhel或CentOS的.

需要的rpm包,可以到這裡進行下載使用:

syslog-ng.zip

文件:

Syslog-NG.rar

大小:

859KB

下載:

1.1.2. 服務安裝

安裝(伺服器跟客戶端安裝都一樣,這裡指的是linux客戶端,windows客戶端需要另外的軟體)

[root@Teasure syslog]# ll
-rw-r--r-- 1 root root 72601 2009-01-04 libdbi8-0.8.2bb2-3.rhel5.i386.rpm

-rw-r--r-- 1 root root 650564 2009-01-04 libdbi8-dev-0.8.2bb2-3.rhel5.i386.rpm

-rw-r--r-- 1 root root 9076 2009-01-04 libevtlog0-0.2.8-1.i386.rpm

-rw-r--r-- 1 root root 163024 2009-01-04 syslog-ng-2.1.3-1.i386.rpm

安裝libevt

[root@Teasure syslog]# rpm -ivh libevtlog0-0.2.8-1.i386.rpm
Preparing... ################################# [100%]
1:libevtlog0 ################################## [100%]

安裝syslog-ng

[root@Teasure syslog]# rpm -vih libdbi8-0.8.2bb2-3.rhel5.i386.rpm libdbi8-dev-0.8.2bb2-3.rhel5.i386.rpm syslog-ng-2.1.3-1.i386.rpm
warning: libdbi8-0.8.2bb2-3.rhel5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 2aa28252
Preparing... ############################### [100%]
1:libdbi8 ############################### [ 33%]
2:libdbi8-dev ############################### [ 67%]
3:syslog-ng ################################# [100%]

Shutting down kernel logger: [ OK ]
Shutting down system logger: [ OK ]
Starting syslog-ng: [ OK ]

1.1.3. 伺服器端配置

[root@Teasure syslog]# cd /etc/syslog-ng

[root@Teasure syslog-ng]# cp syslog-ng.conf syslog-ng.conf.bak

[root@Teasure syslog-ng]# vim syslog-ng.conf

在最后末行添加如下:

source net {

udp();

};

destination d_mysql {

pipe("/tmp/mysql.pipe"

template("INSERT INTO syslog_incoming (host, facility, priority, date, time, message) VALUES ( '$HOST', '$FACILITY', '$PRIORITY', '$YEAR-$MONTH-$DAY', '$HOUR:$MIN:$SEC', '$MSG' );\n")

template-escape(yes)

);

};

log { source(net); destination(d_mysql); };

log { source(s_local); destination(d_mysql); };

完成之後,執行命令:

檢查服務狀態

1.1.4. 安裝syslog插件

安裝syslog插件,在syslog插件目錄下,編輯一個新的sh文件/var/www/html/plugins/syslog/syslog2mysql.sh,並且賦予可執行許可權(同時該目錄下的syslog_process.php也有可執行許可權):

[root@Teasure syslog]# chmod x syslog2mysql.sh syslog_process.php

syslog2mysql.sh腳本內容如下:

#!/bin/bash

if [ ! -e /tmp/mysql.pipe ]

then

mkfifo /tmp/mysql.pipe

fi

while [ -e /tmp/mysql.pipe ]

do mysql -u root syslog < /tmp/mysql.pipe >/dev/null

done

運行syslog2mysql.sh,如果沒有任何顯示,後台有該進程,則基本上成功了.

[root@Teasure syslog]#/var/www/html/plugins/syslog/syslog2mysql.sh &

1.1.5. 在crontab中添加:

[root@Teasure syslog]# crontab -e 添加如下兩行內容:

@reboot /var/www/html/plugins/syslog/syslog2mysql.sh

*/1 * * * * /usr/bin/php /var/www/html/plugins/syslog/syslog_process.php

使開機執行syslog2mysql.sh,syslog_process.php每分鐘執行一次.

注意事項:全部完成後記得重啟各種服務.

2. Linux客戶端配置: 2.1.1. linux伺服器客戶端安裝及配置

安裝跟伺服器端一樣的,這裡就不多說了.

配置

在/etc/syslog-ng/syslog.conf里只需要加三行就可以了 把其它的全部都註釋掉

內容如下:

source s_local { pipe ("/proc/kmsg" log_prefix("kernel: ")); unix-stream ("/dev/log"); internal(); };

destination d_udp { udp("192.168.1.198" port(514)); };
log { source(s_local); destination(d_udp); };

然後再重啟syslog-ng服務就可以了.

2.1.2. 注意事項:

上面的配置會導致本地沒有任何日誌信息了,全部都發送到了日誌伺服器上面了.如果想在本地保留一份日誌信息,那麼在syslog-ng裡面再加入三行,內容如下:

source s_local { pipe ("/proc/kmsg" log_prefix("kernel: ")); unix-stream ("/dev/log"); internal(); };
destination d_syslognglog { file("/var/log/syslog-ng.log"); };
log { source(s_local); destination(d_syslognglog); };

這樣本地也就有一份日誌信息了,保存在/var/log/syslog-ng.log裡面.

3. windows伺服器客戶端配置

3.1.1. 安裝syslog-ng代理軟體

安裝syslog-ng代理軟體:SnareSetup-3.1.3-MultiArch.exe,為什麼用這個呢,這個配置簡單易用.

安裝很簡單,雙擊exe文件,下一步,下一步.其中有一步是問需要不需要密碼,是用默認的snare做為用戶跟密碼還是用本地系統的用戶,還是創建一個帳號做為認證,這個就取決於個人了.點擊安裝完成.

3.1.2. 配置snare

配置snare,點擊開始--程序--選擇InterSect Alliance--snare for windows 后是一個web形式的,地址為:http://localhost:6161/

默認是不需要密碼的,可以配置為需要用戶名跟密碼來認證.首先我們配置日誌伺服器這一部分,也是最主要的部分,如果這一部分配置不正確的話,那日誌伺服器上也就不會有這台機器的日誌信息了.點擊左邊的:Network Configuration 如下所示

snare_01.jpg

Destination Snare Server address ---這個就是日誌伺服器的IP地址了.一般不用域名,怕解釋不到.

Destination Port --- 這個就是日誌伺服器的埠了 一般默認是514

Enable Syslog Header一般把勾打上.下面兩個就根據你的需要來設置了.

設置完成後再點下面的 Change Configureation 應用配置

3.1.3. 配置Objectives Configuration

還有一個重要的配置,那就是決定把什麼樣的日誌發送到日誌伺服器呢?再點左邊的:Objectives Configuration,如下所示:

snare_02.jpg

Empire CMS,phome.net

這個修改就要看個人的需求是什麼樣的了,我這裡就不多說了.全部完成後記得點左邊的:Apply the Latest Audit Configuration 來應用所有的配置!當然Snare還有其它的功能,比如遠程操控這個代理軟體,自己多摸索吧

附加上win下的軟體包如下: SnareSetup-3.1.3-MultiArch.zip (634.2 KB)

4. Troubleshooting 4.1.1. 點擊Syslog插件報錯

Warning: include(./include/html/inc_timespan_settings.php)

報126行有錯:

include($syslog_config["graphtime"] ?"./include/html/inc_timespan_settings.php" : "plugins/syslog/html/syslog_timespan_settings.php");

修改126行為:

include($syslog_config["graphtime"] ? "././lib/timespan_settings.php" : "plugins/syslog/html/syslog_timespan_settings.php");

但是,針對cactiV9.1.iso版本的安裝syslog-ng的時候,不會出現這個問題.其配置文件內容如下:

include($syslog_config["graphtime"] ? "./include/html/inc_timespan_settings.php" : "plugins/syslog/html/syslog_timespan_sett ings.php");

5. Other thing 5.1.1. 使用默認的syslog

使用默認的syslog做為syslog-ng的客戶端,這樣可以避免在太多客戶端的情況下需要安裝syslog-ng軟體,配置更容易.

[root@Teasure ~]# vim /etc/syslog.conf


# Log all kernel messages to the console.
# Logging much else clutters up the screen.
#kern.* /dev/console

# Log anything (except mail) of level info or higher.


# Don't log private authentication messages!
#*.info;mail.none;authpriv.none;cron.none /var/log/messages
*.info;mail.none;authpriv.none;cron.none @192.168.1.198

# The authpriv file has restricted access.
authpriv.* /var/log/secure

# Log all the mail messages in one place.
mail.* -/var/log/maillog


# Log cron stuff
cron.* /var/log/cron
cron.* @192.168.1.198

# Everybody gets emergency messages
*.emerg *

# Save news errors of level crit and higher in a special file.
uucp,news.crit /var/log/spooler

# Save boot messages also to boot.log
local7.* /var/log/boot.log
local7.* @192.168.1.198

其中有@標識的就是把日誌發送到日誌伺服器的,例如:

cron.* @192.168.1.198

這一行表示把cron的日誌發送到日誌伺服器192.168.1.198上面去.

原來的配置我並沒有改動,這樣就可以保持原來的日誌一樣寫入到本地.方便查看.

5.1.2. 完成配置后重啟syslog服務

[root@Teasure syslog-ng]# service syslog restart
Shutting down kernel logger: [ OK ]
Shutting down system logger: [ OK ]
Starting system logger: [ OK ]
Starting kernel logger: [ OK ]

6. 防火牆配置 6.1.1. 在日誌伺服器上放行514埠

在日誌伺服器上要讓iptables允許514埠通過,不然伺服器無法接收到客戶端的日誌信息.

加兩條規則,如下:

[root@Teasure ~]# iptables –A INPUT -m state --state NEW -m tcp -p tcp --dport 514 -j ACCEPT

[root@Teasure ~]# iptables –A INPUT -p udp -m state -m udp --dport 514 --state NEW -j ACCEPT



[火星人 ] Linux下cacti syslog-ng snare已經有1004次圍觀

http://coctec.com/docs/linux/show-post-45983.html