ruby - Sensu and Graphite. Configure transmission through AMQP -
i want use sensu monitoring system , graphite backend graphics.
i wish configure sensu receiving data rabbitmq via amqp protocol that's why configured carbon in such way:
# vim /etc/carbon/carbon.conf # enable amqp if want receve metrics using amqp broker enable_amqp = true # verbose means line logged every metric received # useful testing amqp_verbose = true amqp_host = 10.0.3.16 amqp_port = 5672 amqp_vhost = /sensu amqp_user = sensu amqp_password = kubuntu710 amqp_exchange = metrics_my amqp_metric_name_in_body = true
per understanding carbon frequency requests data rabbitmq (via amqp) , save via whisper.
on other side sensu saves metrics in rabbitmq, configured in next way:
root@sensu_server:/etc/sensu/conf.d# vim graphite_handler_amqp.json { "handlers": { "graphite_amqp": { "type": "transport", "pipe": { "type": "topic", "name": "metrics_my", "durable": "true" }, "mutator": "only_check_output" } } }
and of course attached handler in such way:
root@sensu_server:/etc/sensu/conf.d# cat metrics_cpu.json { "checks": { "metrics_cpu": { "type": "metric", "command": "/opt/sensu/embedded/bin/metrics-cpu-pcnt-usage.rb", "interval": 10, "subscribers": ["mongo"], "handlers": ["graphite_amqp"] } } }
everything fine graphite can't draw metrics. log graphite side:
13/06/2016 18:57:16 :: new amqp connection made
and rabbitmq on sensu server side:
=info report==== 13-jun-2016::15:57:16 === accepting amqp connection <0.25298.0> (10.0.3.95:43722 -> 10.0.3.16:5672) =error report==== 13-jun-2016::15:57:16 === channel error on connection <0.25298.0> (10.0.3.95:43722 -> 10.0.3.16:5672, vhost: '/sensu', user: 'sensu'), channel 1: operation exchange.declare caused channel exception precondition_failed: "inequivalent arg 'durable' exchange 'metrics_my' in vhost '/sensu': received 'true' current 'false'"
why rabbitmq thinks "durable": set "false", when sensu should set true?
can share own expirience such logic?
ps. configuration tcp handler working fine me.
operation exchange.declare caused channel exception precondition_failed: "inequivalent arg 'durable' exchange 'metrics_my' in vhost '/sensu': received 'true' current 'false'"
the exchange metrics_my
exists , has durable property set false. other process trying re-declare same exchange different value durable (true).
it looks when processes start trying configure rabbitmq using configuration have specified - making sure required exchanges , queues exist.
however, rabbitmq not allow changing properties of exchanges , queues after have been created, 1 of processes starting up, trying make sure exchange exists failing because specifying different value durable property is.
my guess carbon , sensu have been configured have different value of durable metrics_my
exchange.
based on snippets of configuration provided, don't see option changing durable property carbon, can sensu.
you need make agree on durable should be, delete exchange (if durable different) , restart everything.
ps: durable property specifies exchange should persisted disk , survive restarts of rabbitmq process.
Comments
Post a Comment