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:latestcontainer_name: prometheusvolumes:- ./prometheus.yml:/etc/prometheus/prometheus.yml- prometheus_data:/prometheusports:- "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:latestcontainer_name: alertmanagervolumes:- ./alertmanager.yml:/etc/alertmanager/alertmanager.ymlports:- "9093:9093"command:- '--config.file=/etc/alertmanager/alertmanager.yml'node-exporter:image: prom/node-exporter:latestcontainer_name: node-exporterports:- "9100:9100"command:- '--path.rootfs=/host'network_mode: "host"pid: "host"volumes:- /:/host:ro,rslavepushgateway:image: prom/pushgateway:latestcontainer_name: pushgatewayports:- "9091:9091"grafana:image: grafana/grafana:latestcontainer_name: grafanaenvironment:- GF_SECURITY_ADMIN_PASSWORD=your_passwordvolumes:- grafana_data:/var/lib/grafanaports:- "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: 5mroute: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,简单来说就是在里面查询某个指标,达成条件了发出告警

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

docker redis 持久化

1、拉取redis镜像 docker pull redis:latest 2、 mkdir /data/redis 3、填充redis.conf文件及根据需求修改相应的配置 •通过官网地址找到对应版本的配置文件 •将配置信息复制到redis.conf中 •常见的修改配置 https://redis.io/docs/latest/operate/oss_and_stack/managem…

高仿果汁导航模板

参考原文&#xff1a;果汁导航风格模板_1234FCOM专注游戏工具及源码例子分享 极速云

基于springboot的毕业设计系统的开发源码

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的毕业设计系统的开发。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 项目简介&#xff1a; 毕业设计系统能够实现…

学习通高分免费刷课实操教程

文章目录 概要整体架构流程详细步骤云上全平台登录步骤小结 概要 我之前提到过一个通过浏览器的三个脚本就可以免费高分刷课的文章&#xff0c;由于不方便拍视频进行实操演示&#xff0c;然后写下了这个实操教程&#xff0c;之前的三个脚本划到文章末尾 整体架构流程 整体大…

窗口函数 | rows between …… and ……

ROWS BETWEEN ... AND ... 是 SQL 窗口函数中的一个子句&#xff0c;用于定义窗口函数操作的行范围。窗口函数允许用户对一组相关的记录执行计算&#xff0c;这些记录被称为窗口。 基本语法 <窗口函数> OVER ( [PARTITION BY <列名>] ORDER BY <列名> [AS…

华为云之Zabbix监控平台部署实践

华为云之Zabbix监控平台部署实践 一、本次实践介绍1.1 实践环境简介1.3 本次实践完成目标 二、 相关服务介绍2.1 华为云ECS云服务器介绍2.2 Zabbix介绍 三、环境准备工作3.1 预置实验环境3.2 查看预置环境信息 四、登录华为云4.1 登录华为云4.2 查看ECS状态4.3 连接ECS弹性云服…

力扣HOT100 - 287. 寻找重复数

解题思路&#xff1a; 快慢指针 第一步&#xff0c;慢指针每次移动一步&#xff0c;快指针每次移动两步&#xff0c;直到它们相遇。这一步保证了它们在环中相遇。 接下来&#xff0c;将其中一个指针&#xff08;快指针或慢指针&#xff09;重置到起点&#xff08;即数组的第一…

SpringBoot实现邮箱验证码

自行创建一个SpringBoot项目 导入SpringBoot所需要的邮箱验证码的包 <!--邮件发送--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId><version>2.6.1</version>…

前后端部署笔记

windows版&#xff1a; 如果傻呗公司让用win电脑部署&#xff0c;类似于我们使用笔记本做局域网服务器&#xff0c;社内使用。 1.安装win版的nginx、mysql、node、jdk等 2.nginx开机自启参考Nginx配置及开机自启动&#xff08;Windows环境&#xff09;_nginx开机自启动 wind…

UPPAAL使用方法

UPPAAL使用方法 由于刚开始学习时间自动机及其使用方法&#xff0c;对UPPAAL使用不太熟悉&#xff0c;网上能找到的教程很少&#xff0c;摸索了很久终于成功实现一个小例子&#xff0c;所以记录一下详细教程。 这里用到的例子参考【UPPAAL学习笔记】1&#xff1a;基本使用示例…

专业级润滑油,一站式批发服务

要为机械设备提供持久稳定的动力保障吗&#xff1f;选择我们的专业级润滑油&#xff0c;让您的设备运转更顺畅&#xff0c;效率更高。 我们专业从事润滑油批发多年&#xff0c;以优质的产品、合理的价格和完善的服务赢得了广大客户的信赖。无论是汽车、机械还是工业设备&#x…

【Vue3】env环境变量的配置和使用(区分cli和vite)

原文作者&#xff1a;我辈李想 版权声明&#xff1a;文章原创&#xff0c;转载时请务必加上原文超链接、作者信息和本声明。 文章目录 前言一、env文件二、vue3cli加载env1..env配置2..dev配置&#xff08;其他环境参考&#xff09;3.package.json文件4.使用 三、vue3vite加载e…

【html5】03-新表单元素及属性

目录 1 引言 2 智能表单控件-type 3 表单属性 form input 5 答疑--解决required自定义提示信息 1 引言 HTML5引入了一系列新的表单输入类型&#xff0c;如email、url、number、range、date、time、datetime-local、month、week、search、color和tel等。这些新类型增强了表…

FFmpeg源码:bytestream_get_byte函数解析

一、引言 FFmpeg源码中经常使用到bytestream_get_byte这个函数&#xff0c;比如使用FFmpeg对BMP图片进行解析&#xff0c;其源码会调用函数bmp_decode_frame&#xff0c;而该函数内部会通过bytestream_get_byte读取BMP 的header。本文讲解函数bytestream_get_byte的作用和内部…

Spark SQL 中DataFrame DSL的使用

在上一篇文章中已经大致说明了DataFrame APi,下面我们具体介绍DataFrame DSL的使用。DataFrame DSL是一种命令式编写Spark SQL的方式&#xff0c;使用的是一种类sql的风格语法。 文章链接&#xff1a; 一、单词统计案例引入 import org.apache.spark.sql.{DataFrame, SaveMod…

Xinstall助力实现App间直接跳转,提升用户体验

在移动互联网时代&#xff0c;App已成为我们日常生活中不可或缺的一部分。然而&#xff0c;在使用各类App时&#xff0c;我们经常会遇到需要在不同App之间切换的情况&#xff0c;这时如果能够直接跳转&#xff0c;将会大大提升用户体验。而Xinstall正是这样一款能够帮助开发者实…

OpenCV 获取 RTSP 摄像头视频流保存至本地

介绍 Java OpenCV 是一个强大的开源计算机视觉库&#xff0c;它提供了丰富的图像处理和分析功能&#xff0c;越来越多的应用需要使用摄像头来获取实时视频流进行处理和分析。 在 Java 中使用 OpenCV 打开摄像头的基本步骤如下&#xff1a; 确保已经安装了OpenCV库使用 OpenC…

Raylib 绘制自定义字体的一种套路

Raylib 绘制自定义字体是真的难搞。我的需求是程序可以加载多种自定义字体&#xff0c;英文中文的都有。 我调试了很久成功了&#xff01; 很有用的参考&#xff0c;建议先看一遍&#xff1a; 瞿华&#xff1a;raylib绘制中文内容 个人笔记&#xff5c;Raylib 的字体使用 - …

W801 实现获取天气情况

看了小安派&#xff08;AiPi-Eyes 天气站&#xff09;的源码&#xff0c;感觉用W801也可以实现。 一、部分源码 main.c #include "wm_include.h" #include "Lcd_Driver.h"void UserMain(void) {printf("\n user task \n");Lcd_Init();Lcd_Clea…

MySQL主从复制(五):读写分离

一主多从架构主要应用场景&#xff1a;读写分离。读写分离的主要目标是分摊主库的压力。 读写分离架构 读写分离架构一 架构一结构图&#xff1a; 这种结构模式下&#xff0c;一般会把数据库的连接信息放在客户端的连接层&#xff0c;由客户端主动做负载均衡。也就是说由客户…