nagios使用中遇到的问题
思韵闪耀
2013-03-19
0

1.通过web界面修改某个服务时报错

例如对某个服务进行临时安排其执行时间,或者不让它发警告,web页面上都有这样的设置.但是常常会有错误信息如下:

Could not open command file '/usr/local/nagios/var/rw/nagios.cmd' for update!

The permissions on the external command file and/or directory may be incorrect. Read the FAQs on how to setup proper permissions.

An error occurred while attempting to commit your command for processing.

关于这部分在nagios.cfg中有下面的内容

# EXTERNAL COMMAND FILE

# This is the file that Nagios checks for external command requests.

# It is also where the command CGI will write commands that are submitted

# by users, so it must be writeable by the user that the web server

# is running as (usually 'nobody'). Permissions should be set at the

# directory level instead of on the file, as the file is deleted every

# time its contents are processed.

这段话的核心意思是apache的运行用户要有对文件写的权限.权限应该设置在目录上,因为每次文件的内容被处理后文件就会被删掉

command_file=/usr/local/nagios/var/rw/nagios.cmd

本来将apache2运行的用户apache加到nagios组就应该可以了的

但是这个却不行,就将rw这个目录及其子文件的权限改了777,这样就可以了.

后来发现nagios.cmd的权限还是自动变回了rw-rw----,但是发命令没有受到影响,不报错了.(难道是用重启nagios,让其生效?)

2.nagios警告邮件的特殊配置

nagios发警告邮件是采用本机的smtp服务,可以查看commands.cfg中关于发邮件的命令的定义,使用本机的mail命令,这就需要开启本机的smtp服务,为了安全可以在防火墙上设置拒绝其他的机器连本机的25号端口

现在我们的网络里面有一个邮件服务器,所以要求使用这台现有的邮件服务器,不开启本机的smtp服务,这就需要重新定义命令使用第三方软件sendEmail.

首先我们当然要在邮件服务器上新建一个账户用来做发邮件的账户

这里邮件服务器的地址为mail.test.com

用来发邮件的帐号nagios@test.com

SMTP验证的用户名 nagios 密码 p#3isoda

以下就来介绍一下sendEmail这个软件的使用.

sendEmail的主页[url]http://caspian.dotconf.net/menu/Software/SendEmail/[/url]

下载地址[url]http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.55.tar.gz[/url]

软件十分小,是一个通过命令来发smtp邮件的程序.安装也十分简单(查看其README文件即可).

解压缩tar –zxvf sendEmail-v1.55.tar.gz

cd sendEmail-v1.55

将可执行程序复制cp sendEmail /usr/local/bin

然后给确认确实它具有执行权限

ll /usr/local/bin/sendEmail

-rwxr-xr-x 1 root root 77882 11-03 14:23 /usr/local/bin/sendEmail

这样程序就装好了,使用也很简单.直接运行sendEmail就会显示详细的用法

先看一个典型的例子

/usr/local/bin/sendEmail –f nagios@test.com –t yahoon@test.com –s mail.test.com –u “from nagios” –xu nagios –xp p#3isoda –m happy

解释:

-f 表示发送者的邮箱

-t 表示接收者的邮箱

-s 表示SMTP服务器的域名或者ip

-u 表示邮件的主题

-xu 表示SMTP验证的用户名

-xp 表示SMTP验证的密码(注意,这个密码貌似有限制,例如我用d!5neyland就不能被正确识别)

-m 表示邮件的内容

如果你不带-m参数的话,就会提示你自行输入

Reading message body from STDIN because the ‘-m’ option was not used.

If you are manually typing in a message:

- First line must be received within 60 seconds.

- End manual input with a CTRL-D on its own line

输入完成后使用CTRL-D来结束

当然我们也可以将一个文件的内容作为邮件的正文发出去的

那么就可以使用:

cat 文件名 | /usr/local/bin/sendEmail –f nagios@test.com –t yahoon@test.com –s mail.test.com –u “from nagios” –xu nagios –xp p#3isoda

有关sendEmail的用法就讲到这里

既然nagios要使用sendEmail来发警告邮件,那么就要修改commands.cfg中关于发邮件的命令的定义,我们现在来修改notify-by-email这个命令,如下(注意其中粗体的部分)

# 'notify-by-email' command definition

define command{

        command_name    notify-by-email

        command_line    /usr/bin/printf "%b" "***** Nagios 2.9 *****nnNotification Type: $NOTIFICATIONTYPE$nnService: $SERVICEDESC$nHost: $HOSTALIAS$nAddress: $HOSTADDRESS$nState: $SERVICESTATE$nnDate/Time: $LONGDATETIME$nnAdditional Info:nn$SERVICEOUTPUT$" | /usr/local/bin/sendEmail -f nagios@test.com -t $CONTACTEMAIL$ -s mail.test.com -u "** $NOTIFICATIONTYPE$ alert - $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" -xu nagios -xp p#3isoda

        }

注:其实sendEmail是一个十分有用的程序,我们在这个地方用了它,其实别的地方也可以用,典型的好处就是你不需要每台机器都装sendmail,开启smtp服务.直接用现成的一台邮件服务器就行了,这无疑很大的加强了系统的安全性,也节约了资源.



【版权声明】
本站部分内容来源于互联网,本站不拥有所有权,不承担相关法律责任。如果发现本站有侵权的内容,欢迎发送邮件至masing@13sy.com 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。

相关内容

将IIS设置克隆到新服务器...
将IIS设置克隆到新服务器的最佳方法是使用IIS配置文件。以下是详...
2025-06-06
网页保护、网页图片保护
1、禁止另存网页,把如下代码加入到网页body/body中 程序代...
2025-05-30
搭建Git服务器及本机克隆...
Git是什么?Git是目前世界上最先进的分布式版本控制系统。SVN...
2025-03-17
ubuntu环境下搭建gi...
操作环境:服务器:Ubuntu 24.04.2 LTS+git 2...
2025-03-17
Ubuntu防火墙ufw的...
一、不使用IPv6打开UFW配置。sudo vim /e...
2024-12-28
ubuntu防火墙命令介绍
ubuntu在开启ufw防火墙前,为了避免与iptables现有规...
2024-07-21

热门资讯

Exchange 2013/2... Exchange 2013/2016/2019邮件大小限制 可以在三个位置上配置Exchange上的...
SMTP 发送邮件错误码和解决... SMTP错误码/建议解决方法 错误总表 420 1. Timeout Communication P...
Exchange 2013 O... 最近在Exchange 2013环境中,遇到OWA/ECP无法访问的问题;用户是可以正常通过...
Roundcube 配置过各提... Fileinfo/mime_content_type configuration: OK Mimet...
彻底卸载Exchange Se... 一般来说,我们安装完Exchange Server 2016之后,可以通过正常卸载程序来进行卸载,但...
Exchange 2013批量... 一批量删除特定主题的邮件 1.1批量删除所有数据库中特定主题的邮件 1)群发了几封主题为backup...
快速查看已安装Exchange... Exchange 2010的版本号在Exchange管理控制台(EMC)显示的,好像不准确了。比如,...
在 Exchange 2016... 用户邮箱是与人员关联的 Exchange 邮箱,通常为每人一个邮箱。每个用户邮箱都有一个关联的 Ac...
exchange2013域名(... 需要对 接受的域 和 电子邮件地址策略进行配置: 首先外网域名要做解析和增加mx记录,这里就不具体说...
如何为AD 添加多个UPN后缀 今天我在群里看到有群友在问User principal name (UPN)多后缀的问题,我在这里就...