Zabbixでホスト名を更新してもhostidは変わらない

zabbixの運用で、「ホスト名に変更があった場合、ホスト名の変更はせず、旧ホスト削除→新ホスト追加で対応してください」という引き継ぎがあったらしい。ホスト名なんてGUIからちょちょいと変更出来るのにNGな理由が気になったので検証してみた。

【検証環境 】
Zabbix-server: 4.4.0
MySQL: 5.7.28

結果:ホスト名を変更してもhostidが変わらないため、hostidで管理しているアプリなどが存在する場合に影響を与える可能性があるためと推察される。

以下、検証した結果を張り付け。

[arkey22@zabbix4]$ mysql -u zabbix -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 922871
Server version: 5.7.28 MySQL Community Server (GPL)

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>
mysql>
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| zabbix             |
+--------------------+
2 rows in set (0.00 sec)

mysql>
mysql> use zabbix
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql>
mysql> select hostid, host from hosts where host = "zabbix4";
+--------+---------+
| hostid | host    |
+--------+---------+
|  10084 | zabbix4 |
+--------+---------+
1 row in set (0.00 sec)

mysql>

===========================================================================
ここでGUIからホスト名を「zabbix4」から「zabbix4zzzz」に変更
===========================================================================

mysql>
mysql> select hostid, host from hosts where host = "zabbix4zzzz";
+--------+-------------+
| hostid | host        |
+--------+-------------+
|  10084 | zabbix4zzzz |
+--------+-------------+
1 row in set (0.00 sec)

mysql>
mysql>

===========================================================================
ここでGUIからホスト名を「zabbix4zzzz」から「zabbix4」に変更
===========================================================================

mysql>
mysql> select hostid, host from hosts where host = "zabbix4";
+--------+---------+
| hostid | host    |
+--------+---------+
|  10084 | zabbix4 |
+--------+---------+
1 row in set (0.00 sec)

mysql>

自分の預かりらぬところでhostidを使って管理してるシステムがあるかもしれないから、ってことですね。運用する側としてはホスト名の変更は往々にして発生するので、納得行かないところ。特にホストを削除すると過去データまで消えちゃうのが痛い。たぶん強引にごにょごにょすれば新ホストと旧ホストでデータを引き継げるんだろうけど、SQLでDBを直接いじらにゃいかん気がする。運用でそこまでやってられんですね!以上!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です