Ad Widget

Collapse

Под каким пользователем пассивный агент лезет в MySQL?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

    Под каким пользователем пассивный агент лезет в MySQL?

    Приветствую.
    Столкнулся с такой непонятной ситуацией.
    На сервере с Centos 6 перезапускаю zabbix агента
    Code:
    sudo service zabbix-agent restart
    Shutting down Zabbix agent:                                [  OK  ]
    Starting Zabbix agent:                                     [  OK  ]
    Все Ок, агент запущен от пользователя zabbix
    Code:
     ps axu | grep -i zabb
    zabbix    17957  0.0  0.0  75432  1244 ?        S    12:45   0:00 /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
    zabbix    17959  0.0  0.0  75432  1404 ?        S    12:45   0:00 /usr/sbin/zabbix_agentd: collector [idle 1 sec]
    zabbix    17960  0.0  0.0  75432  2276 ?        S    12:45   0:00 /usr/sbin/zabbix_agentd: listener #1 [waiting for connection]
    Делаю простенький пассивный элемент данных:

    system.run[''whoami;id; mysql'']

    И в выхлопе получаю:
    Code:
    zabbix
    uid=367962(zabbix) gid=496(employee) groups=496(employee)
    ERROR 1045 (28000): Access denied for user 'Alex_UUU'@'localhost' (using password: NO)
    Т.е. агент работает под пользователем zabbix, ИД пользователя правильные. А вот в MySQL он пытается зайти под пользователем, который перезагружал агента последний раз.
    По идее он должен был в мускуль заходить под юзером zabbix И, например, выдать ошибку

    ERROR 1045 (28000): Access denied for user 'zabbix'@'localhost' (using password: NO)

    Как такое возможно и что сделать?

    #2
    a ps -aux что показывает, под каким пользователем у вас заббикс агент работает там 4 подпроцесса вроде как. Пользователя под агента создавали? zabbix_agentd.conf изменяли?

    Comment


      #3
      Originally posted by Alex_UUU View Post
      Приветствую.

      Т.е. агент работает под пользователем zabbix, ИД пользователя правильные. А вот в MySQL он пытается зайти под пользователем, который перезагружал агента последний раз.
      По идее он должен был в мускуль заходить под юзером zabbix И, например, выдать ошибку

      ERROR 1045 (28000): Access denied for user 'zabbix'@'localhost' (using password: NO)

      Как такое возможно и что сделать?
      Чтобы не гадать, используйте конфиг .my.cnf (точка в начале обязательна) в home zabbix-а (в нём пропишите пользователя/пароль mysql) - тогда будет понятно, под каким пользователем zabbix-агент в mysql заходит.

      Comment


        #4
        Originally posted by kidoro View Post
        a ps -aux что показывает, под каким пользователем у вас заббикс агент работает там 4 подпроцесса вроде как. Пользователя под агента создавали? zabbix_agentd.conf изменяли?
        Привет, все процессы работают под zabbix, я просто первые в посте привел.


        Originally posted by DSV12 View Post
        Чтобы не гадать, используйте конфиг .my.cnf (точка в начале обязательна) в home zabbix-а (в нём пропишите пользователя/пароль mysql) - тогда будет понятно, под каким пользователем zabbix-агент в mysql заходит.
        Именно с этого все и началось. конфиг для мускуля прописан и если в вызове указать
        system.run[''whoami;id; НОМЕ=/usr/lib/zabbix mysql '']
        то все работает и коннект идет от пльзователя, указанного в конфиге.Но я не хочу каждый раз указывать папку хомяка.

        Comment


          #5
          Создайте .my.cnf в хомяке заббикс-пользователя, он подхватится в переменную.

          Comment


            #6
            Originally posted by mak_v_ View Post
            Создайте .my.cnf в хомяке заббикс-пользователя, он подхватится в переменную.
            Фигня какая-то. Нифига не подхватывает.

            Вот это я посылаю агенту
            Code:
            system.run[''whoami;id; getent passwd `whoami`;mysql "select Test';"'']
            Вот это он мне выдает:
            Code:
            zabbix
            uid=367962(zabbix) gid=496(employee) groups=496(employee)
            zabbix:x:367962:496:zabbix MailBox:/var/lib/zabbix:/bin/bash
            ERROR 1045 (28000): Access denied for user 'Alex_UUU'@'localhost' (using password: NO)
            Вот, что в файле конфига мускуля
            Code:
            cat /var/lib/zabbix/.my.cnf
            [client]
            user=zabbix
            password=ТутТипаПароль
            Типа агент под заббиксом, все Ок, а в мускуль лезет ХЗ как.

            ЗЫ. Кажется понял, в чем причина. Поставил в запрос
            Code:
            echo $HOME
            И он стал выдавать... пустоту. Т.е. переменная хомяка не передается процессу.
            Блин, как передать на уровне конфига?





            Comment


              #7
              getent passwd zabbix, подозреваю что там /nonexistent
              А вам надо научить заббикс "брать реквизиты из файла", т.е. передавть переменные окружения. Дальше думаю ясно?
              Last edited by mak_v_; 14-01-2019, 14:50.

              Comment


                #8
                Originally posted by mak_v_ View Post
                getent passwd zabbix
                Выше есть:
                Это я на сервере выполнил, тоже самое.
                Code:
                zabbix:x:367962:496:zabbix MailBox:/var/lib/zabbix:/bin/bash

                Comment


                  #9
                  Можно сделать костыль
                  system.run[''whoami;id; getent passwd `whoami`;alias 'mysql -p'='mysql --defaults-extra-file=.my.cnf';"'']

                  Comment


                    #10
                    Originally posted by mak_v_ View Post
                    Можно сделать костыль
                    system.run[''whoami;id; getent passwd `whoami`;alias 'mysql -p'='mysql --defaults-extra-file=.my.cnf';"'']
                    Костыль делается еще проще, указанием в run хомяка. Но это неправильно по нескольким причинам:
                    1. И так длина запроса ограничена
                    2. ХЗ где завтра это вылезет.

                    Comment


                      #11
                      В общем сделал так (кстати, считаю это багом заббикса и исправить бы его системно)
                      В файл
                      /etc/init.d/zabbix-agent
                      дописать
                      export HOME=/var/lib/zabbix

                      В результате получаем:

                      Code:
                      zabbix
                      uid=367962(zabbix) gid=496(employee) groups=496(employee)
                      zabbix:x:367962:496:zabbix MailBox:/var/lib/zabbix:/bin/bash
                      /var/lib/zabbix
                      ERROR 1049 (42000): Unknown database 'select Test';'
                      Т.е. используется правильный хомяк со всеми вытекающими.

                      Comment


                        #12
                        Ниче не понинимаю.... а как вы хотите передать параметры коммандной строки (логин и пароль) не передавая их же???
                        Из хомяка подхватывается .my.cnf по .profile и экспортируется в переменные окружения...
                        Никак не могу понять что вы хотите....

                        Comment


                          #13
                          ПРоцесс забикса не видит хомяка!!! Вернее он после перезагрузки имеет пустую переменную НОМЕ.

                          Comment


                            #14
                            Больше знаков восклицания
                            жесть конечно...у вас заббикс проверка стартует не из init.d а единократно.
                            сделайте наконец
                            su - zabbix
                            И посмотрите переменные окружения.

                            Comment


                              #15
                              Code:
                              su - zabbix
                              -bash-4.1$ echo $HOME
                              /var/lib/zabbix
                              Перезапустил заббикс агента под юзером заббикса. Значение переменной HOME агенту не передалось.
                              Т.е. Заббикс агент не знает о своей домашней директории.. Пользователь zabbix - знает, а агент - нет.
                              Но не исключаю каких-то глюков и в системе.

                              Comment

                              Announcement

                              Collapse
                              No announcement yet.
                              Working...
                              X