天天看点

zabbix修改之中文主机名

让zabbix主机名支持中文,如下图:

<a href="http://s3.51cto.com/wyfs02/M00/39/36/wKiom1O2QwWz7F21AADEbwEm4tY362.jpg" target="_blank"></a>

让触发器表达式也支持中文:

<a href="http://s3.51cto.com/wyfs02/M00/39/38/wKioL1O2R53gv8n2AADVBhAM2-U480.jpg" target="_blank"></a>

实现步骤:

假如zabbix web目录位置在/var/www/zabbix,定义zabbix目录

ZABBIX_PATH=/var/www/zabbix

一、

在$ZABBIX_PATH/include/defines.inc.php文件中修改943行(zabbix-2.2.3),加入中文字符支持,原始正则:

<code>define(</code><code>'ZBX_PREG_INTERNAL_NAMES'</code><code>, </code><code>'([0-9a-zA-Z_\. \-]+)'</code><code>);</code>

修改为:

<code>// \x80-\xff:匹配用GBK (GB2312/GB18030)编码的所有汉字和标点符号</code>

<code>define(</code><code>'ZBX_PREG_INTERNAL_NAMES'</code><code>, </code><code>'([0-9a-zA-Z_\. \-\x{80}-\x{ff}]+)'</code><code>);</code><code>/* !!! Don't forget sync code with C !!! */</code>

修改后,主机名和监控项名都可以输入中文了。

二、

在$ZABBIX_PATH/include/classes/parsers/CTriggerExpression.php文件中修改808行(zabbix-2.2.3),使触发器表达式支持中文:

<code>        </code><code>private</code> <code>function</code> <code>isHostChar(</code><code>$c</code><code>) {</code>

<code>                </code><code>$cc</code><code>=ord(</code><code>$c</code><code>);</code>

<code>                </code><code>if</code> <code>((</code><code>$c</code> <code>&gt;= </code><code>'a'</code> <code>&amp;&amp; </code><code>$c</code> <code>&lt;= </code><code>'z'</code><code>) || (</code><code>$c</code> <code>&gt;= </code><code>'A'</code> <code>&amp;&amp; </code><code>$c</code> <code>&lt;= </code><code>'Z'</code><code>) || (</code><code>$c</code> <code>&gt;= </code><code>'0'</code> <code>&amp;&amp; </code><code>$c</code> <code>&lt;= </code><code>'9'</code><code>)</code>

<code>                                </code><code>|| </code><code>$c</code> <code>== </code><code>'.'</code> <code>|| </code><code>$c</code> <code>== </code><code>' '</code> <code>|| </code><code>$c</code> <code>== </code><code>'_'</code> <code>|| </code><code>$c</code> <code>== </code><code>'-'</code> <code>|| </code><code>$cc</code> <code>&gt; 127) {</code>

<code>                        </code><code>return</code> <code>true;</code>

<code>                </code><code>}</code>

<code>                </code><code>return</code> <code>false;</code>

<code>        </code><code>}</code>

本文在原作者的基础上做了补充。

本文转自 张斌_青岛 51CTO博客,原文链接:http://blog.51cto.com/qicheng0211/1434451

继续阅读