/ 中存储网

Nginx Apache Smokeping安装配置详细过程

2014-01-10 13:24:01 来源:kejihao

Smokeping 安装配置

一、介绍

smokeping是rrdtool的作者Tobi Oetiker的作品,所以它在图形显示方面有很大优势,也是一个很有特点的opensource工具:多种探测方式,包括fping、echoping、dig、curl等;

易用可扩展的插件;

master/slave的工作方式,可以在多个节点收集同一个监测点的数据;很有特色的alert设置,不只是简单的设置一个阀值;

二、安装

在装好LAMP与PERL基础上,再安装以下软件 

Smokeping need few perl module and other package to run.

1. RRDtools Download here : http://oss.oetiker.ch/rrdtool/

2. FPing Download here : http://www.fping.com/

3. EchoPing Download here : http://echoping.sourceforge.net/

4. Curl Download here : http://curl.haxx.se/

5. Dig Download here: http://www.isc.org/sw/bind/

6. SSH Download here : http://www.openssh.org/

Various Perl Module Download here : http://www.cpan.org/

1. libwww-perl

2. Socket6 0.11-1

3. Net::Telnet

4. Net::DNS

5. Net::LDAP

6. IO::Socket::SSL

7. Authen::Radius

http://fping.sourceforge.net/download/fping.tar.gz

http://daemoninc.com/SpeedyCGI/CGI-SpeedyCGI-2.22.tar.gz

http://sourceforge.net/projects/echoping/files/echoping/6.0.2/echoping-6.0.2.tar.gz/download

http://oss.oetiker.ch/smokeping/pub/smokeping-2.4.2.tar.gz

我的rrdtool选择yum 

如果用编译 ,改一下配置 文件

二个lib的使用

Install fping

tar zxvf fping.tar.gz

cd fping-2.4b2_to/

./configure 

make && make install 

Install CGI-SpeedyCGI

tar Czxvf CGI-SpeedyCGI-2.22.tar.gz

cd CGI-SpeedyCGI-2.22

perl Makefile.PL

Compile mod_speedycgi (default no)? no

make && make install

tar zxvf echoping-6.0.2.tar.gz

cd echoping-6.0.2

./configure --prefix=/usr/local/echoping --with-ssl --without-libidn

make && make install

tar zxvf smokeping-2.4.2.tar.gz

mv smokeping-2.4.2 /usr/local/smokeping

mkdir Cp /usr/local/smokeping/cache

mkdir Cp /usr/local/smokeping/var

1、/usr/local/smokeping/etc/ config.dist

*** General ***

owner = apache

contact = [email protected]

mailhost = localhost

sendmail = /usr/local/bin/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 = /usr/local/smokeping/cache

imgurl = ../cache 不要用绝对路径

datadir = /usr/local/smokeping/var

piddir = /usr/local/smokeping/var

cgiurl = http://some.url/smokeping.cgi

smokemail = /usr/local/smokeping/etc/smokemail.dist

tmail = /usr/local/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 = |/usr/local/smokeping/fx.sh

to = [email protected]

from = [email protected]

定义丢包率;

+someloss

type = loss

# in percent

pattern = >0%,*12*,>0%,*12*,>0%

comment = loss 3 times in a row

(检测12次,出现了3次丢包的情况,不论丢多少个包,就进行alter)

+rttbad

type = rtt

pattern = ==S,>50,>50

comment = route

(如果连续出现两次50ms 以上的延时,就进行alter)

*** Database ***

(每300秒ping 20次)

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 = /usr/local/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 PING使用的工具

#*** Slaves ***

#secrets=/home/oetiker/checkouts/smokeping/trunk/software/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.

+ Test 定义一级目录

menu= test

tile = test

#parents = owner:/Test/James location:/

++ host1 添加主机

title = host1

alerts = someloss,rttbad

host = 192.168.11.111

+ nagios

menu = nagios

++ nagios

title = nagios

alerts = someloss

host = 192.168.11.105

2、/usr/local/smokeping/htdocs/smokeping.cgi修改

Cp /usr/local/smokeping/htdocs/smokeping.cgi.dist usr/local/smokeping/htdocs/smokeping.cgi

use lib qw(/usr/bin/perl);

use lib qw(/usr/local/smokeping/lib);

Smokeping::cgi("/usr/local/smokeping/etc/config.dist");

3、/usr/local/smokeping/bin/smokeping.dist 修改

use lib qw(/usr/bin/perl);

use lib qw(/usr/local/smokeping/lib);

4、启动/usr/local/smokeping/bin/smokeping.dist start

Chown www.www /usr/local/smokeping CR

三、配置httpd.conf

如下:

Alias /smokeping/ "/usr/local/smokeping/"

<Directory "/usr/local/smokeping/ ">

AllowOverride None

AddHandler cgi-script cgi

Options ExecCGI

Order allow,deny

Allow from all

</Directory>

四、nginx配置  (先安装Fcgi)

安装perl cgi模块

wget http://www.cpan.org/modules/by-module/FCGI/FCGI-0.67.tar.gz

tar -zxvf FCGI-0.67.tar.gz

cd FCGI-0.67

perl Makefile.PL

make && make install

安装FCGI-ProcManager:

wget http://search.cpan.org/CPAN/authors/id/G/GB/GBJK/FCGI-ProcManager-0.18.t...

tar -xzxf FCGI-ProcManager-0.18.tar.gz

cd FCGI-ProcManager-0.18

perl Makefile.PL

make make install

下载nginx-fcgi脚本

Wget http://www.nginx.eu/nginx-fcgi/nginx-fcgi.txt

放置在:/etc/nginx-fcgi

注释掉nginx-fcgi.txt 中的

if ( $> == “0″ ) {

print “ntERRORtRunning as a root!n”;

print “tSuggested not to do so !!!nn”;

exit 1;

}

否则会提示:ERROR Running as a root! Suggested not to do so !!!

启动方法:

/etc/nginx-fcgi -l /var/log/nginx-fcgi.log -pid /var/run/nginx-fcgi.pid -S /var/run/nginx-fcgi.sock

注意给 nginx-fcgi.sock 777的权限

运行前使用cpan 安装 FCGI  Getopt::Long  IO::All  Socket;

server

{

listen       80;

server_name  smokeping.linuxtone.org;

root  /usr/local/smokeping/smokeping/;

location ~ .*.cgi$ {

root  /usr/local/smokeping/htdocs/;

fastcgi_pass unix:/var/run/nginx-fcgi.sock;

fastcgi_index index.cgi;

include fastcgi_params;

include enable_php5.conf;

}

测试: /usr/local/smokeping/bin/smokeping.cgi --debug

启动脚本:http://oss.oetiker.ch/smokeping/pub/contrib/smokeping-start-script

apache访问:http://ip/smokeping/htdocs/smokeping.cgi