rsyslogでログが妙だったり、飛ばなかったり

ウェブサーバの移行作業中。本体側はだいたい終わっていて、周辺地帯を整備中。apacheのログをスクリプトでrsyslog経由で一個のホストに集中させています。以前にこの設定をやったのは4年半前ですな。

でもって、スクリプトとrsyslogの該当部分だけコピーしてくればいいやとやったところうまく行かないのがいいところ。

ログの一文字目が消えてる

こんな感じになってしまう。

02.2XX.XX.70 - - [21/Apr/2017:17:17:39 +0900] "GET / HTTP/1.1" 403 330 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0"

一文字目が消えてるんですな。
しばらく悩んで、MsgFormatのテンプレートがそのように指定しているからだということに気が付きました。
上記2012年11月21日の記事によると、こんなテンプレート。

$template MsgFormat,    "%msg:2:$%\n"

そりゃぁ二文字目から最後までって指定しているんだから一文字目は出ない。
しかし、現在の環境ではこれでちゃんと出ていたんですよね。謎。調べてもしょうがないので謎のままで放置。
2のところを1にして解決。

別のホストからログが飛ばない

これはすぐに解決。rsyslogはデフォルトではTCPUDPではlistenしないみたいですね。
/etc/rsyslog.confのポート指定しているところのコメントを外して解決。