Я хотел бы, чтобы мои сообщения были изменены syslog-ng, чтобы они включали как IP-адрес исходного хоста, так и значение обратного поиска DNS (хоста).
Я считаю, что ответ на этот вопрос заключается в вопросе: как установить параметры в строке, а не глобально? Так что они выполняются после необязательных элементов, таких как перезапись.
Я могу изменить общее сообщение, скопировав поле HOST в поле сообщения. У меня проблема в том, что такие параметры, как keep-hostname (no) и use-dns (yes), сначала выполняются глобально. Это означает, что я получаю два значения rDNS - одно в правильном поле HOST, а другое в качестве первого слова в моем СООБЩЕНИИ.
Это то, что я сейчас делаю в файле syslog-ng.conf для конкретного приложения:
source s_blah { blah; };
destination d_blah { blah; };
rewrite rewrite_host { set("host_ip:$HOST $MESSAGE", value("MESSAGE")); };
log {
source(s_blah);
rewrite(rewrite_host);
destination(d_blah);
};
options {
keep-hostname(no);
use-dns(yes);
};
Я пробовал помещать параметры после других объявлений (показанных выше) и пробовал несколько способов включить их в строку оператора журнала, но это вызывает ошибки.