Расположение файла журнала на основе имени хоста с помощью syslog-ng
Я использую syslog-ng для большого количества серверов. Чтобы получить больше формы в структуре папок, я использую несколько фильтров с регулярным выражением и несколькими целевыми и журнальными строками в syslog-ng.conf
Я хотел бы, чтобы syslog решил, куда поместить файл журнала на основе частей имени хоста, и поместить его в 1 фильтр, с 1 адресатом и строкой журнала.
Пример:
fl-app-dev-01 => /var/log/fl/dev/app01.log
fl-app-prd-32 => /var/log/fl/prd/app32.log
fl-man-prd-02 => /var/log/fl/prd/man02.log
am-app-prd-12 => /var/log/am/prd/app12.log
rd-app-dev-02 => /var/log/rd/dev/app02.log
Как видно из приведенного выше примера, все серверы имеют одинаковый формат {location}-{function}-{environment}-{number}
Я хотел бы разделить их по расположению, а затем по среде и иметь лог-файл, названный в честь функции и номера сервера.
1 ответ
Для этого необходимо проанализировать имя хоста и разделить его на отдельные поля с помощью csv-parser, а затем использовать имена полей в качестве макросов в шаблоне файла назначения. Смотрите второй пример здесь: Сегментирование имен хостов в syslog-ng