Как настроить 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.