Hi Steve,
i am now a step further. i think i placed the config which loads the extension in the wrong directory.
but i am now stuck somewhere else. My Log (sensu server) output is the following:
{“timestamp”:“2017-07-27T08:32:53.074539+0200”,“level”:“warn”,“message”:“loading extension files from directory”,“directory”:“/etc/sensu/extensions”}
{“timestamp”:“2017-07-27T08:32:53.074592+0200”,“level”:“warn”,“message”:“loading extension gem”,“gem”:“sensu-extensions-influxdb”,“version”:null}
{“timestamp”:“2017-07-27T08:32:53.074618+0200”,“level”:“warn”,“message”:“requiring extension gem”,“require”:“sensu/extensions/influxdb”}
{“timestamp”:“2017-07-27T08:32:53.074638+0200”,“level”:“warn”,“message”:“loaded extension”,“type”:“filter”,“name”:“occurrences”,“description”:“filter events using event occurrences”}
{“timestamp”:“2017-07-27T08:32:53.074658+0200”,“level”:“warn”,“message”:“loaded extension”,“type”:“filter”,“name”:“check_dependencies”,“description”:“filter events when an event exists for a check dependency”}
{“timestamp”:“2017-07-27T08:32:53.074678+0200”,“level”:“warn”,“message”:“loaded extension”,“type”:“mutator”,“name”:“only_check_output”,“description”:“returns check output”}
{“timestamp”:“2017-07-27T08:32:53.074695+0200”,“level”:“warn”,“message”:“loaded extension”,“type”:“mutator”,“name”:“ruby_hash”,“description”:“returns ruby hash event data”}
{“timestamp”:“2017-07-27T08:32:53.074722+0200”,“level”:“warn”,“message”:“loaded extension”,“type”:“mutator”,“name”:“json”,“description”:“returns JSON formatted event data”}
{“timestamp”:“2017-07-27T08:32:53.074743+0200”,“level”:“warn”,“message”:“loaded extension”,“type”:“handler”,“name”:“debug”,“description”:“returns raw event data”}
{“timestamp”:“2017-07-27T08:32:53.074760+0200”,“level”:“warn”,“message”:“loaded extension”,“type”:“handler”,“name”:“influxdb-extension”,“description”:“Transforms and sends metrics to InfluxDB”}
{“timestamp”:“2017-07-27T08:32:53.074804+0200”,“level”:“info”,“message”:“configuring sensu spawn”,“settings”:{“limit”:12}}
/opt/sensu/embedded/lib/ruby/gems/2.4.0/gems/sensu-extensions-influxdb-2.1.0/lib/sensu/extensions/influxdb.rb:34:in create_config': undefined method
ArgumentError’ for #Sensu::Extension::InfluxDB:0x000000020dcf08 (NoMethodError)
from /opt/sensu/embedded/lib/ruby/gems/2.4.0/gems/sensu-extensions-influxdb-2.1.0/lib/sensu/extensions/influxdb.rb:83:in `post_init’
from /opt/sensu/embedded/lib/ruby/gems/2.4.0/gems/sensu-extension-1.5.1/lib/sensu/extension.rb:19:in `block in initialize’
from /opt/sensu/embedded/lib/ruby/gems/2.4.0/gems/eventmachine-1.2.2/lib/eventmachine.rb:977:in `block in run_deferred_callbacks’
from /opt/sensu/embedded/lib/ruby/gems/2.4.0/gems/eventmachine-1.2.2/lib/eventmachine.rb:974:in `times’
from /opt/sensu/embedded/lib/ruby/gems/2.4.0/gems/eventmachine-1.2.2/lib/eventmachine.rb:974:in `run_deferred_callbacks’
from /opt/sensu/embedded/lib/ruby/gems/2.4.0/gems/eventmachine-1.2.2/lib/eventmachine.rb:194:in `run_machine’
from /opt/sensu/embedded/lib/ruby/gems/2.4.0/gems/eventmachine-1.2.2/lib/eventmachine.rb:194:in `run’
from /opt/sensu/embedded/lib/ruby/gems/2.4.0/gems/sensu-1.0.0/lib/sensu/server/process.rb:33:in `run’
from /opt/sensu/embedded/lib/ruby/gems/2.4.0/gems/sensu-1.0.0/exe/sensu-server:10:in `<top (required)>’
from /opt/sensu/bin/sensu-server:22:in `load’
from /opt/sensu/bin/sensu-server:22:in `’
``
Installed Gem’s:
[root@SIT-MONP03 ~]# /opt/sensu/embedded/bin/gem list
*** LOCAL GEMS ***
addressable (2.5.1)
amq-protocol (2.0.1)
amqp (1.6.0)
bigdecimal (default: 1.3.0)
cause (0.1)
childprocess (0.5.8)
cookiejar (0.3.3)
dentaku (2.0.9)
did_you_mean (1.1.0)
em-http-request (1.1.5)
em-http-server (0.1.8)
em-socksify (0.3.1)
em-worker (0.0.2)
english (0.6.3)
eventmachine (1.2.2)
ffi (1.9.18)
http_parser.rb (0.6.0)
io-console (default: 0.4.6)
json (default: 2.0.2, 1.8.6)
jsonpath (0.5.8)
language (0.6.0)
linux-kstat (0.1.3 universal-linux)
minitest (5.10.1)
mixlib-cli (1.7.0)
multi_json (1.12.1)
net-telnet (0.1.1)
oj (2.18.1)
openssl (default: 2.0.3)
parse-cron (0.1.4)
power_assert (0.4.1)
psych (default: 2.2.2)
public_suffix (2.0.5)
rake (12.0.0)
rake-compiler (1.0.4)
rb-readline (0.5.3)
rdoc (default: 5.0.0)
rubygems-update (2.6.10)
sensu (1.0.0)
sensu-extension (1.5.1)
sensu-extensions (1.9.0)
sensu-extensions-check-dependencies (1.0.1)
sensu-extensions-debug (1.0.0)
sensu-extensions-influxdb (2.1.0)
sensu-extensions-json (1.0.0)
sensu-extensions-occurrences (1.2.0)
sensu-extensions-only-check-output (1.0.0)
sensu-extensions-ruby-hash (1.0.0)
sensu-json (2.1.0)
sensu-logger (1.2.1)
sensu-plugin (2.0.1, 1.4.5)
sensu-plugins-cpu-checks (1.1.2)
sensu-plugins-disk-checks (2.2.0)
sensu-plugins-influxdb (1.2.0)
sensu-plugins-load-checks (3.0.0)
sensu-plugins-memory-checks (2.1.0)
sensu-plugins-process-checks (2.3.0)
sensu-plugins-vmstats (1.0.0)
sensu-redis (2.2.0)
sensu-settings (10.2.0)
sensu-spawn (2.2.1)
sensu-transport (7.0.2)
sys-filesystem (1.1.7)
sys-proctable (0.9.8 universal-linux)
test-unit (3.2.3)
xmlrpc (0.2.1)
``
I’am running Sensu 1.0 on CentOS 7
···
Am Mittwoch, 26. Juli 2017 17:27:19 UTC+2 schrieb Steve Viola:
Hey Tim,
Yes I am able to get the extension running. The README of the extension details a lot of the configuration options, along with the way to load extensions from a gem. Here’s additional sensu docs for loading extensions via a gem.
For example, this is how you’ll need to load the influxdb extension (this can be in any file in the /etc/sensu/conf.d/):
{
“extensions”: {
“influxdb”: {
“gem”: “sensu-extensions-influxdb”
}
}
}
You’ll then probably want to create a handler set so that you can add more controls for the handler if you want to. Copied from the README:
{
“handlers”: {
“metrics”: {
“type”: “set”,
“handlers”: [
“influxdb”
]
}
}
}
You’d then set the handler to metrics. When starting up the sensu server, you should see log messages like this:
{“timestamp”:“2017-07-26T15:21:53.333431+0000”,“level”:“warn”,“message”:“loaded extension”,“type”:“handler”,“name”:“influxdb”,“description”:“Outputs metrics to InfluxDB”}
–
Steven Viola
On Wed, Jul 26, 2017 at 11:13 AM, Tim Hofmann sej...@gmail.com wrote:
Hi Steve,
thanks for your answer. Did you get this extesion running? Sensu is reporting that the handler “influxdb” is not found. It also not seems to load the extension.
Do i have also to put some files in the /etc/sensu/extension directory?
Am Mittwoch, 26. Juli 2017 16:44:42 UTC+2 schrieb Steve Viola:
Hey Tim,
There is an “official” Sensu Extension for InfluxDB. To load it, you use sensu-install to install the sensu-extensions-influxdb gem. The github page has documentation to use the extension: https://github.com/sensu-extensions/sensu-extensions-influxdb
Basically, this extension creates an internal handler for you to send the metrics to. Since it’s not a real handler, it runs in the native ruby environment for better performance, allowing for batch submission of metrics. In comparing this extension against the sensu-plugins-influxdb, the plugin created a lot more load on the system when used for a lot of metrics.
Hopefully that gives you some direction.
Cheers
–
Steven Viola
On Wed, Jul 26, 2017 at 3:09 AM, Tim Hofmann sej...@gmail.com wrote:
Hi,
i have got a short question. Ich want to send my sensu Metrics to a InfluxDB (with Grafana as fronted). I googeld a lot an there a so much InfluxDB Handlers for Sensu. But all of them seems to be a bit outdated.
Is there any “offical” Sensu Extension/Plugin for that or could you recommened one?
Thanks in advance.