让zabbix主机名支持中文,如下图:
让触发器表达式也支持中文:
实现步骤:
假如zabbix web目录位置在/var/www/zabbix,定义zabbix目录
ZABBIX_PATH=/var/www/zabbix一、
在$ZABBIX_PATH/include/defines.inc.php文件中修改943行(zabbix-2.2.3),加入中文字符支持,原始正则:
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}]+)');/* !!! Don't forget sync code with C !!! */
修改后,主机名和监控项名都可以输入中文了。
二、
在$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; }
原文链接:
本文在原作者的基础上做了补充。