解決zabbix監(jiān)控因php問題導(dǎo)致圖形界面中文亂碼方法
解決因編譯php中添加了-enable-gd-jis-conv選項(xiàng)導(dǎo)致Zabbix監(jiān)控系統(tǒng)圖形界面中文亂碼問題
現(xiàn)象:
php編譯參數(shù):
說明:
如果PHP編譯時(shí)啟用–enable-gd-jis-conv選項(xiàng)的話,那么非ASCII字符(例如漢字、拼音、希臘文和箭頭) 會(huì)被當(dāng)成EUC-JP編碼 (phpinfo中美其名曰“支持JIS編碼的字體”), 從而導(dǎo)致亂碼(由于西文字體沒有假名或漢字,一般表現(xiàn)為全部是方框)。imagettftext()函數(shù)是將字符寫入到圖片的函數(shù),這個(gè)問題就是由這個(gè)函數(shù)導(dǎo)致的。
在網(wǎng)上查了好幾篇教程不全,以下為本人生產(chǎn)實(shí)踐操作,在zabbix3.2版本,php7.2版本
方法一:
重新編譯安裝php,禁用-enable-gd-jis-conv選項(xiàng),這種方式代價(jià)較大;
方法二:
因生產(chǎn)環(huán)境php使用年限比較久,不知道是否有應(yīng)用在使用,不敢輕易重新編譯,故按照方法二解決
第一步:
在/etc/nginx/html/zabbix/include
中修改graphs.inc.php
文件(先備份)
cp graphs.inc.php graphs.inc.php.bak
vim graphs.inc.php #在末尾添加如下代碼
function to_entities($string){ $len = strlen($string); $buf = ""; for($i = 0; $i < $len; $i++){ if (ord($string[$i]) <= 127){ $buf .= $string[$i]; } else if (ord ($string[$i]) <192){ //unexpected 2nd, 3rd or 4th byte $buf .= "?"; } else if (ord ($string[$i]) <224){ //first byte of 2-byte seq $buf .= sprintf("&#%d;", ((ord($string[$i + 0]) & 31) << 6) + (ord($string[$i + 1]) & 63) ); $i += 1; } else if (ord ($string[$i]) <240){ //first byte of 3-byte seq $buf .= sprintf("&#%d;", ((ord($string[$i + 0]) & 15) << 12) + ((ord($string[$i + 1]) & 63) << 6) + (ord($string[$i + 2]) & 63) ); $i += 2; } else { //first byte of 4-byte seq $buf .= sprintf("&#%d;", ((ord($string[$i + 0]) & 7) << 18) + ((ord($string[$i + 1]) & 63) << 12) + ((ord($string[$i + 2]) & 63) << 6) + (ord($string[$i + 3]) & 63) ); $i += 3; } } return $buf; }
第二步:
找到該文件中imagettftext()函數(shù)(一共三處)
將最后一個(gè)參數(shù)$string修改為to_entities($string)
,三處都需要修改,無需重啟,刷新即可解決問題。
總結(jié)
以上所述是小編給大家介紹的解決zabbix監(jiān)控因php問題導(dǎo)致圖形界面中文亂碼方法,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
相關(guān)文章
zabbix 4.04 安裝文檔教程詳解(基于CentOS 7.6)
這篇文章主要介紹了基于CentOS 7.6系統(tǒng)zabbix 4.04 安裝文檔,本文分步驟給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下2020-01-01zabbix執(zhí)行遠(yuǎn)程主機(jī)的腳本或指令詳解
這篇文章主要介紹了在zabbix執(zhí)行遠(yuǎn)程主機(jī)的腳本或指令,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-03-03Zabbix自定義腳本監(jiān)控nginx以及微信告警的全過程
zabbix是一個(gè)基于WEB界面的提供分布式系統(tǒng)監(jiān)視以及網(wǎng)絡(luò)監(jiān)視功能的企業(yè)級(jí)的開源解決方案,下面這篇文章主要給大家介紹了關(guān)于Zabbix自定義腳本監(jiān)控nginx以及微信告警的相關(guān)資料,需要的朋友可以參考下2022-04-04Zabbix3.4監(jiān)控mongodb數(shù)據(jù)庫狀態(tài)的方法
mongodb有db.serverStatus()命令,可以查看mongodb的運(yùn)行狀態(tài),那么zabbix就可以調(diào)用這個(gè)命令實(shí)現(xiàn)mongodb的監(jiān)控。這篇文章主要介紹了Zabbix3.4監(jiān)控mongodb狀態(tài)的方法,需要的朋友可以參考下2019-12-12解決zabbix server is running | No.的方法
Zabbix可以監(jiān)控網(wǎng)絡(luò)和服務(wù)的監(jiān)控狀況,Zabbix利用靈活的告警機(jī)制,允許用戶對(duì)事件發(fā)送基于Email的告警。但最近在使用的時(shí)候遇到一個(gè)問題。這篇文章主要給大家介紹了如何解決zabbix server is running | No.的方法,有需要的朋友們可以參考借鑒,下面來一起看看吧。2016-12-12zabbix 通過 agent 監(jiān)控進(jìn)程、端口的詳細(xì)過程
這篇文章主要介紹了zabbix 通過 agent 監(jiān)控進(jìn)程、端口的全過程,文中提到了對(duì)mysql進(jìn)程的監(jiān)控配置及創(chuàng)建觸發(fā)器的詳細(xì)過程,需要的朋友可以參考下2021-10-10獲取zabbix上所有主機(jī)的IP和主機(jī)名的實(shí)例代碼
zabbix([`zæbiks])是一個(gè)基于WEB界面的提供分布式系統(tǒng)監(jiān)視以及網(wǎng)絡(luò)監(jiān)視功能的企業(yè)級(jí)的開源解決方案。這篇文章主要介紹了獲取zabbix上所有主機(jī)的IP和主機(jī)名,需要的朋友可以參考下2019-10-10