Поиск по сайту:

Как настроить RSysLog с помощью Loggly


В операционной системе Linux многие приложения отправляют журналы в системный журнал, основной механизм ведения журналов. Лучшие практики безопасности часто диктуют, что идеально отправлять журналы в отдельную систему, например Loggly, решение SaaS для управления данными журналов.

Причин для этого много, но основные из них:

  • Резервное копирование важных данных журнала.
  • Возможность проверки целостности журнала и обнаружения изменений данных.
  • Консолидация журналов между системами

Loggly имеет много функций, как показано ниже, но одна из них, в частности, — это возможность Loggly развертывать без агента.

  • Мониторинг нескольких облачных систем, внутренних журналов и журналов приложений
  • Интеграция со сторонними системами, такими как Slack, GitHub или PagerDuty
  • Анализ и визуализация данных с помощью графиков и ключевых показателей эффективности.
  • Развертывание без агента

В этой статье мы собираемся объяснить, как интегрировать Loggly с rsyslog, распространенной и мощной заменой syslogd. Это означает, что в системе Linux агент не нужен, и rsyslog можно настроить для прямой отправки журналов в Loggly.

Установка rsyslog

Многие системы поставляются с предустановленным rsyslog, но если его нет, для установки необходимо выполнить несколько шагов. Несмотря на то, что rsyslog обычно включается в репозитории многих дистрибутивов, это может быть не самая последняя версия. В этой статье Ubuntu является предпочтительным дистрибутивом, особенно дистрибутивом 18.04. Инструкции для других дистрибутивов находятся здесь.

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

Добавление репозитория rsyslog

В случае Ubuntu нам нужно добавить репозиторий Adiscon PPA.

apt-get update && apt-get install -y software-properties-common
add-apt-repository -y ppa:adiscon/v8-stable

Установка rsyslog

Нам нужно установить два основных пакета для rsyslog. Помимо самого базового пакета, пакет rsyslog-gnutls позволяет нам использовать зашифрованное соединение со службой Loggly.

apt-get update
apt-get install rsyslog
apt-get install rsyslog-gnutls

Добавление сертификатов Loggly TLS

Прежде чем мы настроим rsyslog с помощью TLS, нам сначала нужно загрузить и сделать доступными сертификаты Loggly.

sudo mkdir /etc/rsyslog.d/keys/ca.d
wget -O /etc/rsyslog.d/keys/ca.d/logs-01.loggly.com_sha12.crt <https://logdog.loggly.com/media/logs-01.loggly.com_sha12.crt>

Проверка разрешений рабочего каталога

В некоторых случаях разрешения /var/spool/rsyslog неверны, и следующий код проверит правильность установки разрешений (в контексте Ubuntu 18.04).

sudo chown -R syslog:adm /var/spool/rsyslog
sudo chmod -R 644 /var/spool/rsyslog

Настройка логгли

Со временем директивы конфигурации и синтаксис изменились для rsyslog. Часто доступно сочетание старых и новых директив. Ниже приведена конфигурация по умолчанию для rsyslog, использующая только новый синтаксис. Основная причина изменения этой конфигурации — указать rsyslog на сертификат, который мы только что скачали.

#################
#### MODULES ####
#################

module( load="imuxsock" )
module( load="imklog" )
module( load="builtin:omfile"
        fileOwner="syslog"
        fileGroup="adm"
        fileCreateMode="0644"
        dirOwner="syslog"
        dirGroup="adm"
        dirCreateMode="0755"
)
module( load="impstats"
        interval="600"
        severity="7"
        log.syslog="off"
        log.file="/var/log/rsyslog_stats.log"
)

###########################
#### GLOBAL DIRECTIVES ####
###########################

global (
    maxMessageSize="64k"
    defaultNetstreamDriverCAFile="/etc/rsyslog.d/keys/ca.d/logs-01.loggly.com_sha12.crt"
    defaultNetstreamDriver="gtls"
    workDirectory="/var/spool/rsyslog"
)

#
# Include all config files in /etc/rsyslog.d/
#
include(file="/etc/rsyslog.d/*.conf")

Важная часть кода — это defaultNetstreamDriverCAFile и defaultNetstreamDriver. Эти директивы необходимо правильно настроить, чтобы они указывали на загруженный сертификат.

После входа в свою учетную запись Loggly вам необходимо создать токен клиента. Он находится в разделе «Настройка источника» > «Токены клиента». Поскольку появится новый пользовательский интерфейс, ниже приведены скриншоты как для старого, так и для нового интерфейсов.

После того, как вы перешли к токенам клиентов, нажмите кнопку «Добавить новый», чтобы сгенерировать новый токен. Лучше всего дать этому токену описание.

Наконец, у вас будет токен, который вы сможете использовать. Скопируйте это для использования позже в наших файлах конфигурации.

Настройка rsyslog для Loggly

Последним шагом настройки rsyslog для Loggly является определение нашего файла конфигурации и перезапуск rsyslog. Ниже приведен файл конфигурации по умолчанию, расположенный в /etc/rsyslog.d/22-remote.conf, который указывает rsyslog отправлять события syslog в Loggly.

Число 22 не важно, это просто способ определить порядок загрузки конфигурационных файлов. Выберите число, которое имеет смысл в вашей конфигурации.

template(
    name="LogglyFormat"
    type="string"
    string="<%pri%>%protocol-version% %timestamp:::date-rfc3339% %HOSTNAME% %app-name% %procid% %msgid% [ca35d899-0232-4888-a8d5-118fbf5caf8d tag=\"RsyslogTLS\"] %msg%\n"
)

# Send all Syslog Messages to Remote
action(
    type="omfwd"
    protocol="tcp"
    target="logs-01.loggly.com"
    port="6514"
    template="LogglyFormat"
    StreamDriver="gtls"
    StreamDriverMode="1"
    StreamDriverAuthMode="x509/name"
    StreamDriverPermittedPeers="*.loggly.com"
    ResendLastMSGOnReconnect="on"
    queue.spoolDirectory="/var/spool/rsyslog"
    queue.filename="queue_sendToLoggly"
    queue.size="5000"
    queue.dequeuebatchsize="300"
    queue.highwatermark="4500"
    queue.lowwatermark="3500"
    queue.maxdiskspace="1g"
    queue.saveonshutdown="on"
    queue.type="LinkedList"
)

В этой конфигурации мы определяем формат отправки журналов, что помогает Loggly правильно классифицировать журналы. Конфигурация action предназначена для отправки всех сообщений Syslog в Loggly по умолчанию. Наконец, чтобы эта конфигурация вступила в силу, нам нужно перезапустить rsyslog.

sudo service rsyslog restart

rsyslog Устранение неполадок

Если у вас возникли проблемы с конфигурацией, которые, как правило, связаны с разрешениями или неправильной конфигурацией, вы можете просмотреть текущий журнал здесь: /var/log/rsyslog.log. Кроме того, чтобы включить более высокий уровень ведения журнала, добавьте следующие строки в файл rsyslog.conf и перезапустите rsyslog.

$DebugFile /var/log/rsyslog_debug.log
$DebugLevel 2

Заключение

Комбинация rsyslog и Loggly является мощной. Предоставление вам возможности консолидировать, проверять и анализировать журналы важно для обеспечения надлежащего уровня безопасности. Вы быстро обнаружите, что расширенные функции Loggly стоят того, чтобы их настроить в сочетании с расширенной конфигурацией ведения журналов для rsyslog.