在今天下午实验的时候部署zabbix3.2.1版本,安装完成后使用的时候突然发现系统选择里的语言无法更换为中文,它提示我中文无法切换。如下图所示:
解决的方法由下文展开?
因为之前安装配置过很多次,从来没有遇到过这个问题。突然就说中文复发支持。我的解决步骤和思路如下:
1.首先它给出了提示“you are not able to choose some of the languages, because locates for them are not installed on the web server”。按照以往的惯例,首先我将上述内容进行了百度,得到的方案有以下两个:
(1)第一种认为是/var/www/html/zabbix/include/locales.inc.php的文件中没有打开支持中文:
'en_GB' => ['name' => _('English (en_GB)'), 'display' => true],
'en_US' => ['name' => _('English (en_US)'), 'display' => false],
'bg_BG' => ['name' => _('Bulgarian (bg_BG)'), 'display' => false],
'zh_CN' => ['name' => _('Chinese (zh_CN)'), 'display' => true],
'zh_TW' => ['name' => _('Chinese (zh_TW)'), 'display' => false],
'cs_CZ' => ['name' => _('Czech (cs_CZ)'), 'display' => false],
'nl_NL' => ['name' => _('Dutch (nl_NL)'), 'display' => false],
可以看到zh_CN是true的状态,当时我的配置中也是打开的状态,所以应该不是这个问题导致的,pass!
(2)在zabbix的官方网站中的官方文档中进行查看,果然找到了需要的内容:
看这个内容感觉应该是字符集的问题,这又引发了思路:
1.我应该安装完整的中文支持(yum groupinstall即可);
[root@e004935f81df include]# yum groupinstall "chinese-support" -y
安装完成后使用上述图片中的命令查看系统上安装的字符集,结果发现还是没有中文字符集:
[root@e004935f81df include]# locale -a
C
POSIX
en_AG
en_AG.utf8
en_AU
en_AU.iso88591
en_AU.utf8
en_BW
en_BW.iso88591
en_BW.utf8
en_CA
en_CA.iso88591
en_CA.utf8
en_DK
en_DK.iso88591
en_DK.utf8
en_GB
en_GB.iso88591
en_GB.iso885915
en_GB.utf8
en_HK
en_HK.iso88591
en_HK.utf8
en_IE
en_IE.iso88591
en_IE.iso885915@euro
en_IE.utf8
en_IE@euro
en_IN
en_IN.utf8
en_NG
en_NG.utf8
en_NZ
en_NZ.iso88591
en_NZ.utf8
en_PH
en_PH.iso88591
en_PH.utf8
en_SG
en_SG.iso88591
en_SG.utf8
en_US
en_US.iso88591
en_US.iso885915
en_US.utf8
en_ZA
en_ZA.iso88591
en_ZA.utf8
en_ZW
en_ZW.iso88591
en_ZW.utf8
no_NO.iso88591
no_NO.utf8
vi_VN.tcvn
于是认为可能是需要重新启动系统让中文生效,重新启动服务器后查看,还是没有中文字符集。
2.此时其实已经陷入一个自我循环当中,总是觉得其实该做的事情都已经处理过了。问了下相关群友,可能是php的配置问题,但是个人觉得如果是php的问题,则在zabbix初始化检测中都无法通过,所以排除了这个可能,还有群友建议是不是mysql的编码格式问题,查看后发现mysql的编码格式是utf8。
3.最终还是坚持官方的看法, 应该是字符集的缺失,那么应该绕开其他因素,直接解决字符集缺失的问题,所以在搜索了如何安装中文字符集之后给出了如下的解决方案:
(1)在其他可以通过locale -a列出中文字符集的机器上找到对应的安装包,在目录/usr/share/i18n/charmaps中有很多的字符集:
[root@b0fc43d2e0ad charmaps]# ls
ANSI_X3.110-1983.gz DIN_66003.gz GB_1988-80.gz IBM275.gz IBM869.gz ISO-8859-6.gz JIS_C6229-1984-HAND.gz NF_Z_62-010.gz
ANSI_X3.4-1968.gz DS_2089.gz GEORGIAN-ACADEMY.gz IBM277.gz IBM870.gz ISO-8859-7.gz JIS_C6229-1984-KANA.gz NF_Z_62-010_1973.gz
ARMSCII-8.gz EBCDIC-AT-DE-A.gz GEORGIAN-PS.gz IBM278.gz IBM871.gz ISO-8859-8.gz JIS_X0201.gz NS_4551-1.gz
ASMO_449.gz EBCDIC-AT-DE.gz GOST_19768-74.gz IBM280.gz IBM874.gz ISO-8859-9.gz JOHAB.gz NS_4551-2.gz
BIG5-HKSCS.gz EBCDIC-CA-FR.gz GREEK-CCITT.gz IBM281.gz IBM875.gz ISO-8859-9E.gz JUS_I.B1.002.gz PT.gz
BIG5.gz EBCDIC-DK-NO-A.gz GREEK7-OLD.gz IBM284.gz IBM880.gz ISO-IR-197.gz JUS_I.B1.003-MAC.gz PT154.gz
BRF.gz EBCDIC-DK-NO.gz GREEK7.gz IBM285.gz IBM891.gz ISO-IR-209.gz JUS_I.B1.003-SERB.gz PT2.gz
BS_4730.gz EBCDIC-ES-A.gz HP-GREEK8.gz IBM290.gz IBM903.gz ISO-IR-90.gz KOI-8.gz RK1048.gz
BS_VIEWDATA.gz EBCDIC-ES-S.gz HP-ROMAN8.gz IBM297.gz IBM904.gz ISO_10367-BOX.gz KOI8-R.gz SAMI-WS2.gz
CP10007.gz EBCDIC-ES.gz HP-ROMAN9.gz IBM420.gz IBM905.gz ISO_10646.gz KOI8-RU.gz SAMI.gz
CP1125.gz EBCDIC-FI-SE-A.gz HP-THAI8.gz IBM423.gz IBM918.gz ISO_11548-1.gz KOI8-T.gz SEN_850200_B.gz
CP1250.gz EBCDIC-FI-SE.gz HP-TURKISH8.gz IBM424.gz IBM922.gz ISO_2033-1983.gz KOI8-U.gz SEN_850200_C.gz
CP1251.gz EBCDIC-FR.gz IBM037.gz IBM437.gz IEC_P27-1.gz ISO_5427-EXT.gz KSC5636.gz SHIFT_JIS.gz
CP1252.gz EBCDIC-IS-FRISS.gz IBM038.gz IBM500.gz INIS-8.gz ISO_5427.gz LATIN-GREEK-1.gz SHIFT_JISX0213.gz
CP1253.gz EBCDIC-IT.gz IBM1004.gz IBM850.gz INIS-CYRILLIC.gz ISO_5428.gz LATIN-GREEK.gz T.101-G2.gz
CP1254.gz EBCDIC-PT.gz IBM1026.gz IBM851.gz INIS.gz ISO_646.BASIC.gz MAC-CENTRALEUROPE.gz T.61-7BIT.gz
CP1255.gz EBCDIC-UK.gz IBM1047.gz IBM852.gz INVARIANT.gz ISO_646.IRV.gz MAC-CYRILLIC.gz T.61-8BIT.gz
CP1256.gz EBCDIC-US.gz IBM1124.gz IBM855.gz ISIRI-3342.gz ISO_6937-2-25.gz MAC-IS.gz TCVN5712-1.gz
CP1257.gz ECMA-CYRILLIC.gz IBM1129.gz IBM856.gz ISO-8859-1.gz ISO_6937-2-ADD.gz MAC-SAMI.gz TIS-620.gz
CP1258.gz ES.gz IBM1132.gz IBM857.gz ISO-8859-10.gz ISO_6937.gz MAC-UK.gz TSCII.gz
CP737.gz ES2.gz IBM1133.gz IBM860.gz ISO-8859-11.gz ISO_8859-1,GL.gz MACINTOSH.gz UTF-8.gz
CP775.gz EUC-JISX0213.gz IBM1160.gz IBM861.gz ISO-8859-13.gz ISO_8859-SUPP.gz MIK.gz VIDEOTEX-SUPPL.gz
CP949.gz EUC-JP-MS.gz IBM1161.gz IBM862.gz ISO-8859-14.gz IT.gz MSZ_7795.3.gz VISCII.gz
CSA_Z243.4-1985-1.gz EUC-JP.gz IBM1162.gz IBM863.gz ISO-8859-15.gz JIS_C6220-1969-JP.gz NATS-DANO-ADD.gz WINDOWS-31J.gz
CSA_Z243.4-1985-2.gz EUC-KR.gz IBM1163.gz IBM864.gz ISO-8859-16.gz JIS_C6220-1969-RO.gz NATS-DANO.gz
CSA_Z243.4-1985-GR.gz EUC-TW.gz IBM1164.gz IBM865.gz ISO-8859-2.gz JIS_C6229-1984-A.gz NATS-SEFI-ADD.gz
CSN_369103.gz GB18030.gz IBM256.gz IBM866.gz ISO-8859-3.gz JIS_C6229-1984-B-ADD.gz NATS-SEFI.gz
CWI.gz GB2312.gz IBM273.gz IBM866NAV.gz ISO-8859-4.gz JIS_C6229-1984-B.gz NC_NC00-10.gz
DEC-MCS.gz GBK.gz IBM274.gz IBM868.gz ISO-8859-5.gz JIS_C6229-1984-HAND-ADD.gz NEXTSTEP.gz
中文字符集对应的是GB2312.gz安装包:
[root@b0fc43d2e0ad charmaps]# ll GB2312.gz
-rw-r--r-- 1 root root 44796 Mar 23 2016 GB2312.gz
将其拷贝到当前的机器上,然后安装该字符集,安装命令如下:
[root@e004935f81df include]# gunzip GB2312.gz
[root@e004935f81df include]# localedef -f GB2312 -i zh_CN /usr/lib/locale/zh_CN.GB2312
安装完成后查看系统的字符集:
[root@e004935f81df include]# locale -a
C
POSIX
en_AG
en_AG.utf8
en_AU
en_AU.iso88591
en_AU.utf8
en_BW
en_BW.iso88591
en_BW.utf8
en_CA
en_CA.iso88591
en_CA.utf8
en_DK
en_DK.iso88591
en_DK.utf8
en_GB
en_GB.iso88591
en_GB.iso885915
en_GB.utf8
en_HK
en_HK.iso88591
en_HK.utf8
en_IE
en_IE.iso88591
en_IE.iso885915@euro
en_IE.utf8
en_IE@euro
en_IN
en_IN.utf8
en_NG
en_NG.utf8
en_NZ
en_NZ.iso88591
en_NZ.utf8
en_PH
en_PH.iso88591
en_PH.utf8
en_SG
en_SG.iso88591
en_SG.utf8
en_US
en_US.iso88591
en_US.iso885915
en_US.utf8
en_ZA
en_ZA.iso88591
en_ZA.utf8
en_ZW
en_ZW.iso88591
en_ZW.utf8
no_NO.iso88591
no_NO.utf8
vi_VN.tcvn
zh_CN.GB2312
可以看到最后一个就是我们的zh_CN,系统支持了中文字符集之后再次登录zabbix查看时候可以切换中文主题:
至此,问题终于解决。
(1)为什么之前的zabbix安装没有遇到这个问题?
之前是在虚拟机或者真机上安装,所以相关组件安装齐全,但是此次是在docker中安装,本身的image可能较小,没有安装中文字符集。
(2)盘查问题的思路:
根据提示的错误信息在搜索引擎上进行查找,你遇到的问题可能别人也遇到过;
继续缩小专业圈,在qq群或者微信群询问相关人员,毕竟是专业人士,而且卧虎藏龙,一定有人可以给出很好的思路;
最关键的是本身要有清晰的思路和对待问题的平和态度,能够从各个角度去排查问题,坚持不懈一定可以找到答案;
不要固化思维,也许跳出常规思维,才会发现问题可能只是一个很细节的失误;
多进行总结,把顽固问题记录下来共享出去,可以帮到更多的人,而且这个过程也可以加深自己方法论的塑造。
以上与君共勉!