Smokeping的安装、支持中文、Master/Slave
需要的包有:[*]CGI-SpeedyCGI-2.22.tar.gz 2f80df78874e3efa80f180923c4967a1
[*]echoping-6.0.2.tar.gz 991478532b56ab3b6f46ea9fa332626f
[*]fping.tar.gz d5e8be59e307cef76bc479e1684df705
[*]smokeping-2.6.8.tar.gz 14a968daab2d17a27d41600077e3e967
前置条件:
rrdtool:http://blog.iyunv.com/liv2005/article/details/7180438
nginx:http://blog.iyunv.com/liv2005/article/details/7181508
首先进行基本工具的编译安装
view plaincopyprint?
[*]tar -zxvf fping.tar.gz
[*]cd fping-2.4b2_to/
[*]./configure
[*]make
[*]make install
[*]cd ..
[*]
[*]tar -zxvf CGI-SpeedyCGI-2.22.tar.gz
[*]cd CGI-SpeedyCGI-2.22
[*]perl Makefile.PL
[*]make
[*]make install
[*]cd ..
[*]
[*]tar -zxvf echoping-6.0.2.tar.gz
[*]cd echoping-6.0.2
[*]./configure
[*]make
[*]make install
[*]cd ..
[*]
[*]tar -zxvf smokeping-2.6.8.tar.gz
[*]cd smokeping-2.6.8
[*]./setup/build-perl-modules.sh /usr/local/smokeping/thirdparty
[*]cp -rf /usr/local/rrdtool/lib/perl/5.8.8/x86_64-linux-thread-multi /usr/lib64/perl5/5.8.8/
[*]./configure --prefix=/usr/local/smokeping
[*]LC_ALL=
[*]/usr/bin/gmake install
tar -zxvf fping.tar.gz cd fping-2.4b2_to/./configure makemake installcd ..tar -zxvf CGI-SpeedyCGI-2.22.tar.gz cd CGI-SpeedyCGI-2.22perl Makefile.PLmakemake installcd ..tar -zxvf echoping-6.0.2.tar.gz cd echoping-6.0.2./configure makemake installcd ..tar -zxvf smokeping-2.6.8.tar.gz cd smokeping-2.6.8./setup/build-perl-modules.sh /usr/local/smokeping/thirdpartycp -rf /usr/local/rrdtool/lib/perl/5.8.8/x86_64-linux-thread-multi /usr/lib64/perl5/5.8.8/./configure --prefix=/usr/local/smokepingLC_ALL=/usr/bin/gmake install
如果配置smokeping时出现某个perl组件是Failed的,尝试安装之,并用类似于perl -MRRDs -le 'print q(ok!)'的语句进行确认即可。
perl -MCPAN -e 'install Time::HiRes' [*]可以使用类似上面的语句自动升级模块
//============安装完了==============
然后来进行配置和修改工作,其实没啥特别的……
view plaincopyprint?
[*]进入bin目录,修改smokeping文件和smokeping_cgi文件
[*]第八行: use lib qw(); # PERL5LIB
[*]修改为: use lib qw(/usr/local/rrdtool/lib/perl);
进入bin目录,修改smokeping文件和smokeping_cgi文件第八行: use lib qw(); # PERL5LIB修改为: use lib qw(/usr/local/rrdtool/lib/perl);
view plaincopyprint?
[*]进入htdocs目录
[*]mv smokeping.fcgi.dist smokeping.fcgi
进入htdocs目录mv smokeping.fcgi.dist smokeping.fcgi
view plaincopyprint?
[*]进入etc目录
[*]cp config.dist config
[*]vim config
[*]修改binary = /usr/local/sbin/fping
进入etc目录cp config.dist configvim config修改binary = /usr/local/sbin/fping
view plaincopyprint?
[*]Targets里可以添加如下内容作测试,其他Targets,删掉吧...
[*]+localhost
[*]menu = localhost
[*]title = localhost
[*]++localhost
[*]menu = localhost
[*]title = localhost
[*]host = localhost
Targets里可以添加如下内容作测试,其他Targets,删掉吧...+localhostmenu = localhosttitle = localhost++localhostmenu = localhosttitle = localhosthost = localhost
view plaincopyprint?
[*]mkdir /usr/local/smokeping/data /usr/local/smokeping/var /usr/local/smokeping/cache
mkdir /usr/local/smokeping/data /usr/local/smokeping/var /usr/local/smokeping/cache
view plaincopyprint?
[*]创建smokeping的log文件,以及修改目录的权限,重要!!
[*]touch /var/log/smokeping.log
[*]chown web.web /var/log/smokeping.log
[*]chown web.web /usr/local/smokeping -R
[*]chmod u+x /usr /usr/local/smokeping -R
创建smokeping的log文件,以及修改目录的权限,重要!!touch /var/log/smokeping.logchown web.web /var/log/smokeping.logchown web.web /usr/local/smokeping -Rchmod u+x /usr /usr/local/smokeping -R
view plaincopyprint?
[*]vi /usr/local/nginx/conf/nginx.conf
[*]这是我们以前装的nginx,在cgi之前添加一节配置:
[*]location ~ .*\.fcgi$ {
[*] root/usr/local/smokeping/htdocs/;
[*] gzip off;
[*] fastcgi_passunix:/tmp/cgiwrap-dispatch.sock;
[*] fastcgi_index smokeping.fcgi;
[*] include fcgi.conf;
[*] }
vi /usr/local/nginx/conf/nginx.conf这是我们以前装的nginx,在cgi之前添加一节配置:location ~ .*\.fcgi$ { root/usr/local/smokeping/htdocs/; gzip off; fastcgi_passunix:/tmp/cgiwrap-dispatch.sock; fastcgi_index smokeping.fcgi; include fcgi.conf; }
然后就可以启动看看效果了
view plaincopyprint?
[*]启动smokeping
[*]perl /usr/local/smokeping/bin/smokeping --logfile=/var/log/smokeping.log
启动smokepingperl /usr/local/smokeping/bin/smokeping --logfile=/var/log/smokeping.log
不过图是英文的...SmokePing原生不支持中文,这个比较头疼,用下面的方法尝试修改下
首先是rrdtool显示中文的问题
要注意,从rrdtool 1.4.3以后,貌似就不支持用“--font TITLE:8:simsun.ttc" 这种方式了
view plaincopyprint?
[*]rrdtool 1.4.5 出图支持中文方法:
[*]
[*]在rrdtool源代码已经解压好的路径中
[*]sed -i 's/setlocale(LC_NUMERIC, "C")/setlocale(LC_ALL, "zh_CN.gb2312")/g' src/rrd_graph.c
[*]
[*]就是将setlocale(LC_NUMERIC, "C"),改成setlocale(LC_ALL, "zh_CN.gb2312")
[*]
[*]make
[*]
[*]mv ./src/rrdtool /usr/local/rrdtool/bin/rrdtool
[*]
[*]然后将windows中C:\WINDOWS\Fonts\simsun.ttc复制到/usr/share/fonts/chinese/TrueType/目录中,rrdtool即可支持中文
[*]
[*]cp C:\WINDOWS\Fonts\simsun.ttc C:\
[*]然后用你自己的方法,传到/usr/share/fonts/chinese/TrueType/中去吧
rrdtool 1.4.5 出图支持中文方法:在rrdtool源代码已经解压好的路径中sed -i 's/setlocale(LC_NUMERIC, "C")/setlocale(LC_ALL, "zh_CN.gb2312")/g' src/rrd_graph.c就是将setlocale(LC_NUMERIC, "C"),改成setlocale(LC_ALL, "zh_CN.gb2312")makemv ./src/rrdtool /usr/local/rrdtool/bin/rrdtool 然后将windows中C:\WINDOWS\Fonts\simsun.ttc复制到/usr/share/fonts/chinese/TrueType/目录中,rrdtool即可支持中文cp C:\WINDOWS\Fonts\simsun.ttc C:\然后用你自己的方法,传到/usr/share/fonts/chinese/TrueType/中去吧
现在rrdtool画出来的图可以支持中文了,但Smokeping本身还需要配置一下
view plaincopyprint?
[*]vi /usr/local/smokeping/etc/config
[*]在*** Presentation ***中,添加一行 charset = gb2312
vi /usr/local/smokeping/etc/config在*** Presentation ***中,添加一行 charset = gb2312
这样,就既可以显示中文树状目录,又可以让rrdtool画出来的图显示中文了
//==========================================
tips:
view plaincopyprint?
[*]如果你要探测的机房过多,可能需要修改如下内容:
[*]
[*]vi lib/Smokeping.pm 第1559行 注释该行
[*]不然的话,当访问smokeping.fcgi?target=_charts时,nginx会提示502 bad gate,错误日志中会有“upstream closed prematurely FastCGI stdout while reading response header from upstream”,具体原因不明,猜测是stderr输出内容太多?
[*]1559 # warn "Warning: Dropping $chart/$path from sortercache\n";
如果你要探测的机房过多,可能需要修改如下内容:vi lib/Smokeping.pm 第1559行 注释该行不然的话,当访问smokeping.fcgi?target=_charts时,nginx会提示502 bad gate,错误日志中会有“upstream closed prematurely FastCGI stdout while reading response header from upstream”,具体原因不明,猜测是stderr输出内容太多?1559 # warn "Warning: Dropping $chart/$path from sortercache\n";
view plaincopyprint?
[*]如果不希望显示"median RTT from 你的主机名",可以设置“display_name = 你想显示的内容”,例如“display_name = 我的服务器”
如果不希望显示"median RTT from 你的主机名",可以设置“display_name = 你想显示的内容”,例如“display_name = 我的服务器”
view plaincopyprint?
[*]调试:
[*]如果有问题,可以--debug模式启动,能看到报错,一般由于perl模块不全导致
[*]perl -MCPAN -e 'install Time::HiRes'
[*]可以使用类似上面的语句自动升级模块
调试:如果有问题,可以--debug模式启动,能看到报错,一般由于perl模块不全导致perl -MCPAN -e 'install Time::HiRes' 可以使用类似上面的语句自动升级模块
//==========================================
Master / Slave
这绝对是Smokeping很NB的一个设定...1.在Slave上,不需要装nginx或是apache之类的东西哦....只需要按照我们文章开始的部分里写的那些安装过程就可以了(但要编译rrdtool,然后装rrdtool-perl的组件,这个很烦...)2.在Slave上,不需要进行什么配置哦!只需要在Slave的/usr/local/smokeping/etc下建立一个文件:slave_secret.txt,里面写一行内容:“你的Slave密码”。3.在Slave上,执行: chown web.web /usr/local/smokeping -R; chmod u+x /usr /usr/local/smokeping -R;chmod 600 /usr/local/smokeping/etc/slave_secret.txt4.在Master上,etc/smokeping_secrets.dist 文件中写入如下内容:“你的Slave名称:你的Slave密码”。5.在Master上,修改etc/config view plaincopyprint?
[*]*** Slaves ***
[*]secrets=/usr/local/smokeping/etc/smokeping_secrets.dist
[*]+你的Slave名称
[*]display_name=你的Slave名称
[*]color=0000ff
[*]
[*]slaves = 你的Slave名称
*** Slaves ***secrets=/usr/local/smokeping/etc/smokeping_secrets.dist+你的Slave名称display_name=你的Slave名称color=0000ffslaves = 你的Slave名称
6.在Master上执行:chmod 600 /usr/local/smokeping/etc/smokeping_secrets.dist
7.在Slave上启动smokeping进程:/usr/local/smokeping/bin/smokeping --master-url=http://你Master的地址/smokeping/smokeping.fcgi --cache-dir=/usr/local/smokeping/cache/ --shared-secret=/usr/local/smokeping/etc/slave_secret.txt
结束,正常情况下,你等一会就可以在Master的data目录里发现有一些新建的rrd文件了,那就是来自Slave的数据
注意:另外要注意的一点是,master上面启动"smokeping"进程和nginx进程的用户必须要一致。因为rrd文件是由"smokeping"进程创建的,而数据的update却是由"smokeping.fcgi"进行的,也就是nginx用户。如果不一致的话会出现rrd文件无法被更新的情 况,这个情况即使在slave主机上面进行debug也是看不出来的。具体的现象是在页面上面看到master的图像出现数据,但是slave的图像一直是空白的,数据显示是"nan"。
如果在启动smokeping的时候,遇到有关LC_ALL的提示,可以将lib/Smokeping.pm 中 if (setlocale(LC_NUMERIC,"") ne "C") { ………………} 之间的内容注释掉。 帮你顶下哈!! 我不在江湖,但江湖中有我的传说。 月经不仅仅是女人的痛苦,也是男人的痛苦。 不要在一棵树上吊死,在附近几棵树上多试试死几次~ 不错不错,楼主您辛苦了。。。 所有刻骨铭心的爱都灵魂游离于床上的瞬间!
页:
[1]