Smokeping

出自 Arch Linux 中文维基

本文內容或本節內容已經過期。

原因: 請提供模板的第一個位置參數以概括原因。 (在Talk: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探針的最簡潔方法。
  • apachemod_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/configGeneral 節是最容易被編輯的。 根據你個人信息個性化上述的配置文件。相應的條目均有註釋。

注意:如果你沒有安裝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功能正式上線。