Как я должен отправлять журналы systemd на выделенный сервер протоколирования

Раньше я использовал syslog-ng или rsyslog для отправки системных журналов на выделенный сервер регистрации в другом месте в сети. С systemd, однако, такие вещи, как команды sudo, которые ранее были сохранены в / var / log / secure или /var/log/auth.log (в зависимости от вашего дистрибутива).

Я знаю, что /etc/systemd/journald.conf имеет опцию ForwardToSyslog=yes , которая позволила бы мне вернуться к моим старым путям, но это похоже на неэлегантный шаг назад. Имеет ли systemd встроенный способ отправки журналов на центральный сервер ведения журнала, такой как Logrhythm, ELK или аналогичный, или установка ForwardToSyslog=yes правильный способ сделать это?

  • Linux Mint 15 (Ubuntu 13.04) Спонтанно сбой: Пожалуйста, помогите мне разобраться в сообщениях системного журнала
  • Как предотвратить arp-scan от записи в syslog?
  • Почему journalctl говорит «- нет записей -»?
  • Почему syslog-трафик не отображается в netstat и lsof?
  • Pimp rsyslogd имеет меньше i / o (cron, pam, ...) и меньше регистрации
  • logrotate записывает старый app.log.1 вместо app.log
  • Syslog TLS Сжатие и буферизация сообщений
  • Почему logcheck сообщает о успешных входах в Орду?
  • 2 Solutions collect form web for “Как я должен отправлять журналы systemd на выделенный сервер протоколирования”

    Похоже, что systemd не имеет встроенного средства пересылки сообщений на сервер syslog. Официальной рекомендацией Red Hat является использование модуля imjournal позволяющего rsyslog читать журналы журнала и пересылать эти журналы на центральный сервер ведения журнала, установив в файле /etc/rsyslog.conf следующее:

     module(load=”imjournal” PersistStateInterval=”number_of_messages” StateFile=”path” ratelimit.interval=”seconds” ratelimit.burst=”burst_number” IgnorePreviousMessages=”off/on”) 

    Они предоставляют информацию об использовании этих параметров, отмечая

    • С помощью number_of_messages вы можете указать, как часто данные журнала должны быть сохранены. Это будет происходить каждый раз, когда будет достигнуто указанное количество сообщений.

    • Замените путь на путь к файлу состояния. Этот файл отслеживает запись журнала, которая была последней обработанной.

    • С помощью секунд вы устанавливаете длину предельного значения скорости. Количество сообщений, обрабатываемых в течение этого интервала, не может превышать значение, указанное в номере_папки. Значение по умолчанию – 20 000 сообщений за 600 секунд. Rsyslog отбрасывает сообщения, которые поступают после максимального пакета в указанный период времени.

    • С IgnorePreviousMessages вы можете игнорировать сообщения, которые в настоящее время находятся в Журнале, и импортировать только новые сообщения, которые используются, когда нет указанного файла состояния. Значение по умолчанию выключено. Обратите внимание, что если этот параметр выключен и файл состояния отсутствует, все сообщения в Журнале обрабатываются, даже если они уже были обработаны в предыдущем сеансе rsyslog.

    Я не читал подробно о imjournald раньше, но, прочитав ответ Джеймса Шейя, я думаю, что это действительно легко.

    Используя набор правил, вы можете достичь того, что захотите.

     module(load=”imjournal” PersistStateInterval=”number_of_messages” StateFile=”path” ratelimit.interval=”seconds” ratelimit.burst=”burst_number” IgnorePreviousMessages=”off/on” ruleset="journald" #bind this action to the ruleset "journald" ) #declare ruleset "journald" ruleset( name="journald" queue.type="FixedArray" queue.spoolDirectory="/var/run/rsyslog/queues" queue.filename="stats_ruleset" queue.lowwatermark="20000" queue.maxdiskspace="100m" queue.size="5000000" queue.dequeuebatchsize="1000" queue.saveonshutdown="on" ) { # add here actions you want to perform action( name="impstats_to_es" type="omelasticsearch" server="127.0.0.1" serverport="9200" template="stats" searchIndex="impstats" searchType="impstats" bulkmode="on" action.resumeretrycount="-1" ) } 
    Linux и Unix - лучшая ОС в мире.