普通使用
1、开始使用
smokeping的配置文件etc/config.d/Targets

以"+"作为层的开始符号。
比如:

+layer1
menu = layer1
title = layer1
++site1
menu = layer2
title = layer2
+++myhost1
menu = layer3
title = layer3
host = myhost.com
+++myhost2
menu = layer4
title = layer4
host = yourhost.com
...

其中myhost1、myhost2属于site1,而site1则属于layer1。 另外子层的"menu"、"title"并不是必需的。

配置好以后,可以启动smokeping了:

/etc/init.d/smokeping restart

如果有错误的话可以debug一下:(这个小u下不知是啥路径)

./bin/smokeping --debug

2、multi-graph功能

也就是在一张图里面画上多个监测点的数值,很简单:

+++ Multi
menu = Multi
title = My Multi
host = /layer1/site1/myhost1 /layer1/site1/myhost2

其它都一样,不同的是在"host"中指定要放在一起的host(要之前有设置的host)的路径就可以了。

Master/Slave 主从配置

下面说说master、slave模式,详细请看这里。

[slave 1]     [slave 2]      [slave 3]
        |             |              |
        +-------+     |     +--------+
                |     |     |
                v     v     v
              +---------------+
              |    master     |
              +---------------+

从图上可以看到,slave主机会自己去检查监测点的情况(loss and rtt),并将数值提交给master主机(通过smokeping.cgi)。
值得注意的是,slave并不需要config文件,每次slave提交完数据以后,会询问master它自己的配置文件是否有修改,如果有修改的话slave会进行更新。

配置方法我就简单说说好了:
设置slave信息:(在master上设置)

*** Slaves ***
secrets=/etc/smokeping/smokeping_secrets
+nanyuan

display_name=ny

location=China
color=ff0000

要注意的是"nanyuan"这个名字需要设置为slave主机的hostname,并且写在"slavesecrets.con"文件里面,如:

slave1:12345

如果不想用slave主机的hostname,那么在slave主机启动smokeping服务的时候需要使用"--slave-name"来指定自己的名字。

*** Targets ***
slaves = nanyuan
...
+dest1
 
...
+dest2

...
+dest3
...

中指定那个host需要使用哪个slave帮忙进行检测。下层会继承上层的配置,如果下层不像继承的话,可以配置"slaves ="来避免使用slave。

设置好以后,master的服务器重启一下:

/etc/init.d/smokeping restart

启动slave:

/usr/sbin/smokeping --master-url=http://Yourip/smokeping.cgi \ --cache-dir=/var/www/smokeping/ \ --shared-secret=/etc/smokeping/secret.txt \ --slave-name=nanyuan

其中secret.txt记载着在master的slavesecrets.conf文件里面对应的slave的密码(只有密码,没有slave名称)。
slavesecrets.conf和secret.txt文件的文件权限都要是"600"的。

master/slave模式中,master和slave的图片都会显示在同一个页面中,如果不希望显示master的图片,可以使用

nomasterpoll=yes

参数。
另外要注意的一点是,master上面启动"smokeping"进程和apache进程的用户必须要一致。因为rrd文件是由"smokeping"进程创建的,而数据的update却是由"smokeping.cgi"进行的,也就是apache用户。如果不一致的话会出现rrd文件无法被更新的情况,这个情况即使在slave主机上面进行debug也是看不出来的。具体的现象是在页面上面看到master的图像出现数据,但是slave的图像一直是空白的,数据显示是"nan"。

chown www-data smokeping_secrets

还有就是服务器间的时间貌似要一致