PDA

View Full Version : Кодировка в разделах Zabbix 1.8


Kenny
31-12-2009, 05:42
Доброго времени суток. С наступающим новым годом. Были проблемы как и у многих с кодировкой в разных разделах. Основную часть решил переустановкой Linux с чистого листа с кодировкой UTF-8. Осталась одна проблема в разделе "Отчет о доступности". Кто знает, подксажите где подправить и что?

tedy1
11-01-2010, 10:11
Доброго времени суток. С наступающим новым годом. Были проблемы как и у многих с кодировкой в разных разделах. Основную часть решил переустановкой linux с чистого листа с кодировкой utf-8. Осталась одна проблема в разделе "Отчет о доступности". Кто знает, подксажите где подправить и что?

Как решить, чтобы отображались на русском, не знаю, я сделал следующее:
1). Запоминаешь в каких графиках некорректно отображается...., заходишь в профиль своего пользователя и выбираешь по умолчанию английский язык, заходишь опять и смотришь какие графики отображались некорректно и записываешь название на английском.
2). Идешь по пути: ..../public_html/include/locales/en_gd.inc.php и ищешь эти значения. После этого заходишь в ..../public_html/include/locales/ru_ru.inc.php и тут меняешь эти значения.
Пример:
en_gd.inc.php:
'S_MIN_SMALL'=> 'min',
'S_AVG_SMALL'=> 'avg',
'S_MAX_SMALL'=> 'max',

ru_ru.inc.php:
'S_MIN_SMALL'=> 'меняем только это значения',
'S_AVG_SMALL'=> 'меняем только это значения',
'S_MAX_SMALL'=> 'меняем только это значения',
Вот так:
'S_MIN_SMALL'=> 'min',
'S_AVG_SMALL'=> 'avg',
'S_MAX_SMALL'=> 'max',

И всё в графиках будет отображаться на английском, будет понятно.

Если кому-то удалось победить, чтобы было и на русском в графиках, отпишитесь как?

Kenny
11-01-2010, 10:40
Спасибо за ответ, я так и предполагал решить данную проблему. Но хотелось бы знать, есть ли еще какие методы у кого? Вообще кто-нибудь кроме нас сталкивался с этим еще?

Firm
11-01-2010, 11:35
На русском всё отображается нормально. CentOS 5.3, apache+php штатные.

Kenny
11-01-2010, 11:47
На русском всё отображается нормально. CentOS 5.3, apache+php штатные.
Я и не спорю, что у кого-то и нормально под CentOS 5.3. У меня SLES 11 + apache+php и не все так удачно. Вот собсн зашел на форум, чтобы помогли.

tedy1
11-01-2010, 11:53
На русском всё отображается нормально. CentOS 5.3, apache+php штатные.

У меня Slackware 12.2 + mysql

История в графиках отображается некорректно на русском.

Firm
11-01-2010, 12:03
Различия в базах данных влиять не должны. Надо смотреть в сторону связки php/gd. Где-то там проблема.

tedy1
12-01-2010, 05:54
Вот такие ошибки выдаёт веб при открытии графика, где некорректно отображается русс. шрифт:

[Tue Jan 12 10:23:32 2010] [error] [client 10.10.10.11] PHP Warning: imagettfbbox() [<a href='function.imagettfbbox'>functio
n.imagettfbbox</a>]: any2eucjp(): invalid code in input string in /home/zabbix/public_html/include/graphs.inc.php on line 1242
, referer: https://10.10.10.10/zabbix/charts.php?sid=4e146e9446fc3781
и т.д.

[Tue Jan 12 10:23:32 2010] [error] [client 10.10.10.11] PHP Warning: imagettftext() [<a href='function.imagettftext'>functio
n.imagettftext</a>]: any2eucjp(): invalid code in input string in /home/zabbix/public_html/include/graphs.inc.php on line 1200
, referer: https://10.10.10.10/zabbix/charts.php?sid=4e146e9446fc3781
и т.д.

Есть у кого мысли, что исправить??????

dotneft
12-01-2010, 07:25
версия php то какая?

tedy1
12-01-2010, 07:39
версия php то какая?

PHP 5.2.3 (cli) (built: Jun 29 2007 00:24:51)

dotneft
12-01-2010, 08:00
ух какая старая) попробуйте обновить.

Firm
12-01-2010, 15:07
php-mbstring стоит пакет? Или, если из исходников собиралось, то было ли включено --enable-mbstring?

dotneft
12-01-2010, 15:35
php-mbstring стоит пакет? Или, если из исходников собиралось, то было ли включено --enable-mbstring?

насколько я помнб, если нет функции mbstring, то и график не будет отображаться весь.

Firm
13-01-2010, 09:49
насколько я помнб, если нет функции mbstring, то и график не будет отображаться весь.
Отключил mbstring - графики как рисовались, так и рисуются. Переключил на русский интерфейс - всё работает.

P.S. Почему-то форум проставляет кодировку ISO-8859-1 в ответах сервера. Непорядок :)

Firm
13-01-2010, 09:57
Kenny, tedy1.

Что у вас за значения mbstring.* при просмотре через phpinfo()? У меня так.

tedy1
13-01-2010, 11:01
mbstring.script_encoding no value

tedy1
13-01-2010, 11:48
kenny, tedy1.

Что у вас за значения mbstring.* при просмотре через phpinfo()? у меня так.

Что подкрутить?

Firm
13-01-2010, 13:47
Что подкрутить?
Попробуйте
mbstring.internal_encoding = UTF-8

tedy1
14-01-2010, 04:18
Попробуйте
mbstring.internal_encoding = UTF-8
Directive Local Value Master Value
mbstring.internal_encoding UTF-8 UTF-8

Не помогло, отоброжает тоже самое на графиках (прямоугольники, вместо русского текста).

tedy1
14-01-2010, 07:33
вот:
2445

Firm
14-01-2010, 08:37
Так, тогда ещё предложения:
1. Попробуйте сменить значение на ISO-8859-1
2. Какая локаль стоит при запуске php? Т.е. если это модуль апача, то какая у него локаль в скрипте запуска, а если через cgi, то какая при отработке там.
3. Посмотрите, что у вас со шрифтами, с наличием русских кодовых страниц в них.

Kenny
14-01-2010, 10:55
Kenny, tedy1.

Что у вас за значения mbstring.* при просмотре через phpinfo()? У меня так.

Вот я что у себя нашел (уже с исправлением на UTF-8) :)
mbstring

Multibyte Support => enabled
Multibyte string engine => libmbfl
Multibyte (japanese) regex support => enabled
Multibyte regex (oniguruma) version => 4.4.4
Multibyte regex (oniguruma) backtrack check => On

mbstring extension makes use of "streamable kanji code filter and converter", which is distributed under the GNU Lesser General Public License version 2.1.

Directive => Local Value => Master Value
mbstring.detect_order => no value => no value
mbstring.encoding_translation => Off => Off
mbstring.func_overload => 0 => 0
mbstring.http_input => pass => pass
mbstring.http_output => pass => pass
mbstring.internal_encoding => UTF-8 => UTF-8
mbstring.language => neutral => neutral
mbstring.strict_detection => Off => Off
mbstring.substitute_character => no value => no value

tedy1
14-01-2010, 11:20
1. Попробуйте сменить значение на ISO-8859-1

--Не помогает то же самое, русский шрифт не отображается в графиках.

2. Какая локаль стоит при запуске php? Т.е. если это модуль апача, то какая у него локаль в скрипте запуска, а если через cgi, то какая при отработке там.

--Как это можно посмотреть или где?

3. Посмотрите, что у вас со шрифтами, с наличием русских кодовых страниц в них.

--Как посмотреть? Русский у меня отображается, страницы ведь я вижу, только в графиках (русс.) неотображается.

Kenny
14-01-2010, 11:48
1. Попробуйте сменить значение на ISO-8859-1

--Не помогает то же самое, русский шрифт не отображается в графиках.

2. Какая локаль стоит при запуске php? Т.е. если это модуль апача, то какая у него локаль в скрипте запуска, а если через cgi, то какая при отработке там.

--Как это можно посмотреть или где?

3. Посмотрите, что у вас со шрифтами, с наличием русских кодовых страниц в них.

--Как посмотреть? Русский у меня отображается, страницы ведь я вижу, только в графиках (русс.) неотображается.

Вот! Нашел на форуме пофиксенный баг там..ну неважно... вот по этой ссылке http://www.zabbix.com/developers.php взял архив, из него обновил frontends шрифты встали на свои места, tedy1, попробуйте заменить может вылечит вашу проблему тоже.

tedy1
14-01-2010, 12:28
Вот! Нашел на форуме пофиксенный баг там..ну неважно... вот по этой ссылке http://www.zabbix.com/developers.php взял архив, из него обновил frontends шрифты встали на свои места, tedy1, попробуйте заменить может вылечит вашу проблему тоже.

Pre-1.8 (stable) 9309 поставил Frontends не помогло, тоже самое...

Kenny
14-01-2010, 12:44
Pre-1.8 (stable) 9309 поставил Frontends не помогло, тоже самое...

судя по скриншу твоему у тебя проблема глубже с кодировкой, у меня была такая же..я возился менял настройки кодировок, где только можно...в итоге как и написал в первом посте я переставил linux с чистого листа с настройками языка по умолчанию..и соответственно кодировкой и у меня оставался один косяк...ну вот frontend из архива 1,9 вылечил. Попробуй глянь, что locale выдаст?

tedy1
14-01-2010, 13:19
судя по скриншу твоему у тебя проблема глубже с кодировкой, у меня была такая же..я возился менял настройки кодировок, где только можно...в итоге как и написал в первом посте я переставил linux с чистого листа с настройками языка по умолчанию..и соответственно кодировкой и у меня оставался один косяк...ну вот frontend из архива 1,9 вылечил. Попробуй глянь, что locale выдаст?

frontend c 1.9 поставил, непомогло....
Вот:
fonts# locale
LANG=en_US
LC_CTYPE="en_US"
LC_NUMERIC="en_US"
LC_TIME="en_US"
LC_COLLATE=C
LC_MONETARY="en_US"
LC_MESSAGES="en_US"
LC_PAPER="en_US"
LC_NAME="en_US"
LC_ADDRESS="en_US"
LC_TELEPHONE="en_US"
LC_MEASUREMENT="en_US"
LC_IDENTIFICATION="en_US"
LC_ALL=

Firm
14-01-2010, 15:03
tedy1,

Странная какая-то локаль. Обычно она зовётся en_US.<что-то там>, скажем, en_US.UTF-8 (либо en_US.utf8). Раньше обычно в системах без поддержки русской локали ставилась 'С' (LANG=C). В зависимости от ОС прописывается в разных файлах в /etc. Сделайте (в случае bash+RH/CentOS) так:
# export LANG=C
# /etc/init.d/httpd restart

Русский язык вы видите, потому что символы отображаются браузером на вашей стороне. А текст на графиках строится (и размещается) на стороне сервера.

Проверьте наличие директории fonts в корне frontend-а Zabbix-а с присутствующим файлом DejaVuSans.ttf и права доступа на него.

tedy1
15-01-2010, 06:50
tedy1,

Странная какая-то локаль. Обычно она зовётся en_US.<что-то там>, скажем, en_US.UTF-8 (либо en_US.utf8). Раньше обычно в системах без поддержки русской локали ставилась 'С' (LANG=C). В зависимости от ОС прописывается в разных файлах в /etc. Сделайте (в случае bash+RH/CentOS) так:
# export LANG=C
# /etc/init.d/httpd restart

Русский язык вы видите, потому что символы отображаются браузером на вашей стороне. А текст на графиках строится (и размещается) на стороне сервера.

Проверьте наличие директории fonts в корне frontend-а Zabbix-а с присутствующим файлом DejaVuSans.ttf и права доступа на него.

Непомогает.

DejaVuSans.ttf - есть.

Firm
15-01-2010, 11:24
Так, тогда вывод 'locale -a' (без кавычек) на pastebin.com или похожий сервис.

tedy1
18-01-2010, 03:34
Так, тогда вывод 'locale -a' (без кавычек) на pastebin.com или похожий сервис.

# locale -a
C
POSIX
aa_DJ
aa_DJ.utf8
aa_ER
aa_ER@saaho
aa_ET
af_ZA
af_ZA.utf8
am_ET
an_ES
an_ES.utf8
ar_AE
ar_AE.utf8
ar_BH
ar_BH.utf8
ar_DZ
ar_DZ.utf8
ar_EG
ar_EG.utf8
ar_IN
ar_IQ
ar_IQ.utf8
ar_JO
ar_JO.utf8
ar_KW
ar_KW.utf8
ar_LB
ar_LB.utf8
ar_LY
ar_LY.utf8
ar_MA
ar_MA.utf8
ar_OM
ar_OM.utf8
ar_QA
ar_QA.utf8
ar_SA
ar_SA.utf8
ar_SD
ar_SD.utf8
ar_SY
ar_SY.utf8
ar_TN
ar_TN.utf8
ar_YE
ar_YE.utf8
as_IN.utf8
ast_ES
ast_ES.utf8
az_AZ.utf8
be_BY
be_BY.utf8
be_BY@latin
ber_DZ
ber_MA
bg_BG
bg_BG.utf8
bn_BD
bn_IN
br_FR
br_FR.utf8
br_FR@euro
bs_BA
bs_BA.utf8
byn_ER
ca_AD
ca_AD.utf8
ca_ES
ca_ES.utf8
ca_ES@euro
ca_FR
ca_FR.utf8
ca_IT
ca_IT.utf8
crh_UA
cs_CZ
cs_CZ.utf8
csb_PL
cy_GB
cy_GB.utf8
da_DK
da_DK.utf8
de_AT
de_AT.utf8
de_AT@euro
de_BE
de_BE.utf8
de_BE@euro
de_CH
de_CH.utf8
de_DE
de_DE.utf8
de_DE@euro
de_LU
de_LU.utf8
de_LU@euro
dz_BT
el_CY
el_CY.utf8
el_GR
el_GR.utf8
en_AU
en_AU.utf8
en_BW
en_BW.utf8
en_CA
en_CA.utf8
en_DK
en_DK.utf8
en_GB
en_GB.utf8
en_HK
en_HK.utf8
en_IE
en_IE.utf8
en_IE@euro
en_IN
en_NG
en_NZ
en_NZ.utf8
en_PH
en_PH.utf8
en_SG
en_SG.utf8
en_US
en_US.utf8
en_ZA
en_ZA.utf8
en_ZW
en_ZW.utf8
es_AR
es_AR.utf8
es_BO
es_BO.utf8
es_CL
es_CL.utf8
es_CO
es_CO.utf8
es_CR
es_CR.utf8
es_DO
es_DO.utf8
es_EC
es_EC.utf8
es_ES
es_ES.utf8
es_ES@euro
es_GT
es_GT.utf8
es_HN
es_HN.utf8
es_MX
es_MX.utf8
es_NI
es_NI.utf8
es_PA
es_PA.utf8
es_PE
es_PE.utf8
es_PR
es_PR.utf8
es_PY
es_PY.utf8
es_SV
es_SV.utf8
es_US
es_US.utf8
es_UY
es_UY.utf8
es_VE
es_VE.utf8
et_EE
et_EE.iso885915
et_EE.utf8
eu_ES
eu_ES.utf8
eu_ES@euro
fa_IR
fi_FI
fi_FI.utf8
fi_FI@euro
fil_PH
fo_FO
fo_FO.utf8
fr_BE
fr_BE.utf8
fr_BE@euro
fr_CA
fr_CA.utf8
fr_CH
fr_CH.utf8
fr_FR
fr_FR.utf8
fr_FR@euro
fr_LU
fr_LU.utf8
fr_LU@euro
fur_IT
fy_DE
fy_NL
ga_IE
ga_IE.utf8
ga_IE@euro
gd_GB
gd_GB.utf8
gez_ER
gez_ER@abegede
gez_ET
gez_ET@abegede
gl_ES
gl_ES.utf8
gl_ES@euro
gu_IN
gv_GB
gv_GB.utf8
ha_NG
he_IL
he_IL.utf8
hi_IN
hr_HR
hr_HR.utf8
hsb_DE
hsb_DE.utf8
hu_HU
hu_HU.utf8
hy_AM
hy_AM.armscii8
id_ID
id_ID.utf8
ig_NG
ik_CA
is_IS
is_IS.utf8
it_CH
it_CH.utf8
it_IT
it_IT.utf8
it_IT@euro
iu_CA
iw_IL
iw_IL.utf8
ja_JP.eucjp
ja_JP.utf8
ka_GE
ka_GE.utf8
kk_KZ
kk_KZ.utf8
kl_GL
kl_GL.utf8
km_KH
kn_IN
ko_KR.euckr
ko_KR.utf8
ku_TR
ku_TR.utf8
kw_GB
kw_GB.utf8
ky_KG
lg_UG
lg_UG.utf8
li_BE
li_NL
lo_LA
lt_LT
lt_LT.utf8
lv_LV
lv_LV.utf8
mai_IN
mg_MG
mg_MG.utf8
mi_NZ
mi_NZ.utf8
mk_MK
mk_MK.utf8
ml_IN
mn_MN
mr_IN
ms_MY
ms_MY.utf8
mt_MT
mt_MT.utf8
nb_NO
nb_NO.utf8
nds_DE
nds_NL
ne_NP
nl_BE
nl_BE.utf8
nl_BE@euro
nl_NL
nl_NL.utf8
nl_NL@euro
nn_NO
nn_NO.utf8
nr_ZA
nso_ZA
oc_FR
oc_FR.utf8
om_ET
om_KE
om_KE.utf8
or_IN
pa_IN
pa_PK
pap_AN
pl_PL
pl_PL.utf8
pt_BR
pt_BR.utf8
pt_PT
pt_PT.utf8
pt_PT@euro
ro_RO
ro_RO.utf8
ru_RU
ru_RU.cp1251
ru_RU.koi8r
ru_RU.utf8
ru_UA
ru_UA.utf8
rw_RW
sa_IN
sc_IT
se_NO
si_LK
sid_ET
sk_SK
sk_SK.utf8
sl_SI
sl_SI.utf8
so_DJ
so_DJ.utf8
so_ET
so_KE
so_KE.utf8
so_SO
so_SO.utf8
sq_AL
sq_AL.utf8
sr_ME
sr_RS
sr_RS@latin
ss_ZA
st_ZA
st_ZA.utf8
sv_FI
sv_FI.utf8
sv_FI@euro
sv_SE
sv_SE.utf8
ta_IN
te_IN
tg_TJ
tg_TJ.utf8
th_TH
th_TH.utf8
ti_ER
ti_ET
tig_ER
tk_TM
tl_PH
tl_PH.utf8
tn_ZA
tr_CY
tr_CY.utf8
tr_TR
tr_TR.utf8
ts_ZA
tt_RU.utf8
tt_RU@iqtelif.UTF-8
ug_CN
uk_UA
uk_UA.utf8
ur_PK
uz_UZ
uz_UZ@cyrillic
ve_ZA
vi_VN
vi_VN.tcvn
wa_BE
wa_BE.utf8
wa_BE@euro
wo_SN
xh_ZA
xh_ZA.utf8
yi_US
yi_US.utf8
yo_NG
zh_CN
zh_CN.gb18030
zh_CN.gbk
zh_CN.utf8
zh_HK
zh_HK.utf8
zh_SG
zh_SG.gbk
zh_SG.utf8
zh_TW
zh_TW.euctw
zh_TW.utf8
zu_ZA
zu_ZA.utf8

Firm
18-01-2010, 10:24
Kenny,

Выставьте mbstring.func_overload = 2 в php.ini.

Firm
18-01-2010, 10:28
tedy1,

Попробуйте ещё в php.ini явно выставить:

mbstring.encoding_translation = On
mbstring.detect_order = UTF-8

P.S. Простыня знатная получилась, с виду всё хорошо.

tedy1
18-01-2010, 11:54
tedy1,

Попробуйте ещё в php.ini явно выставить:

mbstring.encoding_translation = On
mbstring.detect_order = UTF-8

P.S. Простыня знатная получилась, с виду всё хорошо.


mbstring.encoding_translation = On
mbstring.detect_order = UTF-8
-------------------------------------Непомогло.

mbstring.func_overload = 2 - у меня это так и стоит.

tedy1
18-01-2010, 12:08
Ещё заметил, если вводить на карту название карты то текст на русском показывает ????

mschedrin
18-01-2010, 13:39
У меня абосолютно такие же симптомы, ОС FreeBSD 7.2. Пока решения не нашел.

Firm
18-01-2010, 14:58
Да, ещё вопрос. Кодировка базы какая, utf-8?

mschedrin
18-01-2010, 15:24
У меня utf-8. Конвертировал приложенными скриптами. Ошибок не было.

tedy1
19-01-2010, 04:11
Да, ещё вопрос. Кодировка базы какая, utf-8?
Как проверить, какая кодировка у моей базы?

Делал всё по инструкции. На новую систему Slackware 12.2 установил Zabbix 1.8.

Firm
19-01-2010, 10:34
Для MySQL: 'mysql> show create database <db_name>;' (по-умолчанию обычно latin1)

Для PostgreSQL: 'psql> \l' (по-умолчанию для 8.x обычно UTF8)

tedy1
21-01-2010, 04:58
show create database zabbix;
| zabbix | CREATE DATABASE `zabbix` /*!40100 DEFAULT CHARACTER SET latin1 */ |

1 row in set (0.18 sec)

tedy1
21-01-2010, 05:56
show create database zabbix;
| zabbix | create database `zabbix` /*!40100 default character set latin1 */ |

1 row in set (0.18 sec)

если конвертировать всю базу в utf-8, то у меня на графиках всё равно русский неотображается.

Firm
21-01-2010, 14:07
Скорее всего она уже испорчена, информация-то. Или вновь создаваемые данные тоже искорёжены?

tedy1
22-01-2010, 09:25
скорее всего она уже испорчена, информация-то. или вновь создаваемые данные тоже искорёжены?

на картинки которая выше, я только ввел название карты и там видно что я ввел над картинкой и что на картинки не отображается русский язык.

max2002
28-01-2010, 06:07
в 1.8 чтобы отбражалась кириллица на графиках и карте для 1.8 необходимо наличие установленного freetype2 и php5 собранного с опцией --with-freetype-dir= . база должна быть в utf8 и ее содержимое в utf8.

tedy1
29-01-2010, 07:11
в 1.8 чтобы отбражалась кириллица на графиках и карте для 1.8 необходимо наличие установленного freetype2 и php5 собранного с опцией --with-freetype-dir= . база должна быть в utf8 и ее содержимое в utf8.

Вот что у меня:

freetype-2.3.7-i486-1
PHP 5.2.8
Configure Command - './configure' '--with-freetype-dir=/usr'

Базу в utf8, если меняешь имя карты на русские символы, то он показывает русский, а заходя в карту уже не показывает русс.... картинку я выше приводил. (а раньше, когда база была не в utf8 он даже русский не показывал при смене, названия карты....)

Aly
29-01-2010, 07:38
А какая кодировка в браузере?

tedy1
29-01-2010, 10:26
А какая кодировка в браузере?

Юникод (utf-8). Русский не отображается, именно в графиках и карте....

IVB
16-04-2010, 12:06
Тем, у кого вообще не генерятся графики с русскими буквами, наверняка поможет этот пост: http://www.zabbix.com/forum/showpost.php?p=63150&postcount=4

nerik
29-10-2010, 05:08
Продолжу тему, чтобы не создавать новую.

Проблем с графиками нет в версии 1.8.3 Баг появился в отправке сообщений на email. В Действиях я в тело сообщения вместе с параметрами (которые заменят сам zabbix) добавил русские слова. Теперь на почту мне приходят вопросы вместо русских букв.

Например, шаблон:
Узел {HOSTNAME} по триггеру {TRIGGER.NAME} получил статус - {STATUS}

А приходит:
???? dlink_8 ?? ???????? up ??????? ?????? - OK

Я перевел таблицы action и alerts (а так же их поля) с кодировки latin1_swedish_ci (по умолчанию такие создались) на кодировку utf8_general_ci. Толку ноль.
Самой базе изменил кодировку на utf8_general_ci (остальные таблицы не трогал, долго лопатить).
Самое что странное, шаблон сообщения храниться в базе в двоичном виде и при редактировании отображается нормально. Значит баг в чем-то другом.

Заранее спасибо.

dima_dm
29-10-2010, 07:09
А приходит:
???? dlink_8 ?? ???????? up ??????? ?????? - OK

Преобразуйте все таблицы, как написано здесь
http://www.zabbix.com/forum/showthread.php?t=19503
И будет вам счастье.
Возможно, часть русского текста будет в нечитабельном виде, тогда его нужно будет ввести повторно.

nerik
29-10-2010, 09:02
Заработало, нужно было после смены кодировки у таблиц просто перезапустить сервер.