从零搭建Prometheus监控报警系统+Grafana展示(系统监控必备知识)

本文主要是介绍从零搭建Prometheus监控报警系统+Grafana展示(系统监控必备知识),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 

什么是Prometheus?

Prometheus是由SoundCloud开发的开源监控报警系统和时序列数据库(TSDB)。Prometheus使用Go语言开发,是Google BorgMon监控系统的开源版本。
2016年由Google发起Linux基金会旗下的原生云基金会(Cloud Native Computing Foundation), 将Prometheus纳入其下第二大开源项目。
Prometheus目前在开源社区相当活跃。
Prometheus和Heapster(Heapster是K8S的一个子项目,用于获取集群的性能数据。)相比功能更完善、更全面。Prometheus性能也足够支撑上万台规模的集群。

 

基本原理

Prometheus的基本原理是通过HTTP协议周期性抓取被监控组件的状态,任意组件只要提供对应的HTTP接口就可以接入监控。不需要任何SDK或者其他的集成过程。这样做非常适合做虚拟化环境监控系统,比如VM、Docker、Kubernetes等。输出被监控组件信息的HTTP接口被叫做exporter 。目前互联网公司常用的组件大部分都有exporter可以直接使用,比如Varnish、Haproxy、Nginx、MySQL、Linux系统信息(包括磁盘、内存、CPU、网络等等)。

  • 1.演示安装Prometheus Server
  • 2.演示通过golang和node-exporter提供metrics接口
  • 3.演示pushgateway的使用
  • 4.演示grafana的使用
  • 5.演示alertmanager的使用

 

安装准备

这里我的服务器IP是192.168.234.4,登入,建立相应文件夹

mkdir -p /home/chenqionghe/promethues
mkdir -p /home/chenqionghe/promethues/server
mkdir -p /home/chenqionghe/promethues/client
touch /home/chenqionghe/promethues/server/rules.yml
chmod 777 /home/chenqionghe/promethues/server/rules.yml
touch /home/chenqionghe/promethues/server/prometheus.yml
chmod 777 /home/chenqionghe/promethues/server/prometheus.yml

安装Prometheus Server

主要涉及到两个配置文件和一个服务:

  • prometheus.yml #主配置文件
  • rules.yml #告警规则配置文件
  • prom/prometheus #包含Prometheus Server可执行程序的docker镜像

   主配置文件prometheus.yml

global:scrape_interval: 15s #默认采集监控数据时间间隔external_labels:monitor: 'my-monitor'
scrape_configs:  #监控对象设置- job_name: prometheus #任务名称scrape_interval: 5s #每隔5s获取一次监控数据static_configs: #监控对象地址- targets: ['127.0.0.1:9090']  # 将自己加入到监控对象中

  告警规则配置文件rules.yml

# 此处暂时不设置,后面Alertmanager章节具体介绍

在docker 运行prometheus

docker rm -f prometheus
docker run --name=prometheus -d \
-p 9090:9090 \
-v /home/chenqionghe/promethues/server/prometheus.yml:/etc/prometheus/prometheus.yml \
-v /home/chenqionghe/promethues/server/rules.yml:/etc/prometheus/rules.yml \
prom/prometheus \
--config.file=/etc/prometheus/prometheus.yml \
--web.enable-lifecycle

打开浏览器,访问http://192.168.234.4:9090/, 如果显示如下界面,说明prometheus启动成功

通过http://192.168.234.4:9090/metrics可以查看采集的metrics指标

 

通过golang和node-exporter提供metrics接口

启动node exporter

docker run -d --name=node-exporter -p 9100:9100 prom/node-exporter

修改prometheus.yml文件

将监控对象加入到监控任务中,如下

global:scrape_interval: 15s external_labels:monitor: 'my-monitor'
scrape_configs:  - job_name: prometheus scrape_interval: 5s static_configs: - targets: ['127.0.0.1:9090']  - targets: ['127.0.0.1:9100']  # 配置node-exporter,用于监控主机cpu、内存使用和磁盘等labels:group: 'client-node-exporter'

重启docker中的服务

查看监控信息

首先,重新加载prometheus配置文件,使用如下方式

curl -X POST http://192.168.234.4:9090/-/reload #启动prometheus的时候,必须带web.enable-lifecycle参数

打开浏览器,访问http://192.168.234.4:9090/targets

可以看到,刚才配置的node-exporter已经成功加入到prometheus的targets中。点击该targert(红线链接),可以看到主机cpu监控数据已经可以正常采集:

 

安装pushgateway

pushgateway是一个单独的服务,启动如下:

docker run -d -p 9091:9091 --name pushgateway prom/pushgateway

打开浏览器http://192.168.234.4:9091/#

 

 

安装Grafana展示

我们使用docker安装

docker run -d -p 3000:3000 --name grafana grafana/grafana

登录:192.168.234.4:3000

默认登录账户和密码都是admin,进入后界面如下。搭建完毕!

在数据源中配置前面的Prometheus,

参考:

https://www.cnblogs.com/informatics/p/12215255.htm

https://www.cnblogs.com/chenqionghe/p/10494868.html

这篇关于从零搭建Prometheus监控报警系统+Grafana展示(系统监控必备知识)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/715295

相关文章

Windows系统宽带限制如何解除?

《Windows系统宽带限制如何解除?》有不少用户反映电脑网速慢得情况,可能是宽带速度被限制的原因,只需解除限制即可,具体该如何操作呢?本文就跟大家一起来看看Windows系统解除网络限制的操作方法吧... 有不少用户反映电脑网速慢得情况,可能是宽带速度被限制的原因,只需解除限制即可,具体该如何操作呢?本文

CentOS和Ubuntu系统使用shell脚本创建用户和设置密码

《CentOS和Ubuntu系统使用shell脚本创建用户和设置密码》在Linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设置密码,本文写了一个shell... 在linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设

电脑找不到mfc90u.dll文件怎么办? 系统报错mfc90u.dll丢失修复的5种方案

《电脑找不到mfc90u.dll文件怎么办?系统报错mfc90u.dll丢失修复的5种方案》在我们日常使用电脑的过程中,可能会遇到一些软件或系统错误,其中之一就是mfc90u.dll丢失,那么,mf... 在大部分情况下出现我们运行或安装软件,游戏出现提示丢失某些DLL文件或OCX文件的原因可能是原始安装包

电脑显示mfc100u.dll丢失怎么办?系统报错mfc90u.dll丢失5种修复方案

《电脑显示mfc100u.dll丢失怎么办?系统报错mfc90u.dll丢失5种修复方案》最近有不少兄弟反映,电脑突然弹出“mfc100u.dll已加载,但找不到入口点”的错误提示,导致一些程序无法正... 在计算机使用过程中,我们经常会遇到一些错误提示,其中最常见的就是“找不到指定的模块”或“缺少某个DL

使用Python实现IP地址和端口状态检测与监控

《使用Python实现IP地址和端口状态检测与监控》在网络运维和服务器管理中,IP地址和端口的可用性监控是保障业务连续性的基础需求,本文将带你用Python从零打造一个高可用IP监控系统,感兴趣的小伙... 目录概述:为什么需要IP监控系统使用步骤说明1. 环境准备2. 系统部署3. 核心功能配置系统效果展

一文详解Java异常处理你都了解哪些知识

《一文详解Java异常处理你都了解哪些知识》:本文主要介绍Java异常处理的相关资料,包括异常的分类、捕获和处理异常的语法、常见的异常类型以及自定义异常的实现,文中通过代码介绍的非常详细,需要的朋... 目录前言一、什么是异常二、异常的分类2.1 受检异常2.2 非受检异常三、异常处理的语法3.1 try-

数据库面试必备之MySQL中的乐观锁与悲观锁

《数据库面试必备之MySQL中的乐观锁与悲观锁》:本文主要介绍数据库面试必备之MySQL中乐观锁与悲观锁的相关资料,乐观锁适用于读多写少的场景,通过版本号检查避免冲突,而悲观锁适用于写多读少且对数... 目录一、引言二、乐观锁(一)原理(二)应用场景(三)示例代码三、悲观锁(一)原理(二)应用场景(三)示例

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析

AJAX请求上传下载进度监控实现方式

《AJAX请求上传下载进度监控实现方式》在日常Web开发中,AJAX(AsynchronousJavaScriptandXML)被广泛用于异步请求数据,而无需刷新整个页面,:本文主要介绍AJAX请... 目录1. 前言2. 基于XMLHttpRequest的进度监控2.1 基础版文件上传监控2.2 增强版多

Python FastAPI+Celery+RabbitMQ实现分布式图片水印处理系统

《PythonFastAPI+Celery+RabbitMQ实现分布式图片水印处理系统》这篇文章主要为大家详细介绍了PythonFastAPI如何结合Celery以及RabbitMQ实现简单的分布式... 实现思路FastAPI 服务器Celery 任务队列RabbitMQ 作为消息代理定时任务处理完整