サーバが不定期に再起動するという問題に遭遇したのですが、その時に行った調査のうちの一つです。

lm-sensorsという各種ハードウェアの情報を監視できるパッケージを使います。なお、Ubuntu16.04でやってます。

インストール


1
sudo apt-get install lm-sensors

センサー検出

sensors-detectコマンドを実行し、センサーを検知します。かなりいろいろ聞かれますが 長いので 全てyesで設定しました。

表示してみる


sensorsコマンドで情報を表示できます。こんな感じです。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
sensors
nouveau-pci-0200
Adapter: PCI adapter
fan1: 1080 RPM
temp1: +33.0°C (high = +95.0°C, hyst = +3.0°C)
(crit = +105.0°C, hyst = +5.0°C)
(emerg = +135.0°C, hyst = +5.0°C)

coretemp-isa-0000
Adapter: ISA adapter
Physical id 0: +44.0°C (high = +79.0°C, crit = +89.0°C)
Core 0: +41.0°C (high = +79.0°C, crit = +89.0°C)
Core 1: +34.0°C (high = +79.0°C, crit = +89.0°C)
Core 2: +44.0°C (high = +79.0°C, crit = +89.0°C)
Core 3: +37.0°C (high = +79.0°C, crit = +89.0°C)

ロギング設定する


cronを使って定期的にログを残すようにします。

スクリプト作成

まず、適当にスクリプトを作ります。

1
2
3
4
5
6
7
8
#!/bin/sh

LOG_FILE_PATH="/var/log/lm-sensors.log"

echo [`date`] >> $LOG_FILE_PATH
sensors >> $LOG_FILE_PATH

exit

まあ、こんな感じだと思います。こいつを/usr/local/bin/あたりにlm-sensors.shとかそんな感じの名前で保存します。こいつを実行すると指定したファイルに下記のような結果が書き込まれます。(さっきの結果に時刻がついただけですが)

1
2
3
4
5
6
[Thu Nov 16 11:05:01 JST 2017]
nouveau-pci-0200
Adapter: PCI adapter
fan1: 1080 RPM

...以下略

cron設定

次に作成したスクリプトをcronで定期実行するようにします。crontab -eで設定します。5分おきにログを記録するのであれば下記のようになります。

1
*/5 * * * * sh /usr/local/bin/lm-sensors.sh

確認する


後は、ログが指定した時間ごとに出力されていればオッケーです。ちなみに、このロギングによって温度計2と思われるものがアカンくさいことが発覚しました。

1
2
3
4
5
6
temp1:        +42.0°C  (high = +255.0°C, hyst = +251.0°C)  ALARM (CRIT)
(crit = +255.0°C, hyst = +251.0°C) sensor = transistor
temp2: FAULT (high = +255.0°C, hyst = +251.0°C)
(crit = +255.0°C, hyst = +251.0°C) sensor = transistor
temp3: +33.0°C (high = +255.0°C, hyst = +253.0°C) ALARM (CRIT)
(crit = +255.0°C, hyst = +253.0°C) sensor = transistor