API transport to TrueSight Infrastructure management

Greetings,

I am trying to hook use the API alert transport to send alerts between my librenms and BMC TrueSight Infrastructure management system.
I have a url command which is working:
curl --location -X POST --header ‘Authorization: Basic YXBpdGVzdDphcGl0ZXN0MTIzNDU=’ -H ‘Content-Type: application/json’ --data ‘[{ “eventSourceHostName”: “Test1”, “eventSourceIPAddress”: “1.1.1.1”, “attributes”: { “CLASS”: “EVENT”, “mc_object_uri”: “”, “severity”: “CRITICAL”, “msg”: “LNMS-MESSAGE” } }]’ http://tsimprd1/bppmws/api/Event/create?routingId=integ_dc\&routingIdType=CELL_NAME

I tried build the aler transport on my librenms, but it seems Truesight is not getting the parameters as it should, so I am getting a bad status from the system:

{“responseTimeStamp”:“2022-11-10T10:19:57”,“statusCode”:“Event Object”,“statusMsg”:“BPPM-RWS40002E”}

Basically, the picture shows the config done in the alet transport, tried playing various configs, but still, same issue.

Will appreciate any help.
Jacob

#############################

  • The output of ./validate.php

Last login: Thu Nov 10 10:08:39 IST 2022 on pts/1
-bash-4.2$ ./validate.php

Component Version
LibreNMS 22.9.0-3-g06c361c
DB Schema 2022_09_03_091314_update_ports_adsl_table_with_defaults (246)
PHP 7.3.33
Python 3.6.8
Database MariaDB 10.5.13-MariaDB
RRDTool 1.4.8
SNMP 5.7.2
====================================

[OK] Composer Version: 2.4.4
[OK] Dependencies up-to-date.
[OK] Database connection successful
[OK] Database Schema is current
[OK] SQL Server meets minimum requirements
[OK] lower_case_table_names is enabled
[OK] MySQL engine is optimal
[OK]
[FAIL] We have detected that your database schema may be wrong
Database: missing index (plugins/plugins_version_plugin_name_unique)
Database: incorrect column (ports_adsl/adslLineCoding)
Database: incorrect column (ports_adsl/adslLineType)
Database: incorrect column (ports_adsl/adslAtucInvVendorID)
Database: incorrect column (ports_adsl/adslAtucInvVersionNumber)
Database: incorrect column (ports_adsl/adslAtucCurrSnrMgn)
Database: incorrect column (ports_adsl/adslAtucCurrAtn)
Database: incorrect column (ports_adsl/adslAtucCurrOutputPwr)
Database: incorrect column (ports_adsl/adslAtucCurrAttainableRate)
Database: incorrect column (ports_adsl/adslAtucChanCurrTxRate)
Database: incorrect column (ports_adsl/adslAturInvSerialNumber)
Database: incorrect column (ports_adsl/adslAturInvVendorID)
Database: incorrect column (ports_adsl/adslAturInvVersionNumber)
Database: incorrect column (ports_adsl/adslAturChanCurrTxRate)
Database: incorrect column (ports_adsl/adslAturCurrSnrMgn)
Database: incorrect column (ports_adsl/adslAturCurrAtn)
Database: incorrect column (ports_adsl/adslAturCurrOutputPwr)
Database: incorrect column (ports_adsl/adslAturCurrAttainableRate)
Database: missing column (ports_stp/vlan)
Database: missing column (ports_stp/port_index)
Database: incorrect column (ports_stp/designatedCost)
Database: missing index (ports_stp/ports_stp_device_id_vlan_port_index_unique)
Database: extra index (ports_stp/ports_stp_device_id_port_id_unique)
Database: missing table (ports_vdsl)
Database: missing column (stp/vlan)
Database: incorrect column (users/auth_id)
Database: missing column (users_widgets/widget)
Database: extra column (users_widgets/widget_id)
Database: incorrect index (users_widgets/user_id)
Database: extra table (widgets)
[FIX]:
Run the following SQL statements to fix it
SQL Statements:
ALTER TABLE plugins ADD UNIQUE plugins_version_plugin_name_unique (version,plugin_name);
ALTER TABLE ports_adsl CHANGE adslLineCoding adslLineCoding varchar(8) NOT NULL DEFAULT ‘’ ;
ALTER TABLE ports_adsl CHANGE adslLineType adslLineType varchar(16) NOT NULL DEFAULT ‘’ ;
ALTER TABLE ports_adsl CHANGE adslAtucInvVendorID adslAtucInvVendorID varchar(16) NOT NULL DEFAULT ‘’ ;
ALTER TABLE ports_adsl CHANGE adslAtucInvVersionNumber adslAtucInvVersionNumber varchar(16) NOT NULL DEFAULT ‘’ ;
ALTER TABLE ports_adsl CHANGE adslAtucCurrSnrMgn adslAtucCurrSnrMgn decimal(5,1) NOT NULL DEFAULT ‘0.0’ ;
ALTER TABLE ports_adsl CHANGE adslAtucCurrAtn adslAtucCurrAtn decimal(5,1) NOT NULL DEFAULT ‘0.0’ ;
ALTER TABLE ports_adsl CHANGE adslAtucCurrOutputPwr adslAtucCurrOutputPwr decimal(5,1) NOT NULL DEFAULT ‘0.0’ ;
ALTER TABLE ports_adsl CHANGE adslAtucCurrAttainableRate adslAtucCurrAttainableRate int NOT NULL DEFAULT ‘0’ ;
ALTER TABLE ports_adsl CHANGE adslAtucChanCurrTxRate adslAtucChanCurrTxRate int NOT NULL DEFAULT ‘0’ ;
ALTER TABLE ports_adsl CHANGE adslAturInvSerialNumber adslAturInvSerialNumber varchar(32) NOT NULL DEFAULT ‘’ ;
ALTER TABLE ports_adsl CHANGE adslAturInvVendorID adslAturInvVendorID varchar(16) NOT NULL DEFAULT ‘’ ;
ALTER TABLE ports_adsl CHANGE adslAturInvVersionNumber adslAturInvVersionNumber varchar(16) NOT NULL DEFAULT ‘’ ;
ALTER TABLE ports_adsl CHANGE adslAturChanCurrTxRate adslAturChanCurrTxRate int NOT NULL DEFAULT ‘0’ ;
ALTER TABLE ports_adsl CHANGE adslAturCurrSnrMgn adslAturCurrSnrMgn decimal(5,1) NOT NULL DEFAULT ‘0.0’ ;
and 15 more…
Attempt to fix this issue (y or n)?:y
Failed to apply fix.
[OK] MySQl and PHP time match
[OK] Distributed Polling setting is enabled globally
[OK] Connection to memcached is ok
[OK] Connected to rrdcached
[OK] Active pollers found
[OK] Dispatcher Service not detected
[OK] Locks are functional
[OK] Python poller wrapper is polling
[OK] Redis is functional
[WARN] IPv6 is disabled on your server, you will not be able to add IPv6 devices.
[OK] rrdtool version ok
[OK] Connected to rrdcached
[WARN] Your install is over 24 hours out of date, last update: Thu, 29 Sep 2022 04:32:10 +0000
[FIX]:
Make sure your daily.sh cron is running and run ./daily.sh by hand to see if there are any errors.
[WARN] Your local git branch is not master, this will prevent automatic updates.
[FIX]:
You can switch back to master with git checkout master

Hi @Jacob_Ghattas

First, I recommend resolving the issues shown in the validate script. They probably have nothing to do with this issue, but they’ll compound if you ignore them.

Second, I don’t have a concrete answer for you, but I would spin up Wireshark or Burp Suite and look at the request being emitted from LibreNMS. That should help you to brute force whatever format LibreNMS is expecting that you don’t have. Let me know how it goes.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.