Table of Contents |
---|
Related
...
Info |
---|
If we have custom net types, node types or role types in any poller, we also add these types into our nmis configuration file (nmis9/conf/Config.nmis) in the masterprimary: "roletype_list" => "default,core,distribution,access", |
Nodes API API
We can also manage nodes using the API.
...
http://uburnto.opmantek.net/en/omk/admin/api/v2/nodes
Code Block |
---|
{"configuration":{"netType":"default","polling_policy":"default","port":"161","collect":1,"threshold":1,"roleType":"default","ping":1,"group":"NMIS9","host":"asgard.opmantek.net","location":null,"customer":null,"businessService":null,"notes":"","host_backup":"","active":null,"community":"","wmiusername":"","wmipassword":"","username":"","context":"","authpassword":"","authkey":"","authprotocol":null,"privpassword":"","privkey":"","privprotocol":null,"serviceStatus":null,"nettype":null,"roletype":null,"node_context_name":"","node_context_url":"","remote_connection_name":"","remote_connection_url":""},"activated":{"opEvents":"1","opConfig":"0","NMIS":"1"},"uuid":null,"current_user_privileges":{"update":true,"delete":true},"name":"test","friendly_addresses":"","friendly_aliases":""} |
...
http://uburnto.opmantek.net/en/omk/admin/api/v2/nodes/b56ba595-69e7-4702-9fe5-49512e1340b0
Code Block |
---|
{"configuration":{"netType":"default","polling_policy":"1_minute","port":"161","collect":1,"threshold":1,"roleType":"access","ping":1,"group":"EXSI","active":1,"addresses":["192.168.88.13"],"aliases":[],"authkey":"","authpassword":"","authprotocol":"md5","businessService":null,"cbqos":"none","community":"OMKRead","context":"","customer":"Opmantek","depend":[],"display_name":"","host":"castor.opmantek.net","host_backup":"","ip_protocol":"IPv4","location":"Cloud","max_msg_size":1472,"max_repetitions":0,"model":"automatic","node_context_name":"Node Context","node_context_url":"https://somelink.com/map/thing/","notes":"","privkey":"","privpassword":"","privprotocol":"des","remote_connection_name":"SSH to Node","remote_connection_url":"ssh://$host","serviceStatus":"Testing","services":[],"sysDescr":"VMware ESXi 6.7.0 build-17167734 VMware, Inc. x86_64","timezone":0,"username":"","version":"snmpv2c","webserver":0,"wmipassword":"","wmiusername":"","nettype":null,"roletype":null},"activated":{"opEvents":"1","opConfig":"0","NMIS":"1"},"uuid":"b56ba595-69e7-4702-9fe5-49512e1340b0","current_user_privileges":{"update":0,"delete":0},"addresses":[],"aliases":[],"cluster_id":"a515c63a-0d11-4bcb-a402-39a4600aebb9","friendly_addresses":"192.168.88.13","friendly_aliases":"","name":"Castor","node_local":"Remote","overrides":{},"server_name":"fulla","unknown":{}} |
...
Important: All this methods are authenticated.
...
http://uburnto.opmantek.net/en/omk/opHA/login
Code Block |
---|
{"username": "username",
"password": "password"} |
We should receive a 200 response and a cookie, that we can reuse for next API calls.
Create a remote Node
If we want to create a node in a remote cluster, we should indicate the remote cluster id in configuration.pollers: Cluster_id.
E.x.
...
- Here you can find the Nodes API Documentation.
System Admin API options
- Here you can find the System Admin API Documentation
Configuration API
Update configuration items using the API.
Note: User should be authenticated.
Update configuration item for the local server:
POST http://volla.opmantek.net:6042/en/omk/admin/api/v2/
...
http://uburnto.opmantek.net/en/omk/admin/api/v2/nodes
Code Block |
---|
{"configuration":{"pollers": "a515c63a-0d11-4bcb-a402-39a4600aebb9", "netType":"default","polling_policy":"default","port":"161","collect":1,"threshold":1,"roleType":"default","ping":1,"group":"NMIS9","host":"asgard.opmantek.net","location":null,"customer":null,"businessService":null,"notes":"","host_backup":"","active":null,"community":"","wmiusername":"","wmipassword":"","username":"","context":"","authpassword":"","authkey":"","authprotocol":null,"privpassword":"","privkey":"","privprotocol":null,"serviceStatus":null,"nettype":null,"roletype":null,"node_context_name":"","node_context_url":"","remote_connection_name":"","remote_connection_url":""},"activated":{"opEvents":"1","opConfig":"0","NMIS":"1"},"uuid":null,"current_user_privileges":{"update":true,"delete":true},"name":"test","friendly_addresses":"","friendly_aliases":""} |
It will return the same output as for a local node:
Code Block |
---|
{
"activated": {
"NMIS": 1,
"opConfig": "0",
"opEvents": "1"
},
"cluster_id": "a515c63a-0d11-4bcb-a402-39a4600aebb9",
"configuration": {
"active": 1,
"aliases": [],
"authkey": "",
"authpassword": "",
"authprotocol": null,
"businessService": null,
"collect": 1,
"community": "",
"context": "",
"customer": null,
"group": "NMIS9",
"host": "asgard.opmantek.net",
"host_backup": "",
"location": null,
"max_msg_size": 65535,
"max_repetitions": 0,
"netType": "default",
"nettype": null,
"node_context_name": "",
"node_context_url": "",
"notes": "",
"ping": 1,
"pollers": "a515c63a-0d11-4bcb-a402-39a4600aebb9",
"polling_policy": "default",
"port": "161",
"privkey": "",
"privpassword": "",
"privprotocol": null,
"remote_connection_name": "",
"remote_connection_url": "",
"roleType": "default",
"roletype": null,
"serviceStatus": null,
"threshold": 1,
"username": "",
"wmipassword": "",
"wmiusername": ""
},
"friendly_addresses": "",
"friendly_aliases": "",
"name": "test",
"uuid": "6ce5fd5c-d703-4d03-b36c-b8e01439a9f2"
} |
Update a remote Node
If we want to create a node in a remote cluster, we just need to indicate the remote cluster id in cluster_id:
E.x.
...
{"system" : {"nettype_list":"wan,lan,vpn,man,san,voice,default,cpe,mnd"}}
Update a configuration item for all the peers in the cluster:
POST http://volla.opmantek.net:6042/en/omk/admin/api/v2/config/
...
Code Block |
---|
{"cluster_id": "a515c63a-0d11-4bcb-a402-39a4600aebb9", "configuration":{"netType":"default","polling_policy":"default","port":"161","collect":1,"threshold":1,"roleType":"default","ping":1,"group":"NMIS9","host":"asgard.opmantek.net","location":null,"customer":null,"businessService":null,"notes":"","host_backup":"","active":null,"community":"","wmiusername":"","wmipassword":"","username":"","context":"","authpassword":"","authkey":"","authprotocol":null,"privpassword":"","privkey":"","privprotocol":null,"serviceStatus":null,"nettype":null,"roletype":null,"node_context_name":"","node_context_url":"","remote_connection_name":"","remote_connection_url":""},"activated":{"opEvents":"1","opConfig":"0","NMIS":"1"},"uuid":null,"current_user_privileges":{"update":true,"delete":true},"name":"test","friendly_addresses":"","friendly_aliases":""} |
It will return the json node, the same structure that the CREATE.
Remote Nodes Error
If any operation has a remote cluster id, the API will try to edit in the remote server. If this operation is not possible, it will fail.
In order to succeed:
- opHA needs to be pulling that peer. This is because the peer sends the API url to update the remote in the registry data. And this information should be updated at least once a day.
- The peer has to be online.
If we should edit the remote node locally for some reason, we should use opnode_admin cli tool. remote/Config
{"system" : {"nettype_list":"wan,lan,vpn,man,san,voice,default,cpe,mnd"}}