やったこと

自宅のサーバ群をProxmox VEに収容しました。

<収容に関する記事を書いてリンクする予定地>

収容前は「いつの間にかサーバダウンして数週間が経っちゃてたよ〜」ってことも少なくなかったので、この機にちゃんと監視することにしました。

監視用サービスの検討

まずはどのサービスを使おうか検討しました。小規模な自宅用で、1〜2日くらいのダウンなら許容できるようなユルユルの環境なので、無償で使えるやつがいいな。

PRTG Network Monitorがインストール容易で評判も良いみたいだったんですが、Windows VMは将来的に廃止したいし、Windowsを24/365のサーバ的な運用するための知見が無かったのでやめておきました。

Zabbixは古くからいろんなナレッジがインターネット上に蓄積されているし、一度ちゃんと使ってみたかったので、こっちにしました。

システム構成(詳細は追って更新予定)

  • Proxmox VE 9.0(on Ryzen CPU)
  • Zabbix 7.0 LTS

ZabbixサーバVMのインストール

ZabbixサーバはProxmox VE上に構築しました。
以下のページも参考にさせていただきました。ありがとうございます。

https://zenn.dev/omohikane/articles/deploy-zabbix-to-proxmox

今回、最新LTSである7.0のqcow2を使って以下のようにインストールしました。

  1. 以下の公式ページからアプライアンスqcow2をダウンロードします。
    https://www.zabbix.com/download#appliance
  2. qcow2ファイルをProxmoxノードlocalの適当な位置にアップロードします。今回はscpを使いました。
     $ scp zabbix_appliance-*.qcow2 root@:/var/lib/vz/template/qcow2/
  3. OSやディスク指定しない空のVMを作成します。
    推奨スペックは公式に記載がありました。BIOSに[SeaBIOS]を指定すること以外は何でも良いと思います。
    ※ZabbixアプライアンスはUEFI対応していないそうで、[OVMF(UEFI)]を指定してしまうと起動しなくなります。なりました。
  4. qcow2をProxmoxノードにインポートします。
    qm importdisk 120 /var/lib/vz/template/qcow2/zabbix_appliance-*.qcow2 local-lvm
  5. 作成したVMのハードウェアにインポートで生成されたディスクを追加します。
     VirtIO SCSI>SCSI Controller:VirtIO SCSI single
  6. VMのブート順の先頭を追加したディスクに変更します。
    ※変更しないと空のVMのディスクが使われて延々ブートしなくなります。しなくなりました。

以上でZabbixが起動できるようになります。続いてサーバとしての各種設定やメンテナンスを行います。

Zabbixサーバの設定

初期ログイン情報など含めて以下のページを参考にさせていただきました。感謝です。

https://zenn.dev/omohikane/articles/deploy-zabbix-to-proxmox

  • Static IPアドレス設定
  • リポジトリアップデート
  • 日本語ロケールのインストール

加えて、Web画面に既存のZabbixサーバがある場合はSQLデータベースのエクスポートとインポートで移行を行います。
(実は途中までRaspberry piでZabbixを稼働していたんですが、どう考えてもProxmoxにいたほうがよいので、移行しました。互換性があればZabbixとかDBMSのバージョンに関わらず移行できて助かりました。)

ここまででZabbixサーバの設定が完了しました。WebブラウザからZabbixコンソールへアクセスできることを確認します。

    Zabbix監視設定(エージェント、サーバ)

    以下の設定で実現できました。

    ProxmoxテンプレートでのHTTP監視

    以下のWikiの手順通りで設定できました。感謝。

    http://extstrg.asabiya.net/pukiwiki/index.php?PROXMOX%B4%C6%BB%EB%28ZABBIX+7.0%29

    これでProxmoxVEやVMの健康状態が監視できるようになりました。

    Zabbix Agentでの詳細監視

    物理ディスクのS.M.A.R.T情報も監視したかったため、ProxmoxというかDebianとしてAgentをインストールします。こちらは以下が参考になりました。

    Proxmox 9.0はsmartmontoolsがプリインストールで、逆にsudoはインストールが必要でした。
    また、zabbix_agentd2.confの[Server][ServerActive][Hostname]も書き換えが必要でした。

    細かい追加設定(随時追記)

    その他細かいチューニングをします。

    Seagate製のHDDのS.M.A.R.T値

    以下にまとめてくださっている通り一部特殊な扱いなので、ZabbixアイテムのDependent itemを使って取得されたRaw Valueを加工します。

    http://mgunma.blog.fc2.com/blog-entry-90.html

    おわり

    これでラジオサーバや録画サーバがスタックした状態でしばらくしてから悲しい思いをすることが無くなると嬉しいですね。
    あとは、単純にProxmox全部がダウンしてしまったときに検知・通知するすべが無いので、冗長化の方法を考えたいです。