Smokeping - Arch Linux 中文维基

跳至內容

# Smokeping

出自 Arch Linux 中文维基

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

原因： 請提供模板的第一個位置參數以概括原因。 (在Talk:Smokeping討論)
翻譯狀態：

- 本文（或部分內容）譯自 Smokeping，最近一次同步於 2017-04-07，若英文版本有所更改，則您可以幫助同步與翻譯更改的內容。
- 您可以在 ArchWiki 的對應頁面找到本文翻譯的原始修訂歷史。
- 本文可能與英文原文存在出入。

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功能正式上線。

分類：​

- 使用「模板:過時」標記的頁面或章節
- 網絡監控

Smokeping
新增話題