Ad Widget

Collapse

Слетел мониторинг MySQL после обновления до zabbix 4.4

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • zeiter
    Junior Member
    • Apr 2019
    • 14

    #1

    Слетел мониторинг MySQL после обновления до zabbix 4.4

    Доброго дня!

    Слетел мониторинг MySQL после обновления до zabbix 4.4:

    Code:
    # rpm -qa | grep zabbix
    zabbix-release-4.4-1.el7.noarch
    zabbix-agent-4.4.1-1.el7.x86_64
    zabbix-get-4.4.1-1.el7.x86_64
    Вот ошибка:

    Code:
    [root@server zabbix_agentd.d]# zabbix_agentd -t mysql.ping
    mysql.ping                                    [t|mysqladmin: connect to server at '-P' failed
    error: 'Unknown MySQL server host '-P' (-2)'
    Check that mysqld is running on -P and that the port is 3306.
    You can check this by doing 'telnet -P 3306']
    
    [root@server zabbix_agentd.d]#

    Есть файл /var/lib/zabbix/.my.cnf

    Code:
    [root@server zabbix]# ls -la /var/lib/zabbix/.my.cnf
    -rw-------. 1 zabbix zabbix 51 Dec 17  2018 /var/lib/zabbix/.my.cnf
    
    [root@server zabbix]# cat /var/lib/zabbix/.my.cnf
    [client]
    user=monitoring
    password=sEcRetPassword
    
    [root@server zabbix]#
    Как исправить? Подскажите, пожалуйста.

    С уважением,
    Алексей.
  • zeiter
    Junior Member
    • Apr 2019
    • 14

    #2
    Отвечу самому себе и тем, кто найдет эту тему позже. В доках этой информации не нашел.

    После обновления сервера Zabbix с 4.2 до 4.4 все шаблоны (как видится мне) остались без изменений. Все обращения и сбор данных с сервера MySQL, который мониторится Zabbix, происходят по-старому, к примеру mysql.ping.

    Сам сервер Zabbix 4.4 со старым шаблонами отправляет запрос
    Code:
    zabbix_get -s 1.2.3.4 -k mysql.ping
    , а в ответ:

    Code:
    mysqladmin: connect to server at '-P' failed
    error: 'Unknown MySQL server host '-P' (-2)'
    Check that mysqld is running on -P and that the port is 3306.
    You can check this by doing 'telnet -P 3306'
    Т.к. Zabbix-agent 4.4 на наблюдаемом хосте переписал /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf, то теперь запрос с сервера должен быть иного вида, а именно включать имя хоста MySQL и порт:

    Code:
    zabbix_get -s 1.2.3.4 -k "mysql.ping[localhost,3306]"
    НО! При этом переменная окружения HOME=/var/lib/zabbix/ пропала из конфига, и больше файл настроек доступа к серверу MySQL не читается!

    Code:
    # zabbix_get -s 1.2.3.4 -k "mysql.ping[localhost,3306]"
    mysqladmin: connect to server at 'localhost' failed
    error: 'Access denied for user 'zabbix'@'localhost' (using password: NO)'
    Заявление:

    #For OS Linux: You need create .my.cnf in zabbix-agent home directory (/var/lib/zabbix by default)

    ложное и не работает!

    При этом свежая установка Zabbix сервера и агентов 4.4 из "коробки" на новые сервера страдает от этого же. Не читается /var/lib/zabbix/.my.cnf.

    Решения!

    1. Откат zabbix-agent до 4.2
    2. сносить сервер и ставить его заново, чтобы получить обновленные шаблоны без месива
    3. править файлы агентов и шаблоны вручную!

    ВОПРОС! Может я чего упустил или все же документация об этом ни слова не пишет?

    - https://www.zabbix.com/documentation...es/rhel_centos
    - https://www.zabbix.com/documentation...гурации


    Надеюсь, мой пост поможет. И вы избежите проблем.

    С Уважением,
    Алексей.

    Comment

    • DSV12
      Senior Member
      Zabbix Certified Specialist
      • Nov 2018
      • 156

      #3
      Что-то странное у вас происходит. Недавно обновился с 4.2 на 4.4 (уже 4.4.1 - это машина с MySQL):
      Code:
      [root@moodle ~]# zabbix_agentd -V
      zabbix_agentd (daemon) (Zabbix) 4.4.1
      Revision 8870606e6a 28 October 2019, compilation time: Oct 28 2019 13:54:38
      ...
      Агент обновлялся штатно, "yum update". Файл /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf при этом НЕ модернизировался, в результате как работал mysql.ping, так и продолжает работать - удалённо:
      Code:
      [root@zabbix ~]# zabbix_get -s moodle -k "mysql.ping"
      1
      И локально тоже:
      Code:
      [root@moodle ~]# zabbix_agentd -t mysql.ping
      mysql.ping                                    [t|1]
      $HOME на месте, системы на заббикс сервере и на целевом хосте (moodle) одинаковые, CentOS 7:
      Code:
      [root@moodle ~]# uname -a
      Linux moodle.inp.nsk.su 3.10.0-1062.4.1.el7.x86_64 #1 SMP Fri Oct 18 17:15:30 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
      Last edited by DSV12; 01-11-2019, 13:36.

      Comment

      • zeiter
        Junior Member
        • Apr 2019
        • 14

        #4
        Видимо у вас агент Zabbix в памяти весит старой версии или файл /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf не обновился. Запрос старого образца не работает к агенту 4.4.


        Code:
        # zabbix_agentd -t mysql.ping
        mysql.ping                                    [t|mysqladmin: connect to server at '-P' failed
        error: 'Unknown MySQL server host '-P' (-2)'
        Check that mysqld is running on -P and that the port is 3306.
        You can check this by doing 'telnet -P 3306']

        Проверено на разных серверах: CentOS 7 и Debian 9. Новый агент возвращает не "[t|1]" (единицу), а строку "[t|mysqld is alive]"

        Code:
        # zabbix_agentd -t "mysql.ping[localhost,3306]"
        mysql.ping[localhost,3306]                    [t|mysqld is alive]

        К слову из репозитория Zabbix ставил вчера агента 4.4 на новых 14 серверов с CentOS, Debian, Ubuntu. Везде ситуация аналогичная с проверкой MySQL.

        Comment

        • DSV12
          Senior Member
          Zabbix Certified Specialist
          • Nov 2018
          • 156

          #5
          Originally posted by zeiter
          Видимо у вас агент Zabbix в памяти весит старой версии
          Я ж приводил выше результат 'zabbix_agentd -V' - у меня работает версия 4.4.1, в логе /var/log/zabbix_agentd.log об этом же:
          Code:
          30346:20191029:213029.176 Starting Zabbix Agent [moodle]. Zabbix 4.4.1 (revision 8870606e6a).
          Originally posted by zeiter
          или файл /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf не обновился.
          Не обновился, я об этом и говорил...

          Сейчас посмотрел на паре других хостов - да, вы правы, на них при обновлении на агента версии 4.4, userparameter_mysql.conf обновился на вариант, про который вы пишите. На этих хостах я mysql не мониторю, userparameter_mysql.conf там был нетронутый, исходный. А вот на хосте, на котором при обновлении агента userparameter_mysql.conf остался нетронутым, я этот самый userparameter_mysql.conf несколько кастомизировал, и, видимо, поэтому он не стал обновляться.

          Originally posted by zeiter
          Запрос старого образца не работает к агенту 4.4.
          Да, достаточно взглянуть на содержимое старого и нового userparameter_mysql.conf:
          Code:
          Старый:
          UserParameter=mysql.ping,HOME=/var/lib/zabbix mysqladmin ping | grep -c alive
          
          Новый:
          UserParameter=mysql.ping[*], mysqladmin -h"$1" -P"$2" ping
          Originally posted by zeiter
          Проверено на разных серверах: CentOS 7 и Debian 9. Новый агент возвращает не "[t|1]" (единицу), а строку "[t|mysqld is alive]"
          Ну так это же открытым текстом в том самом userparameter_mysql.conf видно:
          Code:
          'HOME=/var/lib/zabbix mysqladmin ping' и на "старом" и на "новом" агенте выдаёт 'mysqld is alive'. В '1' "старый вариант превращает ' | grep -c alive'
          Originally posted by zeiter
          К слову из репозитория Zabbix ставил вчера агента 4.4 на новых 14 серверов с CentOS, Debian, Ubuntu. Везде ситуация аналогичная с проверкой MySQL.
          Похоже, при обновлении сервера шаблон проверки MySQL не поменялся, а userparameter_mysql.conf на целевых хостах поменялись, если они не кастомизировались. По-крайней мере у меня такая статистика. Вариант решения, в дополнении к вашим:

          1. Откатить userparameter_mysql.conf к старой версии. Целиком агент 4.4 откатывать не надо, все изменения в работе с mysql "живут" в userparameter_mysql.conf.

          2. Если поменялся (обновился) шаблон MySQL на zabbix-сервере (или сервер был установлен с нуля) - всё будет работать сразу. Проблема именно из-за старого (необновлённого) шаблона и обновлённого (неконсистентного со старым шаблоном) userparameter_mysql.conf.

          Есть повод написать багрепорт - сделаете?

          UPD: Проблему уже успели озвучить - в комментариях на хабре: https://habr.com/ru/company/zabbix/blog/472690/ Там озвучена ещё одна неприятность с 4.4, которую я сразу не заметил - убрали поле добавления шаблона (когда добавить новый шаблон можно было набрав несколько символов из его имени).
          Last edited by DSV12; 01-11-2019, 18:27.

          Comment

          • zeiter
            Junior Member
            • Apr 2019
            • 14

            #6
            Скопипастил свое сообщение из форума https://support.zabbix.com/browse/ZBX-16864 Только с форматированием промахнулся.

            Comment

            • Kos
              Senior Member
              Zabbix Certified SpecialistZabbix Certified Professional
              • Aug 2015
              • 3404

              #7
              Originally posted by zeiter
              Скопипастил свое сообщение из форума https://support.zabbix.com/browse/ZBX-16864 Только с форматированием промахнулся.
              Там надо по-английски писать. Могут закрыть по несоответствию правилам оформления баг-репортов.

              Comment

              • zeiter
                Junior Member
                • Apr 2019
                • 14

                #8
                OK

                An issue with .my.cnf in English is described by the link MySQL: /var/lib/zabbix/.my.cnf is ignored

                An issue with upgrade to Zabbix-server 4.4.x and MySQL monitoring is described in English here MySQL templates are not updated in Zabbix after upgrade to 4.4.x
                Last edited by zeiter; 04-11-2019, 11:02.

                Comment

                • Mansso
                  Junior Member
                  • Oct 2019
                  • 13

                  #9
                  А есть у кого-ть опыт настройки мониторинга MSSQL?

                  Comment

                  • UnnamedUA
                    Junior Member
                    • Jan 2020
                    • 1

                    #10
                    Для тех кто хочет в mysql мониторинг на 4.4
                    Дефолтные значения в userparameter_mysql.conf меняем на:

                    UserParameter=mysql.ping[*],HOME=/var/lib/zabbix mysqladmin -h"$1" -P"$2" ping
                    UserParameter=mysql.get_status_variables[*],HOME=/var/lib/zabbix mysql -h"$1" -P"$2" -sNX -e "show global status"
                    UserParameter=mysql.version[*],HOME=/var/lib/zabbix mysqladmin -s -h"$1" -P"$2" version
                    UserParameter=mysql.db.discovery[*],HOME=/var/lib/zabbix mysql -h"$1" -P"$2" -sN -e "show databases"
                    UserParameter=mysql.dbsize[*],HOME=/var/lib/zabbix mysql -h"$1" -P"$2" -sN -e "SELECT SUM(DATA_LENGTH + INDEX_LENGTH) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='$3'"
                    UserParameter=mysql.replication.discovery[*],HOME=/var/lib/zabbix mysql -h"$1" -P"$2" -sNX -e "show slave status"
                    UserParameter=mysql.slave_status[*],HOME=/var/lib/zabbix mysql -h"$1" -P"$2" -sNX -e "show slave status"


                    Тоесть пропиываем везде HOME=/var/lib/zabbix что бы агент знал куда идти за конфигфайлом коннекта

                    Comment

                    Working...