上帝进程监控 - CentOS - 未找到事件系统

上帝进程监控 - CentOS - 未找到事件系统

我已经god在至少十几台(或更多)服务器上安装了运行 CentOS 5.5 的 i386 和 x86_64 版本,运行良好。我刚刚设置了两台新的 CentOS 5.5 x86_64 服务器并安装了 God,但我收到了事件系统错误:

$ tail /var/log/god.log 
E [2011-04-22 12:33:17] ERROR: Condition 'God::Conditions::ProcessExits' 
requires an event system but none has been loaded 

$ god check 
using event system: none 
[fail] event system did not load 

$ uname -a 
Linux server2.example.com 2.6.18-238.9.1.el5 #1 SMP Tue Apr 12 18:10:13 EDT 2011 x86_64 x86_64 x86_64 GNU/Linux 

我在任何 CentOS 服务器上都找不到任何cn内核模块。但我有其他运行良好的服务器:netlink

$ god check 
using event system: netlink 
starting event handler 
forking off new process 
forked process with pid = 17559 
killing process 
[ok] process exit event received 

$ uname -a 
Linux server1.example.com 2.6.18-194.el5 #1 SMP Fri Apr 2 14:58:14 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux 

所有服务器都运行 ruby​​ v1.8.6-399:

# ruby -v
ruby 1.8.6 (2010-02-05 patchlevel 399) [x86_64-linux]

Ruby 来自 ELFF repo:

# rpm -qi ruby
Name        : ruby                         Relocations: (not relocatable)
Version     : 1.8.6.399                         Vendor: Bravenet ELFF <[email protected]>
Release     : 2.el5                         Build Date: Fri Apr 16 18:53:48 2010
Install Date: Thu Mar 24 11:23:48 2011         Build Host: el-build.local
Group       : Development/Languages         Source RPM: ruby-1.8.6.399-2.el5.src.rpm
Size        : 1738695                          License: Ruby or GPLv2
Signature   : DSA/SHA1, Fri Apr 16 19:07:49 2010, Key ID 551751dfe8b071d6
Packager    : Bravenet ELFF <[email protected]>

我进行了一些挖掘,发现当 God 尝试加载 Netlink 事件处理程序时会引发异常:

no such file to load -- netlink_handler_ext 

我的服务器之间可能有什么不同?我是否忽略了一些简单的事情?

答案1

netlink_handler_ext 是 Ruby 原生扩展,是 God 的一部分。God 似乎无法加载此原生扩展,因为它从未被编译过,gem 从未正确安装过,或者它没有被添加到加载路径中。

使用“gem env”检查您的 gem 环境,您应该能够找到 gem 的安装位置并手动检查是否存在本机扩展。

相关内容