Prometheus+grafana环境搭建mysql(docker+二进制两种方式安装)(三)

news/2024/5/19 0:30:54 标签: prometheus, grafana, mysqld_exporter

由于所有组件写一篇幅过长,所以每个组件分一篇方便查看,前两篇

Prometheus+grafana环境搭建方法及流程两种方式(docker和源码包)(一)-CSDN博客

Prometheus+grafana环境搭建rabbitmq(docker+二进制两种方式安装)(二)-CSDN博客 

1.监控mysql

1.1官方地址:

GitHub - prometheus/mysqld_exporter: Exporter for MySQL server metrics

mysql的监控官方建议我们创建一个低权限用户来仅用于监控,不能做其他数据库操作,mysql版本建议大于5.6

创建监控用户并授权,在命令行执行
root> mysql -u root -p
mysql>use mysql;
mysql>CREATE USER 'exporter'@'%' IDENTIFIED BY '123456' WITH MAX_USER_CONNECTIONS 3;
mysql>GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'%';
mysql>flush privileges;
exit
测试 mysql -u exporter -p

修改密码
alter user 'exporter'@'%' identified by '654321';

完整过程

 

1.2.二进制安装

下载地址https://github.com/prometheus/mysqld_exporter/releases/download/v0.15.0/mysqld_exporter-0.15.0.linux-amd64.tar.gz

上传到自己常用的存放路径,创建配置文件 my.cnf,采用配置文件可以避免密码泄露,  client 为固定写法,官方支持多组配置,本人试验时多组不同的密码,无法识别,(后续再探索一下)

vi my.cnf
[client]
user=exporter
password=123456
host=192.168.90.153
port=3306
1.2.1 命令行启动

进入解压后的exporter目录

./mysqld_exporter  --config.my-cnf=my.cnf

其他配置参数

1.2.2 注册为系统服务

记得先创建prometheus用户

useradd -M -s /usr/sbin/nologin prometheus -M不创建家目录,不允许登录

 vim /etc/systemd/system/mysql_exporter.service

[Unit]
Description=mysql_exporter
Documentation=https://prometheus.io/
After=network.target
[Service]
User=prometheus
Group=prometheus
ExecStart=/opt/myexporter/mysql/mysqld_exporter \
          --config.my-cnf=/opt/myexporter/mysql/my.cnf

Restart=on-failure
[Install]
WantedBy=multi-user.target

服务启动

systemctl enable mysql_exporter.service --now

systemctl status mysql_exporter.service

1.3 docker安装
1.3.1 docker命令安装

ps:这个配置文件的路径怎么找到的, 可以不做任何配置直接启动个容器,由于容器无法exec,所有使用logs 查看容器日志发现容器启东市默认会找 /home/.my.cnf ,但是没有找到所以尝试将此文件挂载后发现可以使用

docker run -d \
  -p 9104:9104 \
  --name mysqld-exporter  \
  -v /root/my-monitor/mysql/my.cnf:/home/.my.cnf \
  --restart=always \
  prom/mysqld-exporter 
1.3.2 docker-compose安装

vim docker-composer.yaml

version: '3.1'
services:
  mysqld-exporter:
    image: prom/mysqld-exporter
    container_name: mysqld-exporter
    restart: always
    ports:
      - '9104:9104'
    volumes:
      -  /root/my-monitor/mysql/my.cnf:/home/.my.cnf
1.4 访问测试

http://exporterIp:9104/metrics

1.5 配置Prometheus监控

vim xxx/prometheus/prometheus.yml 

追加

  - job_name: 'mysql-exporter'
    scrape_interval: 15s
    static_configs:
    - targets: ['192.168.3.112:9104']
      labels:
        instance: 110-mysql57服务器  

刷新配置 在Prometheus所在服务器执行

​
curl -X POST http://localhost:9090/-/reload

查看验证 访问 prometheus-ip:9090,点击target,点击endpoint 可以正常跳转

1.6配置grafana监控

Dashboards | Grafana Labs

选择想要的模板 7362

导入查看效果 

 导入模板参见Prometheus+grafana环境搭建方法及流程两种方式(docker和源码包)(一)-CSDN博客

 


http://www.niftyadmin.cn/n/5464140.html

相关文章

已解决note: This error originates from a subprocess,and is likely not a problem with pip.

已解决(pip安装第三方模块lxml模块报错)Building wheels for collected packages: lxml Building wheel for lxml (setup.py) … error error: subprocess-exited-with-error python setup.py bdist_wheel did not run successfully. note: This error o…

在Ubuntu 18.04上添加和删除用户的方法

简介 在 Linux 系统上添加和删除用户是最重要的系统管理任务之一,需要熟悉这些操作。在创建新系统时,通常只能默认访问 root 帐户。 虽然以 root 用户身份运行可以完全控制系统和用户,但也存在危险和可能的破坏性。对于常见的系统管理任务&…

插值字符串格式化代码中的感叹号(Python)

在csdn上读到,插值字符串格式化代码中有“!”,进行了一番探究,了解到其中的一点“隐秘”,在此共享。🤪 (笔记模板由python脚本于2024年03月31日 09:27:59创建,本篇笔记适合对Python字符串格式化有一定认知的…

AugmentedReality之路-图像跟踪(4)

本文介绍如何通过AR跟踪真实世界中的图片(Marker) 1、准备一张图片作为Marker 随便找一张图片作为Marker(支持.jpg格式,不支持png格式) 将图片放到/Content/ImageTrack目录,命名为Marker1 2、创建ARCandidateIma…

InitializingBean是什么以及如何使用?

这里写自定义目录标题 一、InitializingBean是什么?二、InitializingBean如何使用1、可以让Bean实现该接口,并重写其afterPropertiesSet()方法2、将该Bean注入到Spring容器中 一、InitializingBean是什么? InitializingBean是Spring框架提供…

chatui工具使用记录与比较

概述 cahtui相关工具可谓是层出不穷,方便了我们使用各个大模型。这里我把我知道的整理下列出来,顺便做一比较。 简单比较 openWebUI,star 11.1k,仿chatgpt风格,支持openapi、可以对接Ollama进行对话,功能…

Redis中的复制功能(一)

复制 概述 在Redis中,用户可以通过执行SLAVEOF命令或者设置slaveof选项,让一个服务器去复制(replicate)另一个服务器,我们称呼被复制的服务器为主服务器(master),而对主服务器进行复制的服务器则被称为从服务器(slave),如图所示…

Python实现的网页爬虫示例

当然可以。以下是一个使用Python实现的基础网页爬虫示例。这个示例将使用requests库来发送HTTP请求,并使用BeautifulSoup库来解析HTML文档。如果你还没有安装这两个库,请先使用pip进行安装: pip install requests beautifulsoup4接下来是网页…