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

org*_*gie 6 monitoring centos god

我已经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 
Run Code Online (Sandbox Code Playgroud)

我在任何 CentOS 服务器上都找不到任何cnnetlink内核模块。但是我还有其他可以正常工作的服务器:

$ 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 
Run Code Online (Sandbox Code Playgroud)

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

# ruby -v
ruby 1.8.6 (2010-02-05 patchlevel 399) [x86_64-linux]
Run Code Online (Sandbox Code Playgroud)

Ruby 来自 ELFF 存储库:

# rpm -qi ruby
Name        : ruby                         Relocations: (not relocatable)
Version     : 1.8.6.399                         Vendor: Bravenet ELFF <elff@bravenet.com>
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 <elff@bravenet.com>
Run Code Online (Sandbox Code Playgroud)

我做了一些挖掘,可以看到当 God 尝试加载 Netlink 事件处理程序时抛出的异常:

no such file to load -- netlink_handler_ext 
Run Code Online (Sandbox Code Playgroud)

我的服务器之间可能有什么不同?我错过了一些简单的东西吗?

小智 0

netlink_handler_ext 是一个 ruby​​ 本机扩展,是 God 的一部分。看起来上帝无法加载这个本机扩展,因为它从未被编译过,并且 gem 从未正确安装过,或者它没有被添加到它的加载路径中。

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