通過prometheus實現的docker部署mysql監控

 
1、安裝mysql
docker pull hub.c.163.com/library/mysql:latest

# 建立掛載的數據卷

mkdir -p /opt/mysql/data

# 虛擬機 3306 端口和容器裏的3306端口對應,虛擬機路徑和容器里路徑(下圖,來自頭部參考地址)對應

docker run -p 3306:3306 --restart="always" --name mysql -v /opt/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 -d --privileged=true hub.c.163.com/library/mysql:latest

進入 Mysql 容器

# 這裏的 mysql ,docker ps 查詢後,寫 CONTAINER ID 或者 IMAGE NAMES 都行
# 此時已經進入容器,登錄容器內數據庫
mysql -uroot -p123456

# 在操作容器裏數據的同時,數據也進到了 /opt/mysql/data 目錄裏,兩邊是同步的!

登錄mysql爲exporter創建賬號並授權
在mysql上配置監控使用的用戶
# 創建數據庫用戶。
mysql> CREATE USER 'exporter'@'localhost' IDENTIFIED BY 'root';
# 可查看主從運行情況查看線程,及所有數據庫。
mysql> GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'localhost';
 
2、安裝mysql exporter
docker network create my-mysql-network
docker run -d \
  -p 9104:9104 \
  --network my-mysql-network --restart="always" \
  -e DATA_SOURCE_NAME="root:123456@(192.168.1.36:3306)/" \
  prom/mysqld-exporter

 

3.docker compose方式運行(與上面的docker run是一樣的效果)
先安裝docker compose 
curl -L https://github.com/docker/compose/releases/download/1.23.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

授權文件

chmod +x /opt

然後編輯docker-compose-mysql-exporter.yml文件

version: '2'


networks:
    monitor:
        driver: bridge


services:
    mysql-exporter:
        image: prom/mysqld-exporter
        container_name: mysql-exporter
        hostname: mysql-exporter
        restart: always
        ports:
            - "9104:9104"
        networks:
            - my-mysql-network


        environment:
            DATA_SOURCE_NAME: "root:123456@(192.168.1.36:3306)/"
networks:
    my-mysql-network:
        driver: bridge

 

 
通過docker-compose啓動
#啓動容器:
docker-compose -f /opt/docker-compose-mysql-exporter.yml up -d

#刪除容器:
 

docker-compose -f /opt/docker-compose-mysql-exporter.yml down

#重啓容器:

docker restart 容器id
 
此時,本地瀏覽器訪問 http://localhost:9104/metrics 可以看到 mysql(mysql是容器名稱) 相關的所有監控指標列表
然後編輯配置prometheus.yml文件
- job_name: 'mysql' 
    static_configs: 
    - targets: ['192.168.1.36:9104'] 
        labels: 
            instance: mysql

 

 
 
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章