1、安装运行Prometheus

下面介绍如何使用Prometheus、Grafana、CAdvisor、node-exporter、mysqld-exporter对本机服务器性能、Docker容器、MySQL数据库进行监控。

  1. 监控本机,只需要一个exporter
  2. node_exporter – 用于机器系统数据收集
  3. mysqld-exporter 用于MySQL数据库数据收集
  4. Cadvisor 用于收集宿主机上的docker容器数据
  5. Grafana是一个开源的功能丰富的数据可视化平台,通常用于时序数据的可视化。

下载镜像包

docker pull prom/node-exporter
docker pull prom/mysqld-exporter
docker pull google/cadvisor
docker pull prom/prometheus
docker pull grafana/grafana

1.1、启动node-exporter

docker run -d --name node-exporter --restart=always -p 9100:9100 -v "/proc:/host/proc:ro" -v "/sys:/host/sys:ro" -v "/:/rootfs:ro" prom/node-exporter

1.2、访问url:

http://xx.xxx.x.xx:9100/metrics

1.3、效果如下:

2、启动mysqld-exporter

2.1、新建文件.my.cnf

地址:/home/mysql-exporter/.my.cnf

2.2、打开文件编写

vim /home/mysql-exporter/.my.cnf
[client]
# 这里使用的容器名称。所有容器都指定在同一 network 中,docker 允许处在同一网络环境的容器使用容器名称项目访问。另外,容器启动时会随机分配 IP,所以这里使用容器名称最合适。当然也可以容器启动时,指定的 IP
host=xx.xxx.x.xx
port=6306
# mysql 用户名
user=exporter
# mysql 用户密码
password=123456

2.3、启动

docker run -d --name mysqld_exporter --restart=always -p 9104:9104 -v /home/mysql-exporter/.my.cnf:/.my.cnf -e DATA_SOURCE_NAME="exporter:123456@(94.191.1.78:6306)/" prom/mysqld-exporter

2.4、访问url:

http://xx.xxx.x.xx:9104/metrics

2.5、效果如下:

这些都是收集到数据,有了它就可以做MySQL数据库数据展示了

2.6、无法连接到mysql

exporter.go:149 level=error msg="Error pinging mysqld" err="Error 1045: Access denied for user 'exporter'@'xx.xxx.x.xx' (using password: YES)"

简单解释就是:mysqld_exporter无法连接到mysql。

原因:本地域用户赋权问题。mysqld_exporter是以本地域访问的MySQL,你指定的用户没有本地域权限。

解决:

-- 查询用户权限:
select * from mysql.user;
-- 创建用户并赋权
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'localhost';
-- 更新配置
FLUSH PRIVILEGES;

如果还是不好使,就将创建出来的用户host由localhost改为%,然后再更新配置试试。

3、 启动cadvisor

docker run -v /:/rootfs:ro -v /var/run:/var/run:rw -v /sys:/sys:ro -v /var/lib/docker/:/var/lib/docker:ro -v /dev/disk/:/dev/disk:ro -p 8080:8080 -d --name=cadvisor --restart=always google/cadvisor:latest

3.1、访问url:

http://xx.xxx.x.xx:8080/metrics

3.2、效果如下:

这些都是收集到数据,有了它就可以做Docker容器数据展示了

4、启动prometheus

4.1、新建目录prometheus,编辑配置文件prometheus.yml

mkdir /opt/prometheus
cd /opt/prometheus/
vim prometheus.yml

内容如下:

global:
scrape_interval: 60s
evaluation_interval: 60s scrape_configs: - job_name: prometheus
static_configs:
- targets: ['xx.xxx.x.xx:9090']
labels:
instance: prometheus - job_name: linux
static_configs:
- targets: ['xx.xxx.x.xx:9100']
labels:
instance: localhost
# - targets: ['192.168.1.22:9100']
#这里添加targets,可以使用Prometheus监控其他装有node_exporter的节点,单节点则不需要
# labels:
# instance: 192.168.1.22 - job_name: cadvisor
static_configs:
- targets: ['xx.xxx.x.xx:8080']
labels:
instance: cAdvisor - job_name: mysqld
static_configs:
- targets: ['xx.xxx.x.xx:9104']
labels:
instance: mysql-exporter

4.2、启动容器

docker run  -d --name prometheus --restart=always -p 9090:9090 -v /opt/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus

注意:宿主机的路径必须是绝对路径:/opt/prometheus/prometheus.yml,否者报错

4.3、访问url:

http://xx.xxx.x.xx:9090/graph

4.4、效果如下:

4.5、访问targets

http://xx.xxx.x.xx:9090/targets

4.6、效果如下:

如果状态没有UP起来,等待一会,就会UP了

5、启动grafana

5.1、新建空文件夹grafana-storage,用来存储数据

mkdir /opt/grafana-storage

5.2、添加权限

chmod 777 -R /opt/grafana-storage

因为grafana用户会在这个目录写入文件,直接设置777,比较简单粗暴!

5.3、启动

docker run -d --name grafana --restart=always -p 3000:3000 --name=grafana -v /opt/grafana-storage:/var/lib/grafana grafana/grafana

5.4、访问url:

http://xx.xxx.x.xx:3000/

默认会先跳转到登录页面,默认的用户名和密码都是admin

登录之后,它会要求你重置密码。你还可以再输次admin密码!

点击菜单,选择Connections->Data sources->Add new data source

name名字写Prometheus

type 选择Prometheus,因为数据都从它那里获取

url 输入Prometheus的ip(docker容器私网ip)+端口

点击下面的Save & Test,如果出现绿色的,说明ok了

回到首页,导入grafana监控模板,linux监控模板id为8919,填入如下输入框内

保存就可以进行数据可视化展示

导入主机的监控模板,模板id为8919,以相同方式导入即可

导入容器的监控模板,模板id为179,以相同方式导入即可

docker部署Prometheus的更多相关文章

  1. 使用Docker部署监控系统,Prometheus,Grafana,监控服务器信息及Mysql

    使用Docker部署监控系统,Prometheus,Grafana,监控服务器信息及Mysql 一.docker部署prometheus监控系统 1.1 配置安装环境 1.1.1 安装promethe ...

  2. 群晖-使用docker套件部署Prometheus+Grafana

    Docker 部署 Prometheus 说明: 先在群辉管理界面安装好docker套件,修改一下镜像源(更快一点) 所需容器如下 Prometheus Server(普罗米修斯监控主服务器 ) No ...

  3. 【集群监控】Docker上部署Prometheus+Alertmanager+Grafana实现集群监控

    Docker部署 下载 sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.re ...

  4. 0基础入门 docker 部署 各种 Prometheus 案例 - 程序员学点xx 总集篇

    目录 大家好, 学点xx 系列也推出一段时间了.虽然 yann 能力有限,但还是收到了很多鼓励与赞赏.对这个系列 yann 还是很喜欢的,特别是 Prometheus 篇,在期间经历公众号 100 篇 ...

  5. 使用 Docker 部署 Grafana + Prometheus 监控 MySQL 数据库

    一.背景 在平时开发过程当中需要针对 MySQL 数据库进行监控,这里我们可以使用 Grafana 和 Prometheus 来实现监控功能.Grafana 是一款功能强大的仪表盘面板,支持多种数据源 ...

  6. 基于docker 搭建Prometheus+Grafana

    一.介绍Prometheus Prometheus(普罗米修斯)是一套开源的监控&报警&时间序列数据库的组合,起始是由SoundCloud公司开发的.随着发展,越来越多公司和组织接受采 ...

  7. ubuntu 18 docker 搭建Prometheus+Grafana

    Prometheus(普罗米修斯)是一套开源的监控&报警&时间序列数据库的组合,起始是由SoundCloud公司开发的.随着发展,越来越多公司和组织接受采用Prometheus,社会也 ...

  8. k8s之自定义指标API部署prometheus

    1.自定义指标-prometheus node_exporter是agent;PromQL相当于sql语句来查询数据; k8s-prometheus-adapter:prometheus是不能直接解析 ...

  9. [转帖]基于docker 搭建Prometheus+Grafana

    基于docker 搭建Prometheus+Grafana https://www.cnblogs.com/xiao987334176/p/9930517.html need good study 一 ...

  10. k8b部署prometheus+grafana

    来源: https://juejin.im/post/5c36054251882525a50bbdf0 https://github.com/redhatxl/k8s-prometheus-grafa ...

随机推荐

  1. pt-table-checksum对比数据测试(dsns方式)

    1.1.工作原理 pt-table-checksum会对校验的表数据进行数据块(数据块大小根据服务负载情况调整)划分,并对数据块数据进行checksun处理:存储在建立的表中.在主库中执行基于stat ...

  2. Java设计模式-备忘录模式Memento

    介绍 备忘录模式(Memento Pattern)在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态.这样以后就可将该对象恢复到原先保存的状态. 可以这里理解备忘录模式:现实生 ...

  3. SpringBoot+Shiro+LayUI权限管理系统项目-4.实现部门管理

    1.说明 只讲解关键部分,详细看源码,文章下方捐赠或QQ联系捐赠获取. 2.功能展示 3.业务模型 @Data @EqualsAndHashCode(callSuper = false) @Acces ...

  4. vivo 短视频体验与成本优化实践

    作者:来自 vivo 互联网短视频研发团队 本文根据蔡创业.马运杰老师在"2023 vivo开发者大会"现场演讲内容整理而成. 在线点播场景,播放体验提升与成本优化是同等重要的两件 ...

  5. RHEL8重置root用户密码步骤

    要先确定是否为RHEL 8系统. [root@zhangsan ~]# cat /etc/redhat-release Red Hat Enterprise Linux release 8.0 (Oo ...

  6. MBD工具链的云部署

    MBD工具链的云部署 "云技术永远不会用于汽车开发".说到云部署在汽车行业的应用,业界曾经认为云技术并不适合用在汽车行业的产品开发.知识产权保护.数据的安全.流程不够透明.迁移成本 ...

  7. golang中关于map的value类型定义为函数类型时(方法值)的一点点思考

    文章的内容仅仅是自己关于map的value类型定义为函数类型时的一点点思考,如有不对的地方,请不吝赐教. 学习过后才知道叫做 方法值. 1.起因 最近在看老项目代码时,看到了一段类似于下面的定义,最开 ...

  8. 【Azure 环境】 介绍两种常规的方法来监视Window系统的CPU高时的进程信息: Performance Monitor 和 Powershell Get-Counter

    问题描述 部署在Azure上的VM资源,偶尔CPU飙高,但是发现的时候已经恢复,无法判断当时High CPU原因. 在Windows系统中,有什么方式能记录CPU被进程占用情况,查找出当时是排名前列的 ...

  9. Python 潮流周刊第 40 期(摘要)

    本周刊由 Python猫 出品,精心筛选国内外的 250+ 信息源,为你挑选最值得分享的文章.教程.开源项目.软件工具.播客和视频.热门话题等内容.愿景:帮助所有读者精进 Python 技术,并增长职 ...

  10. Java Eclipse JUnit单元测试

    1 package com.bytezreo.ut; 2 3 import org.junit.Test; 4 5 /** 6 * 7 * @Description Java中的JUnit单元测试 8 ...