このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
debian:debiantips [2015-09-22 23:08] tosihisa@netfort.gr.jp |
debian:debiantips [2019-01-20 17:43] (現在) tosihisa@netfort.gr.jp ↷ debiantips から debian:debiantips へページを移動しました。 |
||
---|---|---|---|
行 26: | 行 26: | ||
どれがどう切り分けられているのか,気になったので調べてみました. | どれがどう切り分けられているのか,気になったので調べてみました. | ||
- | * rsyslog-8.4.2/ | + | 切り分けとして,まずは仕組みの切り分けから進めます. |
+ | |||
+ | Linux の syslog(3) は,最終的には /dev/log のソケットに渡されますので,それが systemd-journald で握っているのか,それとも rsyslogd で握っているのかを確認します. | ||
+ | |||
+ | さしあたり,rsyslogd のソースを確認してみます. | ||
+ | |||
+ | rsyslog-8.4.2/ | ||
<code c rsyslog-8.4.2/ | <code c rsyslog-8.4.2/ | ||
行 63: | 行 69: | ||
Linux では,標準ではログのためのソケットは /dev/log ですが,rsyslog では,sd_booted() の戻り値が真の場合,"/ | Linux では,標準ではログのためのソケットは /dev/log ですが,rsyslog では,sd_booted() の戻り値が真の場合,"/ | ||
+ | sd_booted() の実体は,rsyslog-8.4.2/ | ||
+ | |||
+ | <code c rsyslog-8.4.2/ | ||
+ | _sd_export_ int sd_booted(void) { | ||
+ | #if defined(DISABLE_SYSTEMD) || !defined(__linux__) | ||
+ | return 0; | ||
+ | #else | ||
+ | struct stat st; | ||
+ | |||
+ | /* We test whether the runtime unit file directory has been | ||
+ | * created. This takes place in mount-setup.c, | ||
+ | * guaranteed to happen very early during boot. */ | ||
+ | |||
+ | if (lstat("/ | ||
+ | return 0; | ||
+ | |||
+ | return !!S_ISDIR(st.st_mode); | ||
+ | #endif | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | "/ | ||
+ | |||
+ | 要は,rsyslog は,自身で systemd が動いているかを "/ | ||
+ | もしこのディレクトリが存在しているならば,"/ | ||
+ | |||
+ | と言うことを踏まえると,以下のようになるかと思います. | ||
+ | |||
+ | syslog(3)==> | ||
+ | |||
+ | 経路がわかったところで,Debian jessie での systemd-journald と rsyslogd の棲み分けですが, | ||
+ | 私がインストールした Debian jessie では, | ||
+ | "/ | ||
+ | また,/ | ||
+ | |||
+ | Storage=auto は,"/ | ||
+ | |||
+ | http:// | ||
+ | |||
+ | 上記のことから,Debian jessie は,標準では systemd-journald は起動してからの内容を記録しており,永続的なログの記録は,systemd-journald 経由でこれまでどおり rsyslogd が行っていると言えます. | ||
+ | |||
+ | もし,systemd-journald で永続的に記録させたいならば,"/ | ||