当前位置: 首页 > news >正文

1-3 docker 安装 prometheus

一、环境

1、环境准备

安装Docker

镜像加速

安装 docker

检查版本

安装Docker-compose

二、Docker-compose 安装 Prometheus

1、【方式一】手动创建 docker-compose 和 配置文件

创建prometheus监控的文件夹

创建alertmanager的配置文件 - config.yml

新建grafana的配置文件 - config.monitoring

新建prometheus的配置文件 -  prometheus.yml

创建alert报警文件 - alert.yml

新建docker-compose.yaml文件

2、【方式二 - 推荐】通过克隆gitee代码安装 

运行命令

检查容器

检查接口

web访问地址

三、各个容器及应用

1、使用 grafana 展示 prometheus的图形

1、登录Grafana

2、创建 Prometheus 数据源

3、仪表盘

Stage 1:官网搜索

 Stage 2 :复制id

 Stage 3 :Grafana导入id


一、环境

  • localhost

  • ip:192.168.11.61

  • 2核4g

  • Ubuntu 20.04

  • docker 版本23.0.1

  • docker-compose版本1.29.2

1、环境准备

安装Docker

  • 镜像加速

#创建文件夹,父级目录也被自动创建
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://n14or9zx.mirror.aliyuncs.com","https://mirror.ccs.tencentyun.com","http://registry.docker-cn.com","http://docker.mirrors.ustc.edu.cn","http://hub-mirror.c.163.com"],"insecure-registries": ["registry.docker-cn.com","docker.mirrors.ustc.edu.cn"],"log-driver": "json-file","log-opts": {"max-size": "500m"}
}
EOF
  • 安装 docker
#设置下载目录
export DOWNLOAD_URL="http://mirrors.163.com/docker-ce"
curl -fssL https://get.docker.com/ | sh
  • 检查版本
docker -v 
或
systemctl status docker

安装Docker-compose

# 下载
curl -L https://get.daocloud.io/docker/compose/releases/download/1.29.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose# 设置文件具备执行权限
chmod +x /usr/local/bin/docker-compose# 查看版本
docker-compose --version

二、Docker-compose 安装 Prometheus

1、【方式一】手动创建 docker-compose 和 配置文件

  • 创建prometheus监控的文件夹

#切换到root用户
sudo -i
mkdir /data/docker-prometheus -p
mkdir /data/docker-prometheus/{grafana,prometheus,alertmanager} -p
cd /data/docker-prometheus/

  • 创建alertmanager的配置文件 - config.yml

global:#163服务器smtp_smarthost: 'smtp.163.com:465'#发邮件的邮箱smtp_from: 'cdring@163.com'#发邮件的邮箱用户名,也就是你的邮箱     smtp_auth_username: 'cdring@163.com'#发邮件的邮箱密码smtp_auth_password: 'your-password'#进行tls验证smtp_require_tls: falseroute:group_by: ['alertname']# 当收到告警的时候,等待group_wait配置的时间,看是否还有告警,如果有就一起发出去group_wait: 10s#  如果上次告警信息发送成功,此时又来了一个新的告警数据,则需要等待group_interval配置的时间才可以发送出去group_interval: 10s# 如果上次告警信息发送成功,且问题没有解决,则等待 repeat_interval配置的时间再次发送告警数据repeat_interval: 10m# 全局报警组,这个参数是必选的receiver: emailreceivers:
- name: 'email'#收邮件的邮箱email_configs:- to: 'cdring@163.com'
inhibit_rules:- source_match:severity: 'critical'target_match:severity: 'warning'equal: ['alertname', 'dev', 'instance']

  • 新建grafana的配置文件 - config.monitoring

# admin登录密码为password
GF_SECURITY_ADMIN_PASSWORD=password
GF_USERS_ALLOW_SIGN_UP=false
  • 新建prometheus的配置文件 -  prometheus.yml

# 全局配置
global:scrape_interval:     15s # 将搜刮间隔设置为每15秒一次。默认是每1分钟一次。evaluation_interval: 15s # 每15秒评估一次规则。默认是每1分钟一次。# Alertmanager 配置
alerting:alertmanagers:- static_configs:- targets: ['alertmanager:9093']# 报警(触发器)配置
rule_files:- "alert.yml"# 搜刮配置
scrape_configs:- job_name: 'prometheus'# 覆盖全局默认值,每15秒从该作业中刮取一次目标scrape_interval: 15sstatic_configs:- targets: ['localhost:9090']- job_name: 'alertmanager'scrape_interval: 15sstatic_configs:- targets: ['alertmanager:9093']- job_name: 'cadvisor'scrape_interval: 15sstatic_configs:- targets: ['cadvisor:8080']labels:instance: Prometheus服务器 - job_name: 'node-exporter'scrape_interval: 15sstatic_configs:- targets: ['node_exporter:9100']labels:instance: Prometheus服务器 

  • 创建alert报警文件 - alert.yml

groups:
- name: Prometheus alertrules:# 对任何实例超过30秒无法联系的情况发出警报- alert: 服务告警expr: up == 0for: 30slabels:severity: criticalannotations:summary: "服务异常,实例:{{ $labels.instance }}"description: "{{ $labels.job }} 服务已关闭"

  • 新建docker-compose.yaml文件

version: '3.3'# 存储卷
volumes:prometheus_data: {}grafana_data: {}networks:monitoring:driver: bridgeservices:prometheus:image: prom/prometheus:v2.37.6container_name: prometheusrestart: alwaysvolumes:- /etc/localtime:/etc/localtime:ro  # 本地时区挂载在镜像中- ./prometheus/:/etc/prometheus/- prometheus_data:/prometheus # 数据存储位置command:- '--config.file=/etc/prometheus/prometheus.yml'- '--storage.tsdb.path=/prometheus'- '--web.console.libraries=/usr/share/prometheus/console_libraries' # 控制台库- '--web.console.templates=/usr/share/prometheus/consoles' # 控制台模板#热加载配置- '--web.enable-lifecycle'#api配置#- '--web.enable-admin-api'#历史数据最大保留时间,默认15天- '--storage.tsdb.retention.time=30d'  networks:- monitoringlinks:- alertmanager- cadvisor- node_exporterexpose:- '9090'ports:- 9090:9090depends_on:- cadvisor # 等待cadvisor启动完成后prometheus再启动alertmanager:image: prom/alertmanager:v0.25.0container_name: alertmanagerrestart: alwaysvolumes:- /etc/localtime:/etc/localtime:ro- ./alertmanager/:/etc/alertmanager/command:- '--config.file=/etc/alertmanager/config.yml'- '--storage.path=/alertmanager'networks:- monitoringexpose:- '9093'ports:- 9093:9093# 监控容器cadvisor:image: google/cadvisor:latestcontainer_name: cadvisorrestart: alwaysvolumes:- /etc/localtime:/etc/localtime:ro- /:/rootfs:ro- /var/run:/var/run:rw- /sys:/sys:ro- /var/lib/docker/:/var/lib/docker:ronetworks:- monitoringexpose:- '8080'node_exporter:image: prom/node-exporter:v1.5.0container_name: node-exporterrestart: alwaysvolumes:- /etc/localtime:/etc/localtime:ro- /proc:/host/proc:ro- /sys:/host/sys:ro- /:/rootfs:rocommand: - '--path.procfs=/host/proc' - '--path.sysfs=/host/sys'- '--collector.filesystem.ignored-mount-points=^/(sys|proc|dev|host|etc|rootfs/var/lib/docker)($$|/)'networks:- monitoringports:- '9100:9100'grafana:image: grafana/grafana:9.4.3container_name: grafanarestart: alwaysvolumes:- /etc/localtime:/etc/localtime:ro- grafana_data:/var/lib/grafana- ./grafana/provisioning/:/etc/grafana/provisioning/env_file:- ./grafana/config.monitoringnetworks:- monitoringlinks:- prometheusports:- 3000:3000depends_on:- prometheus

2、【方式二 - 推荐】通过克隆gitee代码安装 

mkdir /mnt/docker/
cd /mnt/docker/
git clone https://gitee.com/linge365/docker-prometheus.git
cd docker-prometheus

运行命令

cd /data/docker-prometheus
docker-compose up -d

检查容器

docker ps

检查接口

ss -lntp|egrep "3000|9090|9100|9093"

web访问地址

应用访问地址账号密码
prometheushttp://xxx.116.6.228:9090
grafanahttp://xxx.116.6.228:3000admin/password
altermanagerhttp://xxx.116.6.228:9093
node-exporterhttp://xxx.116.6.228:9100/metrics

三、各个容器及应用

1、使用 grafana 展示 prometheus的图形

  • 通过 grafana 添加数据源,展示 node-exporter数据

1、登录Grafana

  • 登录 Grafana :http://192.168.11.61:3000/
  • 用户名: admin
  • 密码: password

2、创建 Prometheus 数据源

3、仪表盘

  • 从 Grafana.com 导入仪表板
Stage 1:官网搜索

 Stage 2 :复制id

 Stage 3 :Grafana导入id

 

 

 

相关文章:

1-3 docker 安装 prometheus

一、环境 1、环境准备 安装Docker 镜像加速 安装 docker 检查版本 安装Docker-compose 二、Docker-compose 安装 Prometheus 1、【方式一】手动创建 docker-compose 和 配置文件 创建prometheus监控的文件夹 创建alertmanager的配置文件 - config.yml 新建grafana的…...

Mac使用brew搭建kafka集群

1. 第一步&#xff1a;单机搭建 单机搭建&#xff1a; 安装完后&#xff0c;默认自动安装对应版本zookeeper brew install kafka2.第二步&#xff1a;修改配置文件: 配置3个Kafka 第一个&#xff08;使用默认配置&#xff09; vi /opt/homebrew/etc/kafka/server.propertie…...

图形界面应用案例——关灯游戏(以及扩展)(python)

7.8 图形界面应用案例——关灯游戏 题目: [案例]游戏初步——关灯游戏。 关灯游戏是很有意思的益智游戏,玩家通过单击关掉(或打开)一盏灯。如果关(掉(或打开)一个电灯,其周围(上下左右)的电灯也会触及开关,成功地关掉所有电灯即可过关。 图7-43 关灯游戏运行效…...

Android平台上执行C/C++可执行程序,linux系统编程开发,NDK开发前奏。

Android平台上执行C/C可执行程序&#xff0c;linux系统编程开发&#xff0c;NDK开发前奏准备。 1.下载NDK&#xff0c;搭建NDK开发环境 下载地址 https://developer.android.com/ndk/downloads 下载过程中点击下面箭头的地方&#xff0c;点击鼠标右键&#xff0c;复制好下载…...

elasticsearch 基本使用,ES8.10

官方文档&#xff1a;https://www.elastic.co/guide/en/elasticsearch/reference/current/elasticsearch-intro.html ES版本&#xff1a;8.10 By default, Elasticsearch indexes all data in every field and each indexed field has a dedicated, optimized data structure…...

pytorch中常用的损失函数

1 损失函数的作用 损失函数是模型训练的基础&#xff0c;并且在大多数机器学习项目中&#xff0c;如果没有损失函数&#xff0c;就无法驱动模型做出正确的预测。 通俗地说&#xff0c;损失函数是一种数学函数或表达式&#xff0c;用于衡量模型在某些数据集上的表现。损失函数在…...

申克SCHENCK动平衡机显示器维修CAB700系统控制面板

适用电枢转子的卧式平衡机&#xff0c;高测量率&#xff0c;自动测量循环&#xff0c;自动定标完整的切槽计数可选项&#xff0c;CAB700动平衡测量系统两种皮带驱动方式(上置式或下置式)适用于站立或坐姿操作的人性化工作台设计。 动平衡机申克控制器面板维修型号&#xff1a;V…...

【论文阅读】PSDF Fusion:用于动态 3D 数据融合和场景重建的概率符号距离函数

【论文阅读】PSDF Fusion&#xff1a;用于动态 3D 数据融合和场景重建的概率符号距离函数 Abstract1 Introduction3 Overview3.1 Hybrid Data Structure3.2 3D Representations3.3 Pipeline 4 PSDF Fusion and Surface Reconstruction4.1 PSDF Fusion4.2 Inlier Ratio Evaluati…...

React 测试笔记 03 - 测试 Redux 中 Reducer 状态变化

React 测试笔记 03 - 测试 Redux 中 Reducer 状态变化 这段时间都在重构代码&#xff0c;把本来奇奇怪怪(singleton)的实现改成用 redux 的实现&#xff0c;然后就突然想到……即然 redux 的改变不涉及到 UI 的改变&#xff0c;那么是不是说可以单独写 redux 的测试……&#…...

xilinx primitives(原语)

Xilinx的原语分为10类&#xff0c;包括&#xff1a;计算组件&#xff0c;IO端口组件&#xff0c;寄存器/锁存器&#xff0c;时钟组件&#xff0c;处理器组件&#xff0c;移位寄存器&#xff0c;配置和检测组件&#xff0c;RAM/ROM组件&#xff0c;Slice/CLB组件&#xff0c;G-t…...

机器学习 - DBSCAN聚类算法:技术与实战全解析

目录 一、简介DBSCAN算法的定义和背景聚类的重要性和应用领域DBSCAN与其他聚类算法的比较 二、理论基础密度的概念核心点、边界点和噪声点DBSCAN算法流程邻域的查询聚类的形成过程 参数选择的影响 三、算法参数eps&#xff08;邻域半径&#xff09;举例说明&#xff1a;如何选择…...

kafka微服务学习

消息中间件对比&#xff1a; 1、吞吐、可靠性、性能 Kafka安装 Kafka对于zookeeper是强依赖&#xff0c;保存kafka相关的节点数据&#xff0c;所以安装Kafka之前必须先安装zookeeper Docker安装zookeeper 下载镜像&#xff1a; docker pull zookeeper:3.4.14创建容器 do…...

5G网络切片,到底是什么?

网络切片&#xff0c;是5G引入的一个全新概念。 一看到切片&#xff0c;首先想到的&#xff0c;必然是把一个完整的东西切成薄片。于是&#xff0c;切面包或者切西瓜这样的画面&#xff0c;映入脑海。 添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09; 然而…...

linux安装nodejs

写在前面 因为工作需要&#xff0c;需要使用到nodejs&#xff0c;所以这里简单记录下学习过程。 1&#xff1a;安装 wget https://nodejs.org/dist/v14.17.4/node-v14.17.4-linux-x64.tar.xz tar xf node-v14.17.4-linux-x64.tar.xz mkdir /usr/local/lib/node // 这一步骤根…...

第1天:Python基础语法(一)

** 1、Python简介 ** Python是一种高级、通用的编程语言&#xff0c;由Guido van Rossum于1989年创造。它被设计为易于阅读和理解&#xff0c;具有简洁而清晰的语法&#xff0c;使得初学者和专业开发人员都能够轻松上手。 Python拥有丰富的标准库&#xff0c;提供了广泛的功…...

ppt聚光灯效果

1.放入三张图片内容或其他 2.全选复制成图片 3.设置黑色矩形&#xff0c;透明度30% 4.粘贴复制后的图片&#xff0c;制定图层 5.插入椭圆&#xff0c;先选中矩形&#xff0c;再选中椭圆&#xff0c;点击绘图工具&#xff0c;选择相交即可&#xff08;关键&#xff09;...

图文解析 Nacos 配置中心的实现

目录 一、什么是 Nacos 二、配置中心的架构 三、Nacos 使用示例 &#xff08;一&#xff09;官方代码示例 &#xff08;二&#xff09;Properties 解读 &#xff08;三&#xff09;配置项的层级设计 &#xff08;四&#xff09;获取配置 &#xff08;五&#xff09;注册…...

P1918 保龄球

Portal. 记录每一个瓶子数对应的位置即可。 注意到值域很大&#xff08; a i ≤ 1 0 9 a_i\leq 10^9 ai​≤109&#xff09;&#xff0c;要用 map 存储。 #include <bits/stdc.h> using namespace std;map<int,int> p;int main() {int n;cin>>n;for(int i…...

SAP-PP-报错:工作中心 7333_JQ 工厂 7331 对任务清单类型 N 不存在

创建工艺路线时报错&#xff1a;工作中心 7333_JQ 工厂 7331 对任务清单类型 N 不存在&#xff0c; 这是因为在创建工作中心时未维护控制键值导致的...

MySQL -- 用户管理

MySQL – 用户管理 文章目录 MySQL -- 用户管理一、用户1.用户信息2.创建用户3.删除用户4.远端登录MySQL5.修改用户密码6.数据库的权限 一、用户 1.用户信息 MySQL中的用户&#xff0c;都存储在系统数据库mysql的user表中&#xff1a; host&#xff1a; 表示这个用户可以从…...

探索C++标准模板库(STL):String接口的底层实现(下篇)

前引&#xff1a;在C的面向对象编程中&#xff0c;对象模型是理解语言行为的核心。无论是类的成员函数如何访问数据&#xff0c;还是资源管理如何自动化&#xff0c;其底层机制均围绕两个关键概念展开&#xff1a;this指针与六大默认成员函数。它们如同对象的“隐形守护者”&am…...

使用 Docker Compose 从零部署 TeamCity + PostgreSQL(详细新手教程)

JetBrains TeamCity 是一款专业的持续集成&#xff08;CI&#xff09;服务器工具&#xff0c;支持各种编程语言和构建流程。本文将一步一步带你用 Docker 和 Docker Compose 快速部署 TeamCity&#xff0c;搭配 PostgreSQL 数据库&#xff0c;并确保 所有操作新手可跟着做。 一…...

力扣刷题(第四十九天)

灵感来源 - 保持更新&#xff0c;努力学习 - python脚本学习 反转链表 解题思路 迭代法&#xff1a;通过遍历链表&#xff0c;逐个改变节点的指针方向。具体步骤如下&#xff1a; 使用三个指针&#xff1a;prev&#xff08;初始为None&#xff09;、curr&#xff08;初始为…...

Python的浅拷贝与深拷贝

一、浅拷贝 浅拷贝&#xff0c;指的是重新分配一块内存&#xff0c;创建一个新的对象&#xff0c;但里面的元素是原对象中各个子对象的引用。 浅拷贝有几种方法&#xff1a; 1、 使用数据类型本身的构造器 list1[1,2,3]list2 list(list1) # 使用了数据类型本身的构造器 list…...

Vue3 (数组push数据报错) 解决Cannot read property ‘push‘ of null报错问题

解决Cannot read property ‘push‘ of null报错问题 错误写法 定义变量 <script setup>const workList ref([{name:,value:}])</script>正确定义变量 <script setup>const workList ref([]) </script>解决咯~...

Edge(Bing)自动领积分脚本部署——基于python和Selenium(附源码)

微软的 Microsoft Rewards 计划可以通过 Bing 搜索赚取积分&#xff0c;积分可以兑换礼品卡、游戏等。每天的搜索任务不多&#xff0c;我们可以用脚本自动完成&#xff0c;提高效率&#xff0c;解放双手。 本文将手把手教你如何部署一个自动刷积分脚本&#xff0c;并解释其背…...

SDC命令详解:使用set_min_capacitance命令进行约束

相关阅读 SDC命令详解https://blog.csdn.net/weixin_45791458/category_12931432.html?spm1001.2014.3001.5482 目录 指定最小需驱动电容值 指定对象列表/集合 简单使用 写在最后 set_min_capacitance命令用于设置输入端口的最小需驱动电容&#xff08;设置了输入端口的min_c…...

考研系列—操作系统:冲刺笔记(1-3章)

目录 第一章 计算机系统概述 1.基本概念 2.内核态和用户态 3.中断(外中断)、异常(内中断-与当前执行的) 4.系统调用 5.操作系统引导程序 2021年真题: 6.操作系统结构 大纲新增 (1)分层结构 (2)模块化 (3)外核 7.虚拟机 第二章 进程管理 1.画作业运行的顺序和甘…...

使用vsftpd搭建FTP服务器(TLS/SSL显式加密)

安装vsftpd服务 使用vsftpd RPM安装包安装即可&#xff0c;如果可以访问YUM镜像源&#xff0c;通过dnf或者yum工具更加方便。 yum -y install vsftpd 启动vsftpd、查看服务状态 systemctl enable vsftpd systemctl start vsftpd systemctl status vsftpd 备份配置文件并进…...

QT常用控件(1)

控件是构成QT的基础元素&#xff0c;例如Qwidget也是一个控件&#xff0c;提供了一个‘空’的矩形&#xff0c;我们可以往里面添加内容和处理用户输入&#xff0c;例如&#xff1a;按钮&#xff08;QpushButton&#xff09;&#xff0c;基础显示控件&#xff08;Lable&#xff…...