Sunday, April 19, 2015

Detect missed executions with OpenNMS

Everyone knows that OpenNMS is a powerful monitoring solution, but not everyone knows that since version 1.10 circa it embeds the Drools rule processing engine. Drools programs can then be used to extend the event handling logic in new and powerful ways.

The following example shows how OpenNMS can be extended to detect missed executions for recurring activities like backups or scheduled jobs.

Saturday, April 18, 2015

9 months with WIFIWEB

WIFIWEb is a local WDSL internet provider. Since I moved last year I have been a customer with their WDSL Max 10 profile.

This is the pingdom report for the last 9 months:

Applications sensitive to latency and micro-interruptions (like Remote Desktop) would from time to time drop the connection.

Bandwidth-wise results varied over the period, but except for one time when I had to call to fix a performance issue, the experience was pretty smooth with a download speed consistently in a 6~8 Mb/s window.
The 1Mb upload speed was always achieved.

Call quality using free VOIP softphones (sflphone or linphone) was generally bad, but I dont't know how much the fault lies with software or the connection.

Verdict: recommended.

Tuesday, April 14, 2015

RUNDECK job maintenance

Learn more about Rundeck.

Now that I have a fair number of jobs scheduled by Rundeck, how do I periodically prune the job execution history and keep only the last, say, 30 executions for each job?

Thursday, April 02, 2015

OpenNMS performance: tune Jrobin RRD file strategy

One of the nice aspects of OpenNMS is that, out of the box, it will collect a lot of data from most snmp-enabled resources. The downside is that such collection is I/O heavy (iops, not throughput).

Even on moderate installations with hundreds of nodes it is enough to swamp even the fastest disk subsystem (except for those with controllers supported by large write caches). A symptom is that I/O wait will be quite high on the opennms box itself.
I/O Wait before and after switch jrobin backend from FILE to MNIO

Thursday, March 26, 2015

OpenNMS 15: warm your postgres cache

OpenNMS 15 puts a much higher load on the database than previous versions.
Besides tuning postgres, the OS and perhaps splitting the app and the db on different boxes one aspect that I found to really make a difference is having a warm postgres cache.

Friday, February 06, 2015

Auto-upload Elastisearch template mapping with Apache Camel

When feeding data into Elastisearch, one important step is to configure the correct template for the index/type so that, for instance, numeric fields are stored as numbers to ensure that they can be sorted by and/or confronted correctly.

The Elasticsearch Logstash plugin has a handy option just for this purpose. If you are not using Logstash you have to do it yourself, eithr through configuration mgmt, startup scripts or simply manaully launching the appropriate curl command.

If you have followed my previous post on using Apache Camel to feed sql data into Elasticsearch then it might come natural to attempt to use Camel also for the purpose of uploading the template mapping.

Tuesday, January 13, 2015

Camel-Elasticsearch: create timestamped indices

One nice feature of the logstash-elasticsearch integration is that, by default, logstash will use timestamped indices when feeding data to elasticsearch.

This means that yesterday's data is in a separate index from today's data and from each other day's data, simplifying index management. For instance, suppose you only want to keep the last 30 days:

elasticsearch-remove-old-indices.sh -i 30

The Apache Camel Elasticsearch component provides no such feature out of the box, but luckily it is quite easy to implement (when you know what to do. /grin ).