見出し画像

Docker-ComposeでZabbix監視環境を構築し、死活監視を簡単に設定する

はじめに

皆さん、こんにちは。
株式会社SHIFT 技術統括部 マイグレーションGの平野です。

老朽化したシステムのマイグレーション支援業務を行っています。
自宅でもサーバを立てたりしているので、その辺りで培ったノウハウを記事にしていこうと思います。
今回は自宅で使用しているネットワーク機器に対して、Docker-Composeを利用したZabbixの死活監視設定をしたいと思います。

  1. 今回死活監視を設定する構成

  2. Dockerのインストール

  3. Zabbixコンテナの起動

  4. Ping監視設定

執筆者プロフィール:平野史朗
前職の職場にはLSIの論理設計技術者として入社はずが、修行のために転属したハードウェア開発部門でIP-PBX開発中に所属部署がなくなり。。ソフトウェア開発会社に転籍。
客先でソフトウェア開発支援、テスト支援、等様々な業務を担当後SHIFT入社。今後も今までの経験を生かして、お客様の課題解決に貢献していきたいと思っています。

今回死活監視を設定する構成

最近では固定電話を使用せずに携帯電話オンリーの方も多いと思いますが、
我が家では基本料金なしのIP電話を固定電話として使用しています。
IP電話をどうやって固定電話として使っているかというと、以下のようにSIP-GWを介して固定電話に接続しています。
※SIP-GWはアナログ電話の呼制御と音声を、SIPというIPベースのプロトコルに乗せ変える装置です。

問題点はSIP-GWが故障した場合、着信したとしてもこちらは気が付かない事です。
電話がかかってくることは稀なため、障害に気が付くのも遅れます。

そこで、監視用の端末を用意し、ZabbixでPingの死活監視を設定し、
障害の検出を可能にしようと思います。

今回はPing死活監視をZabbixのコンテナを使用して、簡単に立ち上げてしまおうと思います。

手順は以下の通りです。

Dockerのインストール

以下の手順を参考に、監視端末にDockerをインストールしていきます。 https://docs.docker.com/engine/install/ubuntu/

aptのアップデート

sudo apt-get update
sudo apt-get install \
	ca-certificates \
	curl \
	gnupg

GPGの暗号化キーを取得

sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

リポジトリの追加

echo \
  "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

インストール

sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Docker-Composeのインストール

※Zabbix公式で配布しているComposeファイルを読み込むためには、  バージョンは1.28.0以上を指定してください。

sudo curl -L "https://github.com/docker/compose/releases/download/1.28.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

アクセス権の変更

実行権限をつけます。

sudo chmod +x /usr/local/bin/docker-compose

Zabbixコンテナの起動

Composeファイルのダウンロード

以下のURLにアクセスして、Composeファイルをダウンロードします。
https://github.com/zabbix/zabbix-docker

今回は「docker-compose_v3_ubuntu_pgsql_latest.yaml」をダウンロードしました。

リネーム

ダウンロードしたファイルをリネームします。

mv docker-compose_v3_ubuntu_pgsql_latest.yaml docker-compose.yaml

コンテナ起動

docker-composeでコンテナを起動します。

sudo docker-compose up -d

これだけでZabbixの起動は完了です。

http://localhost

にアクセスしてみます。 ログイン画面が出ました! デフォルトは、Usernameが「Admin」でPasswordが「zabbix」です。

ログインするとダッシュボードが表示されます。
続いてping監視の設定をしていきます。

Ping監視設定

Zabbixの準備ができたので、設定を実施していきたいと思います。

今回設定するのはSIP-GWのPING監視です。 zabbixでデフォルトで用意されているHost Groupを見ると以下のようになっています。

今回設定する機器はネットワークデバイスなので、
この中にはよさそうなものがなさそうです。
そこで最初にnetwork deviceグループを作成したいと思います。
※グループにこだわりがないのであればhost group作成は飛ばして問題ないです。
Hostの追加に飛んでください。

network deviceグループ作成

ホストグループにnetwork deviceグループを追加します。 Data Collectionの「Host groups」をクリックします。

ホストグループの設定画面が表示されます。 右上の「Create host group」をクリックします。

登録画面に遷移するので、 Group nameに「network devices」と入力しAddをクリックします。

グループが追加されました。

ホストの追加

監視するホストの設定をしていきます。 Data Collections→Hostsを選択します。

ホストの設定画面が表示されます。 右上の「Create host」をクリックします。

ホストの登録画面が表示されます。 必要な項目を設定していきます。
今回の監視対象はSIP-GWなので、 Host Nameに「SIP-GW」を入力します。

Templatesを設定します。 「Select」を押下します。

Templetの選択画面が表示されるので「Select」を押下します。

「Template/Network devides」を選択します。

「ICMP Ping」を選択します。

ICMP Pingが設定されました。
続いてHost Groupsを設定します。 Host Groupsの「Select」を押下します。

先ほど作成した「network devices」を選択します。
※host groupグループ作成を飛ばした場合、何でもよいので選択してください。

Host Groupsが設定されました。

最後に監視するホストのIPアドレスを入れます。 Connect toは「IP」を選びます。 IPMIに監視したい装置のIPを入力し、最後に「Add」を押下します。

これでPINGによる死活監視設定は完了です。

ちゃんと設定できている確認するために、ケーブルを抜いてみます。
ダッシュボードに警報が発報されました。

ケーブルを戻してみます。
警報が解除されました。

これで監視設定は完了です。
簡単に設定と書きましたが。。結構長くなってしまいました。
設定の詳細の説明も記載しようと思いましたが。。
今回はここまでにしようと思います。
また、警報が発報された場合、気が付く仕組みが必要です。

このままだと、ダッシュボードをずっと見ていないといけませんね。。

なので、次回はZabbix監視設定の詳細と、障害を検出した際の 通知について説明したいと思います。



お問合せはお気軽に
https://service.shiftinc.jp/contact/

SHIFTについて(コーポレートサイト)
https://www.shiftinc.jp/

SHIFTのサービスについて(サービスサイト)
https://service.shiftinc.jp/

SHIFTの導入事例
https://service.shiftinc.jp/case/

お役立ち資料はこちら
https://service.shiftinc.jp/resources/

SHIFTの採用情報はこちら
https://recruit.shiftinc.jp/career/

PHOTO:UnsplashVitalik Vynarchyk