Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (Flatly)
  • No Skin
Collapse
Brand Logo

NetXMS Forum

  1. Home
  2. Support (Russian)
  3. Мониторинг с помощью ServiceCheck.Х

Мониторинг с помощью ServiceCheck.Х

Scheduled Pinned Locked Moved Support (Russian)
3 Posts 2 Posters 13.4k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • A
    A
    Anth0ny
    wrote on last edited by
    #1

    На всякий случай создаю более общую тему, нежли чем в прошлый раз (только по HTTP).

    Вопрос: каков правильный синтаксис (для поля Data \ Parameter) для всех текущих запросов типа "ServiceCheck.X" ? С "HTTP" мы уже разобрались. А что насчёт:

    ServiceCheck.POP3
    ServiceCheck.SMTP
    ServiceCheck.SSH
    ServiceCheck.TELNET

    ...?

    Вопрос опять же относится к случаю, когда всё указанное нужно мониторить с одной ноды (Сервер NXMS) на другой (удалённый сервер, без возможности установки агента).

    Виктор, нельзя ли привести хотя бы по одному максимально функциональному примеру на каждый из случаев? А то в Документации (https://www.netxms.org/documentation/common_parameters.html) сей вопрос (ServiceCheck) вообще никак не освещён... =(

    Спасибо.

    1 Reply Last reply
    0
    • A
      A
      Alex Kirhenshtein
      wrote on last edited by
      #2

      Легенда:

      *) Коды ошибок:

      	PC_ERR_NONE         = 0 - всё хорошо
      	PC_ERR_BAD_PARAMS   = 1 - кривые параметры запроса, на данный момент так отвечает только HTTP - если regexp неправильный
      	PC_ERR_CONNECT      = 2 - не смогли подключится к host:port
      	PC_ERR_HANDSHAKE    = 3 - ответ проверяемого сервера не совпал с ожидаемым
      

      *) "->" - отсылаем данные на проверяемый хост
      *) "<-" - получаем данные от проверяемого хоста


      На данный момент port checker subagent поддерживает 6 DCI:

      ServiceCheck.POP3

      Пытаемся залогинится на указанный POP3 сервер.

      Принимает 3 параметра: host, login, password.
      (только что обнаружил, что через DCI нельзя проверять произвольный порт - только через service object)

      Пример: ServiceCheck.POP3(mail.netxms.org,testuser,testpassword)

      Как проходит проверка:

      ** Подключаемся на mail.netxms.org:110
      <- +OK
      -> USER testuser
      <- +OK
      -> PASS testpassword
      <- +OK
      ** Отключаемся
      

      ServiceCheck.SMTP

      Пытаемся отослать email через указанный SMTP на указанные email.

      Принимает 2 параметра: host, адрес_куда_посылаем_письмо.

      Пример: ServiceCheck.SMTP(mail.netxms.org,[email protected])

      Как проходит проверка:

      ** Подключаемся на mail.netxms.org:25
      <- 220-mail server banner line 1
      <- 220-mail server banner line 2
      <- 220 mail server banner line 3
      -> HELO netxms-portcheck
      <- 250 ...
      -> MAIL FROM noreply@netxms-portcheck
      <- 250 ...
      -> RCPT TO: [email protected]
      <- 250 ...
      -> DATA
      <- 354 ...
      -> From: <noreply@netxms-portcheck>
      -> To: [email protected]
      -> Subject: NetXMS test mail
      -> Date: ...
      ->
      -> NetXMS test mail
      -> .
      <- 250 ...
      -> QUIT
      <- 221 ...
      ** Отключаемся
      

      Имя "netxms-portcheck" используется если вызов gethostname() вернул ошибку, иначе - имя хоста на котором работает агент.

      ServiceCheck.SSH

      Пытаемся проверить наличие SSH демона

      Принимает 2 параметра: host, port.

      Пример: ServiceCheck.SSH(www.netxms.org,22)

      Порт по умолчанию: 22

      Как проходит проверка:

      ** Подключаемся на mail.netxms.org:22
      <- SSH-major.minor-...
      -> SSH-major.minor-NetXMS
      ** Отключаемся
      

      Major и minor - версия протокола которую поддерживает ssh сервер. Такой handshake нужен чтоб sshd не ругался в логи.

      ServiceCheck.HTTP

      Проверяем результат http запроса на соответствие regexp-у.

      Развернутое описание есть тут: https://www.netxms.org/forum/index.php/topic,406.0.html

      Принимает 5 параметров: host, port, URI, host_header, regexp

      Пример 1: ServiceCheck.HTTP(www.netxms.org,80,/,www.netxms.org,^HTTP/1\.[01] 200.*)

      Порт по умолчанию: 80
      regexp по умолчанию: "^HTTP/1.[01] 200 .*" (т.е. проверка на то, что страница найдена на сервере)

      Пример 2 (идентичен примеру 1): ServiceCheck.HTTP(www.netxms.org,,/,www.netxms.org)

      Как проходит проверка:

      ** Подключаемся на www.netxms.org:80
      -> GET / HTTP/1.1
      -> Connection: close
      -> Host: www.netxms.org
      ->
      <- HTTP/1.1 200 OK
      <- Content-type: ...
      <- ...
      ** Отключаемся
      ** Сравниваем полученные данные с regexp-ом
      

      ServiceCheck.Custom

      На данный момент проверяет только возможность подключения к удаленному хосту (т.е. с другой стороны порт слушают и принимают соединения).

      Принимает два параметра: host, port

      Пример: ServiceCheck.Custom(www.netxms.org,3306) - проверяем наличие mysql на www.netxms.org

      Как проходит проверка:

      ** Подключаемся на www.netxms.org:3306
      ** Отключаемся
      

      ServiceCheck.Telnet

      Проверяет наличие telnet сервера на host:port и правильность handshake-а.

      Принимает два параметра: host, port

      Порт по умолчанию: 23

      Пример: ServiceCheck.Telnet(www.netxms.org,23)
      Пример: ServiceCheck.Telnet(www.netxms.org)

      Как проходит проверка:

      ** Подключаемся на www.netxms.org:23
      ** тут бинарный протокол, я не буду его описывать.
      ** Отключаемся
      

          


      Примерно так.

      1 Reply Last reply
      0
      • A
        A
        Anth0ny
        wrote on last edited by
        #3

        ОГРОМНОЕ спасибо! 😃

        1 Reply Last reply
        0

        Hello! It looks like you're interested in this conversation, but you don't have an account yet.

        Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

        With your input, this post could be even better 💗

        Register Login
        Reply
        • Reply as topic
        Log in to reply
        • Oldest to Newest
        • Newest to Oldest
        • Most Votes


        • Login

        • Don't have an account? Register

        • Login or register to search.
        Powered by NodeBB Contributors
        • First post
          Last post
        0
        • Categories
        • Recent
        • Tags
        • Popular
        • Users
        • Groups