May 22,2006
[筆記]在CentOS 4.3上安裝SmokePing 2.0.8
跟部門調來一台舊筆電(Acer Travelmate 351TE),Intel P III 700 MHz的CPU,裝上192MB的記憶體,10GB的硬碟,我準備用CentOS讓它成為DCN穩定度資料收集(好啦,只是ping)的主機。
這次我選上的自由軟體叫做SmokePing,跟MRTG還有RRDTool都出自Tobias Oetiker之手。
[關閉SELinux設定]
真遺憾,搞不定SELinux,只好先這樣弄:
(立即生效)
setenforce 0
(修改開機設定)
/etc/selinux/config 其中一行改成 SELINUX=permissive
[檔案下載]
RRDTool的rpm檔案我從從DAG RPM Repository的RRDTool頁面取得rrdtool-1.0.50-3.2.el4.rf.i386.rpm以及perl-rrdtool-1.0.50-3.2.el4.rf.i386.rpm
fping的rpm檔案一樣從DAG RPM Repositoryfping頁面拿fping-2.4-1.b2.2.el4.rf.i386.rpm來用。
SpeedyCGI還是從DAG RPM Repository的這裡抓perl-CGI-SpeedyCGI-2.22-1.2.el4.rf.i386.rpm
SmokePing我從這裡抓smokeping-2.0.8.tar.gz
[安裝]
rpm -Uvh rrdtool-1.0.50-3.2.el4.rf.i386.rpm
rpm -Uvh perl-rrdtool-1.0.50-3.2.el4.rf.i386.rpm
rpm -Uvh fping-2.4-1.b2.2.el4.rf.i386.rpm
rpm -Uvh perl-CGI-SpeedyCGI-2.22-1.2.el4.rf.i386.rpm
根據smokeping_install文件,只要把smokeping的.tgz檔解壓縮,修改一些設定,就可以執行smokeping了。
cd /usr/local ; tar zxvf ~/packages/smokeping-2.0.8.tar.gz ; mv smokeping-2.0.8 smokeping ; cd smokeping
(上文~/packages/smokeping-2.0.8.tar.gz是我放下載回來檔案的地方)
cp -p bin/smokeping.dist bin/smokeping
vi bin/smokeping
(bin/smokeping要能夠找到perl, Smokeping.pm, RRDs.pm)
原本是
改成
cp -p htdocs/smokeping.cgi.dist htdocs/smokeping.cgi
vi htdocs/smokeping.cgi
原本
改成
cp -p htdocs/smokeping.cgi /var/www/cgi-bin/
cp -p etc/config.dist etc/config
vi etc/config
把這個檔我改的部份貼出來:(注意,這個檔案最後一段是設定要ping哪些機器,請自己修改官方範例,不在此贅述)
(請依照自己的情況,替換底下的ip位址)
再來:
mkdir -p /usr/local/smokeping/var
mkdir -p /var/www/html/smokeping/img
cp -p etc/smokemail.dist etc/smokemail
cp -p etc/tmail.dist etc/tmail
cp -p etc/basepage.html.dist etc/basepage.html
[啟動apache web server]
chkconfig httpd on
service httpd start
[執行smokeping]
bin/smokeping &
[測試](請依照自己的情況,替換底下的ip位址)
http://192.168.100.1/smokeping.cgi
[參考文章]
Smokeping 安裝,作者是在Fedora Core 3上安裝SmokePing 1.38
[關閉SELinux設定]
真遺憾,搞不定SELinux,只好先這樣弄:
(立即生效)
setenforce 0
(修改開機設定)
/etc/selinux/config 其中一行改成 SELINUX=permissive
[檔案下載]
RRDTool的rpm檔案我從從DAG RPM Repository的RRDTool頁面取得rrdtool-1.0.50-3.2.el4.rf.i386.rpm以及perl-rrdtool-1.0.50-3.2.el4.rf.i386.rpm
fping的rpm檔案一樣從DAG RPM Repositoryfping頁面拿fping-2.4-1.b2.2.el4.rf.i386.rpm來用。
SpeedyCGI還是從DAG RPM Repository的這裡抓perl-CGI-SpeedyCGI-2.22-1.2.el4.rf.i386.rpm
SmokePing我從這裡抓smokeping-2.0.8.tar.gz
[安裝]
rpm -Uvh rrdtool-1.0.50-3.2.el4.rf.i386.rpm
rpm -Uvh perl-rrdtool-1.0.50-3.2.el4.rf.i386.rpm
rpm -Uvh fping-2.4-1.b2.2.el4.rf.i386.rpm
rpm -Uvh perl-CGI-SpeedyCGI-2.22-1.2.el4.rf.i386.rpm
根據smokeping_install文件,只要把smokeping的.tgz檔解壓縮,修改一些設定,就可以執行smokeping了。
cd /usr/local ; tar zxvf ~/packages/smokeping-2.0.8.tar.gz ; mv smokeping-2.0.8 smokeping ; cd smokeping
(上文~/packages/smokeping-2.0.8.tar.gz是我放下載回來檔案的地方)
cp -p bin/smokeping.dist bin/smokeping
vi bin/smokeping
(bin/smokeping要能夠找到perl, Smokeping.pm, RRDs.pm)
原本是
#!/usr/sepp/bin/perl-5.8.4 -w
# -*-perl-*-
use lib qw(/usr/pack/rrdtool-1.0.49-to/lib/perl);
use lib qw(lib);
use Smokeping 2.000008;
Smokeping::main("etc/config.dist");
改成
#!/usr/bin/perl -w
# -*-perl-*-
use lib qw(/usr/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi);
use lib qw(/usr/local/smokeping/lib);
use Smokeping 2.000008;
Smokeping::main("/usr/local/smokeping/etc/config");
cp -p htdocs/smokeping.cgi.dist htdocs/smokeping.cgi
vi htdocs/smokeping.cgi
原本
#!/usr/sepp/bin/speedy -w
# -*-perl-*-
use lib qw(/usr/pack/rrdtool-1.0.33-to/lib/perl);
use lib qw(/home/oetiker/data/projects/AADJ-smokeping/dist/lib);
use CGI::Carp qw(fatalsToBrowser);
use Smokeping 2.000008;
Smokeping::cgi("/home/oetiker/data/projects/AADJ-smokeping/dist/etc/config");
改成
#!/usr/bin/speedy -w
# -*-perl-*-
use lib qw(/usr/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi);
use lib qw(/usr/local/smokeping/lib/);
use CGI::Carp qw(fatalsToBrowser);
use Smokeping 2.000008;
Smokeping::cgi("/usr/local/smokeping/etc/config");
cp -p htdocs/smokeping.cgi /var/www/cgi-bin/
cp -p etc/config.dist etc/config
vi etc/config
把這個檔我改的部份貼出來:(注意,這個檔案最後一段是設定要ping哪些機器,請自己修改官方範例,不在此贅述)
(請依照自己的情況,替換底下的ip位址)
imgcache = /var/www/html/smokeping/img
imgurl = http://192.168.100.1/smokeping/img
datadir = /usr/local/smokeping/var
piddir = /usr/local/smokeping/var
cgiurl = http://192.168.100.1/cgi-bin/smokeping.cgi
smokemail = /usr/local/smokeping/etc/smokemail
tmail = /usr/local/smokeping/etc/tmail
template = /usr/local/smokeping/etc/basepage.html
binary = /usr/sbin/fping
再來:
mkdir -p /usr/local/smokeping/var
mkdir -p /var/www/html/smokeping/img
cp -p etc/smokemail.dist etc/smokemail
cp -p etc/tmail.dist etc/tmail
cp -p etc/basepage.html.dist etc/basepage.html
[啟動apache web server]
chkconfig httpd on
service httpd start
[執行smokeping]
bin/smokeping &
[測試](請依照自己的情況,替換底下的ip位址)
http://192.168.100.1/smokeping.cgi
[參考文章]
Smokeping 安裝,作者是在Fedora Core 3上安裝SmokePing 1.38
引用URL
http://cgi.blog.roodo.com/trackback/1635046
回應文章 
alert的部份
總是搞不定
一堆false alarm
不知道smokeping能否配合mrtg的threshold功能
總是搞不定
一堆false alarm
不知道smokeping能否配合mrtg的threshold功能
Posted by eek
at May 23,2006 12:27
eek,
我看了一下底下這個設定說明:
http://oss.oetiker.ch/smokeping/doc/smokeping_config.en.html
其中的*** Alerts ***章節應該夠用才對?
你說的false alarm,可以詳細描述一下嗎?
我看了一下底下這個設定說明:
http://oss.oetiker.ch/smokeping/doc/smokeping_config.en.html
其中的*** Alerts ***章節應該夠用才對?
你說的false alarm,可以詳細描述一下嗎?
Posted by PowerOp
at May 24,2006 00:04
其實是偷懶只抄範例
要花點時間看一下說明
要花點時間看一下說明
Posted by eek
at May 25,2006 12:39
eek,
所以妳是照我的說明來安裝的嗎?
我半夜貼文到妳中午回文,才大約12個小時耶!?如果是這樣就太感動了:)
找到底下這篇Smokeping on Fedora Core 4,雖然提到了我這篇,不過它又有說明,又有圖解呢。看來,我成功地拋磚引玉了^_^
所以妳是照我的說明來安裝的嗎?
我半夜貼文到妳中午回文,才大約12個小時耶!?如果是這樣就太感動了:)
找到底下這篇Smokeping on Fedora Core 4,雖然提到了我這篇,不過它又有說明,又有圖解呢。看來,我成功地拋磚引玉了^_^
Posted by PowerOp
at May 25,2006 22:41
好幾年前就裝過了
不過是最近需要alert的功能
還是謝謝大大的幫忙
不過是最近需要alert的功能
還是謝謝大大的幫忙
Posted by eek
at May 26,2006 12:34
eek,
妳好幾年前就裝過了,還叫我大大,這這這...
叫我PowerOp就可以啦,如果妳有網誌的話,記得告訴我喔!
妳好幾年前就裝過了,還叫我大大,這這這...
叫我PowerOp就可以啦,如果妳有網誌的話,記得告訴我喔!
Posted by PowerOp
at May 29,2006 22:14
不小心逛到這個網站,也想試試看這套軟體
可是裝完之後,瀏覽網頁的時候出現
ERROR: /usr/local/smokeping/etc/config, line 93: ERROR: FPing 'binary' does not point to an executable
是那裡出了問題嗎?
在網路上也找不到解決的方法…
可是裝完之後,瀏覽網頁的時候出現
ERROR: /usr/local/smokeping/etc/config, line 93: ERROR: FPing 'binary' does not point to an executable
是那裡出了問題嗎?
在網路上也找不到解決的方法…
Posted by hsinglun
at July 5,2006 10:59
hsinglun,
我先英翻中一下,妳應該就會發現答案並不難:
我這邊的行號不一樣,不過說的應該是把下面這一行:
改成妳系統裡面裝好的fping的執行檔的位置,例如:
其實呢,我之前提到過了,底下這篇圖文並茂的中文解說:
Smokeping on Fedora Core 4
裡面就有提到這一點啦!
==
難得遇到網友出這麼簡單的送分題,嘿嘿 :p
我先英翻中一下,妳應該就會發現答案並不難:
錯誤:/usr/local/smokeping/etc/config的第93行:
錯誤:FPing的'binary'並沒有指向一個可執行檔
我這邊的行號不一樣,不過說的應該是把下面這一行:
binary = /usr/sepp/bin/fping
改成妳系統裡面裝好的fping的執行檔的位置,例如:
binary = /usr/sbin/fping
其實呢,我之前提到過了,底下這篇圖文並茂的中文解說:
Smokeping on Fedora Core 4
裡面就有提到這一點啦!
==
難得遇到網友出這麼簡單的送分題,嘿嘿 :p
Posted by PowerOp
at July 5,2006 11:52
感謝這麼快就給我回應了
這是我裡面的設定
------------------------------------------------
*** Probes ***
+ FPing
binary = /usr/sbin/fping
*** Targets ***
probe = FPing
menu = Top
title = Network Latency Grapher
remark = Welcome to the SmokePing website of xxx Company. \
Here you will learn all about the latency of our network.
-------------------------------------------------------
就是因為沒有設錯,才令我百思不解啊
希望不會從送分題變成難題,嘻嘻
這是我裡面的設定
------------------------------------------------
*** Probes ***
+ FPing
binary = /usr/sbin/fping
*** Targets ***
probe = FPing
menu = Top
title = Network Latency Grapher
remark = Welcome to the SmokePing website of xxx Company. \
Here you will learn all about the latency of our network.
-------------------------------------------------------
就是因為沒有設錯,才令我百思不解啊
希望不會從送分題變成難題,嘻嘻
Posted by hsinglun
at July 5,2006 13:18
hsinglun,
簡單回答:
chmod o+x /usr/sbin/fping
==
給分!給分! :p
==
還是當成申論題說明一下好了,在我的系統環境,fping套件裝好之後,預設的權限是:
# ls -l /usr/sbin/fping
-rwsr-x--- 1 root adm 29850 Feb 17 2005 /usr/sbin/fping
當使用者透過網頁瀏覽的時候,伺服器端會以apache帳號去執行smokeping.cgi,以及衍生出來的程式,例如fping。
這樣就很明顯了,apache這個帳號既不是root,也不屬於adm群組,它還是無法執行fping,所以我調整了權限。
==
這邊跟大家說抱歉的是,我自己的筆記有提到這件事,不過是寫在SELinux那一段,後來SELinux搞不定,我整段都沒貼出來,就漏掉了這一點 :Q
簡單回答:
chmod o+x /usr/sbin/fping
==
給分!給分! :p
==
還是當成申論題說明一下好了,在我的系統環境,fping套件裝好之後,預設的權限是:
# ls -l /usr/sbin/fping
-rwsr-x--- 1 root adm 29850 Feb 17 2005 /usr/sbin/fping
當使用者透過網頁瀏覽的時候,伺服器端會以apache帳號去執行smokeping.cgi,以及衍生出來的程式,例如fping。
這樣就很明顯了,apache這個帳號既不是root,也不屬於adm群組,它還是無法執行fping,所以我調整了權限。
==
這邊跟大家說抱歉的是,我自己的筆記有提到這件事,不過是寫在SELinux那一段,後來SELinux搞不定,我整段都沒貼出來,就漏掉了這一點 :Q
Posted by PowerOp
at July 5,2006 14:10
喔喔,原來如此
這應該不能給分,還要扣分才對
對於我這種半調子的linux user
一個地方沒寫出來,可能就整個卡死在這裡了
這邊改完,就完全ok了,感激不盡
下一個準備挑戰的是OpenNMS
希望能夠從頭到尾、一帆風順
沒有您出場的機會,啊哈
這應該不能給分,還要扣分才對
對於我這種半調子的linux user
一個地方沒寫出來,可能就整個卡死在這裡了
這邊改完,就完全ok了,感激不盡
下一個準備挑戰的是OpenNMS
希望能夠從頭到尾、一帆風順
沒有您出場的機會,啊哈
Posted by hsinglun
at July 11,2006 14:17
hsinglun,
恭喜恭喜!
也謝謝妳的指教,希望今後我在跟大家分享心得的時候,能更注意細節 :)
預祝妳OpenNMS安裝順利喔!
恭喜恭喜!
也謝謝妳的指教,希望今後我在跟大家分享心得的時候,能更注意細節 :)
預祝妳OpenNMS安裝順利喔!
Posted by 場邊納涼的PowerOp
at July 11,2006 16:14

use lib qw(/usr/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi
請問一下有關這行設定,我把這行改成我系統裡的設定,他是要抓RRDS.PM嗎?因為我在開始SMOKEPING時,會出現路徑有問題,不知道是否是設定有問題
Posted by jsoie
at March 24,2008 16:07
jsoie,
可以提供更詳細的錯誤訊息嗎?
另外,如果能夠附上相關的版本資訊(OS, smokeping, RRDtool)就更好了。
老樣子,妳有留 email ,所以我會去信告知,不過還是請妳用留言的方式討論,謝謝囉。
Posted by PowerOp
at March 24,2008 21:46

在執行./smokeping
會出現./smokeping:line 6:syntax error near unexpected token'('
./smokeping:line6: '/usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi);'
路徑指定不是在找RRDs.pm
os centos 5.1 rrdtool為1.05版,smokeping為2.3.1版
Posted by josie
at March 25,2008 23:47
josie,
又想了一下,蠻怪的,我想不通為什麼會出現 syntax error (語法錯誤),會不會是妳不小心打錯了什麼?
如果可以的話,請妳把那個 smokeping 寄給我看一下,謝囉。
Posted by PowerOp
at March 27,2008 23:19
Posted by 手很貝戈戈的PowerOp
at March 31,2008 19:45

不好意思!想請問一下有關在/usr/local/smokeping/etc/config/下
在FPing下的Slaves secrets=(這裡的路徑我已經有改了)但是執行後會有問題訊息為:
/usr/local/smokeping/etc/smokeping_secrets' is world-readable or writable,refusing it
不知道到底有哪李部隊
Posted by joise
at June 12,2008 16:07
joise,
你應該是之前那位 josie吧?留的email是一樣的 :)
我用 smokeping_secrets is world-readable or writable refusing it 餵給 Google ,答案就出來啦:
Issue while define smokeping_secrets
把那四篇發問跟回應看完,就會發現是檔案權限的問題。既然在設計上, smokeping_secrets 叫做 "secret" ,卻又把檔案權限設成 任何帳號都可讀/寫 , smokeping 檢查到這裡,就不讓你往下執行啦。
解法在那四篇裡面也有喔,就是
chmod og-rw /usr/local/smokeping/etc/smokeping_secrets
Posted by PowerOp
at June 12,2008 22:55

請問一下
RRD檔有產生,圖也有出來
但是透過smokeping.cgi開網頁就看不到圖,有殼能是哪裡出問題呢?
請指教,謝謝!
Posted by ccp
at July 25,2008 11:15
ccp,
抱歉,七月底八月初換工作,一直拖到現在才回留言。
妳沒寫 OS 版本、 smokeping 版本,要我猜的話,我猜應該是權限的問題,請妳參考這篇文章,之前 hsinglun 的留言以及我的回答。( joise 的最後留言也跟權限有關,也請參考)
很久沒玩 smokeping 了,不過如果妳能夠找一下 log ,應該會告訴妳問題出在那裡。
Posted by 希望有幫到忙的PowerOp
at August 7,2008 12:58

當我執行/usr/local/smokeping/bin/smokeping &
會出現下面錯誤:
### fping seems to report in 1 milliseconds
Note: logging to syslog as local0/info.
Daemonizing /usr/local/smokeping/bin/smokeping ...
Posted by josie
at September 18,2008 21:19
josie,我用"fping seems to report in 1 milliseconds"上網找了一下,會不會是系統裡面跑了多個 fping 程式?
找出帶有 fping 字樣的 process:
ps -ef | grep fping
或者
ps auxwww | grep fping
指定 process id (pid) 把那些程式殺掉:
kill -9 your_pid_number
把 your_pid_number 替換成 process id 的數字
Posted by PowerOp
at September 19,2008 12:50

不好意思!在頃問一下有網頁瀏覽,他會出現
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, root@localhost and inform them of the time the error occurred, and anything you might have done that may have caused the error.
More information about this error may be available in the server error log.
我去看了/var/log/httpd/error_log,
出現錯誤
[Fri Sep 19 14:31:59 2008] [error] [client 203.71.232.128] [Fri Sep 19 14:31:59 2008] smokeping.cgi: Can't locate Smokep
ing.pm in @INC (@INC contains: /usr/local/smokeping/lib /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi /usr/li
b/perl5/site_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.7/i386-linux-thread-multi /usr/lib/perl5/si
te_perl/5.8.6/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.
8.8 /usr/lib/perl5/site_perl/5.8.7 /usr/lib/perl5/site_perl/5.8.6 /usr/lib/perl5/site_perl/5.8.5 /usr/lib/perl5/site_per
l /usr/lib/perl5/vendor_perl/5.8.7/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.6/i386-linux-thread-multi /usr
/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl/5.8.7 /
usr/lib/perl5/vendor_perl/5.8.6 /usr/lib/perl5/vendor_perl/5.8.5 /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.8.8/i386-li
nux-thread-multi /usr/lib/perl5/5.8.8 .) at /var/www/cgi-bin/smokeping.cgi line 10.
[Fri Sep 19 14:31:59 2008] [error] [client 203.71.232.128] [Fri Sep 19 14:31:59 2008] smokeping.cgi: BEGIN failed--compi
lation aborted at /var/www/cgi-bin/smokeping.cgi line 10.
[Fri Sep 19 14:31:59 2008] [error] [client 203.71.232.128] speedy_backend[15247]: perl_parse error
[Fri Sep 19 14:32:00 2008] [error] [client 203.71.232.128] speedy[15245]: Cannot spawn backend process
[Fri Sep 19 14:32:00 2008] [error] [client 203.71.232.128] Premature end of script headers: smokeping.cgi
可是找了很多地方設定都沒有問題,不知是否哪裡出問題了,謝謝!!
Posted by josie
at September 19,2008 14:41
josie,你貼的錯誤訊息,斷行有點怪(應該是網誌系統切的),重點是這一句:
smokeping.cgi: Can't locate Smokeping.pm in @INC (@INC contains:
在執行 smokeping.cgi 程式的時候,它回報錯誤。
錯誤是,在 @INC 路徑裡面找不到 Smokeping.pm 這個 .pm (perl module)
(@INC 是 perl 程式語言會去尋找 INClude 那些 perl module 的路徑清單)
所以,換我反問你了,你的 Smokeping.pm 放在哪裡?
用這個指令在整個系統裡面找找看:
find / -name "Smokeping.pm"
順便如果可以的話,請妳把那個 bin 底下的 smokeping 寄給我看一下,謝囉。
Posted by PowerOp
at October 2,2008 09:02
請問一下安裝完成後,啟動smokeping 出現以下訊息,
該要如何修正 etc/config 呢?Thanks!
WARNING: Hostname 'james.address' does currently not resolve to an IPv4 address
ERROR: /smokeping/etc/config (Slaves/slave2): mandatory variable 'display_name' not defined
該要如何修正 etc/config 呢?Thanks!
WARNING: Hostname 'james.address' does currently not resolve to an IPv4 address
ERROR: /smokeping/etc/config (Slaves/slave2): mandatory variable 'display_name' not defined
Posted by leo
at January 16,2009 17:33
leo,我看看喔,嗯,你貼了一個 WARNING ,一個 ERROR 。
關於 WARNING 那句它說 james.address 沒有辦法解析成一個 IPv4 的網路位址;更白話的說,就是找不到 james.address 這個網站啦!
至於 ERROR 它說在 /smokeping/etc/config 這個檔案裡面,有關 Slaves/slave2 的設定,沒有指定 display_name 這個變數。
我推斷你應該是參考了 Smokeping 官方網站的範例 SmokePing - smokeping_examples,但是沒有仔細去研究剪貼了什麼 :p
WARNING 應該蠻好解決的,那個 ERROR 我上網搜尋了一下,應該是在你的設定檔,關於 Slaves 那小節,你有設了一台 slave2 ,可是沒有設定它的 display_name 。或者反過來猜,你根本不需要 slave2 的話,應該把 +slave2 以及底下那幾行都刪掉。
我查了一下,這個 Master/Slave 的功能是 2.2 版加進來的(我寫這篇的時候是 2.0.8 ,還沒有這功能)。如果你不需要這功能,甚至可以把設定檔裡面有關 Slaves 那一段都刪掉或是註解掉。
方便的話,可以把那個 /smokeping/etc/config 寄到 ystuan 於 G信 達康 ,我幫你看一下。
Posted by PowerOp
at January 17,2009 11:06