News:

We really need your input in this questionnaire

Main Menu
Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - Alex Kirhenshtein

#961
General Support / Re: Does NetXMS support NAGIOS?
December 15, 2008, 06:38:47 PM
Short answer - yes, you can.

NetXMS gathers data in multiple ways:

  • Common ways - initiated by server (NetXMS agent build-in checks, SNMP, WMI, etc.)
  • External application can push data (and events) into NetXMS from external source using nxpush / nxevent tools. We use for integration with HP ServiceDesk, for example
  • "External Parameter" can be defined for NetXMS agent. Basically, it just an application / script which output some value. This method commonly used for parameters not provided by core agent and subagents.

Solution depends on integration level you want to achieve.
If you need only events in NetXMS (e.g. "Out of disk space", "Node Down", etc.) - you can setup Nagios to execute nxevent when something happens to push event into NetXMS. This can be done with little effort.

If you want to have not only events but data too (e.g. amount of free space for every minute), you can use two ways:

  • Use nxpush and execute it periodically by Nagios / cron.
  • Create script(s) which extract data from Nagius and configure agent to run this script as "external parameter"

This should work, but I should warn you that this way can require a lot of effort to make it work (depends on the size of your network). If you want to see all collected in NetXMS - I'd suggest to install our agent on each node.
#962
На даный момент - внешними скриптами.  Я бы сделал простенькую обвязку вокруг dig.
#963
Hello.

No, NetXMS server doest not provide such functionality (at least now). However, it can probable be done using standalone snmp server and some scripts for passing data between netxms and snmp servers. I never tryed it myself, but I'm pretty sure it can be done quite easily.
#964
General Support / Re: Custom monitoring agent ?
October 30, 2008, 06:15:17 PM
Yes, you can use external application / script:

Sample from nxagentd.conf:
Quote#
# ExternalParameter
#
# Add parameter handled by external command. To add multiple parameters, you
# should use multiple ExternalParameter entries. Please note that on Windows
# agent uses system process execution API for execution of specified
# command, so you cannot use pipes or shell commands. If you need to
# execute command via shell, use ExternalParameterShellExec instead.
#
# Syntax:
# ExternalParameter = <parameter_name>:<command_line>
# If you specify parameter name as "name(*)", then you can use $1 .. $9 in
# command line to substitute actual arguments passed from server.
#
# Examples:
# ExternalParameter = Test:echo test
# ExternalParameter = LineCount(*):cat $1 | wc -l
# ExternalParameter = Test2(*):myprog $1 $2

Also you can use nxpush/nxevent to push data to the monitoring server directly from your application.
#965
General Support / Re: Received fatal Debug message
October 20, 2008, 02:43:03 AM
Thank you for report, we will investigate it.
#966
Проверил на XP sp3 - всё замечательно. Попробуй тест из аттача, это консольное приложение, которые должно вывести время с таймзоной.

Примерно так:
Date: Sun, 05 Oct 2008 19:13:28 FLE Standard Time
#967
Это похоже косяк strftime() на винде - таймзона всегда по нулям. Я всё никак не доберусь до виндовой машины с компилятором чтоб проверить.

Quote from: Alex on October 03, 2008, 11:59:23 AM
Не знаю не знаю, но у меня на ляликсе все путем.
#968
На какой платформе работает сервер?
#969
Легенда:

*) Коды ошибок:
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
** тут бинарный протокол, я не буду его описывать.
** Отключаемся

   



Примерно так.
#970
Похоже криво смигрировалось между базами - хотя я вроде проверял. Показалось. Постараюсь завтра с утра починить.
#971
It's weird.

Could you try any other database, just for test? SQLite, for example - you don't have to install anything, just change DBDriver to sqlite.ddr and DBName to DB file path (somethign like c:\netxms\netxms_db). Then you should create dabase by running C:\NetXMS\bin\nxdbmgr.exe init C:\NetXMS\lib\sql\dbinit_sqlite.sql
#972
Мда, это я не подумал.

Виктор в ближайшее время выложит новый бинарник субагента.
#973
Файл в аттаче. Надо положить в корень дистрибутива (e.g. netxms-0.2.22/) и запустить:
patch -p0 < /путь/к/portcheck.diff

Я погонял на файлах разного размера и с разных серверов - вроде проблем нету.

Про сборку только субагента - если не чистили каталог из которого делали make install - то можно после патча пойти в src/agent/subagents/portCheck и сделать оттуда make install - субагент должен пересобраться и поставиться. Если из чистого дистрибутива - то для ускорения можно сделать configure --with-agent, сборка пройдет быстрее (но foundation libraries и core agent тоже будут собраны - как зависимости).
#974
Я посмотрел в коде - да, есть такая бага. Сейчас несколько переделаю субагента и выложу дифф.
#975
There are no telnet check at the moment, but you can use "User defined" service check for this:

*) Right click on node -> Create -> Service
*) Type any name; set "Service Type" to "User defined" and change "TCP/UDP Port" to "23"
*) Press Ok to save changes