让zabbix主机名支持中文,如下图:
让触发器表达式也支持中文:
实现步骤:
假如zabbix web目录位置在/var/www/zabbix,定义zabbix目录
ZABBIX_PATH=/var/www/zabbix
一、
在$ZABBIX_PATH/include/defines.inc.php文件中修改943行(zabbix-2.2.3),加入中文字符支持,原始正则:
1
|
define(
'ZBX_PREG_INTERNAL_NAMES'
,
'([0-9a-zA-Z_\. \-]+)'
);
|
修改为:
1
2
|
// \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),使触发器表达式支持中文:
1
2
3
4
5
6
7
8
9
|
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;
}
|
原文链接:http://hi.baidu.com/cqjfb/item/e159de0e55560dcb2e4c6ba6
本文在原作者的基础上做了补充。
本文转自 张斌_青岛 51CTO博客,原文链接:http://blog.51cto.com/qicheng0211/1434451