prometheus+grafana搭建监控系统

news2024/11/17 21:47:14

1.prometheus服务端安装

1.1下载包

使用wget下载 (也可以直接去官网下载包Download | Prometheus

wget https://github.com/prometheus/prometheus/releases/download/v2.44.0/prometheus-2.44.0.linux-amd64.tar.gz

1.2解压

tar xf prometheus-2.44.0.linux-amd64.tar.gz

#移动到/usr/local/目录,并修改名字。 (移动到/usr/local/目录,使得所有用户都可以访问 Prometheus)

mv prometheus-2.44.0.linux-amd64 /usr/local/prometheus

 1.3修改 Prometheus 配置文件

#进入Prometheus目录
cd /usr/local/prometheus/

#备份配置文件
cp -ar prometheus.yml prometheus.yml-bak

#进入配置文件
vi prometheus.yml


## 最后一行localhost改为本机的ip
 static_configs:
      - targets: ["XXXX:9090"]



1.4 设置开机自启

(两种方式:推荐第一种)

第一种:配置系统启动文件,启动并设置开机自启

#进入这个文件,默认是没有的,直接进入就行
vim /usr/lib/systemd/system/prometheus.service 

#将下面的全部写进去
[Unit]
Description=Prometheus Server
Documentation=https://prometheus.io
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/prometheus/prometheus \
--config.file=/usr/local/prometheus/prometheus.yml \
--storage.tsdb.path=/usr/local/prometheus/data/ \
--storage.tsdb.retention=15d \
--web.enable-lifecycle

ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure 
[Install]
WantedBy=multi-user.target

#启动
systemctl restart prometheus

#设置开机自启
systemctl enable prometheus

#查看端口是否启动9090
netstat -anput | grep 9090

 第二种:进入解压目录,挂后台执行./prometheus

#进入解压目录
cd /usr/local/prometheus

#挂后台执行./prometheus
./prometheus &

#查看端口是否启动
netstat -anput | grep 9090

也是可以启动的,但是不好的是,不能设置开机自启,如果想要开机自启,还需要手动写一个启动服务器去执行他的命令或者周期性计划任务,所以不推荐使用方法二;推荐使用第一种。

1.5页面访问

浏览器访问:机器ip:9090 ,访问到 Prometheus 的 Web UI 界面。点击页面的 Status -> Targets,如看到 Target 状态都为 UP,说明 Prometheus 能正常采集到数据

http://自己ip:9090/metrics ,可以看到 Prometheus 采集到自己的指标数据 

查看折线图

2.客户端部署 Exporters

 2.1下载

直接用wget下载 (也可以去官网下载包,Download | Prometheus)

wget https://github.com/prometheus/node_exporter/releases/download/v1.6.0/node_exporter-1.6.0.linux-amd64.tar.gz

2.2解压安装包

tar xf node_exporter-1.6.0.linux-amd64.tar.gz

#移动到/usr/local/目录,并修改名字(名字可自行修改,只要记住这个文件夹是干什么的就行)
mv node_exporter-1.6.0.linux-amd64 /usr/local/prometheus_node

 2.3设置开机自启

(两种方式:推荐第一种)

第一种:配置系统启动文件,启动并设置开机自启

#进入这个文件,默认是没有的,直接进入就行
vim /usr/lib/systemd/system/node_exporter.service

#将下面的全部写进去
[Unit]
Description=node_exporter
Documentation=https://prometheus.io/
After=network.target
 
[Service]
Type=simple
ExecStart=/usr/local/prometheus_node/node_exporter \
--collector.ntp \
--collector.mountstats \
--collector.systemd \
--collector.tcpstat
 
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
 
[Install]
WantedBy=multi-user.target
#启动
systemctl restart node_exporter

#设置开机自启
systemctl enable node_exporter

#查看端口是否启动9100
netstat -anput | grep 9100

第二种:进入解压目录,挂后台执行./node_exporter

#进入解压目录
cd /usr/local/prometheus_node

#挂后台执行./prometheus
./node_exporter &

#查看端口是否启动
netstat -anput | grep 9100

 页面访问,ip:port 

3.监控机器配置

服务端机器添加徐娅监控的目标机器

3.1添加单个 客户端

#进入prometheus的配置文件中
vim /usr/local/prometheus/prometheus.yml

#添加以下几行,到最后(格式和上面的服务端一样,因为yml文件格式要求严格,所以必须一样,否则启动会报错)
  - job_name: 'test_job'
    static_configs:
      - targets: ['XXXX:9100']

3.2添加多个 客户端

方式1:

  - job_name: "test1"
    static_configs:
      - targets: ["xx1:9100"]
  - job_name: "test2"
    static_configs:
      - targets: ["xx2:9100"]

方式2:

  - job_name: "test"
    static_configs:
      - targets: 
        - xx1:9100
        - xx2:9100

方式3:

  - job_name: "test"
    static_configs:
      - targets: ["xx1:9100"]
      - targets: ["xx2:9100"]

 重启服务端

systemctl restart prometheus

 刷新页面,按照步骤1.5访问。test_job就是目标机器数据。

4.安装Grafana

官网下载地址:Download Grafana | Grafana Labs

4.1下载

在安装prometheus的服务器上下载grafana

#下载安装
sudo yum install -y https://dl.grafana.com/enterprise/release/grafana-enterprise-11.0.0-1.x86_64.rpm

#启动Grafana服务
sudo systemctl start grafana-server


#设置开机启动
sudo systemctl enable grafana-server

#检查Grafana服务的状态,确保它正在运行
sudo systemctl status grafana-server

 

阿里云配置3000端口

4.2访问页面

ip:3000访问页面。初始用户名和密码都是admin

4.3 配置数据源

把 Prometheus 服务器收集的数据做为一个数据源添加到 grafana,让 grafana 可以得到 Prometheus 的数据

 

 选择你想监控的指标

4.4导入grafana监控面板

4.3是自定义的监控模块(监控的服务端的1、5、15分钟的平均负载),一个一个添加比较麻烦,我们可以去找一些模板;

GitHub上面很多人开发了dashboards模板,官方社区上也有很多开源的dashboards模板,我们只需要把模板的Copy ID 或者 Download JSON文件导入到grafana即可,参考官网免费的dashboards模板。

进入官网,往下拉,可以看到选择这几个,Data Source 选择Prometheus,然后搜索主机监控,或者自己定义,搜索,linux什么的都可以,根据自己的需求选择;

找到喜欢的模板之后点进去,可以看到右边有Copy ID 和 Download JSON,自行选择就行;这里我选择复制id,json需要下载;

复制好id之后,打开在 grafana 页面中,输入面板 ID 号或者上传 JSON 文件,点击 Load,即可导入监控面板

配置好的界面

5.配置检测

 监测 Prometheus配置文件是否正确

#进入prometheus目录
cd /usr/local/prometheus/

#执行promtool,监测配置是否正确
./promtool check config prometheus.yml

正常状态返回:

Checking prometheus.yml
 SUCCESS: prometheus.yml is valid prometheus config file syntax


失败状态返回:

Checking prometheus.yml
  FAILED: parsing YAML file prometheus.yml: "XX:80" is not a valid hostname

监测服务ip添加后缀

 - job_name: "test_job"
    metrics_path: /test/demo/
    static_configs:
      - targets: ['XX:9999']

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

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

相关文章

Flutter ffi Failed to lookup symbol

iOS release版本,解决方式参考官方文档:在 iOS 中使用 dart:ffi 调用本地代码 如果debug版本也报这个错误,很可能是有多个.c文件,编译的时候没带上! 假设你的ffi模块名字是 c_lib 对于Android端,需要修改…

03-Shell编程之循环语句与函数

目录 3.1 for循环语句 3.1.1for语句的结构 3.1.2 for语句应用实例 3.2 使用whlie循环语句 1.打印数字1到5 3.3 使用until循环语句 3.3.1until的实例 1.打印数字1到5(使用until的逆向逻辑) 2.等待用户输入特定内容 3.4 函数 3.4.1Shell函数的基…

你还在手动操作仓库?这款 CLI 工具让你效率飙升300%!

前言 作为一名开发者,我经常会在 GitHub 和 Gitee 上 fork 各种项目。时间一长,这些仓库就会堆积如山,变成了“垃圾仓库”。每次打开代码托管平台,看到那些不再需要的仓库,我的强迫症就会发作。手动一个一个删除这些仓…

仿微信图片查看器`WPF`实现`ListBox` 鼠标滑动批量选中与反选效果

看到微信中,上传图片时的图片查看功能可以通过手指长按并滑动实现多选,于是为解析实现思路,也通过WPF 使用ListBox 实现了一版案例。 参考效果 微信效果如下,支持图片单选和鼠标长按滑动实现批量操作。 WPF模仿效果&#xff1a…

【代码仓库提交大文件,用Git LFS!】

开始前 Git LFS:请注意,你的远程仓库需要支持Git LFS。GitHub、GitLab和Bitbucket都支持Git LFS,但可能需要额外的配置或开启特定的支持选项。 介绍 Git LFS (Large File Storage) 是一个 Git 扩展,用于处理和存储大文件。通常…

【ai】tx2 nx: jetson Triton Inference Server 运行YOLOv4

【ai】tx2 nx: jetson Triton Inference Server 部署YOLOv4 部署了服务端。需要对其测试【ai】tx2-nx 查看 jetpack 版本信息及对应的tritonserver【ai】tx2-nx:配置tritonserver2.17.0-jetpack4.6 环境并运行例子C++ Triton YoloV4 client 是基于 r21.05的 服务端的tensort 的…

离散数学-再次复习

1.先找到e,这里是0 2.对每个元素求它的阶 3.根据拉格朗日定理,子群的阶必须是群 G 的阶的因数。群 G 的阶为 10,它的因数有 1、2、5 和 10。这意味着子群的阶可能是 1、2、5 或者 10。 4.相同阶的就放为一组,也就是它的一个子群…

Java面试复习思路

Java面试复习思路路线一: 准备Java面试时,可以从以下几个方面着手,以确保你能够自信且全面地展示你的技能和知识: 基础与核心概念: 确保你对Java基础有深入理解,包括但不限于:面向对象编程原则…

自从用了这个 69k star 的项目,前端小姐姐再也不催我了

一般在开发前后端分离的项目时,双方会定义好前后端交互的 http 接口,根据接口文档各自进行开发。这样并行开发互不耽误,开发好后做个联调就可以提测了。 不过最近也不知道怎么回事,公司新来的前端小姐姐总是在刚开始开发的时候就…

项目中eventbus和rabbitmq配置后,不起作用

如下:配置了baseService层和SupplyDemand层得RabbitMQ和EventBus 但是在执行订阅事件时,发送得消息在base项目中没有执行,后来发现是虚拟机使用得不是一个,即上图中得EventBus下得VirtualHost,修改成一直就可以了

Java-内部类成员内部类

类的五大成员 属性 方法 构造方法 代码块 内部类 什么是内部类? 在一个类的里面,再定义一个类。 举例:在A类的内部定义B类,B类就被称为内部类 内部类表示的事物是外部类的一部分 内部类单独出现没有任何意义 内部类的访问特点 1.…

lsopsed 安装与工程创建

Xposed与lsposed异同点 Xposed支持到安卓7.1 Xposed会将激活的模块注入到每个进程,需要自已在模块内根据包名过滤 Xposed激活模块后重启系统生效 lsposed支持安卓8.1-14 1sposed激活模块后需要勾选要作用于哪些app lsposed激活模块后重启对应app生效 lsposed模块…

Redis(超详细)

Redis Redis概念: Redis是开源的,遵循BSD的,基于内存数据存储,被用于作为数据库、缓存机制、消息中间件; Redis的特点: 1.高性能key/valu内存xing数据库; 2.支持丰富的数据类型 3.支持持久化&am…

Information security in DLMS/COSEM(Green-Book)—认证机制

Information security in DLMS/COSEM 9.2.1 概述9.2.2 DLMS/COSEM安全概念9.2.2.1 概述 9.2.2.1 概述9.2.2.2 身份识别和认证9.2.2.2.1 身份识别9.2.2.2.2 认证机制9.2.2.2.2.1 概述 无安全认证(Lowest Level Security):低级别安全认证&#…

python中数据的作用域

一、命名空间 在 Python 中,命名空间是一个系统,它用于确保名字的唯一性,并防止命名冲突。命名空间是一个存储变量名称(或者更广泛地说,标识符)与对象之间映射的抽象概念。每个变量名你在程序中创建&#x…

Redis-数据类型-zset

文章目录 1、查看redis是否启动2、通过客户端连接redis3、切换到db4数据库4、将一个或多个member元素及其score值加入到有序集key当中5、升序返回有序集key6、升序返回有序集key,让分数一起和值返回的结果集7、降序返回有序集key,让分数一起和值返回到结…

Android上编译和使用curl

1 概述 Android系统编译的时候默认是没有带curl工具的,但是在aosp源码中,却是有curl的源码包含。所以只需要编译curl,然后将其push到Android设备中,就可以使用curl命令了。 2 编译curl 这里编译curl是在整机代码环境下进行编译…

机器人控制系列教程之雅可比矩阵和奇异性

简介 在机器人学和控制理论中,雅可比矩阵扮演着至关重要的角色。它是一个描述机器人末端执行器速度与关节速度之间关系的数学工具。通过雅可比矩阵,我们可以更好地理解和控制机器人的运动,特别是在执行精确操作时。雅可比矩阵的计算通常基于…

python turtle 画帕恰狗

先上个图给大家看看 代码 ##作者V w1933423 import turtle turtle.bgcolor("#ece8dc") turtle.setup(600,900) p turtle.Pen() p.pensize(14) p.speed(5) p.color("black")p.penup() p.goto(-54,-44) p.pendown() p.goto(-37,-39) p.goto(-27,-24) p.go…

swp添加池子addLiquidity失败

案发现场 首次添加交易对、一直失败、但是也没提示具体的原因。到这一步就没了、由下图可知、也没看到log、由此可见第一步就失败了。 解决方案 工厂KywFactory 添加如下 bytes32 public constant INIT_CODE_PAIR_HASH keccak256(abi.encodePacked(type(KywPair).creatio…