存档

文章标签 ‘nagios’

从监控证书到期说开去

2015年4月11日 没有评论

最近有个事儿,就是把公司资源:域名和证书的到期加上监控报警。域名好说,nagiosexchange上搜了个插件就搞定。证书,不考察不知道,原来nagios的check_http插件就直接支持证书的过期时间检测。具体语法就不详述了,我这里要讲的是另外一个问题:sni。在以前,web server的https是不能用普通的基于主机名的虚拟主机的,也就是说,一个ip,只能有一个https站点。这种情况在sni出现后被推翻,所以,现在支持https的web server,几乎都是支持sni的。但是客户端……现在也基本都支持了。
我这里当时碰到问题的现象是:检测一个证书时返回的却老是另外一个证书的情况。于是最早觉得nagios的插件check_http有问题!后来一想,会不会是sni的问题,于是登上检测的那台主机一看:果然是同一个ip、端口,基于hostname配了两个ssl证书。再一查check_http的文档,发现原来check_http是支持sni的,不过需要在命令行显式的加上参数让其支持!
原来的check_http方式:

check_http --ssl -I 1.1.1.1 -H xxx.xxx.xom -p 443 -u / -C 30;

支持sni的方式为:

check_http --ssl -I 1.1.1.1 -H xxx.xxx.xom -p 443 -u / --sni -C 30;
分类: tips, TroubleShooting 标签: ,

在nagios的command中用条件判断

2014年12月6日 没有评论

工作需要,报警(发邮件)时对不同的级别(主要是critical和warning)用不同的发件人。但又不想改动发邮件的那个脚本,于是就想在command的定义里面做文章。最后的实例是这样的:

define command {
        command_name    notify-service-by-email-test
        command_line    test $SERVICESTATE$ = CRITICAL && \
                        echo "mail from critical" \
                        || echo "mail from others"
}
分类: tips 标签: ,

apache2.2基于openldap认证仅允许特定组访问nagios

2012年2月21日 没有评论

前面提到过apache 2.2下怎样通过ldap认证,不过那是适合posixGroup的组,我这里用到的是groupOfNames的组,这两种组在ldap里不兼容,因此配ldap的方式也不一样,比如我现在用的是groupOfNames的组,那么我在apache2.2的配置文件里就是这么写的(关键几句):

AuthType basic
AuthBasicProvider ldap
AuthName "Nagios Access"
AuthzLDAPAuthoritative on
AuthLDAPURL ldap://192.168.0.1/ou=employees,dc=xxx,dc=com?uid?sub
require ldap-group cn=SA,cn=tech,ou=groups,dc=xxx,dc=com

这样配了之后,发现一个特别诡异的情况,SA组里的用户倒是可以登陆了,但是各人的权限貌似还不一样,有的连host都看不了,报错说没有权限,但有的又没有问题。最终仔细看了看cgi.cfg这个文件,发现缺省情况下用户是只能看自己是联系人的hosts和services的信息的,除非将cgi.cfg里的nagiosadmin全部替换成*,这样的话,只要通过认证的用户就都能看所有的信息了。

分类: tips, TroubleShooting 标签: , ,

Defining the email address which Nagios sends emails from

2011年11月7日 3 条评论

  首先,说明一下:题目是摘抄的。但是问题是通的,用过nagios的都知道,nagios是用程序mail来发报警邮件的,而mail命令不支持命令行直接指定发件人的邮件地址,而且缺省的发件人地址是调用mail的用户@服务器的主机名,所以基本上用nagios的人都有需求修改发件人的邮件地址,解决方法也五花八门。
  网上大都是改mailrc文件来修改发件人地址的,我不推荐这样做主要是因为如果有别的程序再调mail发邮件,发件人也会是这个修改后的邮件地址,我这里用的算是一种比较简便的方法:使用nail替代nagios原来用的mail来发邮件。因为nail命令直接就支持”-r”参数来设置发件人的邮件地址。在centos5下,直接

yum install nail

即可,如果在centos6下,nail和mail是一个软件包,所以有mail的话,都不用安装,nail就有了,直接用就好了。

改了一个nagios plugin:check_mem.pl

2010年11月27日 没有评论

  这个check_mem.pl其实不仅仅是个nagios插件(plugin),而且还是nrpe的插件(plugin),而且还带性能数据。原版的程序是将bufferscached的内存(free命令看到的)加在一起当做caches的内存,然后当做性能数据caches打印出来的。为了更加直观,我还是将其改回去了,把caches内存还是拆成cachedbuffers两部分,并都在性能数据中输出。

  对啦,这个程序在solaris下跑也许会有bug,主要是我对solaris下的内存划分还没做太多研究,原来的程序就支持solaris,我就把原来的代码做了些许改动。

  就这些了。代码在这里(https://github.com/haw-haw/some-nagios-plugins/blob/master/check_mem.pl)

ubuntu server下的nrpe的配置

2010年8月28日 没有评论

在ubuntu server下部署nrpe非常简单
直接

sudo apt-get install nagios-nrpe-server nagios-plugins

即可
启动脚本为/etc/init.d/nagios-nrpe-server
配置文件在/etc/nagios/nrpe.cfg
但是不建议大家直接修改这个文件
建议把需要的配置写到文件/etc/nagios/nrpe_local.cfg里
nrpe_local.cfg会在nrpe.cfg的最后被load
所以它的配置如果有跟nrpe.cfg的重复的话会覆盖掉原来在nrpe.cfg中的配置
这样我们可以把nrpe.cfg的内容当作缺省值
只有我们需要的配置跟缺省值不一样的时候
我们才需要将其写到nrpe_local.cfg里
再nrpe_local.cfg后面被load还有目录/etc/nagios/nrpe.d/这个目录下的所有文件
这里牵涉到一个小技巧
就是这里所有的文件必须为.cfg结尾
否则不能被nrpe读取!!

为nagios的web页面添加声音报警

2010年8月3日 没有评论

这让我又想起了n多年前chinaren的报警页面
这是一个自己写的大大的报警页面
当某个服务变成红色的时候
开着web页面的机器于是发出凄厉的叫声

呵呵
其实nagios缺省直接支持这个功能
在cgi.cfg里
打开audio选项
host_unreachable_sound=hostdown.wav
host_down_sound=hostdown.wav
service_critical_sound=critical.wav
service_warning_sound=warning.wav
service_unknown_sound=warning.wav
这几个wav文件原来的nagios貌似自带
可我的3.0.6里没有了
media目录还在
于是我把他们当下来
放到这里
大家有需要可以点进去下载

nagio下监控多个hosts下的同一service的简单配法

2009年4月13日 没有评论

这里主机(host)的定义就不说了
这里的“简单配法”主要是指定义服务(service)的简单写法
一般情况
要监控n台机器(host1,host2,host3,…hostN)上的serviceA服务的话
需要定义n个service(服务)
然后在每个service里用host_name分别指向这n台机器
例如:

host_name host1

但是实际上我们不需要这样麻烦
host_name参数支持多个值写在一起
也就是说
我们只需要定义一个service即可
用其host_name同时指向这n台机器
像这样:

host_name host1,host2,host3
(上面例子n=3)