Smokeping
Smokeping允許你監測多台伺服器。 Smokeping使用RRDtool來存儲數據,另外,其可基於RRDtool輸出生成相應的統計圖表。 Smokeping由兩個部分組成。一個運行在後台、定期收集數據的服務。一個以圖表形式展示數據的Web界面。
這個wiki頁面包括安裝smokeping後台服務和Web界面的基本步驟。
安裝[編輯 | 編輯原始碼]
這一節包括使用smokeping包包安裝Smokeping。 FastCGI的安裝步驟可以參見Apache and FastCGI。
smokeping軟件包包括兩個部分:
- smokeping的後台服務和在
/etc/smokeping/
的配置文件。這個後台服務執行監測任務。 - 在
/srv/http/smokeping
的「htdocs」。這些文件被Web界面所使用。
除了安裝smokeping包包之外,您還需要:
- 一個smokeping監測的工具。fping包 是默認ping探針的最簡潔方法。
- apache包 和mod_fcgidAUR 被用於Web界面。
- 一個圖像緩存目錄,其可被FastCGI腳本寫入,例如:
/srv/smokeping/imgcache
- 一個數據存儲目錄,其可被smokeping後台服務寫入,同時可被FastCGI腳本讀取,例如:
/srv/smokeping/data
- 確保主配置文件可被smokeping後台服務讀取。
可選的安裝[編輯 | 編輯原始碼]
如果你想使用其他探針,例如DNS、http探針,你需要安裝如下所示的其他軟件包。 這些探針的配置並不包括在這個wiki頁面中。
探針 | 所需軟件包 |
---|---|
Curl | curl包 |
DNS | bind包 (被用於Dig) |
EchoPing | echoping包 |
SSH | openssh包 |
TelnetIOSPing | perl-net-telnet包 |
AnotherDNS | perl-net-dns包 |
LDAP | perl-ldap包 |
LDAP (tls) | perl-io-socket-ssl包 |
Authen | perl-authen-radius包 |
配置[編輯 | 編輯原始碼]
Smokeping需要你編輯許多文件。
未編輯的文件的擴展名為.dist
。將在/etc/smokeping
目錄中以.dist
結尾的文件去除.dist
後綴。
find 可以完成這件任務,同時打印出所有被重命名與需要編輯的文件。
# cd /etc/smokeping # find . -name '*.dist' -print -execdir sh -c 'mv {} $(basename {} .dist)' \; # mv /srv/http/smokeping/smokeping.fcgi.dist /srv/http/smokeping/smokeping.fcgi
編輯配置文件[編輯 | 編輯原始碼]
下一步,編輯 /etc/smokeping/config
文件。這個文件是smokeping的主配置文件。
下面將用一個完整的配置文件例子簡要介紹各節的功用。
/etc/smokeping/config
中 General 節是最容易被編輯的。
根據你個人信息個性化上述的配置文件。相應的條目均有註釋。
注意:如果你沒有安裝sendmail
的軟件(例如:postfix 或 sendmail),使用一些別的東西代替,例如/bin/false
。
你編輯的文件必須存在,否則smokeping將會報錯。
Alerts 節。這個最小化的配置文件例子中並不需要 Alerts 節,所以你可以將其註釋或刪除。
Database 節不需要做任何改動。
Presentation 節中,模板文件的路徑需要更新。
Probes 節規定哪些探針被激活。默認情況下,僅 FPing 探針被激活。這一節不需要做任何更改。
Slaves 節。這個最小化的配置文件例子中並不需要 Slaves 節,所以你可以將其註釋或刪除。注意:如果你在Slaves節中使用smokeping_secrets
設置,你必須確保那個文件不能被其他用户訪問,否則smokeping將會報錯。chmod 600 /etc/smokeping/smokeping_secrets
Targets 節指定哪些主機將被探測(在這個例子中為ping的目標)。像如下的例子,根據你想要搜集統計數據的主機,個性化 Targets 節。
你可以在這個網址 https://oss.oetiker.ch/smokeping/doc/smokeping_examples.en.html 了解更多關於Smokeping 配置文件的知識。
/etc/smokeping/config
*** General *** owner = Your Name Here # 你的名字 contact = your.email@host.bla # 你的电子邮件地址 mailhost = your.smtp.server.bla # 你的邮件服务器 sendmail = /bin/false # sendmail程序路径 imgcache = /srv/smokeping/imgcache # filesystem directory where we store files imgurl = imgcache # URL directory to find them datadir = /srv/smokeping/data # daemon 与 webapp 共享的数据目录 piddir = /var/run # filesystem directory to store PID file cgiurl = http://localhost/smokeping/smokeping.fcgi # 外部URL smokemail = /etc/smokeping/smokemail tmail = /etc/smokeping/tmail syslogfacility = local0 # each probe is now run in its own process # disable this to revert to the old behaviour # concurrentprobes = no *** Database *** step = 300 pings = 20 # consfn mrhb steps total AVERAGE 0.5 1 1008 AVERAGE 0.5 12 4320 MIN 0.5 12 4320 MAX 0.5 12 4320 AVERAGE 0.5 144 720 MAX 0.5 144 720 MIN 0.5 144 720 *** Presentation *** template = /etc/smokeping/basepage.html + charts menu = Charts title = The most interesting destinations ++ stddev sorter = StdDev(entries=>4) title = Top Standard Deviation menu = Std Deviation format = Standard Deviation %f ++ max sorter = Max(entries=>5) title = Top Max Roundtrip Time menu = by Max format = Max Roundtrip Time %f seconds ++ loss sorter = Loss(entries=>5) title = Top Packet Loss menu = Loss format = Packets Lost %f ++ median sorter = Median(entries=>5) title = Top Median Roundtrip Time menu = by Median format = Median RTT %f seconds + overview width = 600 height = 50 range = 10h + detail width = 600 height = 200 unison_tolerance = 2 "Last 3 Hours" 3h "Last 30 Hours" 30h "Last 10 Days" 10d "Last 400 Days" 400d *** Probes *** + FPing binary = /usr/sbin/fping *** Targets *** probe = FPing menu = Top title = Network Latency Grapher remark = Welcome to the SmokePing website of Arch User. \ Here you will learn all about the latency of our network. + targets menu = Targets ++ ArchLinux menu = Arch Linux title = Arch Linux Website host = 66.211.214.131 ++ GoogleDNS menu = Google DNS title = Google DNS server host = 8.8.8.8 ++ MultiHost menu = Multihost example title = Arch Wiki and Google DNS host = /targets/ArchLinux /targets/GoogleDNS
有關smokeping配置文件語法的注意事項[編輯 | 編輯原始碼]
每一個 + 號定義了一個有着層次等級的節。在節名稱中不允許含有空格。英文句號 . 和正斜槓 / 同樣應當儘量避免出現在節名稱中。這是因為存儲在數據目錄下的RRD文件有着和節名稱一樣的文件名。
在Targets 節,你可以用真實的主機名或其他節名稱的路徑來定義host
,從而生成含有多個主機結果的圖表,具體情況可以參考上面例子中的MultiHost
。
安裝系統中的其他部分[編輯 | 編輯原始碼]
創建配置文件提到的額外目錄:
# mkdir -p /srv/smokeping/data # mkdir -p /srv/smokeping/imgcache # chown -R smokeping:smokeping /srv/smokeping # chown -R http:http /srv/smokeping/imgcache # chmod a+rx /srv/smokeping # chmod -R a+rx /srv/smokeping/data
由於smokeping配置文件同時被smokeping服務和FastCGI腳本讀取,所以它應當具有可讀取權限:
# chmod a+rx /etc/smokeping # chmod a+r /etc/smokeping/config
啟動服務[編輯 | 編輯原始碼]
啟動 Start smokeping.service
服務,並且確認它正在運行。
# systemctl start smokeping.service # systemctl enable smokeping.service
安裝Web界面[編輯 | 編輯原始碼]
編輯/etc/httpd/conf/httpd.conf
,使其包含以下內容:
/etc/httpd/conf/httpd.conf
LoadModule fcgid_module modules/mod_fcgid.so <IfModule fcgid_module> AddHandler fcgid-script .fcgi </IfModule> Alias /smokeping/imgcache /srv/smokeping/imgcache Alias /smokeping /srv/http/smokeping <Directory "/srv/smokeping/imgcache"> AllowOverride all Require all granted </Directory> <Directory "/srv/http/smokeping"> Options FollowSymLinks ExecCGI AllowOverride all Require all granted </Directory>
通過 httpd.service
,啟動 Start Apache 。
檢查 http://localhost/smokeping/smokeping.fcgi
是否載入。第一批數據將在幾分鐘後出現。
如果由於字體原因導致圖像不可讀,你應當安裝ttf-dejavu包。
高級配置[編輯 | 編輯原始碼]
Smokeping是一個可以被多種方式配置的有力工具。你可以啟動許多不同類型的探針。你可以設置發送統計信息的從屬smokeping伺服器(slave smokeping servers),並顯示來自其他伺服器的探測結果。 你也可以使用perl創建你自己的探針。這篇教程目前並沒有講解這些選項。如果你對這些內容感興趣,可以查閱Smokeping官方網站上的資料。
Troubleshooting[編輯 | 編輯原始碼]
The smokeping package is currently broken in several ways. To get the service to run as a daemon, you will need to modify the provided systemd unit file to have this parameter:
type=forking
Smokemail is also not currently included, and is a required file for smokeping to run. You will need to download the file and add it manually from smokeping's github:
https://github.com/oetiker/SmokePing/blob/master/etc/smokemail.dist
注意[編輯 | 編輯原始碼]
Smoketrace (Tr.cgi)[編輯 | 編輯原始碼]
根據更新記錄,v2.5.5版本後SmokeTraceroute功能正式上線。