Я настроил syslog-ng (версия 3.21.1) на сервере CentOS7 и обнаружил, что журналы имеют следующий формат.
Aug 26 12:59:28 xyz74hd.com radiusd[20142]: 92djvd4654654164nadskj795234dc Reason: pldap: Forind credentials incorrect: Invalid credentials possible
Мне не нужен Process-ID (в журнале выше [20142]) в моих журналах. Таким образом, требуемый формат syslog должен быть следующим:
Aug 26 12:59:28 xyz74hd.com radiusd: 92djvd4654654164nadskj795234dc Reason: pldap: Forind credentials incorrect: Invalid credentials possible
Раньше я использовал CentOS6 со старой версией syslog-ng (3.2.5). Но когда я развернулся CentOS7 с одной из последних версий syslog-ng (3.21.1) возникает ошибка. (конфигурации syslog-ng почти такие же)
В моем новом развертывании я получаю дополнительное поле Process-ID в журналах, из-за которого анализатор журналов ведет себя абсурдно. Не могу изменить код.
Есть ли какое-нибудь решение на уровне syslog-ng, чтобы я мог избавиться от этих идентификаторов процессов в моих журналах?
У вас есть несколько вариантов избавиться от идентификатора процесса:
вы можете создать шаблон для вашего пункта назначения, чтобы использовать собственный формат вывода, например:
file("/var/log/messages" template("$DATE $HOST $PROGRAM: $MESSAGE\n"))
вы можете добавить правило перезаписи перед пунктом назначения, где вы не устанавливаете PID:
rewrite { unset(value("PID")); };
или
rewrite { set("" value("PID")); };