RHEL / CentOS 安裝配置 SmokePing
Sam Tang 25 November 2016 Linux No Comments
SmokePing 是一套相當實用的網路監督工具, 畫出的圖片也很漂亮。雖然要安裝 SmokePing 比較麻煩, 但只要透過 yum 安裝 SmokePing 所需的套件就方便很多了, 以下是 RHEL 及 CentOS 安裝及配置 SmokePing 的方法。
首先啟用 EPEL Repo:
# yum install epel-release
接著安裝 SmokePing 所需的套件:
# yum install perl httpd httpd-devel mod_fcgid rrdtool perl-CGI-SpeedyCGI fping rrdtool-perl perl-Sys-Syslog
然後安裝以下 CPAN 模組:
# yum install perl-CPAN perl-local-lib perl-Time-HiRes
安裝編譯器, 用作編譯 SmokePing 原始碼:
# yum groupinstall “Development tools”
—————————————————————————————————————–
安裝好所需的套件後, 現在到官網下載 SmokePing 原始碼安裝, 目前最新的版本是 2.6.11:
# wget http://oss.oetiker.ch/smokeping/pub/smokeping-2.6.11.tar.gz
解壓縮原始碼:
# tar -zxvf smokeping-2.6.11.tar.gz
安裝 SmokePing 所需的 Perl 模組, 以及編譯 SmokePing:
# cd smokeping-2.6.11/
# ./setup/build-perl-modules.sh
# mkdir /opt/smokeping
# cp -R thirdparty /opt/smokeping/
# ./configure –prefix=/opt/smokeping
# make install
安裝好 SmokePing 後, 現在是配置 SmokePing 的設定檔, 輸入以下指令:
1 2 |
# cd /opt/smokeping/etc # for foo in *.dist; do cp $foo 'basename $foo .dist'; done |
然後開啟 Apache 的設定檔 httpd.conf:
# vi /etc/httpd/conf/httpd.conf
找到設定 DirectoryIndex 的一行, 加入 smokeping.fcgi 及AddHandler 部份, 例如:
DirectoryIndex index.html index.html.var smokeping.fcgi
AddHandler cgi-script .cgi
開啟 /etc/httpd/conf.d/smokeping.conf 檔案, 改成這樣:
1 2 3 |
<Directory "/var/www/html/smokeping"> Options +ExecCGI </Directory> |
執行以下指令, 建立 SmokePing 儲存資料目錄及設定權限:
# mkdir /opt/smokeping/img
# mkdir /opt/smokeping/data
# mkdir /opt/smokeping/var
# mkdir /opt/smokeping/cache
# chown -R apache:apache /opt/smokeping/img
# chown -R apache:apache /opt/smokeping/cache
# ln -s /opt/smokeping/htdocs /var/www/html/smokeping
# ln -s /opt/smokeping/img /var/www/html/smokeping
# ln -s /opt/smokeping/cache /var/www/html/smokeping
# chmod 600 /opt/smokeping/etc/smokeping_secrets
# chmod 600 /opt/smokeping/etc/smokeping_secrets.dist
# chown -R apache:apache /var/www/html/smokeping
現在建立 SmokePing 的設定檔, 要根據自己的需要修改某些設定:
# vi /opt/smokeping/etc/config
範例檔案:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 |
owner = Sam Tang contact = you@youremail.com mailhost = SMTP Server (Ignore if you do not have smtp server) sendmail = /usr/sbin/sendmail # NOTE: do not put the Image Cache below cgi-bin # since all files under cgi-bin will be executed … this is not # good for images. imgcache = /opt/smokeping/cache imgurl = cache datadir = /opt/smokeping/data piddir = /opt/smokeping/var cgiurl = http://some.url/smokeping.cgi smokemail = /opt/smokeping/etc/smokemail.dist tmail = /opt/smokeping/etc/tmail.dist # specify this to get syslog logging syslogfacility = local0 # each probe is now run in its own process # disable this to revert to the old behaviour # concurrentprobes = no
*** Alerts *** to = you@youremail.com from = from@youremail.com
+someloss type = loss # in percent pattern = >0%,*12*,>0%,*12*,>0% comment = loss 3 times in a row
*** 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 = /opt/smokeping/etc/basepage.html.dist
+ 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
#+ hierarchies #++ owner #title = Host Owner #++ location #title = Location
*** Probes ***
+ FPing
binary = /usr/sbin/fping
*** Slaves *** secrets=/opt/smokeping/etc/smokeping_secrets.dist +boomer display_name=boomer color=0000ff
+slave2 display_name=another color=00ff00
*** 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.
+ Server menu= Localhost
menu = google.com title = google.com alerts = someloss host = www.google.com |
然後啟動 httpd:
# systemctl start httpd
設定 SmokePing 開機自動啟動, 需要下載 SmokePing 的開機 script 到 /etc/init.d/ 目錄, 及設定可執行權限:
# cd /etc/init.d/
# wget http://oss.oetiker.ch/smokeping/pub/contrib/smokeping-start-script
# chmod 755 smokeping-start-script
將 smokeping-start-script 第 10 行的 SMOKEPING binary 檔位置, 改成這樣:
SMOKEPING=/usr/local/smokeping/bin/smokeping
最後啟動 SmokePing 便完成了:
# /etc/init.d/smokeping start