prometheus--系统监控和报警工具

一、什么是prometheus

Prometheus 是一个开源的监控和报警系统(时间序列数据库)。
它专为监控动态服务和现代化基础设施而设计,具有以下显著特点:
1、主动式采集:通过配置 exporter 或者直接使用内置的采集方式,主动从目标系统获取监控指标数据。
2、灵活的指标定义:支持各种类型的指标,如计数器、仪表盘、直方图等。
3、强大的查询语言:PromQL(Prometheus Query Language)允许用户进行复杂的查询和聚合操作,以便深入分析监控数据。
4、告警机制:可以基于查询结果设置告警规则,当指标达到特定阈值时触发告警。
5、易于集成:能够与多种系统和工具集成,如 Grafana 用于数据可视化。
Prometheus 在云原生环境、微服务架构等领域得到了广泛应用,帮助运维团队有效地监控系统状态,及时发现和解决潜在问题,保障系统的稳定运行。

prometheus架构图:
在这里插入图片描述
组件:

组件作用
Prometheus ServerPrometheus 组件的核心部分,负责实现对监控数据的获取、存储以及查询
Exporters将监控数据采集的端点通过 HTTP 服务暴露给 Prometheus Server
AlertmanagerPrometheus Server 中支持基于 PromQL 创建告警规则,若满足规则则产生告警,告警的后续处理流程由 AlertManager 管理
Pushgateway一个中间件(代理),将内部网络的监控数据主动推送到 Gateway 中,而 Prometheus Server 则以同样 Pull 的方式获取监控数据
Prometheus web UI/Grafana/API clients数据可视化工具
Service Discovery服务发现

二、安装prometheus

我们这里采用二进制源码安装
上传下载的源码包到linux服务器,解压源码包并且修改解压后的压缩包名字prometheus

mkdir /prom
cd /prom
tar xf prometheus-2.43.0.linux-amd64.tar.gz 
mv prometheus-2.43.0.linux-amd64 prometheus

在这里插入图片描述
永久修改PATH变量

echo 'PATH=/prom/prometheus:$PATH'  >>/etc/profile

把prometheus做成一个服务来进行管理,非常方便日后维护和使用

vim /usr/lib/systemd/system/prometheus.service 

在这里插入图片描述
重新加载systemd相关的服务,识别prometheus服务的配置文件

systemctl  daemon-reload

启动prometheus服务,启动后可以通过 使用"ps aux|grep prometheus"或者使用"netstat -anplut|grep prometheus"来查看prometheus是否启动成功

systemctl restart prometheus

设置开机启动

systemctl enable prometheus

在浏览器中输入安装prometheus的服务器的ip地址并且接上端口号(占用的是9090端口号)就可以访问prometheus的web server
在这里插入图片描述
修改/prom/prometheus/prometheus.yml
在这里插入图片描述

三、安装exporter

在整个web集群节点服务器(任何一台linux系统,mysql、web1等)上安装exporter程序
exporter 是Prometheus的客户端的数据采集工具
node-exporter 是专门用来采集节点服务器的通用性能指标(cpu、内存、磁盘、网速等)
使用ansible将node_exporter软件源码包发送给节点服务器

ansible all -m copy  -a 'src=/root/node_exporter-1.4.0-rc.0.linux-amd64.tar.gz dest=/root/'

编写在其他机器上安装node_exporter的脚本

vim install_node_exporter.sh 

#!/bin/bash

tar xf /root/node_exporter-1.4.0-rc.0.linux-amd64.tar.gz  -C /
cd  /
mv node_exporter-1.4.0-rc.0.linux-amd64/ node_exporter
cd /node_exporter/
echo 'PATH=/node_exporter/:$PATH' >>/etc/profile

#生成nodeexporter.service文件
cat >/usr/lib/systemd/system/node_exporter.service  <<EOF
[Unit]
Description=node_exporter
[Service]
ExecStart=/node_exporter/node_exporter --web.listen-address 0.0.0.0:9090 
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF

#让systemd进程识别node_exporter服务
systemctl daemon-reload
#设置开机启动
systemctl  enable node_exporter
#启动node_exporter
systemctl  start node_exporter

在ansible服务器上执行安装node_exporter的脚本

ansible all -m script  -a "/prom/install_node_exporter.sh"
  • shell模块和script模块的区别
    shell模块执行的脚本,需要提前copy到其他的机器上
    script模块不需要提前将脚本传输到其他机器,直接在ansible机器上执行就可以,会自动先推送文件到执行脚本的机器上,执行完后删除脚本

在其他的服务器上查看是否安装node_exporter成功
在这里插入图片描述
在这里插入图片描述

四、添加被监控的服务器

在prometheus服务器上添加抓取数据的配置,添加node节点服务器,将抓取的数据存储到时序数据库里

vim prometheus.yml 

由于.yml文件是通过缩进来表示层级关系,所以在此处添加配置时,一定要注意文本格式,我建议直接在命令行模式使用yy复制后在用p进行复制,再进行数据的修改,这样以免出错
在这里插入图片描述
重启Prometheus服务

service prometheus restart

在浏览器访问prometheus,点击Status模块的Targets
在这里插入图片描述

### 网络字节序与大模式的关系 在网络通信中,数据通常以字节流的形式进行传输。为了确保不同设备之间能够正确解析接收到的数据,TCP/IP 协议规定了一种统一的字节序标准——即 **网络字节序**。网络字节序实际上是一种特定的大Big-Endian)模式[^3]。 #### 大模式的特点 在大模式下,多字节数值中的最高有效字节(Most Significant Byte, MSB)被放置在较低的内存地址或优先传输的位置。这意味着,在网络传输过程中,数值的第一个字节总是其高位字节[^2]。 #### 小模式对比 相比之下,小Little-Endian)模式则将最低有效字节(Least Significant Byte, LSB)放在较低的内存地址或优先传输位置。这种模式常见于某些本地计算机架构中,但在网络传输中并不适用。 #### 网络字节序的具体实现 根据 TCP/IP 协议的规定,网络字节序遵循大模式。因此,在实际应用中,发送方会将数据转换为大格式后再进行传输;而接收方在解析这些数据之前,则可能需要将其从大格式转换回适合本机使用的字节序(可能是小)。常见的函数如 `htonl()` 和 `ntohl()` 可用于完成主机字节序网络字节序之间的相互转换[^1]。 以下是两个简单的 C 语言代码示例: ```c // 主机字节序网络字节序 (假设为主机为 Little-Endian) uint32_t host_to_network(uint32_t value) { return htonl(value); } // 网络字节序转主机字节序 (假设为主机为 Little-Endian) uint32_t network_to_host(uint32_t value) { return ntohl(value); } ``` 通过上述方法可以保证无论两机器使用何种内部字节序,都能正常交换并理解彼此的数据。 综上所述,网络字节序确实采用了大模式来定义数据在网络上的排列次序。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值