SmokePing 是一套相当实用的网络监督工具, 画出的图片也很漂亮。虽然要安装 SmokePing 比较麻烦, 但只要透过 yum 安装 SmokePing 所需的套件就方便很多了, 以下是 RHEL 及 CentOS 安装及配置 SmokePing 的方法。
首先启用 EPEL Repo:
接着安装 SmokePing 所需的套件:
然后安装以下 CPAN 模组:
安装编译器, 用作编译 SmokePing 原始码:
—————————————————————————————————————–
安装好所需的套件后, 现在到官网下载 SmokePing 原始码安装, 目前最新的版本是 2.6.11:
解压缩原始码:
安装 SmokePing 所需的 Perl 模组, 以及编译 SmokePing:
# ./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:
找到设定 DirectoryIndex 的一行, 加入 smokeping.fcgi 及AddHandler 部份, 例如:
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/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 的设定档, 要根据自己的需要修改某些设定:
范例档案:
|
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 ++ Google menu = google.com title = google.com alerts = someloss host = www.google.com |
然后启动 httpd:
设定 SmokePing 开机自动启动, 需要下载 SmokePing 的开机 script 到 /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 便完成了:
你好!拜读您的文章,受益匪浅。有个问题:
原文里提到:
# cd /opt/smokeping/etc
# for foo in *.dist; do cp $foo 'basename $foo .dist'; done
第二句以for开头的这一句,若按照原文执行,是把每个.dist结尾的文件拷贝到”basename $foo .dist”这个文件,那么其实这个目标文件的内容只是最后一个.dist文件的内容。
猜测这句是不是写错了?原意是什么呢?将这些文件都备份一遍?
敬请指教!先谢过!
呃,自己解决一下:
basename -s .dist $ifor i in *.dist; do cp $i "
"; done
改成这样才work.