У меня есть система Foreman 1.9.0, использующая postgres в качестве серверной части RHEL 7.2.
Возникла потребность в возможности отправлять журнал аудита и отчеты внешнему объекту почти в реальном времени (отметка 5-10 минут).
Я искал в Интернете и не мог узнать, возможно ли это. Я мог бы создать сценарий, который считывает журналы прямо из базы данных и выводит их в xml. Но это далеко не идеально с точки зрения подотчетности.
Идеальным выходным решением был бы XML, но формата сообщения системного журнала было бы достаточно.
Спасибо
Думаю, с такими жесткими требованиями стоит создать плагин Foreman. Видеть https://theforeman.org/plugins/#3.WritingYourOwn за помощью или спросите в списке рассылки и каналах IRC.
Форман использует драгоценный камень "проверенный" (https://github.com/collectiveidea/audited), чтобы зафиксировать изменения, внесенные во все объекты. Этот гем хранит аудит в объекте с именем «Audit». Вы можете расширить этот объект в своем плагине Foreman и написать after_save
вызов, который отправляет свое представление в XML на внешний сервер. Таким образом, ваши аудиты будут отправляться автоматически, однако вы должны быть осторожны и сделать операцию асинхронной и фиксировать ошибки в случае, если соединение с внешним сервером не работает и т. Д.
В качестве альтернативы (и немного более элементарной и подверженной ошибкам) вы можете написать задачу с граблями (см. Примеры здесь https://github.com/theforeman/foreman/tree/develop/lib/tasks), который собирает всю информацию аудита каждые X минут и отправляет ее на внешний сервер в формате XML. На практике это будет сценарий, очень похожий на тот, который вы описали ранее.
Я бы также добавил, что есть уже существующий плагин https://github.com/frimik/foreman_audited_notifications который имеет базовые / аналогичные возможности, чем вы просите.