[Zabbix][NAS4Free] NAS4Free9.1にZabbix Agentを導入してみた。

2013/08/26 10:39AIX、UNIX、Linux,SSD、HDD、Storage,zabbixNAS4Free,zabbix,zabbix agent,インストール

自宅ではストレージについて、NAS4Freeを使用しているのですが、snmpでの監視には限界があります。

たとえばZFSで組んだ場合、snmpだとFreeBSDでの制約から正しい容量を取得できないなどです。

ということで、Zabbix Agentを導入することで、直接ZFSコマンドを叩くことが出来るのならば、正しい容量を取得することが出来ると思い、導入できるか試してみました。

導入環境

  • hp Microserver N36L
    • Mem: 8GB
    • USB boot
    • HDD: 1TB *4
  • 9.1.0.1 – Sandstorm (revision 847)

手順

まず最初にZabbixソースファイルのダウンロードを試してみたところ以下のメッセージが。

# wget http://downloads.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.0.7/zabbix-2.0.7.tar.gz
wget: Command not found.

ならばwgetを導入してみればとやってみたところ、USB Bootのせいか・・・

/: write failed, filesystem is full

/varなどの空き容量のあるところで試してみるのもいいのかもしれません。

とりあえずソースから導入するのは諦めて、パッケージから導入できるか試してみたところ・・・

# pkg_add -r zabbix2-agent
Fetching ftp://ftp.freebsd.org/pub/FreeBSD/ports/amd64/packages-9.1-release/Latest/zabbix2-agent.tbz... Done.
Fetching ftp://ftp.freebsd.org/pub/FreeBSD/ports/amd64/packages-9.1-release/All/libiconv-1.14.tbz... Done.
===> Creating users and/or groups.
Creating group 'zabbix' with gid '122'.
Creating user 'zabbix' with uid '122'.

今度はうまくいきました。

configファイルは以下のように配置されるようです。

# ls -l /usr/local/etc/zabbix2/
total 8
-rw-r--r-- 1 root wheel 1605 Apr 10 20:08 zabbix_agent.conf.sample
-rw-r--r-- 1 root wheel 5718 Apr 10 20:08 zabbix_agentd.conf.sample

あとは通常通りにファイルを編集し、Zabbix Serverにホストを追加し、監視が始まることを確認します。

POINT

テンプレートはFreeBSDのものが使用できると思います。

USB bootのため導入した状態が保存されないための対応

ただし、このままだと問題が有ります。再起動を実施すると導入したはずのZabbixパッケージがconfigファイルまで綺麗サッパリ消えてしまいます。これについてはUSB Bootによるものだと思いますが、しっかりと検証は行っていません。

ということで、NAS4Free側からスクリプトが実施できることを利用して、毎回導入編集を行うスクリプトを書いてみることにしました。

スクリプト

#!/bin/sh

# Valiable
ZBX_CONF=/usr/local/etc/zabbix2/zabbix_agentd.conf
ZBX_RC=/usr/local/etc/rc.d
ZABBIX_SERVER_IP=""
SERVER_NAME=""

# add Zabbix-agent
/usr/sbin/pkg_add -r zabbix2-agent

# copy configure
/bin/cp ${ZBX_CONF}.sample ${ZBX_CONF}

# Value reWritable
sed -i '' -e 's/Server=127.0.0.1/Server='${ZABBIX_SERVER_IP}'/' ${ZBX_CONF}
sed -i '' -e 's/ServerActive=127.0.0.1/ServerActive='${ZABBIX_SERVER_IP}'/' ${ZBX_CONF}
sed -i '' -e 's/Hostname=Zabbix server/Hostname='${SERVER_NAME}'/' ${ZBX_CONF}
sed -i '' -e 's/# EnableRemoteCommands=0/EnableRemoteCommands=1/' ${ZBX_CONF}

# auto start config
echo "zabbix_agentd_enable="YES"" >> /etc/rc.conf

# Zabbix agent start
${ZBX_RC}/zabbix_agentd start

スクリプト自体は以下にも置いてあります。
https://github.com/kometchtech/zabbix_nas4free

あとはSystem.runなどでzpoolコマンドを実行してやることで、正しいZFS容量を取得することなどが出来ると思います。

間違い等があればご指摘いただけると助かります。

この記事を書いた人
kometchtech

kometchtech
うつ病を患いながら、IT業界の末席にいるおっさんエンジニア。科学計算をしたことがないのに、HPC分野にお邪魔している。興味のある分野で学習したことをblogにまとめつつ、うつ病の経過症状のメモも置いておく日々。じつはRouterboard User Group JPの中の人でもある。
Amazon欲しいものリスト / Arm板を恵んでくれる人募集中

Buy Me A Coffee