监控神器-普罗米修斯Prometheus的安装

2023-11-16

   最近看了些AIOPS的资料,对于里面提及的一个普罗米修斯Prometheus起了兴趣,首先是联想到异形,哈哈。去看了一下,普罗米修斯还真是厉害,而且还是开源的,真是搬砖党的福音。

功能:

  • 在业务层用作埋点系统

Prometheus支持多种语言(Go,java,python,ruby官方提供客户端,其他语言有第三方开源客户端)。我们可以通过客户端方面的对核心业务进行埋点。如下单流程、添加购物车流程。

  • 在应用层用作应用监控系统

一些主流应用可以通过官方或第三方的导出器,来对这些应用做核心指标的收集。如redis,mysql

  • 在系统层用作系统监控
    除了常用软件, prometheus也有相关系统层和网络层exporter,用以监控服务器或网络。
  • 集成其他的监控
    prometheus还可以通过各种exporte,集成其他的监控系统,收集监控数据,如AWS CloudWatch,JMX,Pingdom等等

Prometheus架构:

prometheus是一个用Go编写的时序数据库,可以支持多种语言客户端,架构如下:

下面说一下这个开源软件的安装实践过程,目标如下:

  1. 安装go 语言环境
  2. 在监控服务器上安装prometheus
  3. 在被监控环境上安装export
  4. 安装grafana

具体安装过程如下:

步骤1:安装go 语言环境

由于Prometheus 是用golang开发的,所以首先安装一个go环境,Go语言是跨平台,支持Windows、Linux、Mac OS X等系统,还提供有源码,可编译安装

Windows :go1.8.3.windows-amd64.msi (78MB)

Linux :go1.8.3.linux-amd64.tar.gz (86MB)

Mac :go1.8.3.darwin-amd64.tar.gz (85MB)   (推荐)

Source: go1.8.3.src.tar.gz (15MB)

由于国内需要翻墙:所以我是通过某些国内资源下载的:https://download.csdn.net/download/cuipuke/10048498

下载后,上传到要部署的服务器(部署服务器和外网隔离,所以转了一道)。解压缩然后修改配置文件

[root@archive soft]# tar -C /usr/local -xzf go1.8.3.linux-amd64.tar.gz

[root@archive soft]# vim  /etc/profile

在文件的最后添加如下内容:

export PATH=$PATH:/usr/local/go/bin

保存退出后,接着让配置文件立刻生效:

[root@archive aiops]# source  /etc/profile

验证一下是否成功,用go version 来验证

[root@archive aiops]# go  version

go version go1.8.3 linux/amd64

步骤2:在监控服务器上安装prometheus

开始安装prometheus,首先先去官网下载对应系统的版本:https://prometheus.io/download/,如下图:

 

下载后上传到部署的服务器,在服务上执行如下命令解压(root用户,解压到 /usr/local):

tar  -vxf  prometheus-2.3.2.linux-amd64.tar.gz  -C /usr/local/

为了以后进入目录方便,做了一个软连接:

ln  -sv  /usr/local/prometheus-2.3.2.linux-amd64/  /usr/local/Prometheus

接着要配置一下监控的配置文件:prometheus.yml

配置完成后,只需要运行起来这个软件:

[root@archive prometheus]# ./prometheus

通过如下URL可以打开prometheus的自带监控界面: IP:9090,点击targets 跳转到监控目标,这里展现了多个监控对象。红框的表示部署的prometheus

说明:上图中117 显示蓝色是因为,117已经安装了export,其他未安装的显示为红色。

步骤3:在系统层用作系统监控exporter

以在159这台主机为例,安装exporter ,这台linux环境是centos,因此用的监控export是node_exporter-0.16.0.linux-amd64.tar.gz  ,首先在官网下载这个文件,然后上传到被监控的主机(作为部署服务的主机上也需要安装 export),因此下载并部署后,执行如下命令:

tar xvf node_exporter-0.16.0.linux-amd64.tar.gz -C /usr/local/

nohup /usr/local/node_exporter-0.16.0.linux-amd64/node_exporter &

执行后,我们回到prometheus查看监控目标,可以看到159主机也显示为蓝色了。

启动后,可以看到159主机已经变成蓝色,正常up 状态。其他几台116,117,118 主机也通过先安装go环境,再安装export的方式,进行监控起来。

         接下来说一下oracle主机115的监控,Oracle的监控,需要用到第三方写的export。prometheus是开源软件提供了多种语言支持,因此有很多第三方的exporter实现,https://prometheus.io/docs/instrumenting/exporters/ 官网这里有介绍一些第三方的链接:

 

通过这个可以找oracle的第三方exporter,这是一个git工程https://github.com/iamseth/oracledb_exporter

 

这里面,找到

         通过releases找到适合自己的版本,我直接用的是二进制文件,图中执行这里标红色,参数语法有问题,具体应该如下:

        ./oracledb_exporter.linux-amd64 -log.level error -web.listen-address IP:9161

下面看一下具体情况:

上传下面文件到部署的服务器(需要有安装oracle客户端,这样才能连的上数据库,这里因为已经安装了oracle客户端,略了客户端安装)

 [oracle@localhost soft]$ ls  -ltr

总用量 93296

-rw-r--r-- 1 oracle dba 90029041 9月   5 13:57 go1.8.3.linux-amd64.tar.gz

-rwxr-xr-x 1 oracle dba  5502288 9月   5 13:57 oracledb_exporter.linux-amd64

1、首先安装go 环境,与上面相同,这里略过

2、接着将二进制文件运行起来,步骤如下:

修改执行权限

[root@localhost soft]# chmod +x  oracledb_exporter.linux-amd64

再设置执行的环境变量,命令行直接执行如下命令export:

export DATA_SOURCE_NAME=用户名/密码@ 数据库服务名

启动服务

./oracledb_exporter.linux-amd64 -log.level error -web.listen-address IP:9161

 

步骤4:给prometheus换一个面板

 

下面给监控换一个dashboard,这里用的是grafana,下载地址https://grafana.com/grafana/download

 

如果部署的服务器可以联网可以直接执行下面命令:

wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-5.2.3-1.x86_64.rpm 
sudo yum localinstall grafana-5.2.3-1.x86_64.rpm 

如果不能,只能先下载再部署。rpm包的安装也很简单,执行如下命令

[root@archive soft]# rpm  -i  grafana-5.2.3-1.x86_64.rpm

接着把grafana加入到系统服务,将服务启动

[root@archive soft]# sudo /sbin/chkconfig --add grafana-server

[root@archive soft]#  sudo service grafana-server start

Starting Grafana Server: ...

启动后,打开如下URL,端口采用默认的3000,http://10.1.4.159:3000/

输入默认的admin/admin

进去后会要求修改密码,然后点击add datasource,选中 Prometheus 2.0 Stats后,就可以呈现如下的监控面板了:

有同事说比较丑。好吧,美丑自在人心,哈哈。

 

 

 

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

监控神器-普罗米修斯Prometheus的安装 的相关文章

  • 如何从多个 python-flask 子进程收集普罗米修斯指标?

    我有 main 函数 它生成两个单独的子进程 这两个子流程共享指标 如何共享两个流程的指标并保持更新 这是我的片段 以供更多理解 from multiprocessing import Process import prometheus c
  • 用CHAT如何写大学生会计综合模拟实训报告

    CHAT回复 标题 大学生会计综合模拟实训报告 一 前言 随着信息化时代的发展 现代会计工作不再只依赖手动运算和记录 而是更加倚重电脑软件系统的配合运用 因此 对我们大学生来说 把握会计理论知识的同时 积极掌握相关的实践应用技能变得非常重要
  • 扬帆证券:产业化破题在即 人形机器人超预期演进

    大模型助力下的拐点 特斯拉A股产业链上 两笔重磅出资几乎一起现身 总规划超百亿元 1月4日 拓普集团公告 与宁波经济技能开发区办理委员会签署了 机器人电驱系统研发生产基地项目出资协议书 公司拟出资50亿元 建设机器人核心部件生产基地 此次出
  • 扬帆证券:突发利好!外资重大转变,A股收到多份喜报

    A股财报季 利好音讯密集传来 1月16日晚间 A股多家上市公司披露了成绩预告 其间成绩预增 扭亏等利好公告数量占比超80 其间 普瑞眼科公告 估计2023年净赢利同比添加高达1163 98 1285 51 别的 多家上市公司公告称 估计20
  • 渗透测试常用工具汇总_渗透测试实战

    1 Wireshark Wireshark 前称Ethereal 是一个网络分包分析软件 是世界上使用最多的网络协议分析器 Wireshark 兼容所有主要的操作系统 如 Windows Linux macOS 和 Solaris kali
  • AI在保护环境、应对气候变化中的作用

    对于AI生命周期数据领域的全球领导者而言 暂时搁置我们惯常的AI见解和AI生命周期数据内容产出 来认识诸如世界地球日这样的自然环境类活动日 似乎是个奇怪的事情 我们想要知道 数据是否真的会影响我们的地球环境 简而言之 是 确实如此 但作为一
  • CorelDRAW2024官方中文版重磅发布更新

    35年专注于矢量设计始于1988年并不断推陈出新 致力为全球设计工作者提供更高效的设计工具 CorelDRAW 滋养并见证了一代设计师的成长 在最短的时间内交付作品 CorelDRAW的智能高效会让你一见钟情 CorelDRAW 全称 Co
  • 使用企业订货软件的担忧与考虑|网上APP订货系统

    使用企业订货软件的担忧与考虑 网上APP订货系统 网上订货系统担心出现的问题 1 如果在订货系统中定错 多 货物了该怎么办 其实这也是很多人在网购或者是现实中经常会犯的一个错误 但是网上订货平台为大家提供了很多的解决方案 其中对于订单的修改
  • ESM10A 消除对单独 PLC 的需求

    ESM10A 消除对单独 PLC 的需求 ESM10A 可以消除对单独 PLC 的需求 该程序是在 PC 上开发的 然后使用免费提供的简单易用的 EzSQ 软件下载到逆变器 似乎这些改进还不够 日立还在 SJ700 中添加了其他新功能 例如
  • 使用 Prometheus 监控 Spring Boot 缓存指标

    我正在尝试使用 prometheus 来监控 spring boot 的一些缓存指标 缓存是用以下命令创建的 Cacheable我的配置如下 management endpoints web exposure include metrics
  • 带有正则表达式的标签-普罗米修斯

    我正在尝试使用正则表达式添加新标签 名称实例是pr na01 na02 A我试图只得到pr na01 所以我这样做了 source labels meta ec2 tag Name regex target label test repla
  • 使用 jmxagent 将 Spark Worker/Executor 指标导出到 Prometheus

    我已按照说明进行操作here https argus sec com monitoring spark prometheus 启用指标导出到 Prometheus for Spark 为了不仅可以从作业中导出指标 还可以从主控器和工作器中导
  • 普罗米修斯时间序列在没有更新的情况下持续多长时间

    如果我向 Prometheus 发送一个仪表 则有效负载具有时间戳和如下值 指标名称 标签 值 2 0 16239938546837 如果我在普罗米修斯上查询它 我可以看到一条连续的线 如果不发送相同指标的有效负载 线路就会停止 几分钟后发
  • 如何在多地点场景下配置Prometheus?

    我喜欢使用 Prometheus 进行监控和警报 到目前为止 我的所有目标 节点和容器 都与监控服务器位于同一网络上 但现在我面临一个场景 我们将应用程序堆栈 作为一堆 Docker 容器 部署到网络中的多台客户端计算机 几乎所有客户端网络
  • 无法在 Spring Boot 2(版本 2.0.0.M7)中包含 Prometheus 指标

    无法在 Spring Boot 2 版本 2 0 0 M7 项目中包含 Prometheus 指标 根据千分尺文档 https micrometer io docs ref spring 2 0 prometheus added sprin
  • PromQL if then 语句等效

    我有一个执行计数的简单 PromQL 查询 sum up container name my container environment name env 这是 Grafana 仪表板的一部分 允许从下拉菜单中选择 env 我想根据环境执行
  • 使用 Puppet 配置远程规则集

    我正在尝试使普罗米修斯自动化node exporter和我的普罗米修斯服务器 为了node exporter我已经编写了一个模块来安装所有需要的软件包 设置 ipaddress基于facter还有更多 现在我想确保收集到的信息 hostna
  • Docker容器CPU使用率监控

    根据 docker 的文档 我们可以通过以下方式获取 docker 容器的 CPU 使用率码头工人统计命令 CPU 列将给出容器正在使用的主机 CPU 的百分比 假设我限制容器使用 50 的主机单个 CPU 我可以通过 cpus 0 5 选
  • prometheus 节点实例列表

    是否可以使用 prometheus 获取节点实例列表 我有一个节点导出器 但我没有看到这样的指标 我们应该添加一个新的运算符吗 您可以使用kube 状态指标 https github com kubernetes kube state me
  • 从 celery 工作人员到普罗米修斯的自定义指标

    我有一些 celery 工作人员在 kubernetes 下的容器中运行 它们不会由 celery 自动缩放 并且每个都在单个进程中运行 即没有多处理 我想从他们那里获取一堆不同的指标到普罗米修斯中 我研究过 celery promethe

随机推荐

  • 大厂常见笔试题 滑动窗口内数的和

    大厂常见笔试题 我以为出一个很难的题 结果出了一个基础题 给你一个大小为n的整型数组和一个大小为k的滑动窗口 将滑动窗口从头移到尾 输出从开始到结束每一个时刻滑动窗口内的数的和 样例 对于数组 1 2 7 8 5 长度为n 滑动窗口大小k
  • TCP/IP编程之SO_REUSEADDR和SO_REUSEPORT套接字选项

    基本概念 SO REUSEADDR套接字选项能起到以下4个不同的功用 1 SO REUSEADDR允许启动一个监听服务器并捆绑众所周知端口 即使以前建立的该端口用作它们的本地端口的连接仍存在 这个条件通常是这样碰到的 a 启动一个监听服务器
  • 滤波电容的选择

    滤波电容的选择 理论部分 参考案例 一 参考案例 二 其他案例 理论部分 滤波电容主要看容值和耐压值 电容尺寸 容值x耐压值 电容价格 容值x耐压值 电解和钽电容耐压值要x2倍使用 陶瓷电容至少x1 5倍使用 电容选择的逻辑是频率越高 电容
  • 编译Linux内核的一些报错

    内核版本3 18 6 编译目标架构为x86 64 硬件实际架构为x86 64 1 error code model kernel does not support PIC mode 修改 kernel path arch x86 Makef
  • 微信小程序-获取用户手机号码

    1 在获取手机号码之前 要先进行登陆 使用wx login进行登录 登录成功会返回一个code 将code传给后台 获取登录密钥session key等信息 将这些信息存入data 2 使用type getPhoneNumber 的butt
  • 快速fcm matlab,Matlab中的FCM算法代码及中文详解

    Matlab中的FCM算法代码及中文详解 转自 http xiaozu renren com xiaozu 106512 336681453 function center U obj fcn FCMClust data cluster n
  • 【日积月累】后端刷题日志

    刷题日志 说说对Java的理解 JAVA中抽象类和接口之间的区别 Java中的泛型 和equals 的区别 八种基本数据类型与他们的包装类 在一个静态方法内调用一个非静态成员为什么是非法的 静态方法与实例方法有何不同 重载与重写 深拷贝浅拷
  • Sqli-labs 博客目录

    之前学习了一遍 sqli labs 这是巩固复习一遍 代码全部手敲 加深印象 Sqli labs 博客目录 Sqli labs Less01 04 基于错误的sql注入 GET Sqli labs Less05 06 报错型sql盲注 GE
  • 第12章 K8s进阶篇-细粒度权限控制

    12 1 什么是RBAC 负责k8s整个集群控制的 不同人员权限的管控 开发 测试 管理员等 12 2 RBAC配置解析 12 3 RBAC常用配置示例 参考官方文档 使用 RBAC 鉴权 Kubernetes 正常是通过yaml文件创建
  • 替代空格

    include
  • host文件的工作原理及应用

    host文件的工作原理及应用 Hosts文件是一个用于存储计算机网络中节点信息的文件 它可以将主机名映射到相应的IP地址 实现DNS的功能 它可以由计算机的用户进行控制 一 Hosts文件基本介绍 Hosts文件的存储位置在不同的操作系统中
  • java 16进制与字符串互相转

    字符串转换成为16进制 无需Unicode编码 param str return public static String str2HexStr String str char chars 0123456789ABCDEF toCharAr
  • 各种字符串Hash函数比较

    转自 beyond the void 常用的字符串Hash函数还有ELFHash APHash等等 都是十分简单有效的方法 这些函数使用位运算使得每一个字符都对最后的函数值产生影响 另外还有以MD5和SHA1为代表的杂凑函数 这些函数几乎不
  • get和post详解

    Get和post是表单提交数据的两种基本方式 get请求数据通过域名后缀url传送 用户可见 不安全 post请求数据通过在请求报文正文里传输 相对比较安全 get是通过url传递表单值 post通过url看不到表单域的值 get传递的数据
  • OceanBase 4.1解读:我们想给用户一个开箱即用的OceanBase部署运维工具

    欢迎访问 OceanBase 官网获取更多信息 https www oceanbase com 关于作者 肖磊 OceanBase 产品专家 负责 OceanBase 运维管控体系产品规划与设计 包括安装部署工具 OBD OAT 运维管控平
  • 小程序领取微信卡券

    小程序领取微信卡券 获取 access token api ticket singuare等完整版 转载自 感谢这位作者 https www cnblogs com w53064 p 9771232 html 返回主页 啊傑Plus 博客园
  • Java实现,手写二叉树

    一 基本概念 二叉树 每个节点最多有两个子树的结构 满二叉树 除了最后一层没有任何节点外 每一层的所有节点都有两个子节点的二叉树 完全二叉树 结构与满二叉树类似 不同点在于最后一层可以不满 但最后一层的节点必须连续集中再最左边 二叉搜索树
  • Redis高级的相关问题总结

    1 rdb和aof有什么区别 你们在工作中如何使用redis的持久化策略 1 rdb定时对整个内存做快照 aof记录每一次执行的命令 2 rdb两次备份之间会丢失数据 aof取决于刷盘策略 相对比较完整 3 rdb宕机恢复速度快 aof恢复
  • XSL-FO Blocks(块)

    XSL FO 的输出位于块区域中 XSL FO 页面 流以及块 内容 块 会 流 入 页面 中 然后输出到媒介 XSL FO 输出通常被嵌套在
  • 监控神器-普罗米修斯Prometheus的安装

    最近看了些AIOPS的资料 对于里面提及的一个普罗米修斯Prometheus起了兴趣 首先是联想到异形 哈哈 去看了一下 普罗米修斯还真是厉害 而且还是开源的 真是搬砖党的福音 功能 在业务层用作埋点系统 Prometheus支持多种语言