Ad Widget

Collapse

Мониторинг MSSQL с использованеим FreeTDS

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Nikrom
    Junior Member
    • Jan 2018
    • 28

    #1

    Мониторинг MSSQL с использованеим FreeTDS

    Добрый день.

    Мне необходимо настроить zabbix для мониторинга MSSQL с использованием Windows аутентификацию, для этого решил воспользоваться FreeTDS. Zabbix 3.4 установлен на Centos 7. После установки пакета FreeTDS проверил его работоспособность следующими командами:
    /usr/local/bin/tsql -S FreeTDS_eksql -U ***\\***
    isql -v eksql ***\\*** ****
    Обе команды подключились к серверу базы данных, из чего предполагаю, что настройка FreeTDS окончена. Перехожу к настройке мониторинга в web интерфейсе zabbix.
    В zabbix создал host, настроил item на проверку ping, для того чтобы убедиться доступности сервера. Работает.
    Перешёл к созданию item для мониторинга базы данных. Создал item в key указал: db.odbc.select[Test,eksql], указал User name и Password, написал запрос и в надежде, что всё заработает создал Triggers.
    Но не заработало, в items получил ошибку:
    Cannot connect to ODBC DSN:[SQL_ERROR]:[42000][18452][[unixODBC][FreeTDS][SQL Server]Не удалось выполнить вход. Имя входа принадлежит нед]|[08001][0][[unixODBC][FreeTDS][SQL Server]Unable to connect to data sou
    В чём может быть проблема? Пытался заполнять разными способами odbc.ini, odbcinst.ini и freetds.conf. На данный момент прописано следующее:

    odbcinst.ini:
    [FreeTDS]
    Description=FreeTDS unixODBC Driver
    Driver=/usr/local/lib/libtdsodbc.so
    Setup=/usr/local/lib/libtdsodbc.so
    UsageCount=1

    odbc.ini:
    [eksql]
    Driver = FreeTDS
    Description = Sybase JDBC Server
    Server = ***.***.***.***
    PORT = 1433
    TDS_Version = 8.0

    freetds.conf:
    [FreeTDS_eksql]
    host = ***.***.***.***
    port = 1433
    tds version = 8.0
    P.S.: ***.***.***.*** - указываю ip адрес сервера
  • Kos
    Senior Member
    Zabbix Certified SpecialistZabbix Certified Professional
    • Aug 2015
    • 3404

    #2
    Пользователь и пароль в настройках item-а указаны?
    Сравнил со своими настройками - примерно так же, только у меня в odbc.ini ещё в каждой секции прописан параметр "Database=...".

    Comment

    • Nikrom
      Junior Member
      • Jan 2018
      • 28

      #3
      Kos, перепроверял корректность введённых логина и пароля не однократно. Не указываю "Database=...", так как, скорее всего, нужно будет обращаться к различным базам на сервере к которому подключаюсь.
      Возможно ли здесь проблема именно в FreeTDS?
      Так же обратил внимание, команда:
      sqlcmd -D -S eksql -U ***\\*** -P ****
      Возвращает ошибку:
      The DSN specified an unsupported driver.
      Сейчас изучаю как настроить логирование, надеюсь хотя бы оно сможет внести ясность в причину некорректной работы.
      Last edited by Nikrom; 27-03-2018, 09:14.

      Comment

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

        #4
        Не, ну команда isql ведь работает через unixODBC.
        Попробуйте сделать следующий тест:
        • перейти в сессию от имени пользователя zabbix: "su - zabbix";
        • там выполнить какой-либо SELECT через unixODBC, типа:
        Code:
        echo "SELECT что-нибудь FROM ВашаТаблица WHERE ..." | isql -v eksql "пользователь" "пароль"
        Может, вылезет что-нибудь неожиданное - типа отсутствия прав у пользователя zabbix читать настройки unixODBC.

        Comment

        • Nikrom
          Junior Member
          • Jan 2018
          • 28

          #5
          Kos, не совсем понимаю как можно зайти под пользователя zabbix: "su - zabbix", он ведь в группе "nologin".

          Попробовал переустановить FreeTDS. Картина только ухудшилась, теперь через tsql и isql я всё так же получаю доступ к серверу баз данных, но теперь в zabbix ошибка выводится следующим образом:
          Cannot connect to ODBC DSN:[SQL_ERROR]:[42000][18452][[unixODBC][FreeTDS][SQL Server]?? ??????? ????????? ????. ??? ????? ??????????? ????????????? ?????? ? ?? ????? ?????????????? ]|[08001][0][[unixODBC][FreeTDS][SQL Server]Unable to connect to data sou
          Всё таки нашёл как полностью звучит эта ошибка:
          Не удалось выполнить вход. Имя входа принадлежит недоверенному домену и не может использоваться в проверке подлинности Windows.
          Мне удалось повторить эту ошибку на терминале, при подключении я указываю либо не корректный пароль, либо не корректный логин. Но я уверен в корректности вводимого логина и пароля в zabbix при настройке item.

          Сейчас уже подумываю о введении linux в домен, может это спасёт положение.

          Существует ли возможность выполнить команду как на терминале от zabbix_server?
          Last edited by Nikrom; 28-03-2018, 10:51.

          Comment

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

            #6
            Originally posted by Nikrom
            Kos, не совсем понимаю как можно зайти под пользователя zabbix: "su - zabbix", он ведь в группе "nologin".
            Имелось в виду: зайдя сначала от имени пользователя root, затем указанной командой перейти в сессию пользователя zabbix, чтобы последующие команды выполнять от его имени.
            Получится ли это - зависит, в числе прочего, от операционки (некоторые дистрибутивы Linux не позволяют выполнять команду "su"), но попробовать-то можно.
            Надо добиться того, чтобы от имени пользователя "zabbix" работала команда "isql".

            Comment

            • Nikrom
              Junior Member
              • Jan 2018
              • 28

              #7
              Kos, попробовал как вы сказали, под рутом выполнить команду "su - zabbix", получил ошибку: "This account is currently not available."

              Comment

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

                #8
                Хм. А от имени какого пользователя у Вас работает сервер Zabbix? Что указано в параметре "User=" в файле zabbix_server.conf? Какой пользователь "светится" в первой колонке вывода команды "ps -ef | grep zabbix_server"?
                Видимо, в Вашем случае используется не пользователь "zabbix", а какой-то другой (например, "zabbixserver" или что-нибудь наподобие). Вот и подставьте его в команду "su".

                Comment

                • Nikrom
                  Junior Member
                  • Jan 2018
                  • 28

                  #9
                  Выполнив команду "ps -ef | grep zabbix_server", получил список, в котором почти везде в первой колонке "zabbix", за исключением строки:
                  orpp 7828 7802 0 09:21 pts/2 00:00:00 grep --color=auto zabbix_server
                  Где orpp - это пользователь под которым захожу на linux, до перехода на sudo su, впринципе он единственный пользователь, не считая пользователей из домена, в который был введён linux.

                  По-поводу конфига zabbix_server.conf, как я его только не искал, найти так и не удалось. Использовал поиски: "whereis", "find / -name", поиск через "mc".

                  Что касается пользователя, командой "cat /etc/passwd" вижу вот такого пользователя:
                  zabbix:x:997:995:Zabbix Monitoring System:/var/lib/zabbix:/sbin/nologin

                  Comment

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

                    #10
                    Значит, пользователь, всё-таки, "zabbix", но переход на другого пользователя командой "su" запрещён.
                    Примерно того же эффекта можно добиться командой "sudo":
                    Code:
                    sudo -u zabbix bash

                    Comment

                    • Nikrom
                      Junior Member
                      • Jan 2018
                      • 28

                      #11
                      Выполнил указанные Вами команды:
                      sudo -u zabbix bash
                      echo "SELECT что-нибудь FROM ВашаТаблица WHERE ..." | isql -v eksql "пользователь" "пароль" (внеся изменения)
                      Удалось получить ответ от сервера, без дополнительных действий

                      Comment

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

                        #12
                        Ну тогда сам по себе unixODBC работает.
                        Теперь уже надо разбираться с Zabbix-ом - его настройками и взаимодействием с unixODBC.
                        Начать с рестарта процесса сервера (если Вы переустанавливали unixODBC).
                        Перепроверить вводимые имя/пароль.
                        Ещё меня немного смущает символ "\" в имени пользователя - возможно, где-то есть баг при его обработке. Там обязательно обратный слэш использовать, с прямым ("/") не работает? Попробовать его заэкранировать, продублировав. Что-то мне подсказывает, что проблема где-то рядом :-)

                        Update: о, и на форуме тоже с этим символом проблемы. Указываешь один обратный слэш - он просто "съедается", ставишь два - отображается один.
                        Last edited by Kos; 29-03-2018, 12:39.

                        Comment

                        • Nikrom
                          Junior Member
                          • Jan 2018
                          • 28

                          #13
                          ПОБЕДА!!! Спасибо Вам! =)
                          Проблема заключалась в том что я в zabbix, в web интерфейсе ставил так же как и в терминале, то-есть ставил "\\" для разделения домена и логина, сейчас попробовал поставить "\" и всё заработало! (чувствую себя глупцом...)

                          Осталось сейчас с кодировкой разобраться и всё =) Может сможете посоветовать куда нужно обратить внимание?
                          Last edited by Nikrom; 29-03-2018, 11:09.

                          Comment

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

                            #14
                            Рад, что удалось помочь.
                            К сожалению, про кодировки ничего сказать не могу :-(

                            Comment

                            Working...