簡體   English   中英

Sensu和石墨。 配置通過AMQP的傳輸

[英]Sensu and Graphite. Configure transmission through AMQP

我想將Sensu用作監視系統,將Graphite用作圖形的后端。

我希望配置Sensu以通過AMQP協議從RabbitMQ接收數據,這就是為什么我以這種方式配置Carbon的原因:

# vim /etc/carbon/carbon.conf

# Enable AMQP if you want to receve metrics using an amqp broker
ENABLE_AMQP = True

# Verbose means a line will be logged for every metric received
# useful for 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

據我了解,Carbon會通過某些頻率請求RabbitMQ的數據(通過AMQP)並通過Whisper保存。

另一方面,Sensu在RabbitMQ中保存了一些指標,我以以下方式配置它:

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"
    }
  }
}

當然,我以這種方式附加了該處理程序:

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"]
    }
  }
}

一切正常,但Graphite無法繪制指標。 這是石墨方面的日志:

13/06/2016 18:57:16 :: New AMQP connection made

這是來自Sensu服務器端的RabbitMQ:

=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 a channel exception precondition_failed: "inequivalent arg 'durable' for exchange 'metrics_my' in vhost '/sensu': received 'true' but current is 'false'"

當Sensu應該將其設置為true時,為什么rabbitMQ認為“持久”:設置為“ false”?

任何人都可以通過這種邏輯分享自己的經驗嗎?

PS。 僅使用tcp處理程序進行配置對我來說工作正常。

operation exchange.declare caused a channel exception precondition_failed: "inequivalent arg 'durable' for exchange 'metrics_my' in vhost '/sensu': received 'true' but current is 'false'"

交換metrics_my已存在,並且其metrics_my屬性設置為false。 現在,其他一些過程正在嘗試重新聲明具有相同值的相同交換,以實現持久性(true)。

看起來好像進程啟動時,它們正在嘗試使用您指定的配置來配置RabbitMQ-確保存在所需的交換和隊列。

但是,RabbitMQ不允許在創建交換和隊列后更改其某些屬性,因此其中一個進程正在啟動,試圖確保交換存在但失敗,因為它為持久屬性指定的值不同於已經是什么了。

我的猜測是,針對metrics_my交換,碳和sensu已配置為具有不同的持久性值。

根據您提供的配置摘要,我看不到用於更改碳的耐用性的選項,但您可以選擇sensu。

您需要讓每個人都對持久性應該達成一致,刪除交換(如果持久性會有所不同),然后重新啟動一切。

PS:持久屬性指定交換應持久保存到磁盤上,並在RabbitMQ進程重啟后繼續存在。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM