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

AIX、UNIX、LinuxSSD、HDD、Storagezabbix
https://www.xigmanas.com/forums/viewtopic.php?t=4707

自宅ではストレージについて、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

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

kometchtechをフォローする

コメント

  1. kometch より:

    SECRET: 0
    PASS: 74be16979710d4c4e7c6647856088456
    こちらこそご無沙汰しておりますー

    > ご無沙汰しております。
    > 一昨年の記事にフォローするのも恐縮ではありますが、
    > FreeBSD系ではpkg_addに代わり"pkg"が主流になっております。
    > また、スクリプトも書く必要がなく
    > /etc/rc.confを直接いじらず、"System Advanced rc.conf"
    > にZabbixAgent周りの設定を追加必要がありますので、
    > リプレースの際はご注意ください。

    ちょっと内容的には古いので、このようなフォローありがとうございます。
    最近のFreeBSDはこのような方法でできるんですね・・・
    頂いた情報で自分もちょっとやってみますー

  2. RBにAsteriskを入れたG より:

    SECRET: 0
    PASS: 74be16979710d4c4e7c6647856088456
    ご無沙汰しております。
    一昨年の記事にフォローするのも恐縮ではありますが、
    FreeBSD系ではpkg_addに代わり"pkg"が主流になっております。
    また、スクリプトも書く必要がなく
    /etc/rc.confを直接いじらず、"System Advanced rc.conf"
    にZabbixAgent周りの設定を追加必要がありますので、
    リプレースの際はご注意ください。

タイトルとURLをコピーしました