1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ZabbixをDockerでサクッとたててみる

Last updated at Posted at 2024-08-04

Zabbixのお試しという位置づけでいろいろ試してみたのでメモ。

Docker のインストール

Ubuntu 24.04 serverがインストール済みである前提で、下記のドキュメント通りにインストールする。

Zabbix ServerをDocker Composeで立ち上げる

下記のGitHub上にZabbix公式のDocker ComposeのYAMLファイルが置いてあるのでありがたく使わせてもらう。

なお、ドキュメントはここ。
https://www.zabbix.com/documentation/current/en/manual/installation/containers#docker-compose

# git clone https://github.com/zabbix/zabbix-docker.git
# cd zabbix-docker
# docker compose -f ./docker-compose_v3_ubuntu_pgsql_latest.yaml up -d

しばらくすると、http://localhost:80/ で立ち上がってくる。

Zabbixの設定

アクセスするとログイン画面が表示される。
image.png
user/passは、「Admin/zabbix」である。※Adminは大文字始まりなので注意。

image.png
無事にログインできた。

日本語化

左下の User settings > Profile をクリック。
image.png

下記の通り、設定する。
image.png

設定項目
Language Japanese(ja_JP)
Time zone (UTC+09:00) Asia/Tokyo
Refresh 10s

※Refreshは後のテストで表示を早くしたいので、設定した。

Dockerホストへの Zabbix Agentのインストールと設定

インストール直後は、エージェントがないよと警告が出るので、入れてあげる。
image.png

Dockerを動かしているUbutnu Server にインストールする。
Zabbix公式のとおりである。
https://www.zabbix.com/jp/download?zabbix=7.0&os_distribution=ubuntu&os_version=24.04&components=agent_2&db=&ws=

リポジトリ設定
# wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_7.0-2+ubuntu24.04_all.deb
# dpkg -i zabbix-release_7.0-2+ubuntu24.04_all.deb
# apt update
エージェントインストール
# apt install zabbix-agent2 zabbix-agent2-plugin-*
エージェントの自動起動設定と開始
# systemctl restart zabbix-agent2
# systemctl enable zabbix-agent2

Zabbix Serverからアクセスできるように設定ファイルに追記する。

/etc/zabbix/zabbix_agent2.conf
# 80行目:Zabbix サーバーを指定(というか全許可)
Server=0.0.0.0/0

ここで、初期設定で入っているZabbix ServerのIPアドレスが、ローカルループバックアドレスなので、Ubuntu ServerのIPアドレスに変更する。
データ収集 > ホスト > Zabbix Server をクリックし、インターフェースのエージェントIPアドレスを対象のものに変更する。
image.png

これで、Zabbix Serverの設定は完了である。
※Firewallの設定をしている場合は、ポート10050を開ける。

CentOS Stream 9にZabbix Agent2 をインストール

Zabbix 公式ページにてインストール手順を確認する。
https://www.zabbix.com/jp/download?zabbix=7.0&os_distribution=centos&os_version=9&components=agent_2&db=&ws=

リポジトリ設定

下記の通り、excludepkgs=zabbix*を追記する。

/etc/yum.repos.d/epel.repo
[epel]
...
excludepkgs=zabbix*

リポジトリインストール

# rpm -Uvh https://repo.zabbix.com/zabbix/7.0/centos/9/x86_64/zabbix-release-7.0-5.el9.noarch.rpm
# dnf clean all

Zabbix Agent2をインストール

# dnf install zabbix-agent2 zabbix-agent2-plugin-*

エージェントの自動起動設定と開始

# systemctl restart zabbix-agent2
# systemctl enable zabbix-agent2

エージェントの設定

今回は横着して全許可。

/etc/zabbix/zabbix_agent2.conf
# 80行目:Zabbix サーバーを指定(というか全許可)
Server=0.0.0.0/0

Firewallの設定

# firewall-cmd --add-port=10050/tcp
success
# firewall-cmd --runtime-to-permanent
success

Zabbix にてホスト登録

データ収集 > ホスト にて、左上のホストの作成をクリックする。
image.png

下記の通り、値を入力し、追加をクリックする。
image.png

設定項目
ホスト名 (設定したホスト名)
テンプレート Linux by Zabbix Agent ICMP Ping
ホストグループ Linux servers
インターフェース (エージェントを選択し、IPアドレスを入力)

監視データ > ホスト から、ホストが追加され、エージェントの状態がGreenになっていたらOK。
image.png

データ収集の間隔を狭める

このあと監視テストをしたいが、待ち時間がもったいなので、デフォルトの間隔を狭める。今回はLoad AverageとICMP Ping。

Load Averageの監視間隔

データ収集 > テンプレート から、「Linux」を検索し、「Linux by Zabbix Agent」のアイテムをクリックする。
image.png

「Load」検索し、「Load Average(1m avg)」をクリックして、監視間隔を10sにする。
image.png

image.png

これを、「Load Average(5m avg)」「Load Average(15m avg)」にも行う。

また、トリガー設定も変更する。
「Load Average(1m avg)」の「トリガー」をクリックし、「Load average is too high」をクリックする。
下記の通り、修正する。5m判定を15s判定に変えている。
image.png

イベント名
- Load average is too high (per CPU load over {$LOAD_AVG_PER_CPU.MAX.WARN} for 5m)
+ Load average is too high (per CPU load over {$LOAD_AVG_PER_CPU.MAX.WARN} for 15s)

条件式
- min(/Linux by Zabbix agent/system.cpu.load[all,avg1],5m)/last(/Linux by Zabbix agent/system.cpu.num)>{$LOAD_AVG_PER_CPU.MAX.WARN} and last(/Linux by Zabbix agent/system.cpu.load[all,avg5])>0 and last(/Linux by Zabbix agent/system.cpu.load[all,avg15])>0
+ min(/Linux by Zabbix agent/system.cpu.load[all,avg1],15s)/last(/Linux by Zabbix agent/system.cpu.num)>{$LOAD_AVG_PER_CPU.MAX.WARN} 

ICMP Pingの監視間隔

同じように、データ収集 > テンプレート > ICMP Pingを検索 > アイテム > ICMP Ping をクリック。
監視間隔を5sとする。
image.png

アラート発報テスト

CPU負荷

下記コマンドをCPU個数+2個分実行する。

# yes > /dev/null &
# yes > /dev/null &
# yes > /dev/null &
# yes > /dev/null &

TOPコマンドでも確認できる。
image.png

こんな感じで2分程度で発報される。
image.png

停止するときはこう。

# jobs
[1]   実行中               yes > /dev/null &
[2]   実行中               yes > /dev/null &
[3]-  実行中               yes > /dev/null &
[4]+  実行中               yes > /dev/null &
# kill %1 %2 %3 %4
[1]   Terminated              yes > /dev/null
[2]   Terminated              yes > /dev/null
[3]-  Terminated              yes > /dev/null
[4]+  Terminated              yes > /dev/null

Ping疎通不可

NWを切断してみた。
こんな感じで、30秒程度で発報される。
image.png

障害時にPATLITEを光らせる

Ping疎通不可が出た場合に、PATLITEを光らせるようにする。

スクリプト設定

Zabbix Serverからたたくスクリプトを設定する。
スクリプトの詳細は下記公式ドキュメントを参照。

赤を光らせる場合
curl http://192.168.17.22/api/control?led=10000
消灯する場合
curl http://192.168.17.22/api/control?led=00000

左ペインから、通知 > スクリプト から「スクリプトの作成」で、下記のように作成する。
image.png

image.png

アクション設定

作成したスクリプトとアクションを紐づける。
通知 > アクション > トリガーアクション から「アクションの作成」をクリックする。

実行条件を追加で、下記の通り設定する。

項目
タイプ テンプレート
オペレータ 等しい
テンプレート ICMP Ping

image.png

実行内容タブでは「実行内容」と「復旧時の実行内容」をそれぞれ下記のように追加する。
image.png

そうすると、このようになる。
image.png

以上で、ICMP Pingの障害発生時には、PATLITEが赤く光る。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?