![見出し画像](https://assets.st-note.com/production/uploads/images/109412981/rectangle_large_type_2_bb87a6f524ed9a4f3818742385bc30c0.jpeg?width=1200)
Docker-ComposeでZabbix監視環境を構築し、死活監視を簡単に設定する
はじめに
皆さん、こんにちは。
株式会社SHIFT 技術統括部 マイグレーションGの平野です。
老朽化したシステムのマイグレーション支援業務を行っています。
自宅でもサーバを立てたりしているので、その辺りで培ったノウハウを記事にしていこうと思います。
今回は自宅で使用しているネットワーク機器に対して、Docker-Composeを利用したZabbixの死活監視設定をしたいと思います。
今回死活監視を設定する構成
Dockerのインストール
Zabbixコンテナの起動
Ping監視設定
執筆者プロフィール:平野史朗
前職の職場にはLSIの論理設計技術者として入社はずが、修行のために転属したハードウェア開発部門でIP-PBX開発中に所属部署がなくなり。。ソフトウェア開発会社に転籍。
客先でソフトウェア開発支援、テスト支援、等様々な業務を担当後SHIFT入社。今後も今までの経験を生かして、お客様の課題解決に貢献していきたいと思っています。
今回死活監視を設定する構成
最近では固定電話を使用せずに携帯電話オンリーの方も多いと思いますが、
我が家では基本料金なしのIP電話を固定電話として使用しています。
IP電話をどうやって固定電話として使っているかというと、以下のようにSIP-GWを介して固定電話に接続しています。
※SIP-GWはアナログ電話の呼制御と音声を、SIPというIPベースのプロトコルに乗せ変える装置です。
![](https://assets.st-note.com/img/1687307965818-hpZKKlAUQQ.png)
問題点はSIP-GWが故障した場合、着信したとしてもこちらは気が付かない事です。
電話がかかってくることは稀なため、障害に気が付くのも遅れます。
![](https://assets.st-note.com/img/1687307981223-qSVpL31IuX.png)
そこで、監視用の端末を用意し、ZabbixでPingの死活監視を設定し、
障害の検出を可能にしようと思います。
![](https://assets.st-note.com/img/1687307989408-d3dn1xPx4S.png)
今回は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」をダウンロードしました。
![](https://assets.st-note.com/img/1687308035583-SWx5OM3ucL.png)
リネーム
ダウンロードしたファイルをリネームします。
mv docker-compose_v3_ubuntu_pgsql_latest.yaml docker-compose.yaml
コンテナ起動
docker-composeでコンテナを起動します。
sudo docker-compose up -d
これだけでZabbixの起動は完了です。
にアクセスしてみます。 ログイン画面が出ました! デフォルトは、Usernameが「Admin」でPasswordが「zabbix」です。
![](https://assets.st-note.com/img/1687308064421-WDnwuk2SPN.png)
ログインするとダッシュボードが表示されます。
続いてping監視の設定をしていきます。
![](https://assets.st-note.com/img/1687308074840-NclBUSk4rg.png?width=1200)
Ping監視設定
Zabbixの準備ができたので、設定を実施していきたいと思います。
今回設定するのはSIP-GWのPING監視です。 zabbixでデフォルトで用意されているHost Groupを見ると以下のようになっています。
![](https://assets.st-note.com/img/1687308081847-YjEAvEm76J.png?width=1200)
今回設定する機器はネットワークデバイスなので、
この中にはよさそうなものがなさそうです。
そこで最初にnetwork deviceグループを作成したいと思います。
※グループにこだわりがないのであればhost group作成は飛ばして問題ないです。
Hostの追加に飛んでください。
network deviceグループ作成
ホストグループにnetwork deviceグループを追加します。 Data Collectionの「Host groups」をクリックします。
![](https://assets.st-note.com/img/1687308102359-BaWn4ECxmq.png?width=1200)
ホストグループの設定画面が表示されます。 右上の「Create host group」をクリックします。
![](https://assets.st-note.com/img/1687308125101-NvThjIEEkL.png?width=1200)
登録画面に遷移するので、 Group nameに「network devices」と入力しAddをクリックします。
![](https://assets.st-note.com/img/1687308148201-gvo593pQpZ.png?width=1200)
グループが追加されました。
![](https://assets.st-note.com/img/1687308157753-tghrAUaZPn.png?width=1200)
ホストの追加
監視するホストの設定をしていきます。 Data Collections→Hostsを選択します。
![](https://assets.st-note.com/img/1687308163286-vGErX4Ip5T.png?width=1200)
ホストの設定画面が表示されます。 右上の「Create host」をクリックします。
![](https://assets.st-note.com/img/1687308166916-dikPnlcpDn.png?width=1200)
ホストの登録画面が表示されます。 必要な項目を設定していきます。
今回の監視対象はSIP-GWなので、 Host Nameに「SIP-GW」を入力します。
![](https://assets.st-note.com/img/1687308174805-XMiPe8FL6P.png?width=1200)
Templatesを設定します。 「Select」を押下します。
![](https://assets.st-note.com/img/1687308179019-eTxm7gPmaz.png?width=1200)
Templetの選択画面が表示されるので「Select」を押下します。
![](https://assets.st-note.com/img/1687308183408-bghRdfeC4g.png?width=1200)
「Template/Network devides」を選択します。
![](https://assets.st-note.com/img/1687308188030-1o7KWMhQUB.png?width=1200)
「ICMP Ping」を選択します。
![](https://assets.st-note.com/img/1687308193036-As9JyPICnF.png?width=1200)
ICMP Pingが設定されました。
続いてHost Groupsを設定します。 Host Groupsの「Select」を押下します。
![](https://assets.st-note.com/img/1687308203265-LFvyKqk4Z3.png?width=1200)
先ほど作成した「network devices」を選択します。
※host groupグループ作成を飛ばした場合、何でもよいので選択してください。
![](https://assets.st-note.com/img/1687308214552-HOSPGeczvQ.png?width=1200)
Host Groupsが設定されました。
![](https://assets.st-note.com/img/1687308222882-HebATIpzIS.png?width=1200)
最後に監視するホストのIPアドレスを入れます。 Connect toは「IP」を選びます。 IPMIに監視したい装置のIPを入力し、最後に「Add」を押下します。
![](https://assets.st-note.com/img/1687308228026-QpZQlaYV3S.png?width=1200)
これでPINGによる死活監視設定は完了です。
![](https://assets.st-note.com/img/1687308231438-dvhE11dydz.png?width=1200)
ちゃんと設定できている確認するために、ケーブルを抜いてみます。
ダッシュボードに警報が発報されました。
![](https://assets.st-note.com/img/1687308236827-ESw1FC8ajq.png?width=1200)
ケーブルを戻してみます。
警報が解除されました。
![](https://assets.st-note.com/img/1687308245212-nH9JtAiRmL.png?width=1200)
これで監視設定は完了です。
簡単に設定と書きましたが。。結構長くなってしまいました。
設定の詳細の説明も記載しようと思いましたが。。
今回はここまでにしようと思います。
また、警報が発報された場合、気が付く仕組みが必要です。
このままだと、ダッシュボードをずっと見ていないといけませんね。。
なので、次回は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:UnsplashのVitalik Vynarchyk