日付の問題には常に新しいオプションがあり、数行追加するだけです。
私の解決策は、ファイルを /etc/rsyslog.d/
に追加することです 、たとえば myrsyslog.conf
、次に、選択した形式を追加します。私のものは次のとおりです:
$template myformat,"%TIMESTAMP:1:10:date-rfc3339% %TIMESTAMP:19:12:date-rfc3339% %syslogtag%%msg%\n"
$ActionFileDefaultTemplate myformat
これにより、新しい形式がログに適用され、解析が容易になります。
以前
Sep 3 12:52:37 whs dhcpcd[477]: wlan0: expired address ...
Sep 3 12:52:37 whs dhcpcd[477]: wlan0: part of Router Advertisement expired
Sep 3 12:52:37 whs dhcpcd[477]: wlan0: deleting route to ...
後
2020-09-03 13:00:49 systemd[1]: rsyslog.service: Succeeded.
2020-09-03 13:00:49 systemd[1]: Stopped System Logging Service.
2020-09-03 13:00:49 systemd[1]: Starting System Logging Service...
あなたが別の解決策を見つけたとしても、私は他の人のために答えます.
syslog 構成ファイルを編集します (Debian の例:/etc/syslog-ng/syslog-ng.conf
).
次に、次のように新しいテンプレートを宣言します:
template template_date_format { template("${YEAR}-${MONTH}-${DAY} ${HOUR}:${MIN}:${SEC} ${HOST} ${MSGHDR}${MSG}\n"); template_escape(no); };
これは一例ですが、user9645 の回答にリンクされている syslog ドキュメントに従って、さまざまなマクロを使用できます。
その後、この構成ファイルで、出力形式を変更するすべてのファイルを見つけて、このテンプレートをそれらに適用します。
例えば /var/log/auth.log
を変更したい 出力形式、次に変更します:
destination d_auth { file("/var/log/auth.log"); };
へ:
destination d_auth { file("/var/log/auth.log" template(template_date_format)); };
次に、syslog を再起動します (service syslog-ng restart
)、ログインして auth.log
の変更を確認してください .
FreeBSD 9.2 と Zabbix を使用して同じ問題が発生しました システム ログ メッセージの日付スタンプ (!) の 'Jan' や 'Feb' などを処理できないシステム モニター GUI。
私がしたことは sysutils/syslog-ng
をインストールすることでした ポート、convert-syslogconf.awk を使用 /etc/syslog.conf
を移行するスクリプト /usr/local/etc/syslog-ng.conf
へ (ありがたいことに、かなり複雑な構成でもうまく機能するように見えました)、このカスタムフォーマットテンプレートをすべての file()
に追加しました 宛先:
template t_msgfmt {
template("${ISODATE} ${HOST} ${FACILITY} ${LEVEL} ${MSGHDR}${MSG}\n");
template_escape(no);
};
syslog-ng マニュアル セクション 11.1 で、(多くの) より多くのフォーマット情報を見つけることができます . (今のところ)うまくいっています。お役に立てば幸いです!