设为首页 收藏本站
查看: 2092|回复: 0

[经验分享] Zabbix监控(十一):解决中文字体显示乱码问题

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-11-21 15:26:46 | 显示全部楼层 |阅读模式
本帖最后由 23rewr 于 2014-11-21 15:30 编辑

问题: 在WEB端上中文会显示为问号,当创建一个GRAPH,名字中带中文时会报错:
(latin1_swedish_ci,IMPLICIT)  and (utf8_general_ci,COERCIBLE) for operation '='    意思是使用了两种不同的字符集(latin1和utf8)

1、方法一:网上找到最多也就是添加字体文件方法
    将windows系统中的字体文件(控制面板->字体->楷体simkai.ttf)拷贝到/var/www/html/zabbix/fonts/
    修改服务端字体配置
1
2
3
[iyunv@zabbix ~]# vi /var/www/html/zabbix/include/defines.inc.php
  :%s/DejaVuSans/simkai/g
  :wq



    可能是网上的攻略都是低版本原因,我的2.2.5版本就是不行……失败,但是可以解决MAP图中的中文显示问题,因此这一步还是要操作的。

2、方法二:修改数据库默认字符集
    关于默认字符集,可参考链接了解:
http://www.iyunv.com/thread-32515-1-1.html
    查看数据库默认字符集:
1
2
[iyunv@zabbix ~]# mysql -uroot -p123456
mysql>show create database zabbix;



wKiom1RtYxmANCUQAADZSFuE3sg362.jpg
    查看字符集值:
1
mysql>show variables like 'collation%';



wKioL1RtY5HT5GQpAADUxHBp38A611.jpg
1
mysql>show variables like 'character%';



wKiom1RtYxmh9F9SAAFO_-XrlCM600.jpg
    修改以下项:
1
2
3
4
5
6
7
8
mysql>set character_set_client =utf8;
mysql>set character_set_connection=utf8;
mysql>set character_set_database =utf8;
mysql>set character_set_results =utf8;
mysql>set character_set_server =utf8;
mysql>set character_set_system =utf8;
mysql>SET collation_server = utf8_general_ci;
mysql>SET collation_database = utf8_general_ci;



    再次检查字符集值:

wKioL1RtY5GAwMgqAAIVWGsWIGw642.jpg
    修改数据库默认字符集:
1
2
mysql>ALTER DATABASE `zabbix` DEFAULT CHARACTER SET utf8;
mysql>show create database zabbix;



wKiom1RtYxmx0ZegAADk_kL_Hs8158.jpg
    显示utf8了,但还是不行,已存在的数据表依然使用之前的字符集,干脆用方法三重建数据库。
    参考:http://www.iyunv.com/thread-32516-1-1.html
    虽然还是失败了,但找到问题根源了。


    网上说另一种方法是修改mysql配置文件/etc/my.cnf中的默认字符集:
1
2
[mysqld]
default-character-set=utf8



    但是mysqld重启容易出错,启动不了,要删除sock甚至kill ID再启动。

3、方法三:重建zabbix数据库
    既然问题根源在于默认字符集,因此最好在创建数据库和导入数据库时就设置好。
    删除数据库:
1
2
[iyunv@zabbix ~]# mysql -uroot -p123456
mysql>dorp database zabbix;



    创建数据库:
1
2
3
4
mysql>create database zabbix  character set utf8;
mysql>grant all on zabbix.* to zabbix@localhost identified by 'zabbix';
mysql>flush privileges;
mysql>quit



    导入数据:
1
2
3
4
5
6
[iyunv@zabbix ~]# cd
[iyunv@zabbix ~]# vi database/mysql/schema.sql
:%s/ENGINE=InnoDB/ENGINE=InnoDB CHARACTER SET utf8/g
[iyunv@zabbix ~]# mysql -uzabbix -pzabbix -hlocalhost zabbix < database/mysql/schema.sql
[iyunv@zabbix ~]# mysql -uzabbix -pzabbix -hlocalhost zabbix < database/mysql/images.sql
[iyunv@zabbix ~]# mysql -uzabbix -pzabbix -hlocalhost zabbix < database/mysql/data.sql



    说明:这里主要做的两个动作就是给数据库和表都指定了默认字符集使用utf8,这两个设置已经在我的《Zabbix安装》博文中加上了,按我的文档安装省去了重新配置监控的痛苦。

4、查看结果
    刷新WEB后可以看到以前添加的监控都没了,只剩下默认的Zabbix server监控对象了,随便创建一个GRAPH,名字中输入中文,保存,成功显示中文;另外自动监控网卡也能正常显示中文了。
wKioL1RtY5LyMW3LAANR-i8Vlqg860.jpg

    zabbix自带的自动监控网卡模板是zabbix agentd程序执行的,可以显示中文;但是自动监控服务的脚本扫描的还是不能显示中文,因为windows系统的dos不支持utf8。
wKiom1RtYxrgZ9JrAAQwfCVKfUw492.jpg
    说明:使用自动监控服务的脚本,可以把显示中文的ITEMS禁用掉,手动添加ITEMS,如:service_state[主动防御]。


5、触发器不支持中文
    问题又来了,创建触发器时出错,Function不支持中文字符,无法创建触发器: wKioL1RtY5LzYKTWAAF2BuY-IYo712.jpg

    解决方法:
    Windows的服务有两个名称,我们在“服务”中看到的是显示名称,即别名,服务的真实名称如下:
wKiom1RtYxrx53MBAASA3tLFf0s561.jpg

    给监控主机添加Items,Key使用服务的真实名称(全英文):
wKioL1RtY5OiXdccAAHA1i6lLOo389.jpg

    创建触发器,由于真实服务名称不带中文,触发器成功创建:
wKiom1RtYxuC2kC4AAIjx7MWh7g436.jpg

    还可以创建动作,当服务没有启动时执行远程命令启动服务:
wKioL1RtY5TQ3OfAAAFw-Bpc44A214.jpg

    设置动作条件
wKiom1RtYxyBiAtFAAFvuRm5wK4771.jpg

    设置动作执行的远程命令:
wKioL1RtY5Ti-djIAAKuqv2aYCM181.jpg


6、终级解决方法:修改注册表
客户端查看带中文的服务:
wKiom1RtmPrDvgDbAAMP8vtATUg188.jpg


    运行regedit打开注册表,找到注册表保存系统服务的注册表路径:
1
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services



    按服务的“服务名称”找到服务目录:
wKioL1RtmXPQ4gM0AAKLVuhWm3Y692.jpg

    说明:有些系统服务的DisplayName值是上图中的参数形式,意思是取值自vmms.exe文件中的第10行内容。
    不用管它,直接修改数值,输入一个易懂的英文服务名称,注意不要和别的服务重名了:
wKioL1RtmXOzzWt1AAIovroDYqE257.jpg

    确定、关闭注册表编辑器、重启机器后生效,这样用自动监控服务脚本就完全没问题了,再配置Action动作来实现自动恢复关键服务,实现自动化运维。
wKioL1RtmXPQ4gM0AAKLVuhWm3Y692.jpg
wKiom1RtmPrDvgDbAAMP8vtATUg188.jpg
wKioL1RtY5Ti-djIAAKuqv2aYCM181.jpg
wKiom1RtYxyBiAtFAAFvuRm5wK4771.jpg
wKioL1RtY5TQ3OfAAAFw-Bpc44A214.jpg
wKiom1RtYxuC2kC4AAIjx7MWh7g436.jpg
wKioL1RtY5OiXdccAAHA1i6lLOo389.jpg
wKiom1RtYxrx53MBAASA3tLFf0s561.jpg
wKioL1RtY5LzYKTWAAF2BuY-IYo712.jpg
wKiom1RtYxrgZ9JrAAQwfCVKfUw492.jpg
wKioL1RtY5LyMW3LAANR-i8Vlqg860.jpg
wKiom1RtYxmx0ZegAADk_kL_Hs8158.jpg
wKioL1RtY5GAwMgqAAIVWGsWIGw642.jpg
wKiom1RtYxmh9F9SAAFO_-XrlCM600.jpg
wKioL1RtY5HT5GQpAADUxHBp38A611.jpg
wKiom1RtYxmANCUQAADZSFuE3sg362.jpg

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-32514-1-1.html 上篇帖子: Zabbix监控(九):自动监控windows服务 下篇帖子: Zabbix安装(十):监控windows进程
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表