感谢本文作者胡璞玉投稿!欢迎更多用户分享踩过的坑的使用经验!

图片
胡璞玉 | Zabbix手册官方译者

Zabbix 5.0、6.0指导手册官方译者

系统架构师,长期从事IT工作,目前关注医疗信息化、医疗大数据方向

在使用Zabbix监控中,发现最新值中有些项对应的值为乱码,其他字段显示正常。检查对应的值,发现应该是中文被显示为乱码。

图片

通常在监控一些网络设备时常出现,尤其是提供Web界面配置时,在描述字段使用中文,导致乱码,如端口描述、设备描述等:
图片

对于这种情况,可以有以下几种处理方法。

更换为英文
通常Zabbix是支持中文的,包括中文界面,使用UTF-8的字符监控内容也可以正常显示。出现乱码一般是无法识别字符集导致的。常见中文编码有GB2312、GBK、GB18030等,容易产生乱码。英文26个字母在不同的字符集中保存一致,一般不会产生乱码。
对于可以修改的目标监控项的值,最简单的策略是换成英文或者拼音。对于一些有终端界面的网络设备,即使一些描述可以在Web界面配置成中文,也不建议使用。后续在终端操作,较大概率会出现乱码无法显示的情况。

使用值映射
如果无法调整或必须使用中文,建议先进行观察,如果文字较少且固定,可采用映射替换的办法。在Zabix中设立相应的中文值映射,主要步骤如下:

在“模版”或“主机”下,选择“值映射”,创建对应项后,对话框保存后在“模版”或“主机”下保存。
图片

再次打开出现乱码的监控项,在“值映射”栏选择对应的映射

进行测试

图片

使用值映射,需要预先配置。优点是简单好用。如果发生变化了修改或值超出映射范围,那只能进行调整的映射信息。涉及的监控项目较多或者值变化较大,会产生大量工作,且容易出错。

使用预处理
对于变化较大或其他复杂场景,可使用预处理方式。原理是将获取到的字符串逐项使用脚本,按照规则替换成文本。
以某医院的无线网络监控为例,在AC中对120个AP采用中文命名,命名规则为”XXX单位+ 数字+无线AP”,需要将AC及管理的AP接入基于zabbix搭建的全院监控平台。
图片

Zabbix使用SNMP方式监控AC,得到管理的AP名数据为类似 “ED CC F3 …” 的字符串,十六进制每个字符都认识,但连在一起却无法识别,相当于乱码。经检查发现编码中汉字使用Unicode,两个字节可以表示为一个汉字,获取到的是两个字节用十六进制字符显示。由于涉及AP较多,且名字中有变量,使用值映射配置就较麻烦,宜采用预处理方式,加载js代码。本例中直接替换掉中文(固定名称作用不大,当然也可以直接添加),取出英文、数字后组合输出,参考js如下:

var out=""
value = value.replace(/\s+/g,"").replace(/[\r\n]/g,"")
for (var i = 0; i < value.length / 2; i++) {
if (value[2i] < ‘8’ ){
var tmp = “0x” + value[2
i] + value[2*i + 1]
out += String.fromCharCode(tmp);
} else {
// 忽略非ascii码字符
i +=1
}
}
return out
此外,可以使用js进行编码转化,由于常用中文字符较多,对应的js代码体积大,运行消耗资源较多。对于监控,不建议在Zabbix的预处理中使用复杂的js脚本,可以使用第三方工具进行转码后再由Zabbix监控。

如何处理Zabbix监控值中文字符乱码情况?3点思路分享相关推荐

  1. java printstream 中文乱码_JAVA的中文字符乱码问题

    JAVA的中文字符乱码问题一直很让人头疼.特别是在WEB应用中.网上的分析文章和解决方案都很多,但总是针对某些特定情况的.很多次遇到乱码问题后, 经过极为辛苦的调试和搜索资料后终于解决,满以为自己已经 ...

  2. php中文字符乱码,如何解决php中文字符乱码问题

    php中文字符乱码的解决办法:1.改mysql配置文件"my.ini"或"my.cnf":2.在需要做数据库操作的php程序前加入语句"mysql_q ...

  3. ssis 转换中文字符乱码_SSIS软件包中的字符映射转换

    ssis 转换中文字符乱码 This article explores the Character Map Transformation in SSIS package with available ...

  4. 中文字符乱码的原因及解决办法

    中文字符乱码的原因及解决办法 java的内核是Unicode的,也就是说,在程序处理字符时是用Unicode来表示字符的,但是文件和流的保存方式是使用字节流的.在java的基本数据类型中,char是U ...

  5. myeclipse连接mysql生成数据表时中文字符乱码或问号(解决方法)

    myeclipse连接mysql生成数据表时中文字符乱码或问号(解决方法) 参考文章: (1)myeclipse连接mysql生成数据表时中文字符乱码或问号(解决方法) (2)https://www. ...

  6. 解决读取数据库里面中文字符乱码的问题

    最近做项目过程中要从数据库中读取一些字段,将这些字段先用实体类封装好,然后在其他java主程序中调用该字段进行匹配,奈何我操作了好几遍,总是显示数据库中中文字符乱码.数据库中样式如图1所示. 图1 数 ...

  7. 用 Zabbix 监控值统计每个月触发器告警次数

    场景模拟: 知名企业A公司的运维人员小智,想统计一下每个月发生的告警数量,于是他去查询数据库表alerts告警通知表,但是他发现界面上出现的一些问题(触发器生效),没有记录到alerts表中.因为只有 ...

  8. SpringMVC项目中中文字符乱码问题及解决办法总结(非专业最优解决办法) -- ajax传值乱码; request.getParameter()乱码;

    SpringMVC项目中中文字符乱码问题及解决办法总结(非专业最优解决办法) -- ajax传值乱码; request.getParameter()乱码; 参考文章: (1)SpringMVC项目中中 ...

  9. Javascript 中 atob 方法解码中文字符乱码问题

    解决 Javascript 中 atob 方法解码中文字符乱码问题 由于一些网络通讯协议的限制,你必须使用 window.btoa() 方法对原数据进行编码后,才能进行发送.接收方使用相当于 wind ...

最新文章

  1. 一文详述Attention最新进展
  2. eclipse下新建py文件的辅助信息设置
  3. 【KVM系列03】KVM的I/O 全虚拟化和准虚拟化
  4. OpenCV放大图像:单输出
  5. ORA-01033: ORACLE initialization or shutdown in progress
  6. 露天影院网站_为什么要在露天工作?
  7. dataframe格式的数据处理
  8. 带有Upida/Jeneva.Net的ASP.NET MVC单页应用程序(后端)
  9. Hive之 hive的三种使用方式(CLI、HWI、Thrift)
  10. 跨境电商ERP有哪些?
  11. view函数_利用Adams/view搭建整车动力学模型
  12. 在一个行业做,一定要打造自己的品牌IP
  13. SQL Server 2008数据库快照技术(八)
  14. html 在线图片压缩,JS HTML图片显示Canvas 压缩功能
  15. cobar mysql部署方案_阿里巴巴分布式数据库解决方案——Cobar中间件配置详解 (转)...
  16. “跨综服”——跨境电商综合服务合规化走向台前
  17. web显示csv_10 种最流行的 Web 挖掘工具!
  18. excel2010 向程序发送命令时出现问题
  19. 如何刷新bios?在windows系统上刷新bios的方法
  20. 润乾报表html图片自适应,润乾报表

热门文章

  1. i5 9400f和i9 9900kf 参数对比哪个好
  2. 游戏时光psn服务器维护,「VG晚报」哭了,PSN终于能改名了!
  3. YDOOK星空导航正式上线!
  4. String类重写的equals方法
  5. Hexo个人博客搭建历程
  6. EV: 招商手机客户端功能
  7. 计算机主板的安装与拆卸,Intel篇:如何拆除和存放CPU
  8. 主流浏览器及四大内核
  9. (八)ElasticSearch之文档映射
  10. 写给三岁娃的石头剪刀布游戏