Ad Widget

Collapse

UserParameter MySQL Select

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • demudrol
    Junior Member
    • Aug 2016
    • 8

    #1

    UserParameter MySQL Select

    Создаю папку /var/lib/zabbix
    Под пользователем zabbix запускаю
    mysql_config_editor set --login-path=local --host=localhost --user=user --password
    Появляется файл /var/lib/zabbix/.mylogin.cnf
    Создаю UserParameter с текстом
    UserParameter=mySQLelement, mysql --login-path=local -N -B -e 'select count(*) from database;' db
    Выполняю команду
    zabbix_agentd -t "mySQLelement"
    В ответ приходит mySQLelement [t|15]
    Всё нормально.
    Но когда на забикс сервере создаю элемент с этим ключом, то получаю в ответ:
    Received value [ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'db']
    Забикс агент на клиенте работает из под пользователя zabbix.
    Как так выходит, что непосредственно из под консоли ответ получаю верный, а на сервер передаётся ошибка?
  • yukra
    Senior Member
    • Apr 2013
    • 1359

    #2
    Originally posted by demudrol
    Создаю папку /var/lib/zabbix
    Под пользователем zabbix запускаю


    Появляется файл /var/lib/zabbix/.mylogin.cnf
    Создаю UserParameter с текстом


    Выполняю команду

    Всё нормально.
    Но когда на забикс сервере создаю элемент с этим ключом, то получаю в ответ:


    Забикс агент на клиенте работает из под пользователя zabbix.
    Как так выходит, что непосредственно из под консоли ответ получаю верный, а на сервер передаётся ошибка?
    1) Поменяйте в UserParameter команду на "SELECT CURRENT_USER();", что-то мне подсказывает что вы увидите там рута.
    2) "mv /var/lib/zabbix/.mylogin.cnf /var/lib/zabbix/.my.cnf" попробуйте сделать, заодно права на файлы\директории проверьте.

    Comment

    • demudrol
      Junior Member
      • Aug 2016
      • 8

      #3
      Originally posted by yukra
      1) Поменяйте в UserParameter команду на "SELECT CURRENT_USER();", что-то мне подсказывает что вы увидите там рута.
      2) "mv /var/lib/zabbix/.mylogin.cnf /var/lib/zabbix/.my.cnf" попробуйте сделать, заодно права на файлы\директории проверьте.
      1. В ответ возвращает ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'db'
      2. -rw-------. 1 zabbix zabbix 184 Oct 13 10:58 .my.cnf

      Comment

      • yukra
        Senior Member
        • Apr 2013
        • 1359

        #4
        Originally posted by demudrol
        1. В ответ возвращает error 1044 (42000): Access denied for user ''@'localhost' to database 'db'
        2. -rw-------. 1 zabbix zabbix 184 oct 13 10:58 .my.cnf
        1) Не очень понимаю что пошло не так, но почему юзер пустой?

        Comment

        • demudrol
          Junior Member
          • Aug 2016
          • 8

          #5
          Originally posted by yukra
          1) Не очень понимаю что пошло не так, но почему юзер пустой?
          Вот и я задаюсь этим вопросом. Похоже на то что не видит файл с логином-паролем, но он то есть в каталоге zabbix'a. Может из под кого другого запускать может?

          Плюс ещё теперь если запускать из консоли, то выдаёт
          mysql: [ERROR] Found option without preceding group in config file /var/lib/zabbix/.my.cnf at line 2!
          mysql: [ERROR] Fatal error in defaults handling. Program aborted!

          Добавил юзерпараментр с id -u -n. Возвращает zabbix

          Добавил параметр с mysql_config_editor print --all. Возвращает failed to set login file name. operation failed.
          Last edited by demudrol; 14-10-2016, 12:41.

          Comment

          • yukra
            Senior Member
            • Apr 2013
            • 1359

            #6
            Originally posted by demudrol
            Вот и я задаюсь этим вопросом. Похоже на то что не видит файл с логином-паролем, но он то есть в каталоге zabbix'a. Может из под кого другого запускать может?

            Плюс ещё теперь если запускать из консоли, то выдаёт
            mysql: [ERROR] Found option without preceding group in config file /var/lib/zabbix/.my.cnf at line 2!
            mysql: [ERROR] Fatal error in defaults handling. Program aborted!

            Добавил юзерпараментр с id -u -n. Возвращает zabbix

            Добавил параметр с mysql_config_editor print --all. Возвращает failed to set login file name. operation failed.
            файл то /var/lib/zabbix/.my.cnf покажите?

            Comment

            • demudrol
              Junior Member
              • Aug 2016
              • 8

              #7
              Originally posted by yukra
              файл то /var/lib/zabbix/.my.cnf покажите?
              Создал домашний каталог для zabbix. Теперь файл .mylogin.cnf находится по пути /home/zabbix/ если его генерировать.

              При открытие через nano файл .mylogin.cnf состоит из иероглифов. Если запускать mysql_config_editor print --all, то ответ
              [local]
              user = user
              password = *****
              host = localhost

              Меняю .mylogin.cnf на .my.cnf. Команда mysql_config_editor print --all больше не возвращает ответ. Команда селект завершается с ошибкой.
              Переношу файл в /var/lib/zabbix/.my.cnf, всё равно результата нет

              Comment

              • yukra
                Senior Member
                • Apr 2013
                • 1359

                #8
                Originally posted by demudrol
                Создал домашний каталог для zabbix. Теперь файл .mylogin.cnf находится по пути /home/zabbix/ если его генерировать.

                При открытие через nano файл .mylogin.cnf состоит из иероглифов. Если запускать mysql_config_editor print --all, то ответ
                [local]
                user = user
                password = *****
                host = localhost

                Меняю .mylogin.cnf на .my.cnf. Команда mysql_config_editor print --all больше не возвращает ответ. Команда селект завершается с ошибкой.
                Переношу файл в /var/lib/zabbix/.my.cnf, всё равно результата нет
                1) Определитесь где у вас домашний каталог для пользователя zabbix "grep zabbix /etc/passwd | cut -d : -f 6"
                2) создайте файл ~zabbix/.my.cnf примерно след. содержания:
                Code:
                [client]
                user=user 
                password=*****
                3) chown -R zabbix:zabbix ~zabbix
                4) Перепишите UserParameter примерно так:"UserParameter=mySQLelement, HOME=/var/lib/zabbix mysql -N -B -e 'select count(*) from database;' db"
                После этого все должно работать.

                Зы запрос из мускуля должен отдаваться меньше, чем у вас установлены timeout на сервере и на клиенте (3 сек. по умолчанию если мне не изменяет память).

                Comment

                Working...