04/22/2024
syslog-ng.conf - конфигурационный файл syslog-ng
syslog-ng.conf
Данная инструкция представляет собой краткую выдержку из полной документации syslog-ng. См. Руководство Администратора[1] или официальный вебсайт syslog-ng[2].
Данная программа является гибким и высоко масштабируемым приложением системного журналирования. Как правило, syslog-ng используется для управления сообщениями журнала и внедрения централизованного журналирования с целью собирать сообщения журнала с нескольких устройств на одном центральном сервере журналирования. На разных устройствах, называемых клиентами syslog-ng, запущено приложение syslog-ng, собирающее сообщения журнала с различных приложений, файлов и прочих источников. Клиенты направляют все важные сообщения журнала на удаленный сервер syslog-ng, которых их сортирует и хранит.
Приложение syslog-ng читает входящие сообщения и перенаправляет их в указанное назначение. Приложение syslog-ng может получать сообщения от файлов, удаленных хостов и из других источников.
Сообщения журнала поступают к syslog-ng через один из заданных источников и направляются в одно или более назначений.
Источники и назначения являются независимыми объектами, пути журналирования указывают, что syslog-ng делает с сообщениями, соединяя источники с назначениями. Путь журналирования состоит из одного или более источников и одного или более назначений: сообщения, поступающие из источника, направляются в каждое назначение, перечисленное в пути журналирования. Путь журналирования, заданный в syslog-ng, называется определением журнала.
Пути журналирования могут включать в себя фильтры. Фильтры - это правила, которые выбирают только определенные сообщения, например, только сообщения от определенного приложения. Если путь журналирования включает в себя фильтры, syslog-g направляет в назначения, указанные в пути журналирования, только сообщения, удовлетворяющие правилам фильтров.
Прочие необязательные элементы, которые могут появляться в выражениях журнала, - это обработчики и правила перезаписи. Обработчики сегментируют сообщения, разделяя их на отдельные поля, для упрощения их обработки, а правила перезаписи изменяют сообщения, добавляя, заменяя или удаляя части сообщений.
Тело конфигурационного файла состоит из определений объектов: источники, назначения, пути журналирования определяют, какие сообщения журнала принимаются и куда они направляются. Все идентификаторы, имена параметров и атрибуты, а также любые другие строки, используемые в конфигурационном файле syslog-ng, чувствительны к регистру. Определения объектов (также называемые выражениями) имеют следующий синтаксис:
тип-объекта идентификатор-объекта {<параметры>};
Тип объекта: источник, назначение, журнал, фильтр, обработчик, правило перезаписи или шаблон (один из перечисленных вариантов).
Идентификатор объекта: Уникальное имя, идентифицирующее объект. При использовании в качестве идентификатора зарезервированного слова, идентификатор должен быть заключен в кавычки.
Все идентификаторы, атрибуты и любые другие строки, используемые в конфигурационном файле syslog-ng, чувствительны к регистру.
Подсказка
Используйте идентификаторы, соответствующие типу определяемого ими объекта. Например, используйте префикс s_ для источников (source), d_ для назначений (destination) и т.д.
Примечение
Повторное определение объекта (когда объект с одним и тем же идентификатором определяется более одного раза) не допускается, если вы не используете в конфигурационном файле определение @define allow-config-dups 1.
Параметры: параметры объекта, заключенные в фигурные скобки {параметры}.
Точка с запятой: Определения объектов оканчиваются точкой с запятой (;).
Например, следующая строка определяет источник и называет его s_internal.
source s_internal { internal(); };
Впоследствии на объект можно ссылаться из других выражений, используя его ID, например, предыдущий источник используется в качестве параметра следующего выражения журнала:
log { source(s_internal); destination(d_file); };
Параметры и аргументы в выражении аналогичны вызовам функций в языке программирования С: после имени параметры идет список его аргументов в скобках, оканчивающийся точкой с запятой.
параметр(аргумент1, аргумент2); параметр2(аргумент1, аргумент2);
Например, у драйвера file() в следующем выражении источника есть три аргумента: имя файла (/var/log/apache/access.log), follow-freq() и flags(). У аргумента follow-freq() также есть параметр, тогда как у аргумента flags() есть два параметра.
source s_tail { file("/var/log/apache/access.log" follow-freq(1) flags(no-parse, validate-utf8)); };
У объектов могут быть обязательные и необязательные параметры. Обязательные параметры носят позиционный характер, это значит, что они должны указываться в определенном порядке. Необязательные параметры могут быть указаны в любом порядке в формате параметр(значение). Если параметр (обязательный или необязательный) не указан, используется его значение по умолчанию. Параметры и их значения по умолчанию перечислены в справочном разделе конкретного объекта.
Пример 1. Использование обязательных и необязательных параметров У драйвера источника unix-stream() имеется один обязательный аргумент: имя сокета, на котором нужно слушать. необязательные аргументы идут за именем сокета в произвольном порядке, поэтому следующие определения источника действуют одинаково:
source s_demo_stream1 { unix-stream("<path-to-socket>" max-connections(10) group(log)); }; source s_demo_stream2 { unix-stream("<path-to-socket>" group(log) max-connections(10)); };
Некоторые параметры являются глобальными или могут быть заданы глобально, например, следует ли использовать DNS для преобразования IP-адресов. Глобальные параметры подробно описаны в ???.
options { use-dns(no); };
Объекты могут использоваться до определения.
Объекты также могут определяться в той же строке. Это полезно, когда вы используете объект только один раз (например, фильтр). Подробности приведены в ???.
Для добавления комментариев к конфигурационному файлу нужно начать строку с символа #. Syslog-ng игнорирует подобные строки.
# Comment: Это потоковый источник source s_demo_stream { unix-stream("<path-to-socket>" max-connections(10) group(log)); };
Для выражений журнала используется следующий синтаксис:
log { источник(s1); source(s2); ... необязательный_элемент(filter1|parser1|rewrite1); необязательный_элемент(filter2|parser2|rewrite2); ... destination(d1); destination(d2); ... flags(flag1[, flag2...]); };
Следующее выражение журнала направляет все сообщения, поступающие на localhost, на удаленный сервер.
source s_localhost { network(ip(127.0.0.1) port(1999)); }; destination d_tcp { network("10.1.2.3" port(1999) localport(999)); }; log { source(s_localhost); destination(d_tcp); };
У приложения syslog-ng есть ряд глобальных параметров, регулирующих использование DNS, формат меток времени и другие общие моменты. У каждого параметра могут быть аргументы аналогично спецификациям драйверов. Для установки глобальных параметров следует добавить выражение параметра в конфигурационный файл syslog-ng, используя следующий синтаксис:
options { параметр1(аргументы); параметр2(аргументы); ... };
Пример 2. Использование глобальных параметров
Для отключения преобразования доменных имен добавьте в конфигурационный файл syslog-ng следующую строку:
options { use-dns(no); };
Источники, назначения и фильтры, доступные в syslog-ng, перечислены ниже. Подробности приведены в Руководстве администратора syslog-ng.
Таблица 1. Драйверы источников, доступные в
syslog-ng
| Имя | описание |
| file() | Открывает указанный файл и читает сообщения. |
| internal() | Внутренние сообщения, сгенерированные syslog-ng. |
| network() | Получает сообщения от удаленных хостов с помощью протокола BSD-syslog по IPv4 и IPv6. Поддерживает сетевые протоколы TCP, UDP и TLS. |
| pipe() | Открывает указанный именованный канал и читает сообщения. |
| program() | Открывает указанное приложение и читает сообщения из его стандартного вывода. |
| sun-stream(), sun-streams() | открывает указанное ПОТОКОВОЕ устройство в системах Solaris и читает входящие сообщения. |
| syslog() | Слушает входящие сообщения с помощью протокола syslog стандарта IETF. |
| system() | Автоматически определяет, а какой платформе запущен, и собирает сообщения стандартного журнала этой платформы. |
| systemd-journal() | Собирает сообщения напрямую из журнала платформ, использующих systemd. |
| systemd-syslog() | Собирает с помощью сокета сообщения напрямую из журнала платформ, использующих systemd. |
| unix-dgram() | Открывает указанный unix-сокет в режиме SOCK_DGRAM и слушает входящие сообщения. |
| unix-stream() | Открывает указанный unix-сокет в режиме SOCK_STREAM и слушает входящие сообщения. |
Таблица 2. Драйверы назначения, доступные в
syslog-ng
| Имя | описание |
| elasticsearch2 | Направлять сообщения на сервер Elasticsearch. Драйвер elasticsearch2 поддерживает Elasticsearch версии 2 и новее. |
| file() | Записывает сообщения в указанный файл. |
| hdfs() | Направляет сообщения в файл в блоке Распределенной файловой системы Hadoop (HDFS)[3]. |
| kafka() | Отправляет сообщения журнала в шину сообщений сервера Apache Kafka[4], где они доступны подписчикам. |
| loggly() | Направляет сообщения журнала провайдеру сервиса журналирования Loggly[5] |
| logmatic() | Направляет сообщения журнала провайдеру сервиса журналирования Logmatic.io[6] |
| mongodb() | Направляет сообщения в базу данных MongoDB[7]. |
| network() | Отправляет сообщения на удаленный хост с помощью протокола BSD-syslog по IPv4 и IPv6. Поддерживает сетевые протоколы TCP, UDP и TLS. |
| pipe() | Записывает сообщения в указанный именованный канал. |
| program() | Создает копию своего процесса и запускает указанную программу, после чего направляет сообщения на ее стандартный ввод. |
| sql() | Направляет сообщения в базу данных SQL. В дополнение к стандартным пакетам syslog-ng направление sql() требует установки пакетов, относящихся к базе данных. См. подходящий для вашей платформы раздел в ???. |
| syslog() | Направляет сообщения на указанный удаленный хост с помощью протокола IETF-syslog. Стандарт IETF поддерживает передачу сообщений с помощью сетевых протоколов UDP, TCP и TLS. |
| unix-dgram() | Направляет сообщения на указанный unix-сокет в стиле SOCK_DGRAM (BSD). |
| unix-stream() | Направляет сообщения на указанный unix-сокет в стиле SOCK_STREAM (Linux). |
| usertty() | Направляет сообщения в терминал указанного пользователя. |
Таблица 3. Доступные функции фильтрации
| Имя | описание |
| facility() | Фильтровать сообщения на основе отправляющего средства. |
| filter() | Вызвать другую функцию фильтрации. |
| host() | Фильтровать сообщения на основе отправляющего хоста. |
| inlist() | Белый и черный списки для файлов. |
| level() или priority() | Фильтровать сообщения на основе их приоритета. |
| match() | Использовать регулярное выражение для фильтрации сообщений на основе указанного заголовка или содержимого. |
| message() | Использовать регулярное выражение для фильтрации сообщений на основе их содержимого. |
| netmask() | Фильтровать сообщения на основе IP-адреса посылающего хоста. |
| program() | Фильтровать сообщения на основе отправляющего приложения. |
| source() | Выбрать сообщения от указанного в выражении источника. |
| tags() | Выбрать сообщения с указанной меткой. |
/usr/
/etc/syslog-ng/syslog-ng.conf
syslog-ng(8)
Примечение
Подробная информация приведена в Руководстве администратора 3.38[8]
Если у вас какие-либо проблемы или необходима помощь по syslog-ng, посетите список рассылки syslog-ng[9].
Новости и уведомления касательно syslog-ng публикуются в блоках syslog-ng[10].
Данная инструкция была написана командой документирования Balabit <documentation@balabit.com>.
Руководство администратора
https://www.balabit.com/support/documentation/
официальный вебсайт syslog-ng
https://www.balabit.com/log-management
Hadoop Distributed File System (HDFS)
http://hadoop.apache.org/
Apache Kafka
http://kafka.apache.org
Loggly
https://www.loggly.com/
Logmatic.io
https://logmatic.io/
MongoDB
https://www.mongodb.com
Руководство администратора 3.38
https://www.balabit.com/documents/syslog-ng-ose-latest-guides/en/syslog-ng-ose-guide-admin/html/index.html
список рассылки syslog-ng
https://lists.balabit.hu/mailman/listinfo/syslog-ng
блоги syslog-ng
https://syslog-ng.org/blogs/
Русский перевод этой страницы руководства: SOME DESCRIPTIVE TITLE, Copyright (C) YEAR Free Software Foundation, This file is distributed under the same license as the PACKAGE package., FIRST AUTHOR <EMAIL@ADDRESS> и Игорь Чижов <support@astralinux.ru>
Этот перевод является бесплатной документацией; прочитайте Стандартную общественную лицензию GNU версии 3 или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.
Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на .