0.参考文件

http://wenku.baidu.com/view/950fbb0a79563c1ec5da71b1

http://aaaxiang000.blog.163.com/blog/static/20634912201188696910/

http://my.oschina.net/lxcong/blog/150617#OSC_h1_20

1.为ubuntu设置固定ip地址

参考文献:http://hi.baidu.com/futuremeng/item/ce1604ee467d0b0f570f1d30

在安装好ubuntu以后,系统默认是使用DHCP自动获取ip地址。对ubuntu的ip地址修改都在/etc/network/interfaces这个文件下面。

在ubuntu下运行如下命令:

  1. #sudo vim /etc/network/interfaces

使用vim来进行编辑,我们可以看到默认配置如下图所示:

上述的最后两条命令就表示是使用DHPC自动获取ip方式。

  1. auto eth0
  2. iface eth0 inet dhcp

现在我们要为其设置静态ip地址,设置方式如下,

运行#sudo vim /etc/network/interfaces。修改文件如下:

  1. # This file describes the network interfaces available on your system
  2. # and how to activate them. For more information, see interfaces().
  3.  
  4. # The loopback network interface
  5. auto lo
  6. iface lo inet loopback
  7.  
  8. # The primary network interface
  9. auto eth0
  10. #iface eth0 inet dhcp
  11.  
  12. iface eth0 inet static
  13. address 10.138.16.245
  14. netmask 255.255.255.240
  15. gateway 10.138.16.254

最后使用下面的命令使网络设置生效:

  1. sudo /etc/init.d/networking restart

2.安装smokeping

首先在ubuntu下运行如下命令,安装预备程序对于所有选项都选择Y,表示安装

  1. sudo aptitude install rrdtool apache2 fping echoping libapache2-mod-speedycgi libwww-perl libsocket6-perl libnet-telnet-perl libnet-dns-perl libnet-ldap-perl libio-socket-ssl-perl libauthen-radius-perl libcgi-perl librrds-perl librrdp-perl

--------------------------------------------------------------------------

PS:2014-2-27

1.今天发现aptitude命令在ubuntu当中是有问题的,查了一下发现好像是ubuntu有bug,建议不要使用apttitude,直接使用apt-get这个命令。

2.还有一个就是上面的这些依赖包可能有问题,我又参考了Install and configure Smokeping on Ubuntu 12.04 LTS 这篇博客,在另外一台机器上面安装了smokeping,它所使用的依赖包如下:

  1. sudo apt-get install smokeping curl libauthen-radius-perl libnet-ldap-perl libnet-dns-perl libio-socket-ssl-perl libnet-telnet-perl libsocket6-perl libio-socket-inet6-perl apache2

3.还有我在bitnami的机器上面安装smokeping失败,总是无法打开,后来查了一下发现是因为bitnami中使用的是apache2.4,而smokeping更加兼容apche2.2版本。或者也有可能bitnami当中对apache做了修改,而smokeping在这个基础上安装不兼容,anyway,smokeping不能在bitnami上面部署。

---------------------------------------------------------------------------------------

然后在运行smokeping安装命令

  1. sudo apt-get install smokeping

最后使用在浏览器上面输入:http://[IP]/cgi-bin/smokeping.cgi进行访问,如果输入这个地址以后出现sendmail错误的,还需要安装sendmail,命令如下:

  1. sudo apt-get install sendmail

3.中文支持

3.1中文文字

如果Targets 文件中出现中文,需要修改Presentation 文件,

  1. #sudo vim /etc/smokeping/config.d/Presentation

设定  charset  = UTF8 。在设定完毕以后,我们再次打开Targets文件,如果文件出现乱码, 需要全部重新编辑才可以,也就是说再一次以utf-8的格式输入一次中文。重启smokeping ,刷新界面,中文就不会出现乱码了。如下图所示:

ps:2014-2-27

其实也可以不用重新输入一遍,我们可以将Target文件拷贝出来,在我们的windows操作系统上面用notepad++打开,然后执行以下步骤

  1. ctrl+a全选所有问题
  2. ctrl+x剪切所有内容
  3. notepad++中选中“格式->以UTF-8无BOM格式编码”
  4. ctrl+v将内容粘贴回来。
  5. 保存,并将Target文件拷贝会/etc/smokeping/config.d/Targets目录下。
  6. 如果使用secureCRT打开,还需要修改其编码方式,参考:securecrt中文乱码以及ubuntu设置locale

3.2图片的中文支持

如果想要图rrd图片也支持中文,那么就需要中文字体包了,

  1. sudo apt-get install ttf-wqy-zenhei

如果你跟我一样是处于离线环境,可以下载一个文泉驿字体安装包再安装。具体安装方法参考我另外一篇博客:ubuntu单独安装字体包。我也将字体安装包以及依赖包放到百度云盘上面了,下载地址:http://pan.baidu.com/s/1hqsUORi

然后修改smokeping的Graphs.pm这个文件,如果找不到的话可以通过find命令查到

  1. enadmin@BJCGNMON01:/etc/smokeping/config.d$ sudo find / -name Graphs.pm
  2. [sudo] password for enadmin:
  3. /home/enadmin/Graphs.pm
  4. /usr/share/perl5/Smokeping/Graphs.pm

通过查找命令我们知道需要修改“/usr/share/perl5/Smokeping/Graphs.pm”这个文件,我们找到RRDs::graph,然后在里面插入如下语句:

'--font TITLE:20:"WenQuanYi Zen Hei Mono"',

  1. if ($mode =~ /[anc]/){
  2. my $val = ;
  3. for my $host (@hosts){
  4. my ($graphret,$xs,$ys) = RRDs::graph
  5. ("dummy",
  6. '--start', $tasks[][],
  7. '--end', $tasks[][],
  8. '--font TITLE:20:"WenQuanYi Zen Hei Mono"',
  9. "DEF:maxping=$cfg->{General}{datadir}${host}.rrd:median:AVERAGE",
  10. 'PRINT:maxping:MAX:%le' );
  11. my $ERROR = RRDs::error();
  12. return "<div>RRDtool did not understand your input: $ERROR.</div>" if $ERROR;
  13. $val = $graphret->[] if $val < $graphret->[];
  14. }
  15. $val = 1e- if $val =~ /nan/i;
  16. $max = { $tasks[][] => $val * 1.5 };
  17. }

如果你Smokeping的安装路径不是上述安装路径,你可以在ubuntu下搜索Graphs.pm这个文件,在查到路径以后在去编辑文件。

  1. sudo find / -name Graphs.pm

4.添加smokeping节点

在ubuntu执行以下命令来编辑配置文件:

  1. sudo vim /etc/smokeping/config.d/Targets

按照样例我们添加节点的ip地址

  1. + Gansu //注意,这里加号后面的必须是英文,不能是中文
  2. menu = 甘肃
  3. title = 甘肃
  4.  
  5. ++ Daliang //同样,这里‘++’后面的必须是英文,+和++后面的内容是不会被现实的,只是起一个命名的作用。
  6. menu =大梁
  7. title =大梁:10.138.1.11
  8. host = 10.138.1.11
  9. alerts = someloss

在添加完毕以后重启smokeping,执行以下mingling:

  1. #sudo /etc/init.d/smokeping restart

ps:添加三级目录

前面的配置是二级目录,其实smokeping是可以配置三级目录的,如下所示:

  1. + yiji
  2. menu = 一级
  3. title = 一级
  4.  
  5. ++ erji
  6. menu = 二级
  7. title = 二级
  8.  
  9. +++ sanji
  10. menu = sanji
  11. title =sanji:10.138.16.54
  12. host = 10.138.16.54
  13. alerts = someloss

5.邮件告警配置:

5.1概述

smokeping默认使用邮件进行alert,也可以直接调用外部程序进行IM的报警,也就是说你只需要写一个简单的shell脚本,就可以实现smokeping的MSN 、 gtalk 、飞信等IM、短信报警了。如果要配置smokeping的告警功能,我们需要修改/etc/smokeping/config.d/Alerts这个配置文件,我的配置文件如下:

  1. *** Alerts ***
  2. to = |/etc/smokeping/alert.sh
  3. from = aaa@126.com
  4.  
  5. +someloss
  6. type = loss
  7. # in percent
  8. pattern = >%,**,>%,**,>%
  9. edgetrigger = yes
  10. comment = loss times in a row
  11.  
  12. +rttbad
  13. type = rtt
  14. # in milliseconds
  15. pattern = ==S,>,>
  16. edgetrigger = yes
  17. comment = route
  18.  
  19. # This rule checks for periods ( * 5min default) where
  20. # the rtt is >70ms
  21. +rttdetect
  22. type = rtt
  23. # in milli seconds
  24. pattern = >,>,>
  25. edgetrigger = yes
  26. comment = On backup circuit maybe?

5.1.1配置触发脚本

"to" 选项,默认是要填入一个email地址的,但是只要在"="后面加上"|",后面再跟你自定义的脚本路径,就可以调用自己的脚本进行alert了。

比如我们这里的/etc/smokeping/alert.sh就是我自己定义的告警脚本。这个脚本会读入5个[或者6个]参数:name-of-alert, target, loss-pattern, rtt-pattern, hostname,[raise],自己选择要使用的参数即可,我的alert.sh脚本内容如下所示,之所以打印出所有的参数,是为了看看每个参数都是些什么内容。

  1. #!/bin/sh
  2. echo "$2 got smokeping $1 from Monitor Server, The $2 IP is: $5........name-of-alert:$1, target:$2, loss-pattern:$3, rtt-pattern:$4, hostname:$5,[raise]:$6" |mutt -s "smokeping alert $2" xwdreamer@.com

5.1.2设置发件人邮箱

"from"选项中填入我们的发件人邮箱地址。

5.1.3设置告警出发类型

smokeping的告警分为条件触发和边界触发,所谓条件触发就是只要满足条件就会触发,比如我们ping不通一个站点,那么smokeping就一直发告警,直到能够ping通为止;还有一种是边界触发,所谓边界触发就是只在状态发生改变的时候发出告警。这样断开的时候发一封邮件,恢复的时候再发一封邮件。我们这里就是要使用边界触发,所以设置“edgetrigger” = yes。

alert的类型我们主要使用"loss"和"rtt"两种(当然还有更多更复杂的类型)。上面的alert类型当中,我只用了someloss这个类型,具体解释是只要在12次测试当中,如果出现3次丢包,并且丢包率达到90%,那么就告警。下面我再给出一些其他规则的告警触发条件解释:

  1. #如果在12次检查中出现了3次丢包的情况(不论丢多少个包),就进行alert;
  2. +someloss
  3. type = loss
  4. # in percent
  5. pattern = >0%,*12*,>0%,*12*,>0%
  6. comment = loss 3 times in a row
  7.  
  8. #如果连续出现两次50毫秒以上的延时,就进行alert;
  9. +rttbad
  10. type = rtt
  11. # in milliseconds
  12. pattern = ==S,>50,>50
  13. comment = route
  14.  
  15. #之前5次检查延时都少于10毫秒,前6次检查延时都少于100毫秒,第7次开始连续3次检查延时都大于100毫秒的话,就进行alert。
  16. +rttdetect
  17. type = rtt
  18. # in milliseconds
  19. pattern = <10,<10,<10,<10,<10,<100,>100,>100,>100
  20. comment = routing messed up again ?

5.2smokeping与msmtp的集成

smokeping默认的邮件告警是使用sendmail来实现的,如果想直接通过smpt发送邮件需要修改源代码,觉得这样不方便,后来找了一些资料,使用msmtp来实现。所以首先安装msmtp+mutt环境,参考:ubuntu下msmtp+mutt的安装和配置 。在这篇博客中提到,哪个用户要使用msmtp和mutt,那么哪个用户就必须对.msmtprc和.muttrc这两个文件有读写的权限。现在我们要smokeping程序中调用mutt和msmtp命令,那么运行smokeping程序的用户就必须对.msmtprc和.muttrc这两个文件有读写的权限。

5.3查看smokeping进程所属的用户

  1. enadmin@cgnmon:~/test$ ps -aux | grep smokeping
  2. Warning: bad ps syntax, perhaps a bogus '-'? See http://procps.sf.net/faq.html
  3. 0.0 1.0 ? Ss : : /usr/sbin/smokeping [FPing]
  4. enadmin 0.0 0.0 pts/ S+ : : grep --color=auto smokeping

从上面我们可以看到smokeping进程的用户是105,那么105具体指谁呢,我们可以在/etc/passwd(还有一个/etc/shadow)当中查看。如下所示,我们执行

  1. vi /etc/passwd

发现一个用户叫做smokeping:x:105,这个105用户就是smokeping用户,我们同样能够在这个下找到root账户和enadmin账户。

  1. enadmin@cgnmon:~/test$ vi /etc/passwd
  2. root:x:::root:/root:/bin/bash
  3. daemon:x:::daemon:/usr/sbin:/bin/sh
  4. bin:x:::bin:/bin:/bin/sh
  5. sys:x:::sys:/dev:/bin/sh
  6. sync:x:::sync:/bin:/bin/sync
  7. games:x:::games:/usr/games:/bin/sh
  8. man:x:::man:/var/cache/man:/bin/sh
  9. lp:x:::lp:/var/spool/lpd:/bin/sh
  10. mail:x:::mail:/var/mail:/bin/sh
  11. news:x:::news:/var/spool/news:/bin/sh
  12. uucp:x:::uucp:/var/spool/uucp:/bin/sh
  13. proxy:x:::proxy:/bin:/bin/sh
  14. www-data:x:::www-data:/var/www:/bin/sh
  15. backup:x:::backup:/var/backups:/bin/sh
  16. list:x:::Mailing List Manager:/var/list:/bin/sh
  17. irc:x:::ircd:/var/run/ircd:/bin/sh
  18. gnats:x:::Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh
  19. nobody:x:::nobody:/nonexistent:/bin/sh
  20. libuuid:x::::/var/lib/libuuid:/bin/sh
  21. syslog:x::::/home/syslog:/bin/false
  22. messagebus:x::::/var/run/dbus:/bin/false
  23. whoopsie:x::::/nonexistent:/bin/false
  24. landscape:x::::/var/lib/landscape:/bin/false
  25. enadmin:x:::enadmin,,,:/home/enadmin:/bin/bash
  26. smokeping:x:105:114:SmokePing daemon,,,:/var/lib/smokeping:/bin/false
  27. smmta:x:::Mail Transfer Agent,,,:/var/lib/sendmail:/bin/false
  28. smmsp:x:::Mail Submission Program,,,:/var/lib/sendmail:/bin/false
  29. sshd:x::::/var/run/sshd:/usr/sbin/nologin
  30. ftp:x:::ftp daemon,,,:/srv/ftp:/bin/false
  31. ntp:x::::/home/ntp:/bin/false
  32. openldap:x:::OpenLDAP Server Account,,,:/var/lib/ldap:/bin/false

但是我们发现这个smokeping用户的后缀是/bin/false,这个后缀表示此账户是无法登陆的,如果要想使用smokeping登陆,或者进入到smokeping账户目录下,那么必须让这个账户变为可登陆。那么如何设置呢,我们可以参考enadmin账户的后缀,他的后缀都是/bin/bash,那么我们就将smokeping账户的后缀修改为/bin/bash,然后重启一下即可。具体参考:系统账户更改为可登陆账户

5.4修改.msmtprc和.muttrc这两个文件的权限

在我们搭建好msmpt和mutt环境以后,

ubuntu下smokeping安装配置的更多相关文章

  1. Ubuntu下apache2安装配置(内含数字证书配置)

    Ubuntu下apache2安装配置(内含数字证书配置)安装命令:sudo apt-get updatesudo apt-get install apache2 配置1.查看apache2安装目录命令 ...

  2. ubuntu下postgreSQL安装配置

    一.安装并配置,并设置远程登陆的用户名和密码 1.安装postgreSQL sudo apt-get update sudo apt-get install postgresql-9.4 在Ubunt ...

  3. ubuntu下apache2 安装 配置 卸载 CGI设置 SSL设置

    一.安装.卸载apache2      apache2可直接用命令安装           sudo apt-get install apache2      卸载比较麻烦,必须卸干净,否则会影响ap ...

  4. ubuntu下MySQL安装配置及基本操作

    在linux下安装方法: 分为四种:一: 直接用软件仓库自动安装(如:ubuntu下,sudo apt-get install mysql-server; Debain下用yum安装): 二:官网下载 ...

  5. Win7和Ubuntu下mysql 安装配置

    Windows下安装 下载对应版本的mysql安装包安装,如果安装目录为 C:\Program Files\MySQL\MySQL Server 5.6 增加环境变量 MYSQL_HOME=C:\Pr ...

  6. 【云计算】ubuntu下docker安装配置指南

    Docker Engine安装配置 以下描述仅Docker在Ubuntu Precise 12.04 (LTS).Ubuntu Trusty 14.04 (LTS).Ubuntu Wily 15.10 ...

  7. ubuntu下spark安装配置

    一.安装vmware虚拟机 二.在虚拟机上安装ubuntu12.04操作系统 三.安装jdk1.8.0_25 http://www.oracle.com/technetwork/java/javase ...

  8. ubuntu下cacti安装配置

    参考文献 http://kling.blog.51cto.com/3320545/1180778 前言: 原本是想源码安装的,但是现在发现还是太麻烦了,就直接通过apt-get install安装了. ...

  9. Ubuntu 下 redmine 安装配置

    安装 rvm \curl -L https://get.rvm.io | bash -s stable --ruby --autolibs=enable –auto-dotfiles 安装 Ruby ...

随机推荐

  1. webpack react 错误整理

    1.ERROR in ./src/entry.js Module build failed: SyntaxError 解决方法: 安装babel-preset-react,  npm install ...

  2. CSS float浅析

    写在开篇: 浮动属性的设计初衷,只是为了实现文本环绕效果! 时刻牢记这一点,才能正确使用浮动. 由于浮动元素脱离文档流,它后面的块级元素会忽略它的存在,占据它原本的位置,但是这个块级元素中的内联元素, ...

  3. Hibernate5总结

    1. 明确Hibernate是一个实现了ORM思想的框架,它封装了JDBC,是程序员可以用对象编程思想来操作数据库. 2. 明确ORM(对象关系映射)是一种思想,JPA(Java Persistenc ...

  4. 【比赛游记】NOIP2017游记

    身为FJ的选手,在师大附中AHSOFNU考试,环境很不错,考得也还可以吧...[考的并不好] 不过比赛前都在划水233333 另:看到这篇博客的OIer们一定要评论啊! Day1的中午,因为穿了短袖去 ...

  5. 深入理解C语言的函数调用过程 【转】

    转自:http://blog.chinaunix.net/uid-25909619-id-4240084.html 原文地址:深入理解C语言的函数调用过程 作者:wjlkoorey258     本文 ...

  6. Coursera台大机器学习技法课程笔记10-Random forest

    随机森林就是要将这我们之前学的两个算法进行结合:bagging能减少variance(通过g们投票),而decision tree的variance很大,资料不同,生成的树也不同. 为了得到不同的g, ...

  7. PHP取整函数之ceil,floor,round,intval的区别

    我们经常用到的PHP取整函数,主要是:ceil,floor,round,intval. ceil -- 进一法取整 说明 float ceil ( float value ) 返回不小于 value ...

  8. c run-time library 和 standard c++ library

    参考: c run-time libraries:  http://msdn.microsoft.com/zh-cn/library/vstudio/abx4dbyh(v=vs.100).aspx H ...

  9. Web Automation with Selenium (C#)

    Web Automation is a quite regular task nowadays, scripting for repeated operations and testing. Sele ...

  10. Windows自动联网修复系统损坏文件

    sfc修复: Win+X---命令提示符(管理员)---sfc /scannow---Enter可以查看是否存在系统文件损坏等问题 以管理员权限运行命令提示符,执行“dism /online /cle ...