Nagios的内容:命令没有自定义命令问题,怎么解决

nagios使用的问题解决
时间: 06:59:14
&&&& 阅读:330
&&&& 评论:
&&&& 收藏:0
标签:&&&&&&&&&&&&&&&nagios使用的问题解决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用来发邮件的帐号SMTP验证的用户名 nagios 密码 p#3isoda以下就来介绍一下sendEmail这个软件的使用.sendEmail的主页下载地址软件十分小,是一个通过命令来发smtp邮件的程序.安装也十分简单(查看其README文件即可).解压缩tar –zxvf sendEmail-v1.55.tar.gzcd sendEmail-v1.55将可执行程序复制cp sendEmail /usr/local/bin然后给确认确实它具有执行权限ll /usr/local/bin/sendEmail-rwxr-xr-x 1 root root
14:23 /usr/local/bin/sendEmail这样程序就装好了,使用也很简单.直接运行sendEmail就会显示详细的用法先看一个典型的例子/usr/local/bin/sendEmail –f
–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
–s mail.test.com –u “from nagios” –xu nagios –xp p#3isoda有关sendEmail的用法就讲到这里既然nagios要使用sendEmail来发警告邮件,那么就要修改commands.cfg中关于发邮件的命令的定义,我们现在来修改notify-by-email这个命令,如下(注意其中粗体的部分)# ‘notify-by-email‘ command definitiondefine command{command_name&&& notify-by-emailcommand_line&&& /usr/bin/printf "%b" "***** Nagios 2.9 *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$" | /usr/local/bin/sendEmail -f
-t $CONTACTEMAIL$ -s mail.test.com -u "** $NOTIFICATIONTYPE$ alert - $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" -xu nagios -xp p#3isoda}注:其实sendEmail是一个十分有用的程序,我们在这个地方用了它,其实别的地方也可以用,典型的好处就是你不需要每台机器都装sendmail,开启smtp服务.直接用现成的一台邮件服务器就行了,这无疑很大的加强了系统的安全性,也节约了资源.标签:&&&&&&&&&&&&&&&原文:http://luwenjuan.blog.51cto.com/1848
教程昨日排行
&&国之画&&&& &&&&&&
&& &&&&&&&&&&&&&&
鲁ICP备号-4
打开技术之扣,分享程序人生!如何解决nagios安装及运行在的常见错误_百度知道
如何解决nagios安装及运行在的常见错误
我有更好的答案
*** [install-recursive] 错误 1 求解决 从这看不出什么,你能把你文件的路径和执行的命令说明一下。 make
为您推荐:
其他类似问题
nagios的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。nagios使用的问题解决
时间: 07:01:25
&&&& 阅读:276
&&&& 评论:
&&&& 收藏:0
标签:&&&&&&&&&&&&&&&nagios使用的问题解决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用来发邮件的帐号SMTP验证的用户名 nagios 密码 p#3isoda以下就来介绍一下sendEmail这个软件的使用.sendEmail的主页下载地址软件十分小,是一个通过命令来发smtp邮件的程序.安装也十分简单(查看其README文件即可).解压缩tar –zxvf sendEmail-v1.55.tar.gzcd sendEmail-v1.55将可执行程序复制cp sendEmail /usr/local/bin然后给确认确实它具有执行权限ll /usr/local/bin/sendEmail-rwxr-xr-x 1 root root
14:23 /usr/local/bin/sendEmail这样程序就装好了,使用也很简单.直接运行sendEmail就会显示详细的用法先看一个典型的例子/usr/local/bin/sendEmail –f
–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
–s mail.test.com –u “from nagios” –xu nagios –xp p#3isoda有关sendEmail的用法就讲到这里既然nagios要使用sendEmail来发警告邮件,那么就要修改commands.cfg中关于发邮件的命令的定义,我们现在来修改notify-by-email这个命令,如下(注意其中粗体的部分)# ‘notify-by-email‘ command definitiondefine command{command_name&&& notify-by-emailcommand_line&&& /usr/bin/printf "%b" "***** Nagios 2.9 *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$" | /usr/local/bin/sendEmail -f
-t $CONTACTEMAIL$ -s mail.test.com -u "** $NOTIFICATIONTYPE$ alert - $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" -xu nagios -xp p#3isoda}注:其实sendEmail是一个十分有用的程序,我们在这个地方用了它,其实别的地方也可以用,典型的好处就是你不需要每台机器都装sendmail,开启smtp服务.直接用现成的一台邮件服务器就行了,这无疑很大的加强了系统的安全性,也节约了资源.标签:&&&&&&&&&&&&&&&原文地址:http://luwenjuan.blog.51cto.com/1848
&&国之画&&&& &&&&chrome插件&&
版权所有 京ICP备号-2
迷上了代码!博主最新文章
博主热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
阅读(381)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
loftPermalink:'',
id:'fks_081070',
blogTitle:'Nagios的配置 01',
blogAbstract:'skip to main | skip to sidebar 让Nagios为我们服务 日 星期一Nagios的配置 Nagios的配置1)设置Nagios的登录权限;先检查一下安装时应该做的这一步:#&vi /etc/apache2/default-server.conf在52行左右加入:ScriptAlias /nagios/cgi-bin /usr/local/nagios/sbinAllowOverride AuthConfigOptions ExecCGIOrder allow,denyAllow from allAlias /nagios /usr/local/nagios/shareOptions NoneAllowOverride',
blogTag:'',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:0,
publishTime:5,
permalink:'blog/static/',
commentCount:0,
mainCommentCount:0,
recommendCount:0,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'',
hmcon:'1',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}

我要回帖

更多关于 执行命令定义时出错 的文章

 

随机推荐