Интеграция с NETXMS

Started by inspirit, May 12, 2012, 12:17:31 PM

Previous topic - Next topic

inspirit

Добрый день Виктор. Интересует такой вопрос.

Можно ли из скрипта (PERL) - добавлять устройства(коммутаторы) в NETXMS. Может есть какое то Аpi или еще какой путь?
вобщем не через графическую консоль.

Было бы удобно как то автоматизировать процесс добавления устройств.

Можете что то сказать по этому вопросу?

Вобщем что то вида AddNode(ip,container,some_parametrs)


И еще.. Можно ли в разделе где SNMP TRAP ы привязывают к EVENT ам - сделать что бы ивент возбуждался не сразу, а скажем после некоторого числа трапов которое можно указать там. Или скажем если трапов пришло какое то количество в течении какого то промежутка времени. Что то в таком духе.

Заранее спасибо.

Victor Kirhenshtein

Добрый день!

В NetXMS есть Java и C API. Проще использовать Java API. Например, создать новое устройство можно так:


package org.netxms.samples;

import org.netxms.api.client.NetXMSClientException;
import org.netxms.client.NXCSession;
import org.netxms.client.objects.GenericObject;
import java.net.InetAddress;
import java.io.IOException;

public class Sample {
    private static final String SERVER = "127.0.0.1";
    private static final String LOGIN = "admin";
    private static final String PASSWORD = "netxms";

    public static void main(final String[] args) throws NetXMSClientException, IOException {
        final NXCSession session = new NXCSession(SERVER, LOGIN, PASSWORD);
        session.connect();
NXCObjectCreationData cd = new NXCObjectCreationData(GenericObject.OBJECT_NODE, "TestNode", 2);
cd.setIpAddress(InetAddress.getByName("192.168.10.1"));
long id = session.createObject(cd);
        // id of new node object now is in variable "id"
        session.disconnect();
    }
}


enp

Спасибо!

А покажите, пожалуйста, как сделать push для какого-нибудь DCI

enp

Пока что у меня даже список объектов добыть не получается. Пытаюсь так:


NXCSession session = new NXCSession(SERVER, LOGIN, PASSWORD);
session.connect();
GenericObject[] o = session.getAllObjects();
System.out.println(Arrays.asList(o));
session.disconnect();


Получаю пустой список. Прав у пользователя достаточно, он администратор

Victor Kirhenshtein

Надо сначала сделать session.syncObjects().

enp

Спасибо, но как все же сделать push?

Victor Kirhenshtein

Сейчас push можно сделать только через C API - там есть функция NXCPushDCIData. Сделаю соответствующий метод в NXCSession в следующем релизе.