Referencing asset fields in configuration files
JohnD Blackburn <[email protected]> Mon, 29 Oct 2018 01:38:03 +0000
| Newsgroups | gmane.network.opennms.general |
|---|---|
| Message-ID | <AM6PR0602MB338137008452A9B04145B1A8CBF30@AM6PR0602MB3381.eurprd06.prod.outlook.com> |
I've just upgraded my sandpit environment to OpenNMS 23.0.0, and was very interested in Issue NMS-10200 - "Allow use of placeholders in parameter values of monitors"
And was hoping that this issue would fix a problem I've had where I must hardcode username, password, DBSID, and port# into collectd-configuration, pollerd-configuration, and my foreign source definitions.
Having to do that means that every single database I need to monitor needs to have manual edits done to multiple xml files to add new service for that database.
I was hoping that issue NMS-10200 would allow me to create a single service that would enable me to utilise asset fields so that I could have a single service defined, and each database would have their database specific configuration details stored in asset fields.
However I still can't get this to work.
Here is the package config from collectd-configuration.xml:
<package name="ABBCS-Oracle-database" remote="false">
<filter>(IPADDR != '0.0.0.0') & (catincDatabases_oracle)</filter>
<include-range begin="1.1.1.1" end="254.254.254.254"/>
<include-range begin="::1" end="ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff"/>
<service name="ABBCS-Oracle-database" interval="300000" user-defined="false" status="on">
<parameter key="collection" value="ABBCS-Oracle"/>
<parameter key="thresholding-enabled" value="true"/>
<parameter key="driver" value="oracle.jdbc.driver.OracleDriver"/>
<parameter key="user" value="{username}"/>
<parameter key="password" value="{password}"/>
<parameter key="url" value="jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=OPENNMS_JDBC_HOSTNAME)(PORT={port}))(CONNECT_DATA=(SERVICE_NAME={assetNumber})))"/>
<parameter key="port" value="{port}"/>
</service>
</package>
But I'm getting the following error:
2018-10-29 10:44:04,921 INFO [pool-10-thread-4973] o.o.n.c.j.JdbcAgentState: Loaded JDBC driver
2018-10-29 10:44:04,927 WARN [Collectd-Thread-34-of-50] o.o.n.c.CollectableService: run: failed collection for 60/10.165.9.4/ABBCS-Oracle-database/ABBCS-Oracle-database
2018-10-29 10:44:04,927 ERROR [Collectd-Thread-34-of-50] o.o.n.c.CollectableService: Collection failed.
org.opennms.netmgt.collection.api.CollectionException: Collection failed.
at org.opennms.netmgt.collection.core.CollectionSpecification$1.onUnknown(CollectionSpecification.java:312) ~[org.opennms.features.collection.core-23.0.0.jar:?]
at org.opennms.netmgt.collection.core.CollectionSpecification$1.onUnknown(CollectionSpecification.java:289) ~[org.opennms.features.collection.core-23.0.0.jar:?]
at org.opennms.core.rpc.api.RpcExceptionUtils.handleException(RpcExceptionUtils.java:56) ~[org.opennms.core.ipc.rpc.api-23.0.0.jar:?]
at org.opennms.netmgt.collection.core.CollectionSpecification.collect(CollectionSpecification.java:289) ~[org.opennms.features.collection.core-23.0.0.jar:?]
at org.opennms.netmgt.collectd.CollectableService.doCollection(CollectableService.java:438) ~[opennms-services-23.0.0.jar:?]
at org.opennms.netmgt.collectd.CollectableService.doRun(CollectableService.java:370) ~[opennms-services-23.0.0.jar:?]
at org.opennms.netmgt.collectd.CollectableService.lambda$run$0(CollectableService.java:344) ~[opennms-services-23.0.0.jar:?]
at org.opennms.core.logging.Logging.withPrefix(Logging.java:71) [org.opennms.core.logging-23.0.0.jar:?]
at org.opennms.netmgt.collectd.CollectableService.run(CollectableService.java:337) [opennms-services-23.0.0.jar:?]
at org.opennms.netmgt.scheduler.LegacyScheduler$1.run(LegacyScheduler.java:179) [opennms-services-23.0.0.jar:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_191]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_191]
at org.opennms.core.concurrent.LogPreservingThreadFactory$3.run(LogPreservingThreadFactory.java:124) [opennms-util-23.0.0.jar:?]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_191]
Caused by: java.util.concurrent.ExecutionException: org.opennms.netmgt.collectd.jdbc.JdbcCollectorException: Unable to connect to JDBC URL: 'jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.165.9.4)(PORT={port}))(CONNECT_DATA=(SERVICE_NAME={assetNumber})))'
at java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:357) ~[?:1.8.0_191]
at java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1895) ~[?:1.8.0_191]
at org.opennms.netmgt.collection.core.CollectionSpecification.collect(CollectionSpecification.java:281) ~[org.opennms.features.collection.core-23.0.0.jar:?]
... 10 more
Caused by: org.opennms.netmgt.collectd.jdbc.JdbcCollectorException: Unable to connect to JDBC URL: 'jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.165.9.4)(PORT={port}))(CONNECT_DATA=(SERVICE_NAME={assetNumber})))'
at org.opennms.netmgt.collectd.jdbc.JdbcAgentState.getJdbcConnection(JdbcAgentState.java:126) ~[org.opennms.features.jdbc-collector-23.0.0.jar:?]
at org.opennms.netmgt.collectd.JdbcCollector.isGroupAvailable(JdbcCollector.java:244) ~[org.opennms.features.jdbc-collector-23.0.0.jar:?]
at org.opennms.netmgt.collectd.JdbcCollector.collect(JdbcCollector.java:133) ~[org.opennms.features.jdbc-collector-23.0.0.jar:?]
at org.opennms.netmgt.collection.client.rpc.CollectorClientRpcModule$1.get(CollectorClientRpcModule.java:83) ~[org.opennms.features.collection.client-rpc-23.0.0.jar:?]
at org.opennms.netmgt.collection.client.rpc.CollectorClientRpcModule$1.get(CollectorClientRpcModule.java:77) ~[org.opennms.features.collection.client-rpc-23.0.0.jar:?]
at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1590) ~[?:1.8.0_191]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[?:1.8.0_191]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[?:1.8.0_191]
... 1 more
Caused by: java.sql.SQLRecoverableException: IO Error: The Network Adapter could not establish the connection
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:743) ~[ojdbc7.jar:12.1.0.2.0]
at oracle.jdbc.driver.PhysicalConnection.connect(PhysicalConnection.java:666) ~[ojdbc7.jar:12.1.0.2.0]
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32) ~[ojdbc7.jar:12.1.0.2.0]
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:566) ~[ojdbc7.jar:12.1.0.2.0]
at org.opennms.netmgt.collectd.jdbc.JdbcAgentState.getJdbcConnection(JdbcAgentState.java:120) ~[org.opennms.features.jdbc-collector-23.0.0.jar:?]
at org.opennms.netmgt.collectd.JdbcCollector.isGroupAvailable(JdbcCollector.java:244) ~[org.opennms.features.jdbc-collector-23.0.0.jar:?]
at org.opennms.netmgt.collectd.JdbcCollector.collect(JdbcCollector.java:133) ~[org.opennms.features.jdbc-collector-23.0.0.jar:?]
at org.opennms.netmgt.collection.client.rpc.CollectorClientRpcModule$1.get(CollectorClientRpcModule.java:83) ~[org.opennms.features.collection.client-rpc-23.0.0.jar:?]
at org.opennms.netmgt.collection.client.rpc.CollectorClientRpcModule$1.get(CollectorClientRpcModule.java:77) ~[org.opennms.features.collection.client-rpc-23.0.0.jar:?]
at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1590) ~[?:1.8.0_191]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[?:1.8.0_191]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[?:1.8.0_191]
... 1 more
Caused by: oracle.net.ns.NetException: The Network Adapter could not establish the connection
at oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:470) ~[ojdbc7.jar:12.1.0.2.0]
at oracle.net.resolver.AddrResolution.resolveAndExecute(AddrResolution.java:506) ~[ojdbc7.jar:12.1.0.2.0]
at oracle.net.ns.NSProtocol.establishConnection(NSProtocol.java:595) ~[ojdbc7.jar:12.1.0.2.0]
at oracle.net.ns.NSProtocol.connect(NSProtocol.java:230) ~[ojdbc7.jar:12.1.0.2.0]
at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1452) ~[ojdbc7.jar:12.1.0.2.0]
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:496) ~[ojdbc7.jar:12.1.0.2.0]
at oracle.jdbc.driver.PhysicalConnection.connect(PhysicalConnection.java:666) ~[ojdbc7.jar:12.1.0.2.0]
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32) ~[ojdbc7.jar:12.1.0.2.0]
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:566) ~[ojdbc7.jar:12.1.0.2.0]
at org.opennms.netmgt.collectd.jdbc.JdbcAgentState.getJdbcConnection(JdbcAgentState.java:120) ~[org.opennms.features.jdbc-collector-23.0.0.jar:?]
at org.opennms.netmgt.collectd.JdbcCollector.isGroupAvailable(JdbcCollector.java:244) ~[org.opennms.features.jdbc-collector-23.0.0.jar:?]
at org.opennms.netmgt.collectd.JdbcCollector.collect(JdbcCollector.java:133) ~[org.opennms.features.jdbc-collector-23.0.0.jar:?]
at org.opennms.netmgt.collection.client.rpc.CollectorClientRpcModule$1.get(CollectorClientRpcModule.java:83) ~[org.opennms.features.collection.client-rpc-23.0.0.jar:?]
at org.opennms.netmgt.collection.client.rpc.CollectorClientRpcModule$1.get(CollectorClientRpcModule.java:77) ~[org.opennms.features.collection.client-rpc-23.0.0.jar:?]
at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1590) ~[?:1.8.0_191]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[?:1.8.0_191]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[?:1.8.0_191]
... 1 more
Caused by: oracle.net.ns.NetException: NL Exception was generated
at oracle.net.nt.ConnOption.getNT(ConnOption.java:131) ~[ojdbc7.jar:12.1.0.2.0]
at oracle.net.nt.ConnOption.connect(ConnOption.java:158) ~[ojdbc7.jar:12.1.0.2.0]
at oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:428) ~[ojdbc7.jar:12.1.0.2.0]
at oracle.net.resolver.AddrResolution.resolveAndExecute(AddrResolution.java:506) ~[ojdbc7.jar:12.1.0.2.0]
at oracle.net.ns.NSProtocol.establishConnection(NSProtocol.java:595) ~[ojdbc7.jar:12.1.0.2.0]
at oracle.net.ns.NSProtocol.connect(NSProtocol.java:230) ~[ojdbc7.jar:12.1.0.2.0]
at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1452) ~[ojdbc7.jar:12.1.0.2.0]
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:496) ~[ojdbc7.jar:12.1.0.2.0]
at oracle.jdbc.driver.PhysicalConnection.connect(PhysicalConnection.java:666) ~[ojdbc7.jar:12.1.0.2.0]
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32) ~[ojdbc7.jar:12.1.0.2.0]
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:566) ~[ojdbc7.jar:12.1.0.2.0]
at org.opennms.netmgt.collectd.jdbc.JdbcAgentState.getJdbcConnection(JdbcAgentState.java:120) ~[org.opennms.features.jdbc-collector-23.0.0.jar:?]
at org.opennms.netmgt.collectd.JdbcCollector.isGroupAvailable(JdbcCollector.java:244) ~[org.opennms.features.jdbc-collector-23.0.0.jar:?]
at org.opennms.netmgt.collectd.JdbcCollector.collect(JdbcCollector.java:133) ~[org.opennms.features.jdbc-collector-23.0.0.jar:?]
at org.opennms.netmgt.collection.client.rpc.CollectorClientRpcModule$1.get(CollectorClientRpcModule.java:83) ~[org.opennms.features.collection.client-rpc-23.0.0.jar:?]
at org.opennms.netmgt.collection.client.rpc.CollectorClientRpcModule$1.get(CollectorClientRpcModule.java:77) ~[org.opennms.features.collection.client-rpc-23.0.0.jar:?]
at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1590) ~[?:1.8.0_191]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[?:1.8.0_191]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[?:1.8.0_191]
... 1 more
Am I mis-understtanding how to configure this and reference place holder variables? Or is it that NMS-10200 didn't extend the functionality as far as I needed?
I currently have individual services defined for 37 databases, (with collectd-configuration.xml currently at 938 lines long), and this is only going to increase as we take on new customers each with half a dozen databases of their own. I really need the ability to parameterize the database specific variables.
Regards,
John
_______________________________________________
Please read the OpenNMS Mailing List FAQ:
http://www.opennms.org/index.php/Mailing_List_FAQ
opennms-discuss mailing list
To *unsubscribe* or change your subscription options, see the bottom of this page:
https://lists.sourceforge.net/lists/listinfo/opennms-discuss