不久前,線上有一批機器晚上的時候supervisor進程異常退出,早上業務部門反映了這個問題,同一類機器18台中有15台supervisor掛了,於是啟動supervisor及其納管應用,並開始定位根因;
查看發現這15台機器/var/log/system.log日志在今早06:28分有更新,06:28有如下異常信息:
Supervisor WARN received SIGTERM indicating exit request
經Google,定位到15台機器
/var/log/apt/history.log文件也於06:28分有更新,06:28有如下異常信息:
Start-Date: 2018-05-23 06:28:27
Upgrade: supervisor:amd64 (3.0b2-1,3.0b2-1ubuntu0.1)
Error: Sub-process /usr/bin/dpkg returned an error code (1)
End-Date: 2018-05-23 06:28:30
而另外3台的/var/log/apt/history.log表示supervisor升級成功,所以supervisor沒有異常掛掉:
Start-Date: 2018-05-23 06:34:33
Upgrade: supervisor:amd64 (3.0b2-1,3.0b2-1ubuntu0.1)
End-Date: 2018-05-23 06:28:41
故障原因:Ubuntu14.04操作系統默認開啟了“unattended update”,會無人值守情況下自動升級某些應用!!這一次正好是supervisor自動升級,且升級失敗,supervisor會自動退出,其納管的應用(包括nginx和一些自研應用)也會被supervisor kill掉。而其中3台能升級成功,15台為什么不能的原因暫時沒找到。所以,暫時先關閉了所有機器的自動升級開關。
操作步驟:/etc/apt/apt.conf.d/10periodic 中 APT::Periodic::Update-Package-Lists "1”;改為:
APT::Periodic::Update-Package-Lists “0”;
自動升級即關閉。