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. 从零开始配置 vim(13)——标签页插件

    原始的vim中标签页已经足够好用了.你完全可以使用原始 vim 提供的功能,但是使用插件可以让它更好看.这里我比较喜欢使用 bufferline 这个插件 安装 首先我们来安装它, 在使用 packe ...

  2. TienChin 验证码响应结果分析&验证码生成接口分析

    验证码响应结果分析 首先从前端开始进行分析,进入到登录页面,打开开发者工具(f12),找到 network,f5 刷新一下页面,然后,筛选一下,筛选内容为 Fetch/XHR: 你会发现列表中有两项内 ...

  3. 深度学习应用篇-自然语言处理-命名实体识别[9]:BiLSTM+CRF实现命名实体识别、实体、关系、属性抽取实战项目合集(含智能标注)

    深度学习应用篇-自然语言处理-命名实体识别[9]:BiLSTM+CRF实现命名实体识别.实体.关系.属性抽取实战项目合集(含智能标注) 1.命名实体识别介绍 命名实体识别(Named Entity R ...

  4. 从嘉手札<2023-12-09>

    大雪时节 有种风雪欲来的静谧 如同飘摇的浮舟 人们常说上岸 可对于常年生活在水里的鱼儿来说 哪里是岸边呢 我不知道未来 但唯一可以确定的是 无论你过的怎么样 你都需要给自己一个交待 哪怕风雪兼程 哪怕 ...

  5. 【LLM】提示工程技术提炼精华分享

    一.提示工程概述 提示工程(Prompt Engineering)是一门较新的学科,关注提示词开发和优化,帮助用户将大语言模型(Large Language Model, LLM)用于各场景和研究领域 ...

  6. 21.1 TLS简述--《Windows核心编程》

    一.TLS简述 我们知道在一个进程中,所有线程是共享同一个地址空间的.所以,如果一个变量是全局的或者是静态的,那么所有线程访问的是同一份,如果某一个线程对其进行了修改,也就会影响到其他所有的线程.不过 ...

  7. 《ASP.NET Core 微服务实战》-- 读书笔记(第9章)

    第 9 章 微服务系统的配置 微服务系统中的配置需要关注更多其他方面的因素,包括: 配置值的安全读写 值变更的审计能力 配置信息源本身的韧性和可靠性 少量的环境变量难以承载大型.复杂的配置信息 应用要 ...

  8. HBase-表的压缩

    一.如何选择压缩算法以及Data_Block_Encoding?(1)如果Key很长,或者有很多Column,那么推荐使用FAST_DIFF.(2)如果数据是冷数据,不经常被访问,那么使用GZIP压缩 ...

  9. 【LGR-153-Div.2】梦熊联盟 8 月月赛 Ⅳ & Cfz Round 1 & 飞熊杯 #1

    [LGR-153-Div.2]梦熊联盟 8 月月赛 Ⅳ & Cfz Round 1 & 飞熊杯 #1 \(T1\) luogu P9577 「Cfz Round 1」Dead Cell ...

  10. NC53370 Forsaken的三维数点

    题目链接 题目 题目描述 ​ Forsaken现在在一个三维空间中,空间中每个点都可以用 \((x,y,z)\) 表示.突然,三维空间的主人出现了,如果Forsaken想要继续在三维空间中呆下去,他就 ...