【30天精通Prometheus:一站式监控实战指南】第19天:haproxy_exporter从入门到实战:安装、配置详解与生产环境搭建指南,超详细

亲爱的读者们👋

  欢迎加入【30天精通Prometheus】专栏!📚 在这里,我们将探索Prometheus的强大功能,并将其应用于实际监控中。这个专栏都将为你提供宝贵的实战经验。🚀

  Prometheus是云原生和DevOps的核心监控工具,我们将从基础概念开始,逐步涵盖配置、查询、告警和可视化。💪

  在接下来的30天里,我们将解锁Prometheus的实战技巧,通过案例和分享,助你深入理解其工作原理。📆

  目标:30天后,你将熟练掌握Prometheus,为未来的项目挑战做好准备!💯

  这是一段精彩旅程,期待你的加入!🎉


文章目录

  • 一、haproxy_exporter概述📘
  • 二、安装haproxy_exporter💾
    • 2.1 访问haproxy_exporter官方网站 🌐
    • 2.2 选择适合的版本🔍
    • 2.3 下载haproxy_exporter⬇️
    • 2.4 解压安装包📂
    • 2.5 运行haproxy_exporter🚀
  • 三、haproxy_exporter指标和配置详解📖
    • 3.1 haproxy_exporter.service
  • 四、实战演练:生产环境搭建指南🔨
    • 4.1 配置haproxy支持status
      • 4.1.1 配置haproxy展示状态信息
      • 4.1.2 重启haproxy
      • 4.1.3 Web访问haproxy可看到状态信息
    • 4.2 配置haproxy_exporter
      • 4.2.1 创建普通用户管理haproxy_exporter👤
      • 4.2.2 解压haproxy_exporter.tar.gz📦
      • 4.2.3 将haproxy_exporter集成到Prometheus配置中✂️
      • 4.2.4 更改haproxy_exporter软件包名称✂️
      • 4.2.5 编辑haproxy_exporter.service文件📝
      • 4.2.6 启动haproxy_exporter.service🔌
      • 4.2.7 查看服务是否正常启动🔍
  • 相关资料下载地址📚

一、haproxy_exporter概述📘

定义
  haproxy_exporter是HAProxy的一个数据导出插件,它的主要作用是将HAProxy的运行状态、性能数据等信息导出到其他监控系统或数据存储平台,从而方便用户进行实时监控和数据分析。

功能
  
数据导出:能够将HAProxy的关键运行指标(如活动连接数、已连接的客户端和服务器数量、内存使用情况等)导出为可监控的数据格式。

  兼容性:可以与多种监控系统(如Prometheus)无缝集成,提供HTTP方式的数据暴露接口,便于数据的采集和监控。

  自定义配置:支持用户通过配置文件或命令行参数进行自定义设置,如指定HAProxy状态页的URL、选择HTTP或HTTPS连接方式等。

  安全性:支持基础认证(Basic Auth)和HTTPS证书验证,确保数据传输的安全性。

应用场景
  负载均衡监控:在使用HAProxy作为负载均衡器的环境中,haproxy_exporter可以实时监控负载均衡器的运行状态和性能,帮助系统管理员及时发现并解决问题。

  性能优化:通过对HAProxy的性能指标进行实时监控和分析,可以帮助用户找出性能瓶颈,从而进行针对性的优化。

  故障预防和恢复:haproxy_exporter提供的详细数据可以帮助用户预测潜在故障,及时采取措施进行预防或恢复,确保服务的稳定性和可用性。

二、安装haproxy_exporter💾

注意事项和常见问题
  1.环境配置:确认服务器操作系统和版本是否兼容haproxy_exporter。确保有足够的磁盘空间和内存来安装和运行haproxy_exporter。

  2.依赖安装:根据haproxy_exporter的要求,可能需要先安装某些依赖库或软件,如Go语言环境等。确保所有依赖项都是最新版本,以避免兼容性问题。

  3.配置文件:在安装前准备好必要的配置文件,如haproxy_exporter的配置文件,以便在安装过程中进行相应设置。

  4.权限设置:确保安装过程中有足够的权限来创建目录、写入文件等。根据需要设置适当的用户和组权限,以确保haproxy_exporter的正常运行。

2.1 访问haproxy_exporter官方网站 🌐

  • 打开浏览器,访问haproxy_exporter的官方下载页面,通常位于Github官方网站的haproxy_exporter下:https://github.com/prometheus/haproxy_exporter/releases

2.2 选择适合的版本🔍

  • 在下载页面,你将看到不同操作系统的haproxy_exporter二进制包。根据你的操作系统选择适合的版本。例如,如果你使用的是Linux 64位系统,就选择haproxy_exporter-0.15.0.linux-amd64.tar.gz(其中x.x.x是版本号)。

2.3 下载haproxy_exporter⬇️

  • 点击所选版本的下载链接,将haproxy_exporter的二进制包下载到你的本地计算机。

2.4 解压安装包📂

  • 将下载的haproxy_exporter压缩包解压到你想要安装的目录。你可以使用命令行工具(如tar)来完成这个步骤。解压后,你将看到一个名为haproxy_exporter-x.x.x.linux-amd64的目录,其中包含haproxy_exporter的二进制文件和其他相关文件。
tar -xzf haproxy_exporter-0.15.0.linux-amd64.tar.gz

2.5 运行haproxy_exporter🚀

  • 进入解压后的目录,并运行haproxy_exporter服务器。在Linux下,你可以使用如下命令。如果一切正常,你应该能在终端看到haproxy_exporter的启动日志。
cd haproxy_exporter-x.x.x.linux-amd64

./haproxy_exporter --haproxy.scrape-uri="http://localhost:5000/baz?stats;csv"
  • 如果haproxy开启了身份验证,需要将平局添加到要抓取的uri中,如下示例:
./haproxy_exporter  --haproxy.scrape-uri="http://user:pass@haproxy.example.com/haproxy?stats;csv"

三、haproxy_exporter指标和配置详解📖

  • 黑色:作为默认文本颜色。
  • 绿色:表示常规配置项
  • 橙色:表示具有互斥参数的配置项 / 建议开启(根据自己的场景确定需求)
  • 蓝色:不重要的配置项 / 建议不开启
  • 红色:表示关键信息和警告 / 最好开启

注意:

  • 1.相关参数配置建议仅供参考,具体要以自己生产的实际需要自行配置。
  • 2.以下配置参数介绍是基于haproxy_exporter-0.15.0.linux-amd64版本说明的,其它版本会有不同。

3.1 haproxy_exporter.service

  • - -web.systemd-socket
      指示haproxy_exporter使用由systemd提供的socket进行监听。通常用于与systemd的socket激活功能结合使用,允许systemd管理系统服务的监听socket,并在服务启动时将其传递给服务。当使用这个选项时,haproxy_exporter将不会自己创建监听socket,而是使用systemd已经为其创建的socket。通常在系统服务配置文件中设置,而不是直接传递给haproxy_exporter命令行
  • - -web.listen-address=:9101
      设置haproxy_exporter监听的地址和端口。:9101表示监听所有可用的网络接口(IPv4和IPv6)上的9101端口。如果不设置此参数,haproxy_exporter将默认监听在本地的某个端口上
  • - -web.config.file=“”
      允许你指定一个配置文件,可以包含haproxy_exporter的运行配置,如果留空,则haproxy_exporter将使用默认配置
  • - -web.telemetry-path=“/metrics”
      定义haproxy_exporter提供metrics数据的HTTP路径
  • - -haproxy.scrape-uri=“http://localhost/;csv”
      指定haproxy_exporter应从哪个URI获取HAProxy的统计信息。http://localhost/;csv 表示从本地运行的HAProxy实例获取CSV格式的统计信息。如果HAProxy配置了统计页面并允许远程访问,这里的localhost可以替换为HAProxy服务器的实际地址
  • - -haproxy.ssl-verify
      当HAProxy的统计信息通过HTTPS提供时,此标志会启用SSL证书验证
  • - -haproxy.server-metric-fields=“2,3,4,5,6,7,8,9,13,14,15,16,17,18,21,24,30,33,35,38,39,40,41,42,43,44,49,50,58,59,60,61”
      定义haproxy_exporter应从HAProxy的CSV统计信息中提取哪些字段。数字代表CSV文件中的列索引,这些列索引对应的数据将被导出为metrics。列表中的数字是根据HAProxy统计CSV输出的列来指定的,确保这些数字与你HAProxy版本输出的CSV列相对应
  • - -haproxy.server-exclude-states=“”
      允许你指定要从metrics中排除的服务器状态。默认情况下为空,意味着不排除任何状态。你可以在这里列出不需要监控的状态,比如“MAINT”或“DOWN”,以减少噪音和不必要的警报
  • - -haproxy.timeout=5s
      设置haproxy_exporter尝试从HAProxy获取统计信息时的超时时间。5s表示如果5秒内无法获取数据,haproxy_exporter将放弃尝试
  • - -http.proxy-from-env
      告诉haproxy_exporter从环境变量中获取HTTP代理设置,当设置了这个标志时,haproxy_exporter将查找如HTTP_PROXY和HTTPS_PROXY等环境变量,并使用它们来配置其HTTP客户端

四、实战演练:生产环境搭建指南🔨

4.1 配置haproxy支持status

4.1.1 配置haproxy展示状态信息

  • 编辑haproxy.cfg配置文件,添加如下配置项
listen stats
    bind :5000
    stats uri /haproxy  // 监控页面的url访问路径
    # stats auth admin:admin  //监控页面的用户和密码,可自行配置
    stats enable

4.1.2 重启haproxy

sudo systemctl restart haproxy

4.1.3 Web访问haproxy可看到状态信息

http://127.0.0.1:5000/haproxy
在这里插入图片描述

4.2 配置haproxy_exporter

4.2.1 创建普通用户管理haproxy_exporter👤

useradd deploy

4.2.2 解压haproxy_exporter.tar.gz📦

注意:
  我的是x86,所以使用haproxy_exporter-0.15.0.linux-amd64.tar.gz,您可以使用uname -a命令查看系统架构

mkdir /home/deploy/haproxy_exporter

tar xvf haproxy_exporter-0.15.0.linux-amd64.tar.gz -C /home/deploy/haproxy_exporter/

4.2.3 将haproxy_exporter集成到Prometheus配置中✂️

  将haproxy_exporter集成到Prometheus配置中,确保数据能够正常采集。编辑Prometheus的配置文件(通常是prometheus.yml),在scrape_configs部分添加haproxy_exporter的配置。告诉Prometheus将采集haproxy_exporter:9101的数据。

  - job_name: 'haproxy_exporter'
    static_configs:
      - targets:
      - targets: ["localhost:9101"]
        labels:
          exporter: haproxy_exporter

4.2.4 更改haproxy_exporter软件包名称✂️

mv /home/deploy/haproxy_exporter-0.15.0.linux-amd64 /home/deploy/haproxy_exporter

4.2.5 编辑haproxy_exporter.service文件📝

cat > /etc/systemd/system/haproxy_exporter.service <<EOF
[Unit]
Description=HAproxy exporter
After=network.target

[Service]
Type=simple
User=deploy
Group=deploy
ExecStart=/home/deploy/haproxy_exporter/haproxy_exporter \
--haproxy.scrape-uri="http://127.0.0.1:5000/haproxy?stats;csv" \
--web.listen-address=:9101
ExecReload=/bin/kill -HUP
Restart=on-failure

[Install]
WantedBy=multi-user.target
EOF

4.2.6 启动haproxy_exporter.service🔌

sudo systemctl daemon-reload

sudo systemctl enable --now haproxy_exporter.service

4.2.7 查看服务是否正常启动🔍

# 查看service服务是否启动
sudo systemctl status haproxy_exporter.service

# 查看端口是否存在
sudo ss -ntulp | grep 9101

相关资料下载地址📚

  • 官方文档:https://prometheus.io/docs/introduction/overview/
  • 下载地址:https://github.com/prometheus/prometheus/releases/tag/v2.52.0
  • 文档地址:https://prometheus.io/docs/prometheus/latest/installation/
  • 离线包下载链接:https://pan.baidu.com/s/1ANF_AlFnM5_FMIbKBuzBmg 提取码:yqpt

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

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

相关文章

如何充分利用代理IP扩大网络接触面

目录 前言 第一部分&#xff1a;什么是代理IP&#xff1f; 第二部分&#xff1a;如何获取代理IP&#xff1f; 1. IP质量 2. 匿名性 3. 限制 第三部分&#xff1a;如何使用代理IP&#xff1f; 第四部分&#xff1a;如何充分利用代理IP&#xff1f; 总结&#xff1a; 前…

SqlServer: 如何产生没有重复的报名编号

背景&#xff1a; 某一期的报名过程中&#xff0c;希望报名能做到报名从1开始&#xff0c;从小到大依次来。但实际生产环境中&#xff0c;用户集中大并发式报名&#xff0c;报名编号非常容易重复。 下面我们用简单的SQL来模拟和重现这个过程&#xff1a; USE tempdb GO DROP…

城规跨考地信:你需要知道的几件事

24考研结束&#xff0c;25地信考研的小伙伴也开始准备。 在这期间发现一个现象&#xff0c;城规跨考GIS的讨论度非常高。 对这一点&#xff0c;我并不感到意外&#xff0c;因为随着地产行业的节节败退&#xff0c;很多单位不需要那么多规划人和建筑人&#xff0c;乃至土木人。…

【前端Vue3】——JQuery知识点总结(超详细)

&#x1f3bc;个人主页&#xff1a;【Y小夜】 &#x1f60e;作者简介&#xff1a;一位双非学校的大二学生&#xff0c;编程爱好者&#xff0c; 专注于基础和实战分享&#xff0c;欢迎私信咨询&#xff01; &#x1f386;入门知识专栏&#xff1a;&#x1f387;【MySQL&#…

ceph对象储存的使用

radosgw-admin user create --uid“user1” --display-name“user1” #创建用户 sudo apt install s3cmd cephadminceph-mgr01:~/ceph-cluster/s3$ s3cmd --configure Enter new values or accept defaults in brackets with Enter. Refer to user manual for detailed desc…

GPT-4o:人工智能新纪元的突破与展望

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

常见排序算法之插入排序

目录 一、直接插入排序 1.1 什么是插入排序 1.2 代码思路 1.3 C语言源码 二、希尔排序 2.0 插入排序的弊端 2.1 什么是希尔排序&#xff1f; 2.2 排序思路 2.3 C语言源码 一、直接插入排序 1.1 什么是插入排序 插入排序是一种简单直观的排序算法&#xff0c;它通过构…

Django视图层探索:GET/POST请求处理、参数传递与响应方式详解

系列文章目录 Django入门全攻略&#xff1a;从零搭建你的第一个Web项目Django ORM入门指南&#xff1a;从概念到实践&#xff0c;掌握模型创建、迁移与视图操作Django ORM实战&#xff1a;模型字段与元选项配置&#xff0c;以及链式过滤与QF查询详解Django ORM深度游&#xff…

LeetCode刷题之HOT100之字母异位词分组

中午没有回宿舍午休&#xff0c;每次回去都没睡着&#xff0c;我想就没有必要回去了。京东买的书今天还没到&#xff0c;提前把题做了好专心做开发任务。 1、题目描述 2、逻辑分析 我看了几分钟&#xff0c;有点理解不了这道题需求是什么。看看题解。看了才理解题目的意思。字…

Java编程常见问题汇总四

系列文章目录 文章目录 系列文章目录前言一、忽略所有异常二、重复包装RuntimeException三、不正确的传播异常四、用日志记录异常五、异常处理不彻底 前言 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。…

设计循环队列---力扣622

1、题目 1.1基础设置与讲解 循环队列&#xff0c;即固定长度的队列&#xff0c;可以想象成一个环形队列 就类似于这种队列&#xff0c;队尾指针后会有一个空位&#xff0c;用于控制判断队列为空还是为满&#xff1b; typedef int MyDataType;typedef struct {MyDataType fron…

弘君资本炒股开户:如何看待股价波动?

在股票商场上股价的动摇无疑是投资者最为关心的话题之一&#xff0c;面临股价的起伏不定投资者往往会感到迷茫和焦虑。关于怎么看待股价动摇&#xff0c;弘君资本下面就为大家详细介绍一下。 股价动摇是股市运行的常态&#xff0c;股市是国民经济的晴雨表&#xff0c;股票价格…

03数据卷及其挂载的命令

数据卷(虚拟目录)操作命令 在容器内部修改文件 docker exec -it nginx bash: 进入Nginx容器内部 docker exec: 进入容器内部,容器内部会模拟一份阉割版的Linux文件系统,只包含镜像运行时所需的环境和配置以及文件-it: 给当前进入的容器创建一个标准输入/输出终端方便我们与容…

浏览器阻止屏幕息屏,js阻止浏览器息屏,Web网页阻止息屏

场景: 比如打开一个浏览器页面(比如大屏),想让它一直显示着,而不是过几分钟不操作就屏幕黑了.(电脑有设置电脑不操作就会多长时间就会息屏睡眠,如果要求每个客户都去操作一下电脑设置一下从不睡眠,这很不友好和现实.而且我也只想客户在大屏的时候才这样,其他页面就正常,按电脑设…

HTTPS缺失?如何轻松解决IP地址访问时的“不安全”警告

一、问题现象 如果访问网站时出现以下任何一种情况&#xff0c;则说明该网站需要立即整改&#xff1a; 1.浏览器地址栏那里出现“不安全”字样&#xff1b; 2.小锁标志被红叉&#xff08;&#xff09;、斜线&#xff08;&#xff3c;&#xff09;等标志为不可用&#xff1b;…

二叉树的链式结构(二叉树)与顺序结构(堆)---数据结构

一、树的概念与结构 1、树的概念 树是一种非线性的数据结构&#xff0c;它是由n&#xff08;n>0&#xff09;个有限结点组成一个具有层次关系的集合。我们常把它叫做树&#xff0c;是因为它看起来像一棵倒挂的树&#xff0c;它的根是朝上的&#xff0c;而叶是朝下的。 下面…

国产操作系统上Vim的详解03--使用Vundle插件管理器来安装和使用插件 _ 统信 _ 麒麟 _ 中科方德

原文链接&#xff1a;国产操作系统上Vim的详解03–使用Vundle插件管理器来安装和使用插件 | 统信 | 麒麟 | 中科方德 Hello&#xff0c;大家好啊&#xff01;今天给大家带来一篇在国产操作系统上使用Vundle插件管理器来安装和使用Vim插件的详解文章。Vundle是Vim的一款强大的插…

【GD32H757Z海棠派使用手册】第十一讲 SPI-SPI NOR FLASH读写实验

11.1 实验内容 通过本实验主要学习以下内容&#xff1a; SPI简介 GD32H7 SPI简介 SPI NOR FLASH——GD25Q128ESIGR简介 使用GD32H7 SPI接口实现对GD25Q128ESIGR的读写操作 11.2 实验原理 11.2.1 SPI简介 SPI&#xff08;Serial Peripheral interface&#xff09;&#…

Oracle和mysql中插入时间字段

例如有id 和 times两个字段 Oracle insert into xxx values|(1,sysdate) mysql insert into xxx values(1,now()) 在 MySQL 中&#xff0c;SYSDATE() 函数也是可用的&#xff0c;它与 NOW() 类似&#xff0c;但略有不同&#xff1a; NOW…

pdf文件怎么合并成一个文件

在现代办公环境中&#xff0c;PDF文件的使用已变得非常普遍。它们具有跨平台、易读性强的特点&#xff0c;因此被广泛应用于各种场合。然而&#xff0c;当需要处理大量的PDF文件时&#xff0c;如何有效地将它们合并成一个文件&#xff0c;成为了一个需要解决的问题。本文将详细…