基於prometheus + grafana部署RabbitMQ消息隊列監控

2019-10-19   波波說運維

概述

Prometheus 服務本地已經啟動了,接下來,需要安裝並運行 Exporter,它的主要作用是持續輸出監控的組件信息並格式化,同時提供 Http 接口供 Prometheus 服務來抓取。Exporter 也是通過 GO 語言編寫的,Prometheus GitHub 已經為我們提供了很多實用的 Exporter,直接拿來使用即可。

下面介紹下怎麼用prometheus去監控rabbitMQ服務。


一、安裝go語言環境

由於Prometheus 是用golang開發的,所以首先安裝一個go環境,Go語言是跨平台,支持Windows、Linux、Mac OS X等系統,還提供有源碼,可編譯安裝。

下載地址:https://studygolang.com/dl

1、解壓

# tar -xvf go1.13.linux-amd64.tar.gz -C /usr/local/

2、配置環境變量

echo "export PATH=$PATH:/usr/local/go/bin" >> /etc/profile
source /etc/profile

3、測試

驗證一下是否成功,用go version 來驗證

# go version


二、docker部署rabbitmq服務

1、獲取rabbitmq鏡像

docker pull rabbitmq:3.6.15-management

2、創建容器

docker run -d --hostname my-rabbit --name rabbit -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin \\
-p 15672:15672 -p 5672:5672 -p 25672:25672 -p 61613:61613 -p 1883:1883 rabbitmq:3.6.15-management
#15672:控制台埠號
#5672:應用訪問埠號
#rabbitmq:3.6.15-management 安裝rbbitmq指定版本,帶-management是帶管理介面

3、訪問MQ

http://伺服器IP:15672


三、安裝rabbitmq_exporter

1、下載rabbitmq_exporter

wget https://github.com/kbudde/rabbitmq_exporter/releases/download/v1.0.0-RC6.1/rabbitmq_exporter-1.0.0-RC6.1.linux-amd64.tar.gz

2、上傳解壓

上傳到被監控的主機並解壓

# tar -xvf rabbitmq_exporter-1.0.0-RC6.1.linux-amd64.tar.gz -C /usr/local/

3、啟動Exporter

需要配置一下認證信息並啟動 Exporter:

export RABBIT_USER=admin 
export RABBIT_PASSWORD=admin
export OUTPUT_FORMAT=JSON
export PUBLISH_PORT=9099
export RABBIT_URL=http://localhost:15672
nohup ./rabbitmq_exporter &

4、測試訪問

此時,本地瀏覽器訪問 http://伺服器ip:9099/metrics 可以看到 MQ 相關的所有監控指標列表。


四、關聯Prometheus

Prometheus 和rabbitmq_exporter 服務都已經啟動起來了,那麼接下來就需要將二者關聯起來,讓 Prometheus 來定時抓取 Exporter 提供的數據。我們需要修改 Prometheus 的配置文件 prometheus.yml 增加 rabbitmq 相關 exporter job。

- job_name: RabbitMQ
static_configs:
- targets: ['172.16.10.123:9099']
labels:
instance: docker_rabbitmq

重啟容器,隔一會查看targets:


四、grafana配置

1、下載dashboard

在 https://grafana.com/dashboards?search=rabbitmq 下載mq相關的dashboard,但是上邊提供的dashboard效果不一定好,可以根據需要自己配.

下載地址:https://grafana.com/dashboards/2121

2、導入json

3、展示


後面會分享更多devops和DBA方面內容,感興趣的朋友可以關注下!