とても実務的で、Zabbixを触っている人が一度は踏むポイントです。
結論から言います。
結論(先に)
同一設定の Zabbix agent を入れたVMをコピーして同時起動すると、サーバ側では「同一ホストが2台からデータを送ってくる」状態になります
結果として、監視データは壊れます(上書き・揺れ・誤判定)
エージェント側の設定ファイルを直せば解決できます(ただし直すポイントが重要)
1. 何が起きるのか(Zabbixサーバ視点)
前提
VM A をコピーして VM B を作成
両方に同じ zabbix_agent.conf
同じ Hostname(または自動登録名)
同じIP or 異なるIPだが同一ホスト名
Zabbixサーバ側の状態
Zabbixは 「ホスト名」を主キーとしてデータを管理します。
そのため、
結果:
CPU使用率が上下に激しく揺れる
メモリ・ディスク・プロセス数が実体と合わない
トリガーが誤発火・誤復旧する
ログ上はエラーが出ない(これが厄介)
Zabbix的には
「異常ではないが、意味が壊れている」状態です。
2. なぜZabbixは混乱するのか
Zabbixの識別構造は基本的に:
Host(ホスト名) └ Item(CPU, Memory, Disk…) └ History / Trend
つまり、
IPアドレスではなく
VMのUUIDでもなく
Host名が絶対
同じHost名で複数エージェントが来ると、
「多重人格ホスト」になります。
3. エージェント側設定を直せば解決するか?
はい、正しく直せば解決します。
ただし、「どこを直すか」が重要です。
4. 必ず確認・修正すべきポイント(agent側)
① Hostname(最重要)
Hostname=web01
これが2台で同じだとアウトです。
対策:
Hostname=web01Hostname=web02
または
HostnameItem=system.hostname
(OSのホスト名を自動使用)
② OSのホスト名
HostnameItem を使う場合:
Linux例:
hostnamectl set-hostname web02
③ Auto Registration を使っている場合
自動登録を使っていると、
→ 同一ホストとして再登録される
対策:
5. Zabbix Server 側の設定は?
サーバ側設定ファイルを直しても 根本解決にはなりません。
理由:
やるとしたら:
6. 典型的な事故パターン
Zabbixあるあるです。
7. ベストプラクティス(実務)
VMコピー前提なら
どうしても固定名を使うなら
コピー後、起動前に必ず修正
Ansible等で差し替え
まとめ
この記事へのコメント