我有一个本地Nagios服务器,我试图将其配置为使用check_jvm监控我的tomcat8服务器,因此我可以控制Java使用的内存和类。
为此,我在客户端上安装了check_nrpe插件,并对其进行了配置,但我发现了一个奇怪的'错误。
如果我尝试从服务器调用客户端上的插件,它会正确回答,即使使用check_jvm命令作为参数。
但是当我配置它以便nagios自己进行检查时,Web浏览器返回一个" CHECK_NRPE:错误 - 无法完成SSL握手"特别为那项服务。
这就是我所拥有的:
来自我的nagios服务器
# /usr/local/nagios/libexec/check_nrpe -H <client.ip>
NRPE v2.12
# /usr/local/nagios/libexec/check_nrpe -H <client.ip> -c tomcat_heap
OK 799998504 |max=2101870592;;; commited=2101870592;;; used=799998504;;;
其中tomcat_heap
是客户端nrpe.cfg
中定义的命令的名称,以便使用check_jvm
插件。
command[tomcat_heap]=sudo /usr/local/nagios/libexec/check_jvm -n org.apache.catalina.startup.Bootstrap -p heap -w 1700000000 -c 2000000000
现在,再次回到我的Nagios服务器上,这是服务定义
define service{
use generic-service
host_name lin-des
service_description Tomcat heap
check_command check_nrpe!tomcat_heap
}
现在,这会返回一个&#39; CHECK_NRPE:错误 - 无法完成SSL握手&#39;在网络应用程序。
我已检查allowed_hosts
文件上的nrpe.cfg
以及/etc/xinetd.d/nrpe
上的/usr/local/nagios/libexec
,因此它包含了我的nagios服务器IP。
我还检查了Selinux和Iptables的配置。
我还检查过我的Nagios服务器和客户端共享相同版本的ssl库。
最后,我已经检查了服务器和客户端上 - (void)awakeWithContext:(id)context
{
[super awakeWithContext:context];
[self CreateUaerActivity];
}
-(void)CreateUaerActivity
{
NSUserActivity *activity = [[NSUserActivity alloc] initWithActivityType:@"com.xxx.xxx.glance"];
activity.title = @"Glance";
activity.delegate=self;
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:kUserLoginWatchKit,kRequestTypeWatchKit, nil];
activity.userInfo = dict;
self.userActivity = activity;
[self.userActivity becomeCurrent];
}
- (void)willActivate
{
[super willActivate];
[NSTimer scheduledTimerWithTimeInterval:120 target:self selector:@selector(doSomething) userInfo:nil repeats:YES];
}
-(void)doSomething
{
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:kUserLoginWatchKit,kRequestTypeWatchKit, nil];
[super updateUserActivity:@"com.xxx.xxx.glance" userInfo:dict webpageURL:nil];
}
-(void)handleUserActivity:(NSDictionary *)userInfo
{
//displaying data
}
的所有权限,因此用户nagios拥有它们的所有权。
在这一点上,我没有想法,这就是我问你的原因。关于问题可能存在的任何想法?
答案 0 :(得分:0)
找到它。
似乎当我在command.cfg中定义了check_nrpe命令时,我在命令行上犯了一个错误。
define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -p 5656 -t 30 -c $ARG1$
}
如您所见,我将命令定义为在端口5656上工作,该端口不是nrpe服务使用的端口(实际上是5666)。
修复此错误后,一切正常运行。
我希望这对有类似问题的人有所帮助。