zabbix修改主機名為中文名
阿新 • • 發佈:2019-03-20
alt col reg 2.3 tchar ret 表達式 spa ||
我這邊zabbix版本有2.4和3的都有。
要讓zabbix主機名支持中文,,需要修改zabbix的php代碼文件,如下圖修改完中文主機名是不支持的:
實現步驟:
進到zabbix web目錄,一般在/var/www/zabbix或者/usr/share/zabbix下
一、
修改/usr/share/zabbix/include/defines.inc.php文件中修改,我的在788行(zabbix-2.4.8),加入中文字符支持,原始正則:
define(‘ZBX_PREG_INTERNAL_NAMES‘, ‘([0-9a-zA-Z_\. \-]+)‘);
修改為:
// \x80-\xff:匹配用GBK (GB2312/GB18030)編碼的所有漢字和標點符號
define(‘ZBX_PREG_INTERNAL_NAMES‘, ‘([0-9a-zA-Z_\. \-\x{80}-\x{ff}]+)‘);
修改後,主機名和監控項名都可以輸入中文了。
二、讓觸發器表達式也支持中文(我測試了 我的zabbix是2.4.8和3都沒有這個參數,加了也沒用):這一步沒有成功,沒有這個參數,加了也沒用,會的可以告知下。下面的內容是網上復制過來的沒改,我的版本沒有這個參數。
在$ZABBIX_PATH/include/classes/parsers/CTriggerExpression.php文件中修改808行(zabbix-2.2.3),使觸發器表達式支持中文:
private function isHostChar($c) { $cc=ord($c); if (($c >= ‘a‘ && $c <= ‘z‘) || ($c >= ‘A‘ && $c <= ‘Z‘) || ($c >= ‘0‘ && $c <= ‘9‘) || $c == ‘.‘ || $c == ‘ ‘ || $c == ‘_‘ || $c == ‘-‘ || $cc > 127) { return true; } return false; }
zabbix修改主機名為中文名