grafana + Prometheus + node-exporter + pushgateway + alertmanager的监控解决方案

业内比较著名的监控解决方案,据笔者所知,大概是三套:

一个是zabbix的解决方案,一个是prometheus+grafana,一个是ELK

zabbix比较重,而且原生支持监控SNMP,自带一个仪表盘,不需要额外部署

promethues,对K8S的支持比较好,并且比较轻量化,但是需要配grafana才能出图

ELK非常重,笔者没咋玩过,但据说对大规模日志和实时分析非常好,你可以看到数据部门特别喜欢用Elastic search这个东西

今天笔者阳了,头疼的要命,哎上次阳了之后做了个核磁发现有脑萎缩和脱髓鞘希望这次不要加重。趁着这会写一个prometheus的搭建和配置教程吧。

一、【环境准备】

如果你打算创造就业岗位,建议用传统方法部署一个Prometheus,这样你可以创造一个专门维护Prometheus的岗位。

如果为了给自己省事,建议直接上docker(docker compose)或者K8S(chart),不过注意docker需要有root权限,虽然docker有root less版本,但是官网文档提出有一些潜在的和尚未探知的问题。

这里笔者就直接用docker搭了

prometheus是监控的中心节点,grafana是画图的,node-exporter是采集指标的放在哪台机器就是采集哪台机器指标,pushgateway是做短时任务的,alertmanager是告警的,当然你也可以用grafana自带的告警。

1. 安装docker

# 先查一下自己的发行版本,根据发行版本,下一步下载对应的安装包
lsb_release

比如我这个是Ubuntu 18.04的版本,bionic,那么接下来我们就下载 对应的五个包

  • containerd.io_<version>_<arch>.deb
  • docker-ce-cli_<version>_<arch>.deb
  • docker-ce_<version>_<arch>.deb
  • docker-buildx-plugin_<version>_<arch>.deb
  • docker-compose-plugin_<version>_<arch>.deb

# 下载一下离线包,设法传到机器上
# ubuntu:https://download.docker.com/linux/ubuntu/dists/bionic/pool/stable/amd64/
# centos:https://download.docker.com/linux/centos/
# 随后逐个安装
sudo dpkg -i 安装包路径

这个安装顺序一般是先装container,再装剩下的,有时候新版本的container在老版本的linux上会有依赖错误,更新一下依赖就行。

全部安装完后,最好还要换一下contanier的源,在/etc/containerd下面的config.toml,换源的教程很多,这里就不展开了

2. 测试docker

docker run helloword

如果docker成功运行了你会看到这个

3. 写配置文件

这个是一个yml文件,简单来讲就是编排容器用的,可以一下起好几个,很方便。我们创建一个 docker-compose.yml

version: '3.7'

services:
  prometheus:
    image: prom/prometheus:latest
    container_name: prometheus
    volumes:
      - ./prometheus.yml:/etc/prometheus/prometheus.yml
      - prometheus_data:/prometheus
    ports:
      - "9090:9090"
    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'
  
  alertmanager:
    image: prom/alertmanager:latest
    container_name: alertmanager
    volumes:
      - ./alertmanager.yml:/etc/alertmanager/alertmanager.yml
    ports:
      - "9093:9093"
    command:
      - '--config.file=/etc/alertmanager/alertmanager.yml'
  
  node-exporter:
    image: prom/node-exporter:latest
    container_name: node-exporter
    ports:
      - "9100:9100"
    command:
      - '--path.rootfs=/host'
    network_mode: "host"
    pid: "host"
    volumes:
      - /:/host:ro,rslave
  
  pushgateway:
    image: prom/pushgateway:latest
    container_name: pushgateway
    ports:
      - "9091:9091"
  
  grafana:
    image: grafana/grafana:latest
    container_name: grafana
    environment:
      - GF_SECURITY_ADMIN_PASSWORD=your_password
    volumes:
      - grafana_data:/var/lib/grafana
    ports:
      - "3000:3000"

volumes:
  prometheus_data:
  grafana_data:

再写一个prometheus.yml,输入一下内容,这个是配置连接用的

global:
  scrape_interval: 15s  # 默认抓取间隔

scrape_configs:
  - job_name: 'prometheus'
    static_configs:
      - targets: ['prometheus:9090']

  - job_name: 'node-exporter'
    static_configs:
      - targets: ['node-exporter:9100']

  - job_name: 'pushgateway'
    static_configs:
      - targets: ['pushgateway:9091']

alerting:
  alertmanagers:
    - static_configs:
        - targets: ['alertmanager:9093']

rule_files:
  - 'alert.rules.yml'

再写一个 alermanager.yml,先这么写后期有告警加进去了再改

global:
  resolve_timeout: 5m

route:
  receiver: 'default'

receivers:
  - name: 'default'

二、【容器!启动~】

然后cd到刚才你写docker-compose.yml的路径,输入

sudo docker compose up -d
# 如果要停止就是 sudo docker compose down

看到这个,没报错,就算是成功了

三、【网页上的检查与配置】

1. 访问prometheus

浏览器访问prometheus的地址(我们这里是127.0.0.1:9090)里面有个target

看到这边的state都是up状态,就是连接成功了

2. 访问grafana 

浏览器访问prometheus的地址(我们这里是127.0.0.1:9094)

先配一个数据源,选prometheus

有了数据源就可以制图了,点左侧的dashboard仪表盘,new一个dashboard出来

点右上角新建一个视图

进来之后就可以设置自己的监控项目了,右侧有一些其他设置,感兴趣也可以看看,设置完右上角保存

 然后再保存dashboard配置

3. 配置告警 

告警可以用alertmanager也可以用grafana的告警,前者需要写yml,后者可以在网页上点点点,如果告警量大建议用alertmanager,告警不多不复杂用grafana的告警也行

新建一个自己用的告警方式,这里有很多比如什么email、dingding、webhook、slack等

 然后配置一下alert rules,简单来说就是在里面查询某个指标,达成条件了发出告警

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/639638.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Redis常用命令——String篇

前面我们讲解了一些 Redis 的全局命令&#xff08;Redis常用基本全局命令&#xff09;。所谓全局命令&#xff0c;就是可以匹配任意一个数据结构进行使用。但是不同的数据结构&#xff0c;也有自己的操作命令。本篇文章主要讲解的是 String 的操作命令&#xff0c;希望会对你有…

fortran77 初始化矩阵 打印矩阵 模版 备拷

1&#xff0c;源码 SUBROUTINE INIT_MATRIX(A, m, n, lda)DOUBLE PRECISION A(*)CALL SRAND(2024)DO i1, mDO j1, nA(i lda*(j-1)) RAND() RAND() C WRITE(*, (F8.4)) A(i)END DOEND DOENDSUBROUTINE PRINT_MATRIX(A, m, n, lda)DOUBLE PREC…

pytorch-20_1 LSTM在股价数据集上的预测实战

LSTM在股价数据集上的预测实战 使用完整的JPX赛题数据&#xff0c;并向大家提供完整的lstm流程。 导包 import numpy as np #数据处理 import pandas as pd #数据处理 import matplotlib as mlp import matplotlib.pyplot as plt #绘图 from sklearn.preprocessing import M…

Postgresql 基础学习

一、介绍 PostgreSQL是一个开源的关系型数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;它支持SQL语言的所有功能&#xff0c;具有可扩展性、高并发性和可靠性等特点。 以下是一些 PostgreSQL 的特点&#xff1a; 开源&#xff1a;PostgreSQL是一个非常受欢迎的开源…

计算机系统概述习题

选择题 电子计算机问世至今&#xff0c;新型计算机不断推陈出新&#xff0c;不管怎么更新&#xff0c;依然具有“存储程序”的特点&#xff0c;最早提出这种概念的是(B) A. 巴贝奇 B. 冯*诺伊曼 C. 帕斯卡 D. 贝尔 B下列描述中___是正确的。 A. 控制器能理解&#xff0c;解释…

Creating Server TCP listening socket *:6379: listen: Unknown error

错误&#xff1a; 解决方法&#xff1a; 在redis安装路径中打开cmd命令行窗口&#xff0c;输入 E:\Redis-x64-3.2.100>redis-server ./redis.windows.conf结果&#xff1a;

OpenHarmony轻量系统中内核资源主要管理方式

一、背景 OpenAtom OpenHarmony&#xff08;以下简称“OpenHarmony”&#xff09;轻量系统面向MCU类处理器例如ARM Cortex-M、RISC-V 32位的设备&#xff0c;硬件资源极其有限&#xff0c;支持的设备最小内存为128KiB&#xff0c;可以提供多种轻量级网络协议&#xff0c;轻量级…

5.1 Go 函数的定义与调用

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

解决无法启动Redis,打开redis-server闪退的问题

【问题】 ① 双击redis-server.exe闪退。 ② 终端运行redis-server没反应。 但是终端运行redis -cli没问题。 【解决方法】 步骤1&#xff1a;找到Redis文件夹&#xff0c;右击&#xff0c;在终端打开。 步骤2&#xff1a;输入命令&#xff1a;redis-server.exe redis.windows…

论文阅读笔记:Task-Customized Mixture of Adapters for General Image Fusion

论文阅读笔记&#xff1a;Task-Customized Mixture of Adapters for General Image Fusion 1 背景2 创新点3 方法4 模块4.1 任务定制混合适配器4.2 提示生成4.3 提示驱动融合4.4 互信息正则化MIR4.5 任务定制化损失 5 实验5.1 VIF任务5.2 MEF任务5.3 MFF任务5.4 消融实验5.5 性…

网络编程 一

一、UDP socket api的使用 Java 把系统原生的封装了. 核心的类有两个: 1 -> DatagramSocket 操作系统中,有一类文件,就叫socket文件. socket文件,抽象表示了 " 网卡"这样的硬件设备. 进行网络通信最核心的硬件设备网卡 通过网卡发送数据,就是写…

人工智能应用-实验8-用生成对抗网络生成数字图像

文章目录 &#x1f9e1;&#x1f9e1;实验内容&#x1f9e1;&#x1f9e1;&#x1f9e1;&#x1f9e1;代码&#x1f9e1;&#x1f9e1;&#x1f9e1;&#x1f9e1;分析结果&#x1f9e1;&#x1f9e1;&#x1f9e1;&#x1f9e1;实验总结&#x1f9e1;&#x1f9e1; &#x1f9…

spark的简单学习一

一 RDD 1.1 RDD的概述 1.RDD&#xff08;Resilient Distributed Dataset&#xff0c;弹性分布式数据集&#xff09;是Apache Spark中的一个核心概念。它是Spark中用于表示不可变、可分区、里面的元素可并行计算的集合。RDD提供了一种高度受限的共享内存模型&#xff0c;即RD…

想学接口测试,不知道那个工具适合?

引言&#xff1a; 接口测试在软件开发中扮演着至关重要的角色&#xff0c;它可以帮助我们验证系统的功能、性能和安全性。而选择适合的工具是进行接口测试的重要一步。本文将从零开始&#xff0c;为你详细介绍如何选择合适的工具&#xff0c;并提供规范的指导。 一、了解接口…

【大数据】MapReduce实战

文章目录 [toc]Word CountMapperReducerrun.sh本地调试 基于白名单的Word CountMapperReducerrun.sh本地调试 文件分发-fileMapperReducerrun.sh -cacheFileMapperReducerrun.sh -cacheArchiveMapperReducerrun.sh 杀死MapReduce Job排序压缩文件mr_ip_lib_python本地调试 个人…

PE文件(六)新增节-添加代码作业

一.手动新增节添加代码 1.当预备条件都满足&#xff0c;节表结尾没有相关数据时&#xff1a; 现在我们将ipmsg.exe用winhex打开&#xff0c;在节的最后新增一个节用于存放我们要增加的数据 注意&#xff1a;飞鸽的文件对齐和内存对齐是一致的 先判断节表末尾到第一个节之间…

《书生·浦语大模型实战营》第一课 学习笔记:书生·浦语大模型全链路开源体系

文章大纲 1. 简介与背景智能聊天机器人与大语言模型目前的开源智能聊天机器人与云上运行模式 2. InternLM2 大模型 简介3. 视频笔记&#xff1a;书生浦语大模型全链路开源体系内容要点从模型到应用典型流程全链路开源体系 4. 论文笔记:InternLM2 Technical Report简介软硬件基础…

Flat Ads获广东电视台报道!CEO林啸:助力更多企业实现业务全球化增长

近日,在广州举行的第四届全球产品与增长展会(PAGC2024)上,Flat Ads凭借其卓越的一站式全球化营销和创新的变现方案大放异彩,不仅吸引了众多业界目光,同时也在展会上斩获了备受瞩目的“金帆奖”,展现了其在全球化营销推广领域的卓越实力和专业服务。 在大会现场,Flat Ads的CEO林…

fyne网格包裹布局

fyne网格包裹布局 与之前的网格布局一样&#xff0c;网格环绕布局以网格模式创建元素排列。但是&#xff0c;此网格没有固定数量的列&#xff0c;而是为每个单元格使用固定大小&#xff0c;然后将内容流到显示项目所需的行数。 layout.NewGridWrapLayout(size) 您可以使用其中…

如何官方查询论文分区,中科院及JCR

中科院分区 有一个小程序&#xff1a;中科院文献情报中心分区表 点2023升级版&#xff0c;输入期刊名 大类1区 JCR分区 进入官方网站 Journal Citation Reports 输入要查询的期刊名&#xff0c;点开 拼命往下拉 这就是根据影响因子的排名&#xff0c;在computer science&am…