journald-remote

 結局よくわからないままであるが何となく転送されたっぽいのでメモ

 今、rsyslogでsyslogを転送しているのだが、もういい加減にsystemd-journalに移行したい。
 でも転送方法がわからなくて色々やっていた。
 systemd-jounarl-remote.serviceとsystemd-jounal-upload.serviceとか使えばよいのはわかっていたのだが、なんかうまくいってなかった。

 受け取り側のサーバーにDNS名降っておく。syslog.daionet.gr.jpにしておく

 両方のマシンにsystemd-journal-remoteをインストール

sudo apt install systemd-journal-remote

 受け取り側で、
パッケージをローカル用にコピーして編集する。
 systemctl edit systemd-journal-remote.service とかでもできそうな気がしたんだけど、overrideであって書き換えには向かないっぽい。
 同じエントリが2つあると怒られてしまうので全部コピーして一部編集する。
# 直接/lib/systemd/system/を書き換えると、アップデートで全部消えるのでローカル用は/etc/systemdにコピーする仕様らしい

cp /lib/systemd/system/systemd-journal-remote.service /etc/systemd/system/
cp /lib/systemd/system/systemd-journal-remote.socket /etc/systemd/system/

/etc/systemd/system/systemd-journal-remote.service の [Service] 内の
ExecStart=/lib/systemd/systemd-journal-remote –listen-http=-3 –output=/var/log/journal/remote/
# –listen-https=-3 を –listen-http=-3にする
 httpsにしたかったけどローカルだし証明書面倒だしとhttpにしてしまうことにした。

/etc/systemd/system/systemd-journal-remote.socket の [Socket] 内の
ListenStream=[2001:0db8::1]:19532
BindIPv6Only=yes
# ユニークローカルアドレスにするとかFWで守るとかして適当に保護。
# ListenStream=syslog.daionet.gr.jp:19532 とかやったらエラーになった。IPアドレスじゃないとダメっぽい

 systemctl start systemd-journal-remote.socket
・ここは.serviceじゃなくて.socketを起動する。起動時有効にするのも.socket

送信側で、
/etc/systemd/journal-upload.conf

[Upload]
URL=http ://syslog.daionet.gr.jp:19532

systemctl start systemd-journal-upload.service

 これで受信側の/var/log/journal/remote にコピーされた。
 全部のログをコピーしようとして異常に時間がかかったりしたので、あれこれやってなんとか切り抜けた(ぉ

 と。2つのマシンからjournalをコピーできたのはいいのだが。
 見る方法がわからないというオチが(滝汗

 とりあえずjournalctl –merge _HOSTNAME=hoge で見れるっぽいのだが、なんだかなぁ。

 blog書きながら調べてたらどうもjournalはコピーして使うというよりも、systemd-journal-gatewaydを使ってリモートに読む、が正解っぽい。
 でも死んだときに手元にログ欲しかったりしないでもないんだけどなぁ。あとブラウザだとめんどい(ぉ

2017/11/16 追記
 systemctl edit でうまく編集できない件について

 ExecStartとかListenStreamが複数行あるのが問題だったのだが、空行入れると以前のがキャンセルされるらしい。
ので、override.confに

[Socket]
ListenStream=
ListenStream=[2001:0db8::1]:19532
BindIPv6Only=yes

と一旦キャンセルかけてから書けば良いっぽい。

 日本語マニュアル欲しい……

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>