NetXMS Support Forum

Russian Support => Общие вопросы => Topic started by: sign63 on August 30, 2013, 07:48:56 AM

Title: NetXMS + DB Oracle
Post by: sign63 on August 30, 2013, 07:48:56 AM
Всем доброго времени суток!

Использую "NetXMS" для мониторинга серверов.
Также отдельно для мониторинга БД Oracle использую "ashv-3.4"
Прикрепляю ее скрины...
http://s019.radikal.ru/i630/1308/0e/53ce1e8e7ea9.png
http://s017.radikal.ru/i422/1308/1f/91228fa3b1fd.png

Вопрос: может ли  "NetXMS"  делать тоже, что и  "ashv-3.4"?

Если Да                -> то как?
Если Не полностью -> то насколько?
Если Нет               -> то нет ;)

Жду ответа, заранее спасибо
Title: Re: NetXMS + DB Oracle
Post by: Victor Kirhenshtein on August 30, 2013, 07:50:17 PM
Скорее может чем нет :) Для NetXMS есть субагент для мониторинга Oracle (http://wiki.netxms.org/wiki/Subagent:Oracle (http://wiki.netxms.org/wiki/Subagent:Oracle)), он дает кое-какую информацию. Мы его можем легко расширить, проблема скорее в том что мы не знаем, что именно надо мониторить в Oracle в реальной жизни. Так что пробуйте, по отзывам будем улучшать агента :)
Title: Re: NetXMS + DB Oracle
Post by: sign63 on September 02, 2013, 01:06:51 PM
Посмотрел http://wiki.netxms.org/wiki/Subagent:Oracle#INI_configuration
а также наткнулся на https://www.netxms.org/forum/general-support/oracle-agent-netxms-1-2-4/

Нужно мониторить 1ну БД и так как я понял нужно в INI файл записать
Quote
SubAgent = oracle.nsm

*ORACLE
ID =
/*
какой параметр сюда подставлять?
translate->База данных идентификатора. Он будет использоваться для решения этой базы данных в параметрах.
*/
TNSName = ORCL
Username = log
Password = pass

Вопрос на стороне клиента это делать или на сервере.
http://i058.radikal.ru/1309/8d/a6fbd19a5d27.png
На сервере есть ini файлы:(config.ini, nxmc.ini, start.ini)


Я уже везде все попробовал, но отображать никак не хочет, даже не могу проверить никак доходит до него oraclе или нет
Title: Re: NetXMS + DB Oracle
Post by: Victor Kirhenshtein on September 02, 2013, 08:10:17 PM
Это надо делать на том агенте, который будет подключаться к базе. На скриншоте отсутствует начало секции ORACLE, возможно в этом проблема. Для диагностики можно запустить агента в дебаг режиме (с ключом -D9), тогда будет видно, подключается он к базе или нет (только перед этим обязательно поставить лог в файл).
Title: Re: NetXMS + DB Oracle
Post by: sign63 on September 03, 2013, 10:33:35 AM
Сервер:
http://s018.radikal.ru/i523/1309/71/d52c2d179469.png
подставлял "orcl" в (*) все равно никак

http://s003.radikal.ru/i201/1309/97/36d30f4482d3.png

конфиг сервера:
http://s019.radikal.ru/i600/1309/d2/c957259c8601.png
------------------------------------------------------------
Клиент конфиг:
http://s012.radikal.ru/i319/1309/ac/809d96201452.png

что не так?
Title: Re: NetXMS + DB Oracle
Post by: Alex Kirhenshtein on September 03, 2013, 11:39:10 AM
Agent.IsSubagentLoaded не относится к oracle субагенту, это параметр самого core агента. пример:
root@demo:~# nxget localhost "Agent.IsSubagentLoaded(oracle)"
1
root@demo:~# nxget localhost Agent.IsSubagentLoaded(linux)"
1
root@demo:~# nxget localhost Agent.IsSubagentLoaded(somethingnotloaded)
0


"ID" в конфигурации оракл-субагента позволяет мониторить через один агент несколько разных баз, его нужно подставлять в все Oracle.* DCI-и первым параметром.

Пример конфигурации с моей демо системы:

nxagentd.conf:
MasterServers=0.0.0.0/0
LogFile=/var/log/nxagentd
Subagent=xfsdummy.nsm
Subagent=oracle.nsm

*oracle
ID=db1
TNSName=//127.0.0.1/XE
UserName=netxms
Password=netxms


Скриншот настроек в аттаче.

Так же в аттаче темплейт, в котором есть все DCI-и настроенные на id="db1" (без трешхолдов)
Title: Re: NetXMS + DB Oracle
Post by: sign63 on September 03, 2013, 01:05:03 PM
поправил
http://i031.radikal.ru/1309/58/4fab24f26cee.png
но "oracle" в функциях не вижу
http://i069.radikal.ru/1309/ef/6be8f1058335.png

если знаете как сделать распишите пожалуйста поподробнее я не администратор :-\
Title: Re: NetXMS + DB Oracle
Post by: sign63 on September 04, 2013, 01:56:25 PM
Тема все еще актуальна и не раскрыта...
Title: Re: NetXMS + DB Oracle
Post by: Victor Kirhenshtein on September 05, 2013, 09:59:46 AM
Попробуйте просто ORCL в качестве TNSName, раз он прописан в tnsnames. Ну и запуск агента с дебагом прояснил бы ситуацию - вполне возможно что не выставлен например ORACLE_HOME и клиент не может нормально работать, или еще что-то (я писал выше как агента в дебаг режимне запустить).
Title: Re: NetXMS + DB Oracle
Post by: sign63 on September 05, 2013, 12:58:48 PM
На скринах не видно но добавил на клиенте
LogFile = C:\NetXMS\var\log\netxms.log

лог


05-Sep-2013 13:54:01.091] Log file opened
[05-Sep-2013 13:54:01.091] Additional configs was loaded from C:\NetXMS\etc\nxagentd.conf.d
[05-Sep-2013 13:54:01.092] Debug level set to 0
[05-Sep-2013 13:54:01.103] Subagent "WINNT.NSM" loaded successfully
[05-Sep-2013 13:54:01.141] Subagent "winperf.nsm" loaded successfully
[05-Sep-2013 13:54:01.142] DB Library: Unable to load database driver module "oracle.ddr": The specified module could not be found.
[05-Sep-2013 13:54:01.142] oracle: failed to load db driver
[05-Sep-2013 13:54:01.142] Initialization of subagent "oracle.nsm" failed
[05-Sep-2013 13:54:02.143] Listening on socket 0.0.0.0:4700
[05-Sep-2013 13:54:03.143] NetXMS Agent started
Title: Re: NetXMS + DB Oracle
Post by: Victor Kirhenshtein on September 05, 2013, 07:52:41 PM
Вообщем баг в инсталлере - забыли положить oracle.ddr :) У вас 32 или 64 бита система?
Title: Re: NetXMS + DB Oracle
Post by: sign63 on September 09, 2013, 07:06:45 AM
агент, винда - все 64.
Можете скинуть этот ddr мне и сказать как его установить вручную?
Title: Re: NetXMS + DB Oracle
Post by: Victor Kirhenshtein on September 10, 2013, 11:21:59 AM
oracle.ddr  в аттаче (собран для версии 1.2.8). Достаточно просто скопировать его в bin каталог агента.

Title: Re: NetXMS + DB Oracle
Post by: sign63 on September 10, 2013, 01:58:08 PM
Ура) Спасибо большое)
И еще указал:
ID = //localhost/orcl


Также при вызове параметра на сервере необходимо указать данный ID:
Oracle.Sessions.Count(//localhost/orcl)
Показывает количество сессий
Title: Re: NetXMS + DB Oracle
Post by: oruel on November 08, 2013, 11:29:37 AM
Ребята такая же проблема нет oracle.ddr для последнего агента 32битная система nxagent-1.2.9.exe.
Где можно взять ?

Плюс у Вас баг, при инсталяции сервера с использованием в качестве БД Оракла инсталятор затыкается на создании функции zero_to_null не срослось что то со знаком " ; " пришлось ручками править.
Title: Re: NetXMS + DB Oracle
Post by: Victor Kirhenshtein on November 08, 2013, 05:15:06 PM
субагент в аттаче. Инсталлер я порсмотрю, спасибо за репорт.
Title: Re: NetXMS + DB Oracle
Post by: oruel on November 12, 2013, 08:43:02 AM
Субагента подложил.
В логе теперь на стороне агента все ОК.
-----------------------
[12-Nov-2013 08:02:55.412] [INFO ] DB Library: Database driver "oracle.ddr" loaded and initialized successfully
[12-Nov-2013 08:02:55.412] [INFO ] Subagent "oracle.nsm" loaded successfully
[12-Nov-2013 08:02:56.412] [INFO ] Listening on socket 0.0.0.0:4700
[12-Nov-2013 08:02:57.412] [INFO ] NetXMS Agent started
-----------------------

в файле конфигурации агента nxagentd.conf
------------
SubAgent = oracle.nsm

*ORACLE
ID = ora1
TNSName = tst
Username = system
Password = pass
------------------
на Оракловском сервере, который мониторится, с данными параметрами PLSQL Developer спокойно подключается к базе и работает.
Оракл 9.

Со стороны сервера в параметрах стали видны Оракловские параметры (но только после перезагрузки сервера, что не есть хорошо)
но при попытке выполнить любой запрос выпадает ошибка . В качестве параметра передаю ID т.е в моем случае ora1.
----- ERROR --------
Cannot get current parameter value: Requested data collection item is not supported by agent
-------------
Куда смотреть дальше?
Title: Re: NetXMS + DB Oracle
Post by: Victor Kirhenshtein on November 12, 2013, 09:42:02 AM
Quote from: oruel on November 12, 2013, 08:43:02 AM
Со стороны сервера в параметрах стали видны Оракловские параметры (но только после перезагрузки сервера, что не есть хорошо)

Достаточно было сделать configuration poll для узла с агентом, или подождать - сервер обновляет список доступных параметров во время configuration poll.

Quote from: oruel on November 12, 2013, 08:43:02 AM
но при попытке выполнить любой запрос выпадает ошибка . В качестве параметра передаю ID т.е в моем случае ora1.
----- ERROR --------
Cannot get current parameter value: Requested data collection item is not supported by agent
-------------
Куда смотреть дальше?

Попробуйте запустить агента с уровнем дебага 9 (опция -D9 в командной строке) - скорее всего будут дополнительные сообщения в логе.
Title: Re: NetXMS + DB Oracle
Post by: oruel on November 12, 2013, 10:13:47 AM
После запуска клиента
--------------------
[12-Nov-2013 10:03:31.660] [INFO ] DB Library: Database driver "oracle.ddr" loaded and initialized successfully
[12-Nov-2013 10:03:31.660] [INFO ] Subagent "oracle.nsm" loaded successfully
[12-Nov-2013 10:03:31.660] [DEBUG] WINPERF: CollectorThread_A waiting for set change
[12-Nov-2013 10:03:31.660] [DEBUG] WINPERF: CollectorThread_A: set changed
[12-Nov-2013 10:03:31.660] [DEBUG] WINPERF: CollectorThread_A entered data collection loop
[12-Nov-2013 10:03:31.660] [DEBUG] WINPERF: CollectorThread_B waiting for set change
[12-Nov-2013 10:03:31.660] [DEBUG] WINPERF: CollectorThread_C waiting for set change
[12-Nov-2013 10:03:31.660] [DEBUG] DBConnect: server=tst db=(null) login=system schema=(null)
[12-Nov-2013 10:03:32.660] [DEBUG] External parameters providers poller thread will not start
[12-Nov-2013 10:03:32.660] [DEBUG] Trying to bind on 0.0.0.0:4700
[12-Nov-2013 10:03:32.660] [INFO ] Listening on socket 0.0.0.0:4700
[12-Nov-2013 10:03:32.660] [DEBUG] PushConnector: named pipe created, waiting for connection
[12-Nov-2013 10:03:32.660] [DEBUG] StorageDiscoveryConnector: named pipe created, waiting for connection
[12-Nov-2013 10:03:33.660] [INFO ] NetXMS Agent started
--------------------------------------

При попытке выполнить запрос статуса
-------------------------------------------
[12-Nov-2013 10:06:51.164] [DEBUG] [session:0] GetParameterValue(): result is 0 (SUCCESS)
[12-Nov-2013 10:06:51.164] [DEBUG] [session:0] Sending message CMD_REQUEST_COMPLETED (size 48)
[12-Nov-2013 10:06:52.664] [DEBUG] [session:0] Received message CMD_GET_PARAMETER
[12-Nov-2013 10:06:52.664] [DEBUG] [session:0] Requesting parameter "Oracle.Instance.Status(ora1)"
[12-Nov-2013 10:06:52.664] [DEBUG] oracle: got request for params: dbid='ora1', param='Oracle.Instance.Status(ora1)'
[12-Nov-2013 10:06:52.664] [DEBUG] oracle: valuecount 0
[12-Nov-2013 10:06:52.664] [DEBUG] [session:0] GetParameterValue(): result is 404 (UNKNOWN_PARAMETER)
[12-Nov-2013 10:06:52.664] [DEBUG] [session:0] Sending message CMD_REQUEST_COMPLETED (size 32)
[12-Nov-2013 10:07:01.664] [DEBUG] DBConnect: server=tst db=(null) login=system schema=(null)

Смущает строка
DBConnect: server=tst db=(null) login=system schema=(null)
похоже не передается значения db и schema
где их указывать ?

tnsnames.ora
------------------
TST.SUNPP.LOCAL =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = srv-ora-tst)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = tst)
    )
  )
------------------
tnsping проходит
Title: Re: NetXMS + DB Oracle
Post by: Victor Kirhenshtein on November 12, 2013, 11:19:05 AM
Похоже он все-таки не может подключится к базе. DB и schema NULL это нормально, для Oracle подключений они не используются. Попробуйте указать

TNSName = TST.SUNPP.LOCAL

Успешный лог у меня выглядит так:

[12-Nov-2013 11:16:56.371] [INFO ] DB Library: Database driver "oracle.ddr" loaded and initialized successfully
[12-Nov-2013 11:16:56.373] [INFO ] Subagent "oracle.nsm" loaded successfully
[12-Nov-2013 11:16:56.373] [DEBUG] DBConnect: server=//192.168.64.3/XE db=(null) login=system schema=(null)
[12-Nov-2013 11:16:57.001] [DEBUG] New DB connection opened: handle=000000000317FBD0
[12-Nov-2013 11:16:57.001] [INFO ] oracle: connected to DB '//192.168.64.3/XE'

конфиг такой:


*Oracle
ID = DB1
TNSName = //192.168.64.3/XE
Username = system
Password = admin


но я использую instant client.