« 豊作 | メイン | 39.2度 »

2018年01月31日

FreeNAS 11系へ移行

明けましておめでとうございました(汗)
ということで,もうすぐ1月も終わってしまいますが,なんとかギリギリに更新します(笑)

年末年始の帰省の際に,ラボのストレージをバージョンアップしたんですが,その時のトラブルを解決した方法のメモを.
具体的には,FreeNAS 9.10.2-U6を,11.1にアップグレードしました.
ベースのFreeBSDが11系にあがるのが一番大きいですが,その関係でトラブルがあったのでした.
といっても,オリジナルのFreeNASに問題があったわけではなくて,個別で導入していたZabbix Agentが動かなくなったので,対処した,という話です.

原因としては,Zabbix AgentのバイナリがリンクしているライブラリがFreeBSD 11系では使用できずにエラーを吐いて起動しない,というもの(たぶん).
なのでバイナリを入れ替えれば済みそうってレベルなので,大したことは無いですが・・・.

というわけで,まずはZabbix Agentのバイナリを探します.
自分でコンパイルとかしてもいいんだろうけど,いちいちFreeBSD用コンパイル環境を準備するのも面倒ってことで,オリジナルのリポジトリを探しました.
このへんを探すと,Zabbix Agentのパッケージがいろいろ転がっていました.
ウチのZabbix ServerはCentOS7上の3.0LTSなので,バージョンをあわせて3.0系のものを落としてきました.
というわけで,Linuxかなんかで

$ xz -dc zabbix3-agent-3.0.14.txz | tar xfv -

として解凍し,zabbix_agentdを探します.
多分「解凍Dir/usr/local/sbin/zabbix_agentd」あたりにあると思います.
後は,このあたりを参考に準備します.
ただし,この参考記事自体はFreeNAS 9.10系までですので,FreeNAS 11系向けにアレンジしています.

大半は一緒ですが簡単になぞっておくと,
・Zabbix用のデータセットを適当なPOOLに作成する
・「zabbix」なるユーザを作成する.
 (HOMEは/nonexistant,Shellはnologin,パスワードログインは無効化する)
・SSHでFreeNASに接続し,下記を実施

・/を書き込み可能でマウント
# mount -uw /

・バイナリと設定ファイルをコピー
# cp 解凍Dir/zabbix_agentd /usr/local/sbin/
# chmod 755 /usr/local/sbin/zabbix_agentd
# cp 解凍Dir/zabbix_agentd.conf /mnt/ZFSPOOL/Zabbix
# chmod 644 /mnt/ZFSPOOL/Zabbix/zabbix_agentd.conf

・設定ファイルを適切に書き換え
# vi /mnt/ZFSPOOL/Zabbix/zabbix_agentd.conf

・今すぐ動かして試してみる
# mkdir /var/run/zabbix
# chown zabbix /var/run/zabbix
# chmod 755 /var/run/zabbix
# cp /mnt/ZFSPOOL/Zabbix/zabbix_agentd.conf /usr/local/etc/
# /usr/local/sbin/zabbix_agentd -c /usr/local/etc/zabbix_agentd.conf

これで問題なくZabbix Serverから監視できそうなら成功.
ダメそうなら,ログ(/tmp/zabbix_agentd.logあたり)を見ながら対処する,と.
動くようになったら再起動しても動作するように下記をしておきます.

・不揮発領域の準備を行う&マウント状態を元に戻す
# mkdir /conf/base/var/run/zabbix
# chown zabbix /conf/base/var/run/zabbix
# chmod 755 /conf/base/var/run/zabbix
# mount -uw /

あとは,WebUIの「Tasks>Init/Shutdown Scripts」に下記2つの処理を追加.
・タイプ:コマンド,When:Post Init
cp /mnt/ZFSPOOL/Zabbix/zabbix_agentd.conf /usr/local/etc/
・タイプ:コマンド,When:Post Init
/usr/local/sbin/zabbix_agentd -c /usr/local/etc/zabbix_agentd.conf

設定ファイルを「-c」で直接指定すれば,いちいちコピーしなくてもいい気がしますが,参考資料の通りに作ってあります.
そんなこんなで,あっさりとFreeNAS 11.1もZabbix監視対象に再度加えることが出来ました.

そうそう.
6151:20180128:191706.374 no active checks on server [IPアドレス:10051]: host [登録名] not found
みたいなのが監視対象ホスト側のログに出ていたんですが,これはZabbix ServerのWebUIで登録した監視対象ホスト名(登録名)と,監視対象ホストのzabbix_agentd.confに書いてあるHostnameが不一致だと出るみたいです.
ご注意を.

てなところで,相変わらずな新年のスタート,です(笑)

投稿者 chimaki : 2018年01月31日 23:19

トラックバック

このエントリーのトラックバックURL:
http://blog.projectmd.com/cgi-bin/mt/mt-tb.cgi/759