一、准备工作:
1、以防止安装依赖出错,首先给系统安装第三方源:rpm -Uvh http://apt.sw.be/redhat/el6/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
2、安装lamp环境和rrdtool图形处理及其他所需依赖库:
1 yum -y install perl perl-Net-Telnet perl-Net-DNS perl-LDAPperl-libwww-perl perl-RadiusPerl perl-IO-Socket-SSL perl-Socket6perl-CGI-SpeedyCGI perl-FCGI perl-CGI-SpeedCGI perl-Time-HiResperl-ExtUtils-MakeMaker perl-RRD-Simple rrdtool rrdtool-perl curl fpingechoping httpd httpd-devel gcc make wget libxml2-devel libpng-devel glib pangopango-devel freetype freetype-devel fontconfig cairo cairo-devel libart_lgpllibart_lgpl-devel mod_fastcgi screen fping
二、开始安装
1、下载安装smokeping程序
1 wget http://oss.oetiker.ch/smokeping/pub/smokeping-2.6.9.tar.gz
tar -zxvf smokeping-2.6.9.tar.gz #解压.tar.gz压缩包
cd smokeping-2.6.9 #进入解压包后的程序目录
./configure-prefix=/usr/local/smokeping #将smokeping程序安装在/usr/local/smokeping/路径下
##如果是第一次安装smokeping程序,一般会出现报错,说没有perl模块支持,需要安装模块后在执行安装程序##
./setup/build-perl-modules.sh /usr/local/smokeping/thirdparty #根据报错提示安装perl模块
###如果安装perl模块时出现
则需要下载安装perl-devel 和perl-ExtUtils-Embed Centos 系统可直接yum installperl-devel perl-ExtUtils-Embed -y (总之,提示少什么插件你就安装什么插件)安装后再执行./setup/build-perl-modules.sh/usr/local/smokeping/thirdparty2
./configure –prefix=/usr/local/smokeping #perl 模块加载完成后再次执行安装程序
###### 此时,安装成功后,会提示编译,按照要求编译 #######
/usr/local/gmake install
##############至此,程序已经初步安装完成###################
三、配置smokeping
1、创建cache vardata 三个目录和smokeping.log日志文件
cd /usr/local/smokeping
mkdir cache data var
touch /var/log/smokeping.log
2、给刚刚创建的文件和目录授予apache权限
cd /usr/local/smokeping
chown-R apache:apache cache data var
chown-R apache:apache /var/log/smokeping.log
执行完后ls 查看一下结果是否正确:
修改配置文件和自动生成文件(目的就是文件位置和config配置中一致)
cd /usr/local/smokeping/htdocs/
mv smokeping.fcgi.dist smokeping.fcgi
cd /usr/local/smokeping/etc
mv config.dist config
vim config
##找到cgiurl = http://some.url/smokeping.cgi 把some.url 改成本地IP或者域名##
##找到 ***Database*** 栏把step(监测时间)和pings(ping次数)的值改成自己设定的#####都改为60就是60秒ping60次##
完成之后修改验证密码文件权限
chmod 600/usr/local/smokeping/etc/smokeping_secrets.dist
四、修改apache配置
1 vim /etc/httpd/conf/httpd.conf
2####在DocumentRoot “/var/www/html”这一行下添加如下代码:
Alias /cache "/usr/local/smokeping/cache/"
Alias /cropper "/usr/local/smokeping/htdocs/cropper/"
Alias /smokeping "/usr/local/smokeping/htdocs/smokeping.fcgi"
<Directory "/usr/local/smokeping">
AllowOverride None
Options All
AddHandler cgi-script.fcgi .cgi
Order allow,deny
Allow from all
AuthName "Smokeping"
AuthType Basic
AuthUserFile/usr/local/smokeping/htdocs/htpasswd
Require valid-user
DirectoryIndexsmokeping.fcgi
</Directory>
六、设置开机启动apache和smokeping进程,并关闭防火墙
1 echo "/usr/local/smokeping/bin/smokeping--logfile=/var/log/smokeping.log 2>&1 &" >>/etc/rc.local
2 chkconfig httpd on
3 chkconfig iptablesoff
七、启动httpd和smokeping
1 service httpdrestart
2/usr/local/smokeping/bin/smokeping --logfile=/var/log/smokeping.log
八、打开web界面测试
### 如果返回 “500”错误 说明selinux 选项没有关闭 ###
1 vim/etc/sysconfig/selinux
改成 Selinux=disable或者selinux=permissive
九、设置web用户名和密码
1 cd /usr/local/smokeping/htdocs
2 htpasswd -c/usr/local/smokeping/htdocs/htpasswd admin #设置账号为admin 密码在回车后提示输入
十、同步主机时间和配置config 参数
1 cd/usr/local/smokeping/htdocs
2 htpasswd -c/usr/local/smokeping/htdocs/htpasswd admin #设置账号为admin 密码在回车后提示输入
###至此,smokeping安装已经全部完毕,剩下的是添加smokeping插件并设置其监控参数 ####
主从
做主从模式,可以在smokeping页面上看到不同节点(master和各slave)ping目标的检测情况,有助于判断故障所在的网络节点
工作模式
多节点的主从模式中,只有master节点上有监控配置文件。slave节点只需要配置验证密码(用于master-slave之间的验证)、在启动smokeping时附上相应的启动参数(参数中包括master的URL等),slave就会在找到master,从master上获取需要检测的节点,在本机(slave)进行ping检测,并将检测结果反馈给master。
master-slave之间信息交流的方式,是通过URL(浏览器访问smokeping的URL)进行的。所以slave必须能正常访问master端的URL
slave软件安装
从机只需要安装smokeping,不需要web服务器。当然安装smokeping之前需要装好其依赖的软件和perl模块。安装过程与单节点模式的安装过程一样,不赘述
注意除了编译安装smokeping外,也要建立data,var,cache目录
slave配置
slave只需要配置一个密码文件,用于连接master时的验证。不需要做其他配置。
创建密码文件(文件名自定)
echo"******" > /usr/local/smokeping/etc/smokeping_slave_secrets
chmod 600smokeping_slave_secrets
master配置
创建密码文件
vim smokeping_secrets
${slave_1节点名称}:*******
${slave_2节点名称}:*******
master的密码文件可以配有多个slave的节点和密码,每个以":"分隔的节点名称和密码一行(这点与slave不同,slave的密码文件中只有一个密码)
修改主配置文件
vim etc/config
# 指定使用的密码文件
*** Slaves ***
secrets=/usr/local/smokeping/etc/smokeping_secrets
# 指定要让slave检测哪些目标
+ IDC1
menu = IDC1
title = DIC1
remark = IDC机房1号
slaves = ${slave节点名称}
两点说明
1. 只有当slave节点在某些目标的检测配置中被使用,slave端才能成功连上master并进行检测工作
2. 可以把一个slave配置在一个底层节点上(例如一个受监控的IP),使slave检测该服务器
也可以把slave配置在一个上层节点上,使slave检测该节点下属的所有服务器
slave启动
bin/smokeping--master-url=http://smokeping.master.com/smokeping.fcgi--cache-dir=/usr/local/smokeping/htdocs/cache/--shared-secret=/usr/local/smokeping/etc/smokeping_slave_secrets--slave-name=192.168.X.X
Oh 参数太长,容易断行···
注意几点
--slave-name 节点名称,必须与master端配置的名称一致
--shared-secret=/usr/local/smokeping/etc/smokeping_slave_secrets 指定要使用的密码文件
--cache-dir 必须让进程具有读写权限。smokeping.pid会存放在该目录下
正常启动时的输出
Sent data to Server and got new config in response.
Note: logging to syslog as local0/info.
Daemonizing/usr/local/smokeping/bin/smokeping ...