Help us understand the problem. What is going on with this article?

MuninでSMART情報を /dev/disk/by-id で表示する

More than 5 years have passed since last update.

MuninにはSMART情報を表示するプラグインがあらかじめインストールされていますが、普通に設定してもデバイスが /dev/sdX の形式で指定されます。
これだとディスクを抜き差ししたりしてデバイス名が変わったらちょっと面倒です。
/dev/disk/by-id 以下であればシンボリックリンクを指定することになります。そのためデバイス名が変わってもシンボリックリンクの向く先が変わり、ディスク構成が変わっても今までのログが変わらないようになります。

munin-node-configure --shell などを使うと、smart_sdaといった風にシンボリックリンクが貼られてしまいます。

% munin-node-configure --shell
ln -s '/usr/share/munin/plugins/smart_' '/etc/munin/plugins/smart_sda'
ln -s '/usr/share/munin/plugins/smart_' '/etc/munin/plugins/smart_sdb'
ln -s '/usr/share/munin/plugins/smart_' '/etc/munin/plugins/smart_sdc'
ln -s '/usr/share/munin/plugins/smart_' '/etc/munin/plugins/smart_sdd'
ln -s '/usr/share/munin/plugins/smart_' '/etc/munin/plugins/smart_sde'
ln -s '/usr/share/munin/plugins/smart_' '/etc/munin/plugins/smart_sdf'
ln -s '/usr/share/munin/plugins/smart_' '/etc/munin/plugins/smart_sdg'

munin-node-configure コマンドについてはこちら
munin-node-configureコマンドを覚えた - ヌキのやる気のないエンジニアブログ

なぜこうなってしまうのでしょうか。
MuninのSMART情報を表示するプラグインは、プラグインの実体(この場合だと /usr/share/munin/plugins/smart_)を見るとわかるのですが、アンダースコア以降の文字を見て判断しています。
Pythonで書かれたコードの一部からそれを読み解くことができます。

smart_
# (省略)

def read_values(hard_drive):
    global smart_values, emptyoutput
    try :
        verboselog('Reading S.M.A.R.T values')
        os.putenv('LC_ALL','C')
        device='/dev/'+hard_drive
        if not os.path.exists(device):
            device='/dev/disk/by-id/'+hard_drive

# (省略)

https://github.com/munin-monitoring/munin/blob/100128eb1ae067c426466d43f3269a52b651b706/plugins/node.d/smart_.in#L112-L119 より引用

Author:
(C) 2004-2009 Nicolas Stransky Nico@stransky.cx
(C) 2008 Gabriele Pohl contact@dipohl.de

License: GPLv2

smart_sda という名前でシンボリックリンクを張ると、/dev/sda のSMART情報を表示しますが、smart_ata-ST2000DM001-1CH164_Z1E4PKGL のようにシンボリックリンクを張ると /dev/disk/by-id 以下を見るというコードになっていますね。

下記のコマンドを打つと、勝手に /dev/disk/by-id 以下のHDDの型番とシリアルからMuninプラグインのシンボリックリンクを張ってくれます(Ubuntu Server 14.04上でbashとzshで動作を確認しています)。

sudo /bin/ls -b -1 /dev/disk/by-id/ata-*[^-part]? | xargs -n 1 basename | sudo xargs -I % -t -n 1 ln -s /usr/share/munin/plugins/smart_ /etc/munin/plugins/smart_%

環境によってプラグインのある場所が異なることもあるので、適宜変更してください(全然ディレクトリ構成が違う環境がある場合コメントを頂けると幸いです)。

これで、HDDの型番とシリアルでSMARTのグラフを確認できます。

itochan@kurokami:/etc/munin/plugins% ll smart_*
lrwxrwxrwx 1 root root 31 Aug 23 22:43 smart_ata-KINGSTON_SV100S264G_64GB60075751 -> /usr/share/munin/plugins/smart_*
lrwxrwxrwx 1 root root 31 Aug 23 22:43 smart_ata-ST2000DM001-1CH164_Z1E4PKGL -> /usr/share/munin/plugins/smart_*
lrwxrwxrwx 1 root root 31 Aug 23 22:43 smart_ata-WDC_WD20EARS-00MVWB0_WD-WCAZ20023827 -> /usr/share/munin/plugins/smart*
lrwxrwxrwx 1 root root 31 Aug 23 22:43 smart_ata-WDC_WD20EFRX-68AX9N0_WD-WCC300347783 -> /usr/share/munin/plugins/smart*
lrwxrwxrwx 1 root root 31 Aug 23 22:43 smart_ata-WDC_WD20EFRX-68AX9N0_WD-WCC300366117 -> /usr/share/munin/plugins/smart*
lrwxrwxrwx 1 root root 31 Aug 23 22:43 smart_ata-WDC_WD20EFRX-68AX9N0_WD-WMC300043508 -> /usr/share/munin/plugins/smart*
lrwxrwxrwx 1 root root 31 Aug 23 22:43 smart_ata-WDC_WD20EFRX-68AX9N0_WD-WMC300228224 -> /usr/share/munin/plugins/smart*

smart_ata_ST2000DM001_1CH164_Z1E4PKGL-day.png

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away