Ad Widget

Collapse

Данные на русском языке

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • nitrogear
    Junior Member
    • Apr 2009
    • 28

    #1

    Данные на русском языке

    Через SNMPv2 получаю от устройства строку
    SNMPv2-SMI::mib-2.43.16.5.1.2.1.1 = STRING: "Нет бумаги: Лоток 1"
    Строка возвращается в юникоде, а в базу записываются такие данные: "??? ??????: ????? 1"
    Таблица history_str, куда сохраняются данные имеет такую структура (выгружно pnpMyAdmin'ом):
    Code:
    CREATE TABLE `history_str` (
      `itemid` bigint(20) unsigned NOT NULL default '0',
      `clock` int(11) NOT NULL default '0',
      `value` varchar(255) NOT NULL,
      KEY `history_str_1` (`itemid`,`clock`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    В /etc/my.cnf прописано:
    Code:
    [client]
    default-character-set=utf8
    [mysqld]
    init-connect="SET NAMES utf8"
    character-set-server=utf8
    collation-server=utf8_general_ci
    OS: FreeBSD, Zabbix-v1.6.4, mysql-server-5.0.77
    Подскажите как сделать чтобы сообщения на русском были читаемы?
  • dotneft
    Senior Member
    • Nov 2008
    • 699

    #2
    Поддержки Utf8 еще нет у заббикса

    Comment

    • soussine
      Junior Member
      • Jul 2009
      • 7

      #3
      Originally posted by nitrogear
      Подскажите как сделать чтобы сообщения на русском были читаемы?
      Если еще актуально проверь collate у поля value, д.б. utf-8


      ALTER TABLE `history_str` CHANGE `value` `value` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL

      Comment

      • nitrogear
        Junior Member
        • Apr 2009
        • 28

        #4
        Originally posted by soussine
        Если еще актуально проверь collate у поля value, д.б. utf-8
        ALTER TABLE `history_str` CHANGE `value` `value` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
        Структура таблицы такая:

        Code:
        CREATE TABLE `history_str` (
          `itemid` bigint(20) unsigned NOT NULL default '0',
          `clock` int(11) NOT NULL default '0',
          `value` varchar(255) NOT NULL,
          KEY `history_str_1` (`itemid`,`clock`)
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
        Но как и писали выше, поддержки юникода в самих агентах еще нет.

        Comment

        • soussine
          Junior Member
          • Jul 2009
          • 7

          #5
          Originally posted by nitrogear
          Структура таблицы такая:

          Но как и писали выше, поддержки юникода в самих агентах еще нет.

          Перепутал SNMP c zabbix agent.

          А в zabbix agent с utf-8 все ок нормально передает.

          Comment

          • nitrogear
            Junior Member
            • Apr 2009
            • 28

            #6
            Originally posted by soussine
            Перепутал snmp c zabbix agent.
            А в zabbix agent с utf-8 все ок нормально передает.
            Если локальные данные в юникоде агент отправляет нормально, то наверное он не умеет работать с юникод данными, получаемыми по snmp.

            Comment

            • soussine
              Junior Member
              • Jul 2009
              • 7

              #7
              Originally posted by nitrogear
              åñëè ëîêàëüíûå äàííûå â þíèêîäå àãåíò îòïðàâëÿåò íîðìàëüíî, òî íàâåðíîå îí íå óìååò ðàáîòàòü ñ þíèêîä äàííûìè, ïîëó÷àåìûìè ïî snmp.
              î÷åíü äàæå ìîæåò áûòü.
              ñåãîäíÿ ïîòåñòèðóþ.

              Comment

              • soussine
                Junior Member
                • Jul 2009
                • 7

                #8
                Originally posted by nitrogear
                Åñëè ëîêàëüíûå äàííûå â þíèêîäå àãåíò îòïðàâëÿåò íîðìàëüíî, òî íàâåðíîå îí íå óìååò ðàáîòàòü ñ þíèêîä äàííûìè, ïîëó÷àåìûìè ïî snmp.

                ðåçóëüòàòû òåñòèðîâàíèÿ ïîêà ïîëó÷èëñü âåñüìà ñòðàííûå.

                Òåñòèðîâàë íà Ubuntu 8.04.3 LTS

                â ôàéëå /etc/init.d/snmpd.conf

                óñòàíîâèë
                Code:
                syslocation Êîìïüþòåð
                è ñîõðàíèë â utf8 êîäèðîâêå

                snmpwalk âîò ÷òî äàåò.

                root@ma2dy-laptop:~# snmpwalk -v 1 -c public 127.0.0.1 1.3.6.1.2.1.1.6.0
                SNMPv2-MIB::sysLocation.0 = STRING: Êîìïüþòåð


                Ò.å. âñå îê.

                Âåçäå ñòîèò êîäèðîâêà utf8 è â my.cnf òîæå.Íî ó ñåðâåðà zabbix âðîäå êîäèðîâêà ïðîïèñàíà â èñõîäíîì êîäå.


                Âñòàâèë item â zabbix.

                ïîëó÷èë åãî çíà÷åíèå òàêîå.
                Code:
                Компьютер
                Óæå íè÷åãî.
                Õîòü íå âîïðîñû.


                À äàëåå ñàìîå èíòåðåñíîå.

                Åñëè ñîõðàíèòü ôàéë â snmpd.conf â êîäèðîâêå win-1251 òî çíà÷åíèÿ â áàçó áóäóò ïèñàòüñÿ íîðìàëüíûå, ò.å.

                Code:
                Êîìïüþòåð

                Áóäó äàëüøå ðàçáèðàòüñÿ.Íàäî ñêîìïèëèòü zabbix_server c íóëÿ ñ èçâåñòíûìè ïàðàìåòðàìè "set names XXX" è òåñòèðîâàòü äàëüøå.

                Comment

                • nitrogear
                  Junior Member
                  • Apr 2009
                  • 28

                  #9
                  Ждем результатов - тема очень актуальна

                  Comment

                  • soussine
                    Junior Member
                    • Jul 2009
                    • 7

                    #10
                    Originally posted by nitrogear
                    Æäåì ðåçóëüòàòîâ - òåìà î÷åíü àêòóàëüíà
                    Îê.

                    Íó ñ ãðàôèêàìè è êàðòàìè íà ðóññêîì ÿ óæå ðàçîáðàëñÿ.

                    Comment

                    • nitrogear
                      Junior Member
                      • Apr 2009
                      • 28

                      #11
                      Originally posted by soussine
                      îê.
                      íó ñ ãðàôèêàìè è êàðòàìè íà ðóññêîì ÿ óæå ðàçîáðàëñÿ.
                      http://www.zabbix.com/forum/showthread.php?t=12227
                      ñ ýòèì ïðîáëåì íåòó ;-)

                      Comment

                      • soussine
                        Junior Member
                        • Jul 2009
                        • 7

                        #12
                        Originally posted by nitrogear
                        ñ ýòèì ïðîáëåì íåòó ;-)
                        êñòàòè âîïðîñ òàêîé à ÷òî çà àïïàðàò òû ìîíèòîðèøü ïî snmp?

                        Comment

                        • nitrogear
                          Junior Member
                          • Apr 2009
                          • 28

                          #13
                          Originally posted by soussine
                          êñòàòè âîïðîñ òàêîé à ÷òî çà àïïàðàò òû ìîíèòîðèøü ïî snmp?
                          Ìîíèòîðþ ñåòåâûå ÌÔÓ Gestetner DSm721 è DSm615. Îíè îòäàþò â þíèêîäå èíôîðìàöèþ:
                          snmpwalk -v1 -c public 10.0.0.44 SNMPv2-SMI::mib-2.43.16.5.1.2.1.1 | iconv -f utf-8 -t koi8-r
                          SNMPv2-SMI::mib-2.43.16.5.1.2.1.1 = STRING: "Ãîòîâî"
                          Ïîêà âûêðóòèëñÿ ñ ïîìîùüþ value maps - íàñòðîèë äëÿ êàæäîãî çíà÷åíèÿ èç âîïðîñîâ åãî ðàñøèôðîâêó. Îäíàêî ýòî êîñòûëü, è õîòåëîñü áû ðåøèòü âîïðîñ "ïî-÷åëîâå÷åñêè".

                          Comment

                          • rav
                            Junior Member
                            • Sep 2009
                            • 3

                            #14
                            ïîìîãèòå äîäåëàòü ïî ÷åëîâå÷åñêè

                            Èìååì ñëåäóþùåå:
                            my.conf
                            Code:
                            default-character-set=utf8
                            character-set-server=utf8
                            init-connect="SET NAMES utf8"
                            Ëîêàëü UTF-8.
                            Zabbix 1.6.6
                            Âñå áû íè÷åãî, íî ïèñüìà íà e-mail íà ðóññêîì ÿçûêå ïðèõîäÿò â âèäå âîïðîñîâ.
                            Âûÿñíèë, ÷òî ñåðâåð çàááèêñà ïèøåò â áàçó â íåïîíÿòíîé êîäèðîâêå. Ïîëåç êîâûðÿòü çàááèêñ.
                            Â ôàéëå /src/libs/zbxdb/db.c
                            çàêîììåíòèðîâàë ñòðîêè:
                            Code:
                            if (ZBX_DB_OK == ret)
                            DBexecute("SET CHARACTER SET utf8");
                            Ñåðâåð íà÷àë ïèñàòü â áàçó íîðìàëüíî. Íî çàãîëîâêè ïèñüìà ïðèõîäÿò â âèäå XXXXXXXX.
                            Ñìîòðèì äàëüøå.
                            Íóæíî çàêîäèðîâàòü çàãîëîâîê ïèñüìà â base64.
                            Â ôàéëå /src/libs/zbxemail/email.c âñòàâèë êóñîê â 195-é ñòðîêå
                            Code:
                            char *subj_base64=NULL;
                            char *tmp=NULL;
                            subj_base64=zbx_malloc(subj_base64,sizeof(char*)*strlen(mailsubject));
                            tmp=zbx_malloc(tmp,sizeof(char*)*strlen(mailsubject)*2+20);
                            str_base64_encode(mailsubject,subj_base64,strlen(mailsubject));
                            zbx_snprintf(tmp,sizeof(char*)*strlen(mailsubject)*2+19,"=?UTF-8?B?%s?=",subj_base64);
                            çàìåíèë ñòðîêó
                            Code:
                            cp = zbx_dsprintf(cp, "From:<%s>\r\nTo:<%s>\r\nDate: %s\r\nSubject: %s\r\n"
                            "Content-Type: text/plain; charset=\"UTF-8\"\r\n\r\n%s",
                            smtp_email, mailto, str_time, [B]tmp[/B], mailbody);
                            ÷òî çàìåíèë ïîêàçàíî æèðíûì
                            è äîáàâèë íèæå
                            Code:
                            zbx_free(tmp);
                            zbx_free(subj_base64);
                            Òåïåðü âñå ðàáîòàåò êàê íàäî!
                            Ñàì â ÑÈ íå ñèëåí äà è âðåìåíè íåò ðàçáèðàòüñÿ, âîçìîæíî ñäåëàë íåîïòèìàëüíî. Êòî ñèëåí, äîðàáîòàéòå ïîæàëóéñòà.

                            Comment

                            Working...