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. C++ 多线程的错误和如何避免(15)

    尽量不使用无锁架构,除非绝对必要 复杂性中有一些东西吸引了每一位工程师.与常规同步机制(如互斥锁.条件变量.异步等)相比,无锁编程听起来非常性感.然而,与我交谈过的每一位经验丰富的 C++ 开发人员都 ...

  2. win32 - IFolderView2::GetCurrentFolderFlags的使用

    网上关于IFolderView2接口调用的示例有点少. 下面的例子是将桌面的图标隐藏起来,使用了FWF_NOICONS样式. #include <ShlObj.h> // Shell AP ...

  3. Vim常用快捷键汇总

    跳到指定行 在命令行模式下输入: :n(n为指定行号)

  4. VS Code实现SSH远程开发

    最近收获一台新台式机,但是个人主要还是使用自己的笔记本,用了几天远程控制,感觉各种不方便,最终决定配置一下VS Code实现SSH远程开发,特此记录. 首先介绍一下环境,控制端是Windows 11, ...

  5. 统信UOS系统开发笔记(五):安装QtCreator开发IDE中的中文输入环境Fcitx输入法

    前言   中文输入法,QtCreator中无法输入中文也是ubuntu中一个常规问题,在国产银河麒麟系统中也有此问题(PS:最终无法结局,用文本自行贴),国产UOS也有此问题,本片要解决此问题,主要是 ...

  6. 硬件开发笔记(九): 硬件开发基本流程,制作一个USB转RS232的模块(八):创建asm1117-3.3V封装库并关联原理图元器件

    前言   有了原理图,可以设计硬件PCB,在设计PCB之间还有一个协同优先动作,就是映射封装,原理图库的元器件我们是自己设计的.为了更好的表述封装设计过程,本文描述了一个创建asm1117-3.3V封 ...

  7. 使用paramiko模块远程连接遇到paramiko.ssh_exception.NoValidConnectionsError的解决办法

    连接时报错paramiko.ssh_exception.NoValidConnectionsError, 解决办法 首先在ubuntu终端上输入:cat /etc/ssh/ssh_config,查看端 ...

  8. pyqt5学习示例

    python代码编写pyqt5 主窗口的类型:有三种窗口 # 相关函数方法 setWindowTitle() # 设置主窗口的标题 resize() # 设置窗口的大小 statusBar() # 创 ...

  9. React 组件懒加载

    只有不断学习和成长,才能适应这个快速变化的世界. 1. 懒加载 1.1 React 懒加载 React 中懒加载 Lazy 与 Suspense 需要搭配使用. React.lazy 定义: Reac ...

  10. Html飞机大战(十五): 上线

    好家伙,   我的飞机大战部署上线了 胖虎的飞机大战 感兴趣的可以去玩一下     (怕有人接受不了这个背景,我还贴心的准备切换背景按钮,然而这并没有什么用) 现在,我们停下脚步,重新审视这个游戏   ...