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