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. Ubuntu 20.04 出现 SSL_connect: error:1425F102 .. unsupported protocol问题的解决

    在安装完Ubuntu 20.04后, 这个问题影响了好几个软件, 包括MySQL Workbench, Openfortigui等等, 出现的错误都是 ERROR: SSL_connect: erro ...

  2. SpringCloud Alibaba Sentinel实现熔断与限流<2020-9>

    SpringCloud Alibaba Sentinel 1.Sentinel是什么? 1.1.前言说明: 作用:实现熔断与限流 (Hystrix断路器 升级版) 文档直达: 官网中文文档 1.2.S ...

  3. 基于角色的权限控制(RBAC)介绍

    什么是RBAC? RBAC(Role-Based Access Control)基于角色的权限控制.其基本思想是,对系统操作的各种权限不是直接授予具体的用户,而是在用户集合与权限集合之间建立一个角色集 ...

  4. 《系列二》-- 5、单例bean缓存的获取

    目录 1 判断bean是否完成整个加载流程 2 判断当前bean是否被加载过,是否已作为提前暴露的bean 关于循环依赖 阅读之前要注意的东西:本文就是主打流水账式的源码阅读,主导的是一个参考,主要内 ...

  5. 【学习笔记】 - 基础数据结构 :Link-Cut Tree

    发现树剖代码太长了,给我恶心坏了 学个代码短点的能写树剖题的数据结构吧 前置知识 平衡树splay 树链剖分 简介以及优缺点介绍 Link-Cut Tree,也就是LCT,一般用于解决动态树问题 Li ...

  6. r0tracer 源码分析

    使用方法 修改r0tracer.js文件最底部处的代码,开启某一个Hook模式. function main() { Java.perform(function () { console.Purple ...

  7. [BUUCTF][Web][SUCTF 2019]EasySQL 1

    这一题有点蛋疼,比较难顶 看了别人的write up 也很难get到解题思路,感觉必须要拿到源码进行审计才能解 大佬们猜后端是这么写的 select $_POST['query'] || flag f ...

  8. 基于javaweb的服装租赁网站

    演示 技术+环境+工具 jdk8+maven.3.2.1+mysql5.7+idea+navicat+spring+springmvc+mybatis+bootstrap+jquery+ajax

  9. MySQL和Redis基本安装和配置

    MySQL 下载和安装 mysql官网下载:https://dev.mysql.com/downloads/mysql/ 下载后将目录下的bin路径加入到环境变量中 在安装目录下创建 my.ini 配 ...

  10. Java 抽象类 练习

    1 package com.bytezreo.template; 2 3 import java.util.Calendar; 4 import java.util.Scanner; 5 6 /** ...