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. STC89C52驱动MAX7219LED点阵级联, 文字滚动效果

    级联下的传值方式 级联下, N个MAX7219相当于组成了一个8*N bit宽度的锁存器, 如果需要对第M个7219进行写入, 需要做M次寻址+写入后拉高CS, 才能到达这个7219. 如果仅仅对这个 ...

  2. Wireguard笔记(一) 节点安装配置和参数说明

    目录 Wireguard笔记(一) 节点安装配置和参数说明 Wireguard笔记(二) 命令行操作 Wireguard笔记(三) lan-to-lan子网穿透和多网段并存 简介 虚拟子网软件,类似于 ...

  3. Java设计模式-组合模式Composite

    介绍 组合模式(Composite Pattern),又叫部分整体模式,它创建了对象组的树形结构,将对象组合成树状结构以表示"整体-部分"的层次关系. 组合模式依据树形结构来组合对 ...

  4. 《系列二》-- 3、FactoryBean 的使用

    目录 FactoryBean 解决的问题 FactoryBean 接口初识 改造结果 最后的补充 回顾下 FactoryBean 的应用 factory-method 和 factory-bean 的 ...

  5. 编译安装c2工具sliver以及python 客户端sdk

    背景: 项目需要安装sliver服务端和客户端还有sliver的python sdk: git clone https://github.com/BishopFox/sliver.git cd sli ...

  6. [BUUCTF][WEB][极客大挑战 2019]PHP 1

    打开靶机URL 看到字面提示 因为每次猫猫都在我键盘上乱跳,所以我有一个良好的备份网站的习惯不愧是我!!! 说明该网站有备份,说不定放在了Http服务器的某个目录下 那么这里我们可以用dirsearc ...

  7. 好用的OCR文本识别工具

    之所以会用到OCR工具,是因为在看一些扫描版的PDF文档时,有时候需要复制粘贴一些文字,特别是技术性文档,对于一些命令或者代码片段需要复制出来执行验证. 网络上有许多推荐OCR工具的文章,但是大多数都 ...

  8. ZYNQ 裸机模式下修改默认uart端口

    ## 背景 调试ZYNQ 裸机code, 调用 printf()后在UART端口无法看到打印信息输出,查看原理图后发现,板子用的UART 1作为默认串口调试接口,UART 0分配给了RS485使用,因 ...

  9. 【Azure 应用服务】App Service的运行状况检查功能失效,一直提示"实例运行不正常"

    问题描述 为App Service配置了健康检查,单独访问Health Check Path的路径,返回代码为200.但为什么在App Service的页面上,一直提示"实例运行不正常&qu ...

  10. 基于Ant Design设计语言的WinForm UI界面库

    前言 经常在技术群里看到有小伙伴提问:WinForm有什么好看.开源的UI库推荐的吗?,今天大姚给大家分享一款基于Ant Design(使用Ant Design 5.0)设计语言.开源(Apache ...