当前位置: 首页 > news >正文

步骤3的自动化版本

步骤2的自动化脚本方式:

采用的是consul-agent + consul-template的方式。即 consul-template负责动态拉取server端的配置,然后consul-agent端动态更新配置上报到server端,最终实现promethes数据动态更新

其实这种方案跟后面的方案5的升级版达到的效果是一样的。只不过方案5没用使用consul-agent 

#!/bin/bash# ====================== 你的配置 ======================
CONSUL_SERVER="192.168.70.16"
HOSTNAME=$(hostname)
LOCAL_IP=$(hostname -I | awk '{print $1}')
# ======================================================set -e# 1. 安装依赖
apt update && apt install -y wget curl unzip# 2. 安装 node_exporter
cd /tmp
wget https://github.com/prometheus/node_exporter/releases/download/v1.8.2/node_exporter-1.8.2.linux_amd64.tar.gz
tar zxf node_exporter-1.8.2.linux_amd64.tar.gz
cp node_exporter-1.8.2.linux_amd64/node_exporter /usr/local/bin/cat > /etc/systemd/system/node_exporter.service <<EOF
[Unit]
Description=node_exporter
[Service]
ExecStart=/usr/local/bin/node_exporter
Restart=always
[Install]
WantedBy=multi-user.target
EOFsystemctl daemon-reload
systemctl enable --now node_exporter# 3. 安装 Consul Agent
wget https://releases.hashicorp.com/consul/1.15.4/consul_1.15.4_linux_amd64.zip
unzip -o consul_1.15.4_linux_amd64.zip
cp consul /usr/local/bin/mkdir -p /etc/consul.d /var/lib/consulcat > /etc/consul.d/consul.hcl <<EOF
data_dir = "/var/lib/consul"
client_addr = "0.0.0.0"
retry_join = ["${CONSUL_SERVER}"]
bind_addr = "${LOCAL_IP}"
node_name = "${HOSTNAME}"
enable_local_script_checks = true
EOFcat > /etc/systemd/system/consul.service <<EOF
[Unit]
Description=Consul Agent
After=network.target
[Service]
ExecStart=/usr/local/bin/consul agent -config-dir=/etc/consul.d
Restart=always
User=root
[Install]
WantedBy=multi-user.target
EOFsystemctl daemon-reload
systemctl enable --now consul# 4. 安装 consul-template(从 KV 拉模板)
wget https://releases.hashicorp.com/consul-template/0.39.0/consul-template_0.39.0_linux_amd64.zip
unzip -o consul-template_0.39.0_linux_amd64.zip
cp consul-template /usr/local/bin/mkdir -p /etc/consul-template# 5. 配置从 KV 拉取模板,生成 agent 服务文件
cat > /etc/consul-template/config.hcl <<EOF
consul {address = "${CONSUL_SERVER}:8500"
}template {# 从 Consul KV 读取模板source      = "kv://config/templates/node_exporter.ctmpl"# 生成到 Consul Agent 目录destination = "/etc/consul.d/node_exporter.json"# 渲染后自动让 agent 加载command     = "consul reload"wait {min = 2smax = 5s}
}
EOFcat > /etc/systemd/system/consul-template.service <<EOF
[Unit]
Description=consul-template
After=network.target consul.service[Service]
ExecStart=/usr/local/bin/consul-template -config=/etc/consul-template/config.hcl
Restart=always
Environment="HOSTNAME=${HOSTNAME}"
Environment="LOCAL_IP=${LOCAL_IP}"
User=root[Install]
WantedBy=multi-user.target
EOFsystemctl daemon-reload
systemctl enable --now consul-templateecho "============================================="
echo "✅ 部署完成!终极架构已启动!"
echo "📌 模板来源:Consul KV"
echo "📌 服务注册:Consul Agent"
echo "📌 修改 KV 模板 → 自动全机更新!"
echo "============================================="

 

http://www.jsqmd.com/news/668404/

相关文章:

  • 手把手配置华为交换机VLAN:为移动IMS专线搭建安全私网(含SBC对接要点)
  • 蓝桥杯单片机CT107D开发板实战:手把手教你搞定第十二届省赛温度控制题(IAP15F2K61S2+Keil5)
  • 科研党福音:Zotero 6.0 内置PDF阅读器+翻译插件,打造一站式文献阅读与笔记系统
  • 从传输门到时序约束:深入解析D锁存器、D触发器及其关键时序参数
  • 昆明考级、比赛靠谱的美术机构推荐:选考级赛事培优班要规避什么问题 - 云南美术头条
  • bootstrap怎么修改模态框(Modal)背景遮罩层的颜色
  • 102-MIC最大信息系数回归预测模型(MATLAB实现)|特征筛选算法|含完整可运行代码
  • JavaScript 中的 setTimeout 是否依赖系统时钟?
  • QQ音乐加密文件解密完全指南:如何轻松将qmc格式转换为通用音频格式
  • 别再只盯着K-Means了!用sklearn的轮廓系数(silhouette_score)帮你选出最佳聚类算法
  • mysql执行SQL查询时结果不一致_检查事务隔离级别设置与幻读
  • 如何通过宝塔面板批量导出网站数据_使用宝塔命令行导出
  • 西门子PLC逻辑赛项备赛全攻略:从单梯到群控的WinCC通讯避坑指南
  • 深入理解 C++ 内存模型与对象底层机制:this 指针的秘密
  • 从频谱泄露到栅栏效应:深入浅出聊聊FFT分析里Fs和N那些‘坑’
  • 避坑指南:PDMS Pipeline Tool螺栓材料计算(E10050-E10087)常见错误分析与模型自检清单
  • Chroma 向量数据库指南
  • 从PLCopen到倍福实践:用TwinCAT3标准功能块(如MC_Power, MC_MoveAbsolute)搭建你的第一条产线伺服程序
  • MQ2烟雾传感器数据不准?可能是你的R0基准没测对!一个电位器引发的‘血案’
  • AGI如何真正理解“因为所以”?:从符号主义到神经因果的7层能力演进图谱
  • Golang如何做零拷贝优化_Golang零拷贝教程【进阶】
  • 别再为上传大文件发愁了!用SpringBoot+阿里云OSS轻松搞定秒传、断点续传与分片
  • 极域电子教室V6.0网络通信安全浅析:从学生端脱控到模拟教师端反控的实践与思考
  • 别再死记硬背欧拉公式了!用Python可视化平面图,5分钟搞懂n-m+r=2
  • 从竞速到花飞:如何根据应用场景选择穿越机机架尺寸与类型
  • 从Actor模型到实战:Skynet轻量级游戏服务器框架的设计哲学与核心机制
  • ISE开发板Flash烧录避坑指南:从bit文件到mcs文件生成全流程
  • SpringBoot+Vue遥感影像共享系统源码+论文
  • PHP怎么实现工厂模式_Factory模式编写指南【指南】
  • ILSpy终极指南:高效自动化处理.NET程序集的完整方案