Prometheus+grafana环境搭建方法及流程两种方式(docker和源码包)(一)

1.选型对比

最近项目上有对项目服务及中间件的监控需求,要做实现方案调研,总结一下自己的成果,目前业界主流可选的方案有:

国外开源:

Prometheus:Prometheus - Monitoring system & time series database

优点:使用exporter方式+主动拉取方式,采集灵活,覆盖面广,结合grafana能快速搭建上手,promql功能强大,自定义指标方便,对云环境支持很好

缺点:采用分布式部署,基于本地文件存储数据,数据统一采集不方便,采用配置文件配置较为繁琐,(ps也支持服务发现),promql学习成本较高

zabbix 

Grandage-Zabbix中国

优点:老牌监控框架、all-in-one 部署,使用MySQL存储数据,使用页面配置采集。推荐6.0以上版本,使用agent2

缺点:比较重,灵活性比较差,自定义指标实现难度高

grafana

开源的可视化框架,可以使用多种数据源,对Prometheus支持非常友好,也支持zabbix。可以很方便的集成到自己的前端项目中。

国内开源

夜莺 夜莺 - 快猫星云

优点:集成了Prometheus和zabbix的优点,可以通过页面配置监控告警还能all-in-one 部署。文档比较友好。(由于是后来才找到这个框架,所以没有深入研究)

本次我验证了(监控服务器,rabbitmq、nacos、redis、mysql、MongoDB,spring-boot,Nginx)等常用中间件的监控,留档以备后续查看。其他的基本都可以参照官网

2. Prometheus基础环境搭建

Prometheus支持两种搭建方式,二进制安装和docker安装,基本所有的组件都提供了这两种安装方式。二进制方式可以将组件注册为Linux系统服务,使用systemctl来管理

2.1 二进制方式安装

主要安装:Prometheus+node_exporter(服务器节点监控)+alertmanager+grafana,适合在离线没有网络的环境。

网上有现成的仓库 prometheus: 二进制安装prometheus

项目使用方法
1.将项目下载到自己的Linux服务器
https://gitee.com/lengedcloud/prometheus.git
进入目录 cd prometheus
2.将服务移动到系统服务目录
mv *.service /etc/systemd/system/
3.创建一个普通用户
useradd -M -s /usr/sbin/nologin prometheus  -M不创建家目录,不允许登录
4.启动服务,并设置开机启动
systemctl enable alertmanager.service --now
systemctl enable grafana-server.service --now
systemctl enable node_exporter.service --now
systemctl enable prometheus.service --now
5.检查服务状态
systemctl status alertmanager.service 
systemctl status grafana-server.service 
systemctl status node_exporter.service 
systemctl status prometheus.service 
6.访问测试
alertmanager.service 告警 端口 ip:9093/metrics
grafana-server 数据展示 端口 ip:3000  账号/密码 admin/admin 
node_exporter 数据采集  ip:9100/metrics
prometheus 数据存储 端口 ip:9090
2.2 docker方式安装

主要安装:Prometheus+cadvsior(docker监控)+node_exporter++alertmanager+grafana

此处可以下载打包 docker-compose: docker-compose仓库

 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:/prometheuscommand:- '--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:- cadvisoralertmanager: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:9093cadvisor: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'ports:- '8080: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

使用docker-compose 一键安装

docker-compose up -d 安装

安装完成后测试 同二进制安装测试相同

Prometheus页面,可以从status>target目录下查看当前的监控任务状态,点击endpoint,确认每个target路径有数据即为正常。

grafana页面

2.3 配置Prometheus监控

打开 vim prometheus.yaml,修改ip或服务名为自己的宿主机ip

Prometheus重新热加载配置 很常用

curl -X POST http://localhost:9090/-/reload 

2.4 配置grafana监控页面

grafana提供了大量配置模板可以快速生成监控

给grafana配置Prometheus数据源

填写信息,可以测试连接一下,docker版要写宿主机的ip,http一定要加

1.配置模板-服务器监控

Dashboards | Grafana Labs

选择数据源,模板可以按照自己的需要进行修改,有些指标名称在不用版本的Prometheus库中可能已经被替换或者更新,实际使用时要进行相应的更改。

点击要使用的模板,获取模板id或者json文件,此处还有Prometheus中的配置

在grafana中导入

输入ID,并导入

选择数据源,修改面板名称

 查看效果

2.配置模板-docker服务监控

选择想要的模板

复制id 10619,重复上面的步骤导入

3.配置模板-alertmanager告警监控,告警也是Prometheus的核心功能。

选择模板id,9578

重复上面的步骤导入

 exp告警规则可以通过使用promql定义的非常丰富。

告警配置文件在,prometheus挂载出来的alert.yml文件中

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

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

相关文章

gpt国内怎么用?最新版本来了

claude 3 opus面世后,这几天已经有许多应用,而其精确以及从不偷懒(截止到2024年3月11日还没有偷懒)的个性,也使得我们可以用它来首次完成各种需要多轮对话的尝试。 今天我们想要进行的一项尝试就是—— 如何从一个不知…

『VUE』11. 操作数组的方法(详细图文注释)

目录 vue中操作数组的方法会修改原数组的 会进行渲染更新不修改原数组的 不会进行渲染更新 push自动渲染concat 赋值渲染总结 欢迎关注 『VUE』 专栏,持续更新中 欢迎关注 『VUE』 专栏,持续更新中 vue中操作数组的方法 vue中数组数据呈现在网页,只检测…

基于卷积神经网络的鸟类识别系统(pytorch框架)【python源码+UI界面+前端界面+功能源码详解】

功能演示: 鸟类识别系统,基于vgg16,resnet50卷积神经网络(pytorch框架)_哔哩哔哩_bilibili (一)简介 基于卷积神经网络的鸟类识别系统是在pytorch框架下实现的,系统中有两个模型可…

10 年跟踪 Hacker News 招聘贴,解读科技行业变迁

Hackers News (HN) 是国外程序员最喜欢逛的论坛。能登上首页的帖子类似于上了新浪微博。因为其巨大的程序员访问量,因此也成为了公司招聘的渠道。久而久之 HN 招聘帖还形成了专门的标题格式 Ask HN: Who is hiring? 正好有人通过 Ask HN 来分析技术趋势&#xff0c…

js中的事件循环

浏览器进程模型 在理解什么叫事件循环前,我们需要先知道浏览器的进程模型 现代浏览器的功能极度复杂,为了能确保各个部分独立运行互不影响,浏览器会在启动之时开启多个进程,具体而言可以分为以下三种 浏览器进程 负责浏览器的用…

【JavaEE初阶系列】——文件操作 IO 之 文件系统操作

目录 📝认识文件 🚩树型结构组织 和 目录 🎈绝对路径和相对路径 🚩文件类型 📝文件系统操作 🎈File 概述 🎈File类的使用 1. 绝对路径 vs 相对路径 2. 路径分隔符 3. 静态成员变量 4…

VSCode SSH 连接 Could not establish connection to “XXX“: spawn UNKNOWN.

1. 确认问题: 拉取vscode终端:快捷键 ctrl(数字1旁边那个) 输入:ssh -V 2. 解决方法 2.1 找到本地SSH 位置 默认本地路径: C:\Windows\System32\OpenSSH 2.2 找到要修改的位置 进入 ssh 插件的设置(可以通过在插…

Jenkins首次安装选择推荐插件时出现”No such plugin cloudbees-folder”解决方案

安装Jenkins成功之后,首次启动Jenkins后台管理,进入到安装插件的步骤,选择"推荐安装",继续下一步的时候出现错误提示: 出现一个错误 安装过程中出现一个错误:No such plugin:cloudb…

基于SSM的药店药品商城管理系统

介绍 本项目分为前后台,分为管理员与普通用户两种角色,管理员登录后台,普通用户登录前台; 管理员角色包含以下功能: 管理员登录,订单管理,客户管理,药品管理,类目管理等功能。用户角色包含以下功能: 用户首…

基于51单片机智能加湿器控制系统

基于51单片机智能加湿器控制系统 (仿真+程序+原理图) 功能介绍 具体功能: 1.LCD1602实时显示湿度值(湿度范围10%-95%)和湿度阈值; 2.可以通过按键设置湿度阈值范围; 3…

JAVAEE——文件IO

文章目录 文件的概念什么是文件?树型结构组织 和 目录文件路径相对路径绝对路径 文件的分类文件的权限 文件读写IO API字符流操作API 警告字节流操作APIInputStreamOutputStream 文件的概念 什么是文件? 我们先来理解一下什么是文件,那么想…

【Leetcode】top 100 图论

基础知识补充 1.图分为有向图和无向图,有权图和无权图; 2.图的表示方法:邻接矩阵适合表示稠密图,邻接表适合表示稀疏图; 邻接矩阵: 邻接表: 基础操作补充 1.邻接矩阵: class GraphAd…