mysql_exporter

韵味老鸟 2024-06-28 17:32:37

mysql_exporter

#告警规则:参考:https://awesome-prometheus-alerts.grep.to/rules#mysql

#构建mysqld_exporter docker镜像

# 创建Dockerfile文件cat >Dockerfile <<\EOFFROM golang:1.18-bullseye as builderRUN apt-get update && apt-get install -y \ build-essential \ g++ \ make \ git \ mariadb-serverRUN mkdir /build \ && cd /build \ && git clone https://github.com/prometheus/mysqld_exporter \ && cd /build/mysqld_exporterRUN service mariadb start \ && mysql -u root -e "CREATE OR REPLACE USER 'root'@'localhost' IDENTIFIED BY ''; GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION; FLUSH PRIVILEGES;" \ && cd /build/mysqld_exporter \ && make FROM debian:stable-20220912-slimCOPY --from=builder /build/mysqld_exporter/mysqld_exporter /binENTRYPOINT ["/bin/mysqld_exporter"]EOF# 构建镜像docker build -t prom/mysqld-exporter:self-build .

2.数据库授权

登录需要监控的MySQL数据库实例,添加exporter账号并授权,授权语句如下:

CREATE USER 'exporter'@'%' IDENTIFIED BY 'kdafs413fadDFAPi58vzmFAfdLfj840L' WITH MAX_USER_CONNECTIONS 3;GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'%';

3.导入镜像

docker load < mysqld-exporter.tgz

4.# 创建配置文件

# 创建配置文件mkdir etcPASSWORD=kdafs413fadDFAPi58vzmFAfdLfj840Lcat >etc/config.my-cnf <<EOF[client.servers]user=exporterpassword=$PASSWORDEOF

5.docker-compose.yaml文件

不同环境不同标识,部署节点不同,端口可能不同,密码可能不同

version: "3.8"services: mysqld_exporter-dev: image: prom/mysqld-exporter:self-build hostname: mysqld_exporter-dev command: --config.my-cnf=/etc/config.my-cnf ports: - "9121:9121" volumes: - /data/mysql/etc/config.my-cnf:/etc/config.my-cnf - /etc/localtime:/etc/localtime:ro# mem_limit: 100m# cpus: 0.5 networks: - monitor deploy: replicas: 1 placement: constraints: [node.labels.monitor-node == monitor01]networks: monitor: external: true

3.启停服务

docker stack rm mysql-exporter

docker stack deploy -c mysql-exporter-docker-compose.yaml mysql-exporter

4.prometheus配置

# 进入prometheus配置目录cd /data/prometheus/conf# 配置需要监控的MySQL实例连接地址cat > targets/mysqld_exporter/dev.yaml <<\EOF- labels: env: sz-prom-dev targets: - '192.168.102.232:3306'EOFcat > targets/mysqld_exporter/sit.yaml <<\EOF- labels: env: sz-prom-sit targets: - '192.168.102.231:3306'EOFcat > targets/mysqld_exporter/uat.yaml <<\EOF- labels: env: sz-prom-uat targets: - '192.168.102.237:3306'EOFcat > targets/mysqld_exporter/staging.yaml <<\EOF- labels: env: sz-prom-staging targets: - '192.168.102.235:3306'# - '192.168.102.236:3306'EOF# 添加prometheus job配置cat >> prometheus.yml <<\EOF - job_name: mysqld_exporter metrics_path: /probe params: auth_module: - client.servers file_sd_configs: - files: - /etc/prometheus/targets/mysqld_exporter/*.yamlEOF

# 重载prometheus配置

curl -vv --basic -u 'admin:meng@2022' -X POST http://192.168.10.19:9090/-/reload

0 阅读:0