【Prometheus】自动化效率脚本

定义ip列表文件

cat ip_list.tx
##按照这个格式定义多个ip
192.168.1.1
192.168.1.2 
脚本1 :一键telnet ip列表的9100端口可达性
# cat telnet.sh 
#!/bin/bash# Set the file name
filename="ip_list.txt"# Read the file content into a variable
ip_list=$(cat $filename)# Declare arrays to store successful and failed IPs
successful_ips=()
failed_ips=()# Define the expect script in a variable
expect_script='set timeout 5puts "ip=$env(IP)"spawn telnet $env(IP) 9100expect {"No route to host" { send_user "$env(IP) failed to connect - No route to host\n"; exit 1 }timeout { send_user "$env(IP) failed to connect\n"; exit 1 }"Connected" { send "quit\r"; exit 0 }}expect eof
'# Loop through each IP in the list
for ip in $ip_list
do# Export the IP as an environment variableexport IP="$ip"# Run the expect script and check the exit statusif expect -c "$expect_script" > /dev/null 2>&1then# If telnet succeeds, add the IP to the successful_ips arraysuccessful_ips+=("$ip")else# If telnet fails, add the IP to the failed_ips arrayfailed_ips+=("$ip")fi
done# Print the successful and failed IPs
echo "Successful IPs:"
for ip in "${successful_ips[@]}"; doecho "$ip"
doneecho "Failed IPs:"
for ip in "${failed_ips[@]}"; doecho "$ip"
done
脚本2:一键添加多个ip 并且保证格式可用
# cat add_ips.sh 
#!/bin/bash# Set the file names
ip_filename="ip_list.txt"
config_filename="/data/prometheus/prometheus.yml"# Read the file content into an array
read -a ip_list < $ip_filename# Get the existing targets line
targets_line=$(grep -m 1 -A1 "job_name: 'aws-pro-ec2-node-exporter'" $config_filename | grep "targets:")# Extract the existing IPs
existing_ips=$(echo $targets_line | grep -oP "'[^']+'" | tr -d ',')# Format the new IP addresses for the config file
new_ips=$(printf ", '%s:9100'" "${ip_list[@]}")# Combine the existing IPs with the new IPs
all_ips="$existing_ips$new_ips"# Use sed to append the new IPs to the targets line in the config file
sed -i "/targets:/ s#]#$all_ips]#" $config_filename#docker restart prometheus
脚本3 :一键删除多个ip 并且保证格式可用
# cat del_ips.sh 
#!/bin/bash# 从 ip_list.txt 中读取 IP 列表
ips=$(cat ip_list.txt)# 创建一个临时文件用于存储修改后的 Prometheus 配置
temp_file=$(mktemp)# 逐行处理 Prometheus 配置文件
while IFS= read -r line; domodified_line=$line# 对每个 IP,删除匹配的部分for ip in $ips; domodified_line=$(echo "$modified_line" | sed "s/'$ip:9100', //g" | sed "s/, '$ip:9100'//g" | sed "s/'$ip:9100'//g")done# 清除多余的逗号和空格modified_line=$(echo "$modified_line" | sed "s/, \]/\]/g" | sed "s/\[, /\[/g" | sed "s/\[,/\[/g" | sed "s/,,/,/g")# 清除开头多余的逗号modified_line=$(echo "$modified_line" | sed "s/\[,\+/\[/g")# 将修改后的行写入临时文件echo "$modified_line" >> "$temp_file"
done < prometheus.yml# 进一步清理 targets 列表中的多余逗号
sed -i "s/,,*/,/g" "$temp_file"
sed -i "s/,\]/\]/g" "$temp_file"# 将修改后的配置文件覆盖原始配置文件
mv "$temp_file" prometheus.ymlecho "配置文件已更新。"#docker restart prometheus

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

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

相关文章

英特尔 “AI” 科通:英特尔AI大模型应用前瞻

亲爱的科技探险家、前沿探索者、对未来深具好奇心的您&#xff0c; 身处人工智能引领的时代&#xff0c;我们目睹着行业的革命性变革。技术的创新不仅改变着我们的日常&#xff0c;更重新定义着我们对未来的期许。今天&#xff0c;怀着无限激情和期待&#xff0c;我们邀请您参…

SHH远程管理

4.1SHH远程管理 SSH是一种安全通道协议&#xff0c;主要用来实现字符界面的远程登录&#xff0c;远程复制等功能。 4.1.1配置OpenSSH服务器 在 CentOS 7.3 系统中&#xff0c;OpenSSH 服务器由 openssh、openssh-server 等软件包提供(默认已安装)&#xff0c;并已将 sshd 添…

Java多线程设计模式之保护性暂挂模式

模式简介 多线程编程中&#xff0c;为了提高并发性&#xff0c;往往将一个任务分解为不同的部分。将其交由不同的线程来执行。这些线程间相互协作时&#xff0c;仍然可能会出现一个线程等待另一个线程完成一定的操作&#xff0c;其自身才能继续运行的情形。 保护性暂挂模式&a…

Circle FFT in the Plonky3

传统的STARK系统需要在域中具有平滑阶数的循环群。如此&#xff0c;可以通过采用快速傅里叶变换&#xff08;FFT&#xff09;算法高效的计算多项式的插值点&#xff0c;并在相邻行中加入约束。对于具有阶数为 n n n 单位根的有限域 F p \mathbb{F}_p Fp​&#xff0c;对于很多…

【代码随想录算法训练营第四十天|卡码网46.携带研究材料,416.分割等和子集】

文章目录 卡码网46.携带研究材料二维dp数组一维dp数组&#xff08;滚动数组&#xff09; 416.分割等和子集 卡码网46.携带研究材料 这题是01背包问题。 二维dp数组 dp数组[i][j]前一位表示的是物品的种类&#xff0c;后一位表示的是背包的容量&#xff0c;在物体为i时&#…

Android Room数据库使用介绍

1.简介 Room是Google提供的Android架构组件之一&#xff0c;旨在简化数据库操作。它是SQLite的一个抽象层&#xff0c;提供了更易用和安全的API。 Room的总体架构: 2.Room数据库的基础概念 Entity Entity是Room中的数据表&#xff0c;每个Entity类对应一个SQLite表。 DAO …

研发团队的「技术债」如何进行量化管理?

我共事过的每个团队都会讨论技术债。有些团队知道如何管理它&#xff0c;也有些团队因此崩溃瘫痪&#xff0c;甚至有一家公司因为技术债务没有得到解决而宣告失败。 什么是技术债务&#xff1f; 「债务」这个比喻非常恰当。最早提出「技术债务 Technical Debt」比喻的工程师 W…

Linux(Centos7)OpenSSH漏洞修复,升级最新openssh-9.7p1

OpenSSH更新 一、OpenSSH漏洞二、安装zlib三、安装OpenSSL四、安装OpenSSH 一、OpenSSH漏洞 服务器被扫描出了漏洞需要修复&#xff0c;准备升级为最新openssh服务 1. 使用ssh -v查看本机ssh服务版本号 ssh -V虚拟机为OpenSSH7.4p1&#xff0c;现在准备升级为OpenSSH9.7p1…

Centos7 安装oracle 11.2.0.4

荆轲刺秦王 1. 准备工作 需要下载 Oracle 11g 安装包 2.HostName修改&#xff1a; hostnamectl set-hostname oracle 3. 配置hostname&#xff08;本机IP映射&#xff09;注意&#xff1a;192.168.116.129 需要换乘本地ip vi /etc/hosts 192.168.116.129 oracle # 测试hos…

创新实训2024.06.17日志:大模型微调总结

前段时间其实我们已经部署了大模型&#xff0c;并开放了对外的web接口。不过由于之前某几轮微调实验的大模型在对话时会有异常表现&#xff08;例如响应难以被理解&#xff09;&#xff0c;因此我在项目上线后&#xff0c;监控了数据库里存储的对话记录。确定了最近一段时间部署…

docker部署prometheus

1.拉取镜像 docker pull prom/prometheus2.创建配置文件 cd /root/prometheus touch prometheus.yml touch first_rules.yml3.配置文件内容 prometheus.yml文件内容 # my global config global:scrape_interval: 15s # Set the scrape interval to every 15 seconds. Defau…

Docker的常见问题

1.容器启动失败 检查映像&#xff1a;运行 docker images 确认所需映像存在。检查Dockerfile&#xff1a;验证Dockerfile中的指令无误。查看日志&#xff1a;使用 docker logs <container_id> 查找启动失败的具体原因。资源检查&#xff1a;运行 docker info 或 docker …

基 CanMV 的 C 开发环境搭建

不论是使用 CanMV 提供的基于 C 语言和 FreeRTOS 的应用开发方式开发应用程序或是编译 CanMV 固件&#xff0c;都需要搭建基于 CanMV 的 C 开发环境&#xff0c;用于编译 CanMV 源码。 1. 开发环境搭建说明 CanMV 提供了基于 C 语言和 FreeRTOS 的应用开发…

模拟面试三

1. 你能介绍一下什么是微服务架构&#xff1f; 答案&#xff1a;微服务架构是一种软件开发方法&#xff0c;将一个应用程序拆分成一系列小型、自治、可独立运行的服务&#xff0c;每个服务都专注于完成一个特定的业务功能&#xff0c;并通过轻量级的通信机制进行互联。 2. 你…

【教程】hexo 更换主题后,部署在 Github Page 无 CSS 样式

目录 前言环境hexo 更换主题解决部署到 Github Page 后无 CSS 样式的问题 前言 最近更换了 hexo 的主题后&#xff0c;重新部署到 Github Page 上发现不显示 CSS 样式&#xff0c;但在本地启动时又是正常的效果。此外&#xff0c;检查资源请求&#xff0c;发现多个 .css 文件请…

VO 和 DO

什么是 VO? VO&#xff08;Value Object&#xff09; 值对象&#xff08;Value Object&#xff0c;简称 VO&#xff09; 是一种对象&#xff0c;它主要用于在不同的层次之间传递数据。VO 通常是不可变的&#xff0c;即它的状态一旦被创建&#xff0c;就不会改变。值对象没有…

【软件测试】软件测试入门

软件测试入门 一、什么是软件测试二、软件测试和软件开发的区别三、软件测试在不同类型公司的定位1. 无组织性2. 专职 OR 兼职3. 项目性VS.职能性4.综合型 四、一个优秀的软件测试人员具备的素质1. 技能相关2. 非技能相关 一、什么是软件测试 最常见的理解是&#xff1a;软件测…

【效率提升】倍速插件Global Speed

global speed插件可以控制网页在线视频&#xff0c;能够应用在Edge和Google浏览器中&#xff0c;只需要在插件商店中下载并配置即可。这款插件的配置选项有很多&#xff0c;支持视频倍速&#xff08;最低0.25倍速&#xff0c;最高16倍速&#xff09;&#xff0c;固定标签页&…

【Java开发规范】IDEA 设置 text file encoding 为 UTF-8,且文件的换行符使用 Unix 格式

1. IDEA 设置 text file encoding 为 UTF-8 file -> settings -> editor -> code style -> file encoding Transparent-native-to-asci conversion 要不要勾选&#xff1f;> 不推荐勾选&#xff08;它的作用是用来自动转换ASCII编码&#xff0c;防止文件乱码&am…

Modbus协议转Profibus协议模块接热传感器配置攻略

一、前言 在工业自动化控制领域&#xff0c;Modbus协议和Profibus协议是两种常见的通讯协议&#xff0c;它们在设备之间传输数据起着至关重要的作用。而Modbus协议转Profibus协议模块&#xff08;XD-MDPB100&#xff09;设备&#xff0c;则扮演着连接不同通讯协议的桥梁角色。…