prometheus(普罗米修斯):天生为采集存储监控数据而生的时序数据库。prometheus通过各种Exporter采集到监控数据,然后存储进prometheus中,以供查询展示。

grafana:一个监控仪表系统。grafana的数据来源可以有很多(如:Prometheus、Graphite、OpenTSDB、InfluxDB、MySQL/PostgreSQL、Microsoft SQL Serve等等),其中用得最多的数据源是prometheus, prometheus也有自己的UI,不过功能没有grafana强大

一: 安装prometheus

第1步:确保安装有docker

查看docker版本

docker -v

第2步: 拉取镜像

docker pull prom/prometheus:v2.41.0

第3步: 准备相关挂载目录

# /deploy/app/prometheus/data目录,准备用来挂载放置prometheus的数据
# /deploy/app/prometheus/config目录,准备用来放置prometheus的配置文件
# /deploy/app/prometheus/rules目录,准备用来挂载放置prometheus的规则文件
# /deploy/app/prometheus/ClientAll目录,准备用来放置采集节点的配置文件
mkdir -p /deploy/app/prometheus/{data,config,rules,ClientAll}
# 授权相关文件夹权限
chmod -R 777 /deploy/app/prometheus/data
chmod -R 777 /deploy/app/prometheus/config
chmod -R 777 /deploy/app/prometheus/rules
chmod -R 777 /deploy/app/prometheus/ClientAll

第4步 准备文件

# 配置文件
cat > /deploy/app/prometheus/config/prometheus.yml << \EOF
global:
# 数据采集间隔
scrape_interval: 45s
# 告警检测间隔
evaluation_interval: 45s alerting:
alertmanagers:
- static_configs:
- targets: ["192.168.80.86:9093"] # 告警规则
rule_files:
# 这里匹配指定目录下所有的.rules文件
- /prometheus/rules/*.yml # 采集配置
scrape_configs:
- job_name: "公司内部服务器"
file_sd_configs: #基于文件发现服务方式
- files:
- /prometheus/ClientAll/*.json #用json格式文件方式发现服务,下面的是用yaml格式文件方式,都可以
refresh_interval: 10m
- files:
- /prometheus/ClientAll/*.yaml
refresh_interval: 10m EOF # 查看一下配置文件
cat /deploy/app/prometheus/prometheus.yml
prometheus配置项说明
global:全局配置 (如果有内部单独设定,会覆盖这个参数)
alerting:告警插件定义。这里会设定alertmanager这个报警插件
rule_files:告警规则。 按照设定参数进行扫描加载,用于自定义报警规则,其报警媒介和route路由由alertmanager插件实现
scrape_configs:采集配置。配置数据源,包含分组job_name以及具体target。又分为静态配置和服务发现
remote_write:用于远程存储写配置
remote_read:用于远程读配置

第5步 启动容器

docker run --name prometheus -d \
-p 9090:9090 \
-v /etc/localtime:/etc/localtime:ro \
-v /deploy/app/prometheus/data:/prometheus/data \
-v /deploy/app/prometheus/config:/prometheus/config \
-v /deploy/app/prometheus/rules:/prometheus/rules \
-v /deploy/app/prometheus/ClientAll:/prometheus/ClientAll \
prom/prometheus:v2.41.0 --config.file=/prometheus/config/prometheus.yml --web.enable-lifecycle

第6步 访问测试

访问 :9090即可

二:安装grafana

第1步:拉取镜像

docker pull grafana/grafana:9.3.2

第2步 准备相关挂载目录

# /deploy/app/grafana/data目录,准备用来挂载放置grafana的数据
# /deploy/app/grafana/plugins目录,准备用来放置grafana的插件
# /deploy/app/grafana/config目录,准备用来挂载放置grafana的配置文件
mkdir -p /deploy/app/grafana/{data,plugins,config}
# 授权相关文件夹权限
chmod -R 777 /deploy/app/grafana/data
chmod -R 777 /deploy/app/grafana/plugins
chmod -R 777 /deploy/app/grafana/config

第3步 准备配置文件

# 先临时启动一个容器
docker run --name grafana-tmp -d -p 3000:3000 grafana/grafana:9.3.2
# 将容器中默认的配置文件拷贝到宿主机上
docker cp grafana-tmp:/etc/grafana/grafana.ini /deploy/app/grafana/config/grafana.ini
# 移除临时容器
docker stop grafana-tmp
docker rm grafana-tmp # 修改配置文件(需要的话)
vim /opt/grafana/config/grafana.ini

第4步 启动容器

docker run -d \
-p 3000:3000 \
--name=grafana \
-v /etc/localtime:/etc/localtime:ro \
-v /deploy/app/grafana/data:/var/lib/grafana \
-v /deploy/app/grafana/plugins/:/var/lib/grafana/plugins \
-v /deploy/app/grafana/config/grafana.ini:/etc/grafana/grafana.ini \
-e "GF_SECURITY_ADMIN_PASSWORD=admin" \
-e "GF_INSTALL_PLUGINS=grafana-clock-panel,grafana-simple-json-datasource,grafana-piechart-panel" \
grafana/grafana:9.3.2

第5步 访问测试

访问:3000 即可,使用账号密码 admin/admin进行登录即可

第6步 使用测试

添加数据源





选择普罗米修斯作为数据源



制作(或导入)仪表盘

grafana官网提供了很多模板,选择你喜欢的样式,直接输入Dashboard Id即可直接导入

这里使用的本人常用的 Dashboard Id 16098:Linux主机详情







此时,界面就出来了

提示:这会儿还没有数据,是因为prometheus里面本来就没有数据,后面我们只需要使用相应的exporter往prometheus录入一些监控数据(如:安装node-exporter),这里就会显示出来了

三 安装exporter监控采集程序,采集数据进prometheus

node-exporter

官方不建议通过Docekr方式部署node-exporter,因为它需要访问主机系统node-exporter 可以采集机器(物理机、虚拟机、云主机等)的监控指标数据,能够采集到的指标包括 CPU, 内存,磁盘,网络,文件数等信息

安装node-exporter

wget https://github.com/prometheus/node_exporter/releases/download/v1.1.2/node_exporter-1.1.2.linux-amd64.tar.gz
# 解压
tar -xvf node_exporter-1.1.2.linux-amd64.tar.gz
cd node_exporter-1.1.2.linux-amd64
# 启动
nohup ./node_exporter --web.listen-address=":9100" &

访问一下,确保node-exporter已正常启动

在prometheus中配置当前采集项

编辑配置文件

vim /deploy/app/prometheus/ClientAll/node.json
填写你已安装采集程序的机器ip与端口 [
{"targets": [ "192.168.80.86:9100" ]},
{"targets": [ "192.168.80.111:9100" ]},
{"targets": [ "192.168.80.232:9100" ]},
{"targets": [ "192.168.80.69:9100" ]},
{"targets": [ "192.168.80.236:9100" ]} ]

使得最新的prometheus配置生效

你可以重启prometheus或者使用热加载使新配置生效,这里我们使用热加载的方式

# 前提条件:启动prometheus时,启用了web.enable-lifecycle
# 发送post请求到prometheus的/-/reload下触发热加载配置
curl -X POST http://192.168.80.86:9090/-/reload

注:若你触发热加载后,过个一会儿还没看到监控的变化, 那么你可以使用docker logs {prometheus容器}查看prometheus日志,看到底是否触发了热加载

验证一下

此时,我们再在grafana上看监控面板,就会发现有数据了

docker 部署prometheus和grafana的更多相关文章

  1. 部署 Prometheus 和 Grafana 到 k8s

    在 k8s 中部署 Prometheus 和 Grafana Intro 上次我们主要分享了 asp.net core 集成 prometheus,以及简单的 prometheus 使用,在实际在 k ...

  2. 部署prometheus、grafana、alertmanager

    简介:由于资源有限,本实验用了两台机器 监控端:部署prometheus.grafana.alertmanager 被监控端:node_exporter.mysqld_exporter 一. 部署pr ...

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

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

  4. 手把手教你 Docker部署可视化工具Grafana

    一.Grafana的简单介绍 Grafana是开源的.炫酷的可视化监控.分析利器,无论您的数据在哪里,或者它所处的数据库是什么类型,您都可以将它与Grafana精美地结合在一起.它还有丰富的套件供您选 ...

  5. kubernetes1.15极速部署prometheus和grafana

    关于prometheus和grafana prometheus负责监控数据采集,grafana负责展示,下图来自官网: 环境信息 硬件:三台CentOS 7.7服务器 kubernetes:1.15 ...

  6. Kubernetes1.16下部署Prometheus+node-exporter+Grafana+AlertManager 监控系统

    Prometheus 持久化安装 我们prometheus采用nfs挂载方式来存储数据,同时使用configMap管理配置文件.并且我们将所有的prometheus存储在kube-system #建议 ...

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

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

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

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

  9. 部署Prometheus+Grafana监控

    Prometheus 1.不是很友好,各种配置都手写 2.对docker和k8s监控有成熟解决方案 Prometheus(普罗米修斯) 是一个最初在SoudCloud上构建的监控系统,开源项目,拥有非 ...

  10. Prometheus及Grafana监控服务的安装使用

    说明 Prometheus 是一个开放性的监控解决方案,通过 Node Exporter 采集当前主机的系统资源使用情况,并通过 Grafana 创建一个简单的可视化仪表盘. docker 安装 pr ...

随机推荐

  1. Elasticsearch向量检索的演进与变革:从基础到应用

    Elasticsearch向量检索的演进与变革:从基础到应用 1.引言 向量检索已经成为现代搜索和推荐系统的核心组件. 通过将复杂的对象(例如文本.图像或声音)转换为数值向量,并在多维空间中进行相似性 ...

  2. 基于无监督训练SimCSE+In-batch Negatives策略有监督训练的语义索引召回

    基于无监督训练SimCSE+In-batch Negatives策略有监督训练的语义索引召回 语义索引(可通俗理解为向量索引)技术是搜索引擎.推荐系统.广告系统在召回阶段的核心技术之一.语义索引模型的 ...

  3. C/C++ 内存遍历与KMP特征搜索

    内存遍历,枚举数据,实现特征码扫描. 内存遍历: 每次读入4096字节,然后每16个字符换一次行,遍历内存 0x00401000 - 0x7FFFFFFF. #include <stdio.h& ...

  4. javascript按钮通过cookie限制60s后才可以点击

    javascript按钮通过cookie限制60s后才可以点击 1️⃣ 首先创建一个html页面,放入一个按钮 2️⃣ 设置点击按钮的触发函数 一般当点击按钮都会有一些业务需要,在需求结束后,触发sa ...

  5. js转化文章发布于几天几小时几分钟前

    alert(dateFormat('2020-07-08 11:32:44')); function dateFormat(d1) { var dateEnd = new Date();//获取当前时 ...

  6. ch57x/ch58x开启仿真

    本次使用的平台是MounRiver Studio,使用的是WCH的CH582m与WCH-LinkE 仿真之前确保LinkE处在Risc-V模式下  空闲时蓝灯常灭 Step1:首先通过ISP工具开启两 ...

  7. 【Sensor有点意思】之重要参数理解

    1.sensor 通过CMOS图像传感器感受环境光,输出图像供我们分析,通过sensor宣传册了解一下sensor性能和情况.下图以斯特威SC8238为例. 2. 跟sensor相关的重要参数: 2. ...

  8. 零基础入门学习Java课堂笔记 ——day05

    面向对象(上) 面向过程:我打算列个计划表一步一步来 面向对象:我喜欢先分析分类,把复杂的问题简单化 1.什么是面向对象!!? 面向对象的本质就是:以类的方式组织代码,以对象的方式组织数据 封装 继承 ...

  9. .NET Core开发实战(第20课:结构化日志组件Serilog:记录对查询分析友好的日志)--学习笔记

    20 | 结构化日志组件Serilog:记录对查询分析友好的日志 之前讲解的日志框架,记录的日志都是文本,而且是非结构化的,这样一串串文本实际上不利于我们去做分析 结构化的日志它的好处就显而易见,它可 ...

  10. Visual Studio部署matplotlib绘图库的C++版本

      本文介绍在Visual Studio软件中配置.编译C++环境下matplotlibcpp库的详细方法.   matplotlibcpp库是一个C++环境下的绘图工具,其通过调用Python接口, ...