Мониторинг с помощью ServiceCheck.Х
-
На всякий случай создаю более общую тему, нежли чем в прошлый раз (только по HTTP).
Вопрос: каков правильный синтаксис (для поля Data \ Parameter) для всех текущих запросов типа "ServiceCheck.X" ? С "HTTP" мы уже разобрались. А что насчёт:
ServiceCheck.POP3
ServiceCheck.SMTP
ServiceCheck.SSH
ServiceCheck.TELNET...?
Вопрос опять же относится к случаю, когда всё указанное нужно мониторить с одной ноды (Сервер NXMS) на другой (удалённый сервер, без возможности установки агента).
Виктор, нельзя ли привести хотя бы по одному максимально функциональному примеру на каждый из случаев? А то в Документации (https://www.netxms.org/documentation/common_parameters.html) сей вопрос (ServiceCheck) вообще никак не освещён... =(
Спасибо.
-
Легенда:
*) Коды ошибок:
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 ** тут бинарный протокол, я не буду его описывать. ** Отключаемся
Примерно так.
-
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