日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

使用smokeping监测网络

發布時間:2023/12/20 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用smokeping监测网络 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?一、介紹


smokeping是rrdtool的作者Tobi Oetiker的作品,所以它在圖形顯示方面有很大優勢,也是一個很有特點的opensource工具:

多種探測方式,包括fping、echoping、dig、curl等;
易用可擴展的插件;
master/slave的工作方式,可以在多個節點收集同一個監測點的數據;
很有特色的alert設置,不只是簡單的設置一個閥值;

smokeping當前的版本是2.4.2,本文也是基于這個版本。

二、安裝

下載頁面:http://oss.oetiker.ch/smokeping/pub/

1、準備工作:

smokeping是一個用perl寫的程序,所以不需要安裝。但是他需要使用一些工具以及perl的module,比如rrdtool、fping、echoping等,這些都需要預先安裝好。

如果是用debian的話,直接用apt來安裝就可以了:

aptitude install rrdtool apache2 fping echoping libapache2-mod-speedycgi libwww-perl libsocket6-perl libnet-telnet-perl libnet-dns-perl libnet-ldap-perl libio-socket-ssl-perl libauthen-radius-perl libcgi-perl librrds-perl librrdp-perl

如果是其他linux的發行版,可以使用CPAN來安裝perl的module。

smokeping啟動的時候,也會自己去檢查需要用到的程序是否能找到。

2、設置:
在smokeping的子目錄中會發現很多“*.dist”命名的文件,這些文件使用的時候請將其改名為“*“并進行配置。

bin/smokeping
主程序,運行在后臺。
在這個文件里面我們需要修改前面兩個lib和后面config文件的path。
兩個lib分別是smokeping的lib和rrdtool的lib。

我的smokeping安裝在/usr/local/目錄中,所以我的設置是:

use lib qw(/usr/lib/perl5/);
use lib qw(/usr/local/smokeping/lib);

Smokeping::main("/usr/local/smokeping/etc/config");

htdocs/smokeping.cgi
顯示頁面、圖像和作為slave傳輸數據的接口,設置方法與"bin/smokeping"類似。
但是第一行的speedy的路徑可能需要修改,否則瀏覽器中只會看到一個白色的頁面。

htdocs/cropper/*
用來作頁面圖像放大縮小的工具。

etc/config
主配置文件,非常重要。
它使用的是perl的Config::Grammar模塊。
更詳細的配置請點擊這里。

在section:

*** General ***

里面我主要配置幾個path:

imgcache = /home/temp/smokeping/cache
imgurl? ?= https://smokeping/smokepingcache
datadir? = /home/temp/smokeping/data
piddir? = /home/temp/smokeping/var
cgiurl? ?= https://smokeping/smokeping/smokeping.cgi (我使用了ssl)

要在頁面中顯示中文的話,在section:

*** Presentation ***

中,加入:

charset = gb2312

不過rrdtool圖像中還是顯示不了中文。

etc/basepage.html
顯示頁面的主框架。里面之需要配置"htdocs/cropper/"的位置即可。

3、配置apache:

<Directory /usr/local/smokeping/htdocs/>
? AllowOverride None
? AddHandler cgi-script cgi
? Options ExecCGI
</Directory>

Alias /smokeping/ "/usr/local/smokeping/htdocs/"
Alias /smokepingcache/ "/home/temp/smokeping/cache/"

三、普通使用
1、開始使用
smokeping的配置文件"etc/config"使用Config::Grammar形式的config文件,以"+"作為層的開始符號。
比如:

+layer1
menu = layer1
title = layer1

++site1
menu = layer2
title = layer2

+++myhost1
menu = layer3
title = layer3
host = myhost.com

+++myhost2
menu = layer4
title = layer4
host = yourhost.com
...

其中myhost1、myhost2屬于site1,而site1則屬于layer1。 另外子層的"menu"、"title"并不是必需的。

配置好以后,可以啟動smokeping了:

./bin/smokeping

如果有錯誤的話可以debug一下:

./bin/smokeping --debug

2、multi-graph功能

也就是在一張圖里面畫上多個監測點的數值,很簡單:

+++ Multi
menu = Multi
title = My Multi
host = /layer1/site1/myhost1 /layer1/site1/myhost2

其它都一樣,不同的是在"host"中指定要放在一起的host(要之前有設置的host)的路徑就可以了。

四、smoketrace
作者在2.4版本中加入的新功能,個人覺得用處不太大。
這里有詳細的安裝方法,如果你也是將"htdocs"目錄作為cgi的目錄的話,什么都不用改,只需要將"htdocs/tr.cgi.dist"文件改名為"tr.cgi",并配置里面的lib路徑即可。

最后在section:

*** Targets ***

中加入:

menuextra = <a target='_blank' href='tr.html{HOST}' class='{CLASS}' \
οnclick="window.open(this.href,this.target, \
'width=800,height=500,toolbar=no,location=no,
status=no,scrollbars=no'); \
return false;">*</a>

即可看到頁面左邊的的每一個host的后面都多了個"*"號,點這個"*"號就會彈出trace的頁面。
這個trace比較像"MTR"的trace結果,為什么說它沒有什么用呢?因為它返回結果比較慢,而且只能使用"master"的機器來進行trace。

五、master/slave模式
下面說說master、slave模式,詳細請看這里。

[slave 1]? ? ?[slave 2]? ? ? [slave 3]
?? ? ? ?|? ? ? ? ? ? ?|? ? ? ? ? ? ? |
?? ? ? ?+-------+? ? ?|? ? ?+--------+
?? ? ? ? ? ? ? ?|? ? ?|? ? ?|
?? ? ? ? ? ? ? ?v? ? ?v? ? ?v
?? ? ? ? ? ? ?+---------------+
?? ? ? ? ? ? ?|? ? master? ? ?|
?? ? ? ? ? ? ?+---------------+

從圖上可以看到,slave主機會自己去檢查監測點的情況(loss and rtt),并將數值提交給master主機(通過smokeping.cgi)。
值得注意的是,slave并不需要config文件,每次slave提交完數據以后,會詢問master它自己的配置文件是否有修改,如果有修改的話slave會進行更新。

配置方法我就簡單說說好了:
設置slave信息:

*** Slaves ***
?secrets=/usr/local/smokeping/etc/slavesecrets.conf

?+slave1
?display_name=bjcnc
?location=China
?color=ff0000

要注意的是"slave1"這個名字需要設置為slave主機的hostname,并且寫在"slavesecrets.con"文件里面,如:

slave1:12345

如果不想用slave主機的hostname,那么在slave主機啟動smokeping服務的時候需要使用"--slave-name"來指定自己的名字。

*** Targets ***
?slaves = slave1 slave2
?...
?+dest1
?slaves =
?...
?+dest2
?slaves = slave1
?...
?+dest3
?...

在section

*** Targets ***

中指定那個host需要使用哪個slave幫忙進行檢測。下層會繼承上層的配置,如果下層不像繼承的話,可以配置"slaves ="來避免使用slave。

設置好以后,master的服務器重啟一下:

./bin/smokeping --restart

啟動slave:

./bin/smokeping --master-url=http://smokeping/smokeping.cgi \
?--cache-dir=/var/tmp/smokeping/ \
?--shared-secret=/usr/local/smokeping/secret.txt \
?--slave-name=slave1

其中secret.txt記載著在master的slavesecrets.conf文件里面對應的slave的密碼(只有密碼,沒有slave名稱)。
slavesecrets.conf和secret.txt文件的文件權限都要是"600"的。

master/slave模式中,master和slave的圖片都會顯示在同一個頁面中,如果不希望顯示master的圖片,可以使用

nomasterpoll=yes

參數。
另外要注意的一點是,master上面啟動"smokeping"進程和apache進程的用戶必須要一致。因為rrd文件是由"smokeping"進程創建的,而數據的update卻是由"smokeping.cgi"進行的,也就是apache用戶。如果不一致的話會出現rrd文件無法被更新的情況,這個情況即使在slave主機上面進行debug也是看不出來的。具體的現象是在頁面上面看到master的圖像出現數據,但是slave的圖像一直是空白的,數據顯示是"nan"。

六、alert設定
smokeping的alert設置有點復雜,但是卻很好用,考慮得很周全。
它默認可以使用郵件進行alert,也可以直接調用外部程序進行IM的報警,也就是說你只需要寫一個簡單的腳本,就可以實現smokeping的MSN 、 gtalk 、飛信等IM、短信報警了。

例子:

*** Alerts ***
to = |/usr/local/smokeping/bin/alert.sh
from = joe@somehost

"to" 選項,默認是要填入一個email地址的,但是只要在"="后面加上"|",后面再跟你自定義的腳本的路徑,就可以調用自己的腳本進行alert了。
腳本會讀入5或者6個參數:name-of-alert, target, loss-pattern, rtt-pattern, hostname,[raise]。
自己選擇使用哪些參數alert即可。

+someloss
type = loss
# in percent
pattern = >0%,*12*,>0%,*12*,>0%
comment = loss 3 times? in a row

+rttbad
type = rtt
# in milliseconds
pattern = ==S,>50,>50
comment = route

?+rttdetect
?type = rtt
?# in milliseconds
?pattern = <10,<10,<10,<10,<10,<100,>100,>100,>100
?comment = routing messed up again ?

alert的類型我們主要使用"loss"和"rtt"兩種(當然還有更多更復雜的類型)。上面的兩個alert設置的意思是:
someloss:
如果在12次檢查中出現了3次丟包的情況(不論丟多少個包),就進行alert;

rttbad:
如果連續出現兩次50毫秒以上的延時,就進行alert;

rrtdetect:
之前5次檢查延時都少于10毫秒,前6次檢查延時都少于100毫秒,第7次開始連續3次檢查延時都大于100毫秒的話,就進行alert。

從上面可以看出,smokeping的alert做得很全面和仔細,并非像其他工具一樣,就使用一個閥值來進行預警的。

最后在你希望進行alert的target里面加上:

alerts = rttbad,someloss

即可。
和"slaves"一樣,也是向上繼承的,避免繼承的方法也是"alerts =",做一個空的alerts。

參考:
SmokePing Documentationhttp://oss.oetiker.ch/smokeping/doc/index.en.html

轉載于:https://blog.51cto.com/gengjunlong/786432

總結

以上是生活随笔為你收集整理的使用smokeping监测网络的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。