Подскажите какое-нибудь решение для Linux, которое может:
1. Отслеживать состояния, события, счетчики и т.п. ОС и работающих в ней приложений
2. Имеет возможность не только опрашивать объекты, но получать уведомления, другими словами, что сама программа могла poll'ить и ей можно было отправить push
3. Возможность задание расписания
4. Поддерживать логические операции с событиями, т.е. например alarm frag = 1 if condition1 = true & condition2 = true, создание цепочек условий или иерархию
5. На основании произошедших событий вызывать действия
Еще было бы круто, если эту вешь можно запустить на ARM.
Вообще сложно сказать что вам можно использовать, так как непонятно что конкретно вы пытаетесь реализовать. Для жестокого IPC можно использовать ZeroMQ на файловых сокетах, производительность будет поболее D-BUS'a. В принципе все зависит от требуемой пропускной способности шины.
Задача связана с администрирование парка машин, которые очень разные функции, но в основном они занимаются различными сетевыми функциями, роутят, НАТят, глубокий анализ пакетов на предмет передаваемых данных, RADIUS базы данных пользователей, хранение лога сообщений. Время от времени необходимо провести корреляцию между различными событиями в сети. Чтобы не хранить тонных историй о том как все работало, хочется иметь решение, которому можно задать условия, при выполнении которых сделать такие-то действия.
Например, такая задачка есть - отслеживать загруженности интерфейса (сколько бит/с) и CPU, при превышении определенных уровней, запустить tcpdump с определенным фильтром и записать перехваченные файл на диск, отправить уведомление администратору.
или
Есть скрипт, который мониторит подключенный по ком-порту телеметрию специфическую, дает запросы, парсит вывод, сохраняет данные в базу. Надо сделать задание, что если в ответ на запрос получена абракатаба, ну или зафиксирован крэш телеметрии (в выводе по ком порту получен эксепшэн), то по ssh зайти на управляемую розетку, выключить/включить телеметрию, далее по ком-порту отловить приглашение на вход в загрузчик устройства телеметрии, войти и загрузить файл прошивки, еще раз передернуть питание, отправить администратору уведомление, что был сбой, все исправлено.
И вот еще, есть демон, который запускает разные тесты, анализирует результаты и т.п. Ему можно задать условия, что если тест фэйл, то отправь уведомление (есть несколько вариантов как он это может сделать). Так вот надо чтобы при получении такого сообщения, менеджер кое-куда слазил, собрал статистику, состояния, запустил кое-то еще и в итоге все результаты сохранил.
Fluentd может собирать логи и отправлять их в kibana, также можно написать плагин к fluentd со всеми тестами. В kibana есть возможность вызова определённых функций по агрегированным данным. Т.е. оно вам спокойно вызовет функцию для обработаки события в случае каких-то "перепадов" в графиках и т.п.
А сколько все эти балалайки сами потребляют ресурсов? Обязательно ли наличие БД? Можно ли производить анализ в риал тайме?
И я так понимаю что это только для х86 работает? На АРМ не запустить?
collectd, все настройки - 1 конфиг файл. Очень подходящий инструмент когда нужно просто и фунционально. Ведёт графики и при прохождении заданного параметра может запускать твой скрипт. Сотворить можно очень многое.
С компиляцией под ARM проблем возникнуть не должно.