deweiku 发表于 2012-11-01 10:37

[已解决]在nagios里用mysql调用hostname

本帖最后由 deweiku 于 2012-11-03 11:19 编辑

在nagios的commands.cfg配置文件里。

define command{
      command_name    notify-host-by-email
      command_line    /usr/bin/printf "%b" "$HOSTADDRESS$\nInfo: $HOSTOUTPUT$" | /usr/bin/sendEmail   -t `mysql -uroot -p**** -h**** db -e "select a.label,b.email from item a ,user b where a.owner_id=b.id and label ='$host_name'"|grep -v "label"|awk '{print$2}'` -cc $CONTACTEMAIL$-u "$NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$"

根据 hostname查询通讯录表里对应联系人 并给他们发信 通讯录表里的hostname与联系人是对应的。

-t `mysql -uroot -p**** -h**** db -e "select a.label,b.email from item a ,user b where a.owner_id=b.id and label ='$host_name'"
我就是想知道$hostname该调用nagios里的哪个。。。

请高手指点啊,感激不尽。

deweiku 发表于 2012-11-01 10:57

-t `mysql -uroot -p**** -h**** db -e "select a.label,b.email from item a ,user b where a.owner_id=b.id and label ='$HOSTNAME'"
写成$HOSTNAME 好像调用的是本机的hostname。

有没有高手? 难道现在nagios没人使用了。

chenyx 发表于 2012-11-01 11:24

还没用过mysql作为nagios的存储呢.哪天研究下

deweiku 发表于 2012-11-01 11:32

不好意思,可能我表达的不是很清楚;
我改的是nagios的commands.cfg配置文件里的
command_name    notify-host-by-email
command_name    notify-service-by-email
我是想当有主机报警后,通过主机名查通讯录表,将该主机报警直接发邮件给该主机的负责人。
我现在就是不知道怎么才能调用nagios报警的主机名去查mysql, 不知道哪个才是hostname的变量

deweiku 发表于 2012-11-03 11:20

原来不能直接调用nagios的内置变量,我最后是通过SHELL转一下变量再调用的。

love100 发表于 2012-11-13 09:26

用$HOSTNAME$ 试试
页: [1]
查看完整版本: [已解决]在nagios里用mysql调用hostname