aptの自動アップデートを監視する。

昨日会社から帰宅してメールチェックをしていると、どういうわけか朝6時ぐらいまでのメールしか確認することができなかった。
うちのメール環境は実験用サーバからfetchmailを定期的に実行して各プロバイダにあるメールを集約し、クライアントPCからIMAPSで実験用サーバにアクセスしてメールを取得するしくみになっている。
そのため、実験用サーバと各プロバイダの接続に何か問題があったのだろうと推定し、実験用サーバにログインして調査してみたところ、以下のことがわかった。

  1. /var/log/cron.log を調べたところ、取得できた最後のメールのタイムスタンプと同じぐらいの時間帯から以下のようなログが出力されていた。
    CRON[11398]: Module is unknown
  2. /var/log/apt/history.log を調べたところ、/var/log/cron.log に異常なメッセージが出始めたぐらいの時間帯にパッケージのアップデートが行われた形跡が見受けられた。

以上のことから、どうやら自動的に行われたパッケージのアップデートによって cron の動作に影響が出てしまい、本来実行されるべき fetchmail のジョブが正常に動作していなかったようだった。
(後でKVM上のゲストOS2台の方も確認したところ、rsyslogが正常に動作していないヤツが見つかり、原因は上記と同様の様子だった)

実験用サーバ構築時、OSインストールの際に自動アップデートを明示的に有効にしていたので自動アップデートが行われたこと自体には文句はないのだが、今回のようにトラブルに遭遇したのははじめてだったので今後どうした方がいいのかちょっと考えた。
結論としては、やっぱり自動アップデートは行われた方が面倒くさくなくていいので継続することにするが、自動アップデートが行われたこと自体はいちいちサーバに入らなくても検知できるようにしておきたい、というところで落ち着いた。
apt(僕は普段aptitudeを使っているけど)の自動アップデートのしくみはまだ不勉強だったのでこの機にちょっと調べてみたら、unattended-upgrades というパッケージの機能で実現しているらしいことを知った。
/etc/apt/apt.conf.d/50unattended-upgrades という設定ファイルを編集することで自動アップデート後のメール通知が行えるとのことだったので、早速設定してみた。

Unattended-Upgrade::Mail “<通知先メールアドレス>”;

今朝にもアップデートがあったようで、ちゃんとメールが通知されてきていた。
これでaptのパッケージ自動アップデートに起因するトラブル発生時の切り分けがしやすくなったと思う。

参考情報:
・http://tobysoft.net/wiki/index.php?Ubuntu%2F%BC%AB%C6%B0%A5%A2%A5%C3%A5%D7%A5%C7%A1%BC%A5%C8%A4%B5%A4%BB%A4%EB
・https://help.ubuntu.com/10.04/serverguide/C/automatic-updates.html


投稿日

カテゴリー:

投稿者:

タグ:

コメント

コメントを残す