Akira's Tech Notes

Java/JVM | GNU/Linux | Emacs/Lisp | 知的好奇心駆動

header-icon
ネイティブでない日本語で思い付くことや気になることをダラダラ書く、体裁とかは気にしない。読みづらいと感じた時に随時更新する。

[メモ]syslog-ngのログ出力形式の変更

Archlinuxでsyslog-ngのデフォルト出力形式は以下のようなイメージになります。ちょっと物 足りない気がして、形式の変更方法を調べてみました。

1 デフォルトの出力形式

デフォルトの出力形式、 時刻 ホスト名 プロセス名[PID] メッセージ

Aug 12 18:01:01 pipi CROND[19011]: (root) CMD (run-parts /etc/cron.hourly)
Aug 12 19:01:02 pipi CROND[21549]: (root) CMD (run-parts /etc/cron.hourly)
Aug 12 20:01:01 pipi CROND[24082]: (root) CMD (run-parts /etc/cron.hourly)
Aug 12 21:01:01 pipi CROND[26609]: (root) CMD (run-parts /etc/cron.hourly)
Aug 12 22:01:01 pipi CROND[29189]: (root) CMD (run-parts /etc/cron.hourly)
Aug 12 22:14:00 pipi slapd[172]: conn=1015 fd=10 ACCEPT from IP=[::1]:58536 (IP=[::]:389)
Aug 12 22:14:00 pipi slapd[172]: conn=1015 op=0 BIND dn="cn=Manager,dc=jizai-domain,dc=jp" method=128
Aug 12 22:14:00 pipi slapd[172]: conn=1015 op=0 BIND dn="cn=Manager,dc=jizai-domain,dc=jp" mech=SIMPLE ssf=0
Aug 12 22:14:00 pipi slapd[172]: conn=1015 op=0 RESULT tag=97 err=0 text=
Aug 12 22:14:00 pipi slapd[172]: conn=1015 op=1 SRCH base="dc=jizai-domain,dc=jp" scope=2 deref=0 filter="(uid=user01)"
Aug 12 22:14:01 pipi slapd[172]: <= bdb_equality_candidates: (uid) not indexed
Aug 12 22:14:01 pipi slapd[172]: conn=1015 op=2 UNBIND
Aug 12 22:14:01 pipi slapd[172]: conn=1015 op=1 SEARCH RESULT tag=101 err=0 nentries=1 text=
Aug 12 22:14:01 pipi slapd[172]: conn=1015 fd=10 closed
Aug 12 11:10:21 pipi systemd[1131]: Reached target Default.
Aug 12 11:10:21 pipi systemd[1131]: Startup finished in 227ms.
Aug 12 11:10:21 pipi systemd[1]: Started User Manager for UID 1000.
Aug 12 11:10:23 pipi systemd[1]: Starting Session c2 of user akira.
Aug 12 11:10:23 pipi systemd[1]: Started Session c2 of user akira.

2 出力形式変更手順

syslog-ngに template の定義にマクロを用いることができる。このマクロ機能を利用してロ グ出力形式をカスタマイズすることを実現する。以下は everything.log を例として設定変更 の手順を紹介します。

/etc/syslog-ng/syslog-ng.conf 変更前

source src {
  system();
  internal();
};

destination d_everything { file("/var/log/everything.log"); };

filter f_everything { level(debug..emerg) and not facility(auth, authpriv); };

log { source(src); filter(f_everything); destination(d_everything); };

template 定義を追加して、 destination にテンプレートと紐付ける。

source src {
  system();
  internal();
};

template t_1 {
        template("$ISODATE $FULLHOST $FACILITY $PRIORITY $MSGHDR $MSG\n"); templat$
};

destination d_everything { file("/var/log/everything.log" template(t_1)); };

filter f_everything { level(debug..emerg) and not facility(auth, authpriv); };

log { source(src); filter(f_everything); destination(d_everything); };

sudo systemctl restart syslog-ng.service でサービスを再起動して、ログの出力を確認知 すると出力形式が以下のようになります。

2014-08-12T22:34:19+09:00 pipi syslog syslog-ng[31533] notice syslog-ng starting up; version='3.5.5'
2014-08-12T22:34:18+09:00 pipi daemon systemd[1] info Starting System Logger Daemon...
2014-08-12T22:34:19+09:00 pipi daemon systemd[1] info Started System Logger Daemon.
2014-08-12T22:34:32+09:00 pipi local4 slapd[172] debug conn=1019 fd=10 ACCEPT from IP=[::1]:58540 (IP=[::]:389)
2014-08-12T22:34:32+09:00 pipi local4 slapd[172] debug conn=1019 op=0 BIND dn="cn=Manager,dc=jizai-domain,dc=jp" method=128
2014-08-12T22:34:32+09:00 pipi local4 slapd[172] debug conn=1019 op=0 BIND dn="cn=Manager,dc=jizai-domain,dc=jp" mech=SIMPLE ssf=0
2014-08-12T22:34:32+09:00 pipi local4 slapd[172] debug conn=1019 op=0 RESULT tag=97 err=0 text=
2014-08-12T22:34:32+09:00 pipi local4 slapd[172] debug conn=1019 op=1 SRCH base="dc=jizai-domain,dc=jp" scope=2 deref=0 filter="(uid=user01)"
2014-08-12T22:34:32+09:00 pipi local4 slapd[172] debug <= bdb_equality_candidates: (uid) not indexed
2014-08-12T22:34:32+09:00 pipi local4 slapd[172] debug conn=1019 op=2 UNBIND
2014-08-12T22:34:32+09:00 pipi local4 slapd[172] debug conn=1019 op=1 SEARCH RESULT tag=101 err=0 nentries=1 text=
2014-08-12T22:34:32+09:00 pipi local4 slapd[172] debug conn=1019 fd=10 closed

Comments