Prometheus 服務本地已經啟動了,接下來,需要安裝並運行 Exporter,它的主要作用是持續輸出監控的組件信息並格式化,同時提供 Http 接口供 Prometheus 服務來抓取。Exporter 也是通過 GO 語言編寫的,Prometheus GitHub 已經為我們提供了很多實用的 Exporter,直接拿來使用即可。
下面介紹下怎麼用prometheus去監控rabbitMQ服務。
由於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
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
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 和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:
1、下載dashboard
在 https://grafana.com/dashboards?search=rabbitmq 下載mq相關的dashboard,但是上邊提供的dashboard效果不一定好,可以根據需要自己配.
下載地址:https://grafana.com/dashboards/2121
2、導入json
3、展示
後面會分享更多devops和DBA方面內容,感興趣的朋友可以關注下!