Мониторинг процессов God – 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: Условие 'God::Conditions::ProcessExits' 
требует систему событий, но ни одна не была загружена 

$ god check 
используется система событий: нет 
[fail] система событий не загрузилась 

$ 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 

Я не могу найти ни cn, ни netlink модуль ядра на любом из моих серверов CentOS. Тем не менее у меня есть другие серверы, которые работают нормально:

$ god check 
используется система событий: netlink 
запуск обработчика событий 
создание нового процесса 
созданный процесс с pid = 17559 
убиваем процесс 
[ok] событие завершения процесса получено 

$ 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:

# rpm -qi ruby
Имя        : ruby                         Переносы: (не переносимый)
Версия     : 1.8.6.399                         Поставщик: Bravenet ELFF <[email protected]>
Выпуск     : 2.el5                         Дата сборки: Fri Apr 16 18:53:48 2010
Дата установки: Thu Mar 24 11:23:48 2011         Хост сборки: el-build.local
Группа       : Development/Languages         Исходный RPM: ruby-1.8.6.399-2.el5.src.rpm
Размер       : 1738695                          Лицензия: Ruby или GPLv2
Подпись     : DSA/SHA1, Fri Apr 16 19:07:49 2010, Идентификатор ключа 551751dfe8b071d6
Упаковщик   : Bravenet ELFF <[email protected]>

Я немного покопался и вижу, что исключение выбрасывается, когда God пытается загрузить обработчик событий Netlink:

не удается загрузить файл -- netlink_handler_ext 

Что может быть не так между моими серверами? Я пропустил что-то простое?

netlink_handler_ext — это нативное расширение Ruby, которое является частью God. Похоже, что God не может загрузить это нативное расширение, либо потому, что оно никогда не компилировалось и гем никогда не устанавливался правильно, либо оно не было добавлено в его путь загрузки.

Используйте “gem env”, чтобы проверить вашу среду гемов, вы должны быть в состоянии найти, где установлен гем, и вручную проверить, присутствует ли нативное расширение или нет.

Ответ или решение

Ошибка системы событий God на CentOS: отладка и устранение неполадок

При установке и настройке системы мониторинга God на новых серверах CentOS 5.5 x86_64 вы столкнулись с проблемой, связанной с недоступностью системы событий. Давайте подробно разберем, почему возникает ошибка «Event System Not Found», и как её можно устранить.

Описание проблемы

Отладочные логи показывают, что происходит ошибка при загрузке обработчика событий netlink. Сообщения из логов указывают на следующие моменты:

  1. Ошибка Condition ‘God::Conditions::ProcessExits’: проблема в том, что God требует систему событий, но не может её загрузить:

    ERROR: Condition 'God::Conditions::ProcessExits' requires an event system but none has been loaded
  2. Проверка событийной системы:

    using event system: none 
    [fail] event system did not load
  3. Отсутствие модулей cn или netlink: на новых серверах отсутствуют необходимые модули, которые были найдены на старых серверах.

Причины проблемы

Судя по всему, основная проблема заключается в том, что расширение netlink_handler_ext, необходимое для работы системы событий God, не загружается. Это может быть вызвано:

  • Неправильной установкой God и его зависимостей.
  • Отсутствием или неправильной компиляцией нативного расширения netlink_handler_ext.

Решения

  1. Проверка установки Gem и его зависимостей:
    Используйте команду gem env, чтобы узнать, куда установлены ваши гемы. Вам необходимо проверить, присутствует ли нативное расширение netlink_handler_ext в том каталоге, где установлен God.

    gem env

    Обратите внимание на параметры INSTALLATION DIRECTORY и GEM PATHS. Убедитесь, что в этом пути есть папка для netlink_handler_ext.

  2. Переустановка God:
    Если оказывается, что нативное расширение отсутствует, попробуйте переустановить God. Для этого выполните следующие шаги:

    gem uninstall god
    gem install god

    Убедитесь, что установка завершилась успешно и никаких ошибок не возникло.

  3. Проверка наличия Ruby Development Kit:
    Убедитесь, что у вас установлен пакет ruby-devel, который необходим для компиляции нативных расширений. Вы можете установить его через yum:

    sudo yum install ruby-devel
  4. Сборка расширения вручную:
    Если проблема сохраняется, возможно, потребуется вручную собрать расширение. Найдите исходный код netlink_handler_ext в репозитории God и выполните:

    cd /путь/к/netlink_handler_ext
    ruby extconf.rb
    make
    make install
  5. Сравнение конфигураций серверов:
    Обратите внимание на возможные различия между рабочими и проблемными серверами. Проверьте версии зависимостей, конфигурации среды и права пользователя, под которым запускается God.

Заключение

Ошибка загрузки системы событий God часто связана с отсутствием нативного расширения или неправильной установкой. Следуя рекомендациям по проверке и переустановке расширений, вы сможете быстро устранить проблему. Если ошибки все еще возникают, стоит проверить все зависимости и конфигурации сервера более детально.

Если у вас есть дополнительные вопросы или требуется дальнейшая помощь, не стесняйтесь обратиться за помощью к сообществу или профессионалам в этой области.

Оцените материал
Добавить комментарий

Капча загружается...