Ad Widget

Collapse

Ошибки при обновлении zabbix

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Andrey_79
    Senior Member
    • Sep 2008
    • 173

    #1

    Ошибки при обновлении zabbix

    Добрый день. Сегодня попытался обновить версию Zabbix.
    Наткнулся на следующие проблемы:
    1) При старте zabbix выдается ошибка:
    Can't allocate shared memory of size 8388608 [Cannot allocate memory]
    Can't allocate shared memory for configuration cache.
    2) На Dashboard:
    Fatal error: Call to undefined function ctype_digit() in /usr/local/zabbix/php/include/func.inc.php on line 950;
    Warning: fsockopen() [function.fsockopen]: unable to connect to localhost:10051 (Connection refused) in /usr/local/zabbix/php/include/config.inc.php on line 714.
    3) Группы написанные кирилицей имеют не читабельный вид.

    Операционная система FreeBSD 7.2 amd64.
    Подскажите, как решить проблемы.
    Last edited by Andrey_79; 08-12-2009, 13:22.
  • Andrey_79
    Senior Member
    • Sep 2008
    • 173

    #2
    Закоментировал строки в func.inc.php on line 950

    //if(ctype_digit((string) key($value)))
    {
    //$value = array_values($value);
    }
    dashboard появился. За что отвечают данные параметры?

    Comment

    • dotneft
      Senior Member
      • Nov 2008
      • 699

      #3
      çðÿ çàêîììåíòèðîâàë. â PHP íå õâàòàåò ìîäóëÿ ctype

      1) Ïðè ñòàðòå zabbix âûäàåòñÿ îøèáêà:
      Can't allocate shared memory of size 8388608 [Cannot allocate memory]
      Can't allocate shared memory for configuration cache.
      â êîíôèãå ïîÿâèëèñü íàñòðîéêè êýøà, ó âàñ íå ìîæåò ñåðâåð âûäåëèòü ñòîëüêî êýøà. ïîïðîáóé óìåíüøèòü.

      Comment

      • EvFox72
        Junior Member
        • Nov 2009
        • 5

        #4
        Originally posted by Andrey_79
        Добрый день. Сегодня попытался обновить версию Zabbix.
        Наткнулся на следующие проблемы:
        1) При старте zabbix выдается ошибка:
        Can't allocate shared memory of size 8388608 [Cannot allocate memory]
        Can't allocate shared memory for configuration cache.
        2) На Dashboard:
        Fatal error: Call to undefined function ctype_digit() in /usr/local/zabbix/php/include/func.inc.php on line 950;
        Warning: fsockopen() [function.fsockopen]: unable to connect to localhost:10051 (Connection refused) in /usr/local/zabbix/php/include/config.inc.php on line 714.
        3) Группы написанные кирилицей имеют не читабельный вид.

        Операционная система FreeBSD 7.2 amd64.
        Подскажите, как решить проблемы.
        1.
        sysctl -w kern.ipc.shmmax=8388608
        sysctl -w kern.ipc.shmall=8388608
        у меня заработало с большими значениями, но у мну машина загружена. Начни с этих. Не забудь в /etc/sysctl.conf записать

        Comment

        • Andrey_79
          Senior Member
          • Sep 2008
          • 173

          #5
          А на счет кодировки есть какие-то предложения? Может базу как-то нужно конвертировать?

          P.s. Не хочется второй раз ложить сервер пока все ответы на вопросы не найду.

          Comment

          • alex-rterm
            Junior Member
            • Aug 2009
            • 12

            #6
            Базу данных можно и нужно конвертировать в utf8. Делается это поиском в гугле по запросу "mysql charset upgrade" или как-то так. Сам сегодня обновлял zabbix-1.6 до версии 1.8, пришлось конвертировать базу в UTF8.
            http://en.gentoo-wiki.com/wiki/Conve...UTF-8_in_MySQL - вот, например.

            Comment

            • Andrey_79
              Senior Member
              • Sep 2008
              • 173

              #7
              Originally posted by alex-rterm
              Базу данных можно и нужно конвертировать в utf8. Делается это поиском в гугле по запросу "mysql charset upgrade" или как-то так. Сам сегодня обновлял zabbix-1.6 до версии 1.8, пришлось конвертировать базу в utf8.
              http://en.gentoo-wiki.com/wiki/conve...utf-8_in_mysql - вот, например.
              Спасибо, теперь буду пробывать.

              Comment

              • unlnkd
                Junior Member
                • Feb 2009
                • 28

                #8
                Originally posted by alex-rterm
                Базу данных можно и нужно конвертировать в utf8. Делается это поиском в гугле по запросу "mysql charset upgrade" или как-то так. Сам сегодня обновлял zabbix-1.6 до версии 1.8, пришлось конвертировать базу в UTF8.
                http://en.gentoo-wiki.com/wiki/Conve...UTF-8_in_MySQL - вот, например.
                Если внимательно посмотреть, то в src Zabbix-а есть скрипт /zabbix-1.8/upgrades/dbpatches/1.8/mysql/upgrade, о котором не упоминается в разделе :

                #!/bin/bash

                # WARNING: backup your database before performing upgrade

                # This is an unsupported Zabbix upgrade script from 1.6 to 1.8 for MySQL
                # It does the following things:
                # 1. Drops all indexes that might have been created in Zabbix 1.6 database;
                # 2. Converts all tables to UTF-8;
                # 3. Patches the database from 1.6 schema to 1.8 schema.

                # Usage: pass required MySQL parameters to this script (like database, user, password etc).

                MYSQL="$(which mysql)"
                MYSQLPARAMS="$@"

                fail() {
                echo "$1"
                exit 1
                }

                [[ "$MYSQL" ]] || fail "No mysql binary in path."

                drop_index() {
                echo "alter table $1 drop index $2;" | $MYSQL $MYSQLPARAMS 2>&1 | grep -v "check that column/key exists"
                }

                echo "Dropping indexes that might need re-creation"

                for i in\
                "actions actions_1"\
                "dhosts dhosts_1"\
                "dservices dservices_1"\
                "escalations escalations_2"\
                "graphs_items graphs_items_1"\
                "graphs_items graphs_items_2"\
                "history_log history_log_2"\
                "history_text history_text_2"\
                "httptest httptest_2"\
                "httptest httptest_3"\
                "services services_1"; do
                drop_index $i
                done

                echo "Converting database to UTF-8"

                for i in $(echo "show tables;" | $MYSQL -N $MYSQLPARAMS); do
                echo "ALTER TABLE $i CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;" | $MYSQL $MYSQLPARAMS
                done

                echo "Patching the database"

                $MYSQL $MYSQLPARAMS < patch.sql || fail "Failed to patch Zabbix database. Restore from backup"


                Хотя в трекере висит тикет. Хм.
                Last edited by unlnkd; 10-12-2009, 02:53.

                Comment

                • Andrey_79
                  Senior Member
                  • Sep 2008
                  • 173

                  #9
                  Добрый день. Спасибо всем за участие. Сегодня завершил переход на версию 1.8. Хочу поделиться тем как удалось решить проблемы.

                  1) При старте zabbix выдается ошибка:
                  Can't allocate shared memory of size 8388608 [Cannot allocate memory]
                  Can't allocate shared memory for configuration cache.
                  В файле автозапуска заббикса добавил следущие строки:

                  # REQUIRE: mysqld sleep 10
                  sysctl -w kern.ipc.shmall=8388608 (через sysctl.conf изменяться почему -то не хочет)
                  sleep 5
                  2) На Dashboard:
                  Fatal error: Call to undefined function ctype_digit() in /usr/local/zabbix/php/include/func.inc.php on line 950;
                  Warning: fsockopen() [function.fsockopen]: unable to connect to localhost:10051 (Connection refused) in /usr/local/zabbix/php/include/config.inc.php on line 714.
                  Пересобрал php с поддержкой модуля ctype.
                  3) Группы написанные кирилицей имеют не читабельный вид.
                  Переконвертировал базу:
                  1) mysqldump -u user -p --default-character-set=latin1 --skip-set-charset dbname > dbname.sql
                  2)sed -e 's/latin1/utf8/g' dbname.sql > dbname_utf.sql
                  3)mysql -u user -p --execute="DROP DATABASE dbname; CREATE DATABASE dbname CHARACTER SET utf8 COLLATE utf8_general_ci;"
                  4)mysql -u user -p --default-character-set=utf8 dbname < dbname_utf.sql
                  5)SET NAMES 'utf8' COLLATE 'utf8_general_ci'

                  Comment

                  Working...