Prometheus自动化监控-自动监控上百台服务器

2023-11-26 08:20

本文主要是介绍Prometheus自动化监控-自动监控上百台服务器,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

如何自动化监控几百台服务器思路

老办法:1.要在这100台服务器安装node_exporter。2.在prometheus配置增加这100台机器配置。自动化运维:1.ansible批量部署node_exporter2.基于consul的服务发现3.将node_exporter所在及其的IP和端口注册到consul里。4.prometheus从consul里获取所有IP和端口自动加入监控。

这几百台服务器中有:

Web服务器、DB服务器、负载均衡服务器、消息队列服务器。

实际运维过程中也是按照分组管理

"id": "web1","name": "webserver组","address": "xxxx"
"id": "web2","name": "webserver组","address": "xxxx"
"id": "web3","name": "webserver组","address": "xxxx""id": "db1","name": "dbserver组","address": "xxxx"
"id": "db2","name": "dbserver组","address": "xxxx"
"id": "db3","name": "dbserver组","address": "xxxx"

实现自动化监控几百台服务器

prometheus服务上安装Ansible

安装epel源
yum install epel-release -y安装Ansible
yum install ansible -y

把安装了exporter的服务器的node_exporter文件夹都清空:

在这里插入图片描述

在这里插入图片描述

删掉之后可以看到prometheus中的target中的Endpoint都挂掉了

在这里插入图片描述
删掉prometheus配置文件中的配置,只保留consul的配置

可以备份以下,当做以后学习用:

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Ansible + playbook完成任务

在这里插入图片描述

在这里插入图片描述

[Unit]
Description=node_exporter[Service]
ExecStart=/usr/local/node_exporter/node_exporter
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure[Install]
WantedBy=multi-user.target

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
有了这四个文件后,就可以编写playbook了

consul-register.sh
hosts
node_exporter-1.2.0.linux-amd64.tar.gz
node_exporter.service
playbook.yaml

各文件的内容

consul-register.sh

#!/bin/bash
service_name=$1
instance_id=$2
ip=$3
port=$4curl -X PUT -d '{"id": "'"$instance_id"'","name": "'"$service_name"'","address": "'"$ip"'","port": '"$port"',"tags": ["'"$service_name"'"],"checks": [{"http": "http://'"$ip"':'"$port"'","interval": "5s"}]}' http://192.168.220.103:8500/v1/agent/service/register

hosts

[webservers]
192.168.220.102 name=web1[dbservers]
192.168.220.103 name=db1

node_exporter.service

[Unit]
Description=node_exporter[Service]
ExecStart=/usr/local/node_exporter/node_exporter
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure[Install]
WantedBy=multi-user.target

playbook.yaml

- hosts: webserversgather_facts: novars:port: 9100tasks:- name: 推送二进制文件unarchive: src=node_exporter-1.2.0.linux-amd64.tar.gz dest=/usr/local- name: 重命名shell: |cd /usr/localif [ ! -d node_exporter ];thenmv node_exporter-1.2.0.linux-amd64 node_exporterfi#- name: 推送配置文件#  copy: src=config.yml dest=/usr/local/node_exporter- name: 拷贝systemd文件copy: src=node_exporter.service dest=/usr/lib/systemd/system- name: 启动服务systemd: name=node_exporter state=started enabled=yes daemon_reload=yes- name: 推送注册脚本copy: src=consul-register.sh dest=/usr/local/bin/- name: 注册当前节点   # 服务名 实例名 IP 端口 shell: /bin/bash /usr/local/bin/consul-register.sh {{ group_names[0] }} {{ name }} {{ inventory_hostname }} {{ port }}

准备齐全,ansible部署exporter到其他服务器

ansible-playbook -i hosts playbook.yaml -uroot -k 

失败是因为需要输入用户名和密码
在这里插入图片描述
在这里插入图片描述

成功的标志:

1.Prometheus中的Target有webservers服务。
2.consul中的Services多了webservers服务。

在这里插入图片描述

在这里插入图片描述

存在警告的原因是因为名字错误:port改名成exporter_port就不会有这种警告了
在这里插入图片描述
修改port成exporter_port
在这里插入图片描述
不存在警告了
在这里插入图片描述

监控好了webservers组后,可以监控dbservers组了

修改playbook.yaml文件

在这里插入图片描述
失败了,是因为第一次需要指纹验证,
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
然后再次执行

在这里插入图片描述

执行成功。

在这里插入图片描述
执行状态为Down,查看原因

在这里插入图片描述

在这里插入图片描述
状态为启动,但是web页面显示错误
在这里插入图片描述
最后定位到配置文件没有拷贝过来
在这里插入图片描述
kill 掉进程后重来就可以了:
在这里插入图片描述
在这里插入图片描述
因此需要重新修改以下文件:

在这里插入图片描述
重新来一下就可以了。

grafana也有对应的组了。
在这里插入图片描述

以后添加机器时只要修改hosts文件就行

在这里插入图片描述

这篇关于Prometheus自动化监控-自动监控上百台服务器的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/425384

相关文章

MyBatis Plus实现时间字段自动填充的完整方案

《MyBatisPlus实现时间字段自动填充的完整方案》在日常开发中,我们经常需要记录数据的创建时间和更新时间,传统的做法是在每次插入或更新操作时手动设置这些时间字段,这种方式不仅繁琐,还容易遗漏,... 目录前言解决目标技术栈实现步骤1. 实体类注解配置2. 创建元数据处理器3. 服务层代码优化填充机制详

使用Python实现Word文档的自动化对比方案

《使用Python实现Word文档的自动化对比方案》我们经常需要比较两个Word文档的版本差异,无论是合同修订、论文修改还是代码文档更新,人工比对不仅效率低下,还容易遗漏关键改动,下面通过一个实际案例... 目录引言一、使用python-docx库解析文档结构二、使用difflib进行差异比对三、高级对比方

深入浅出Spring中的@Autowired自动注入的工作原理及实践应用

《深入浅出Spring中的@Autowired自动注入的工作原理及实践应用》在Spring框架的学习旅程中,@Autowired无疑是一个高频出现却又让初学者头疼的注解,它看似简单,却蕴含着Sprin... 目录深入浅出Spring中的@Autowired:自动注入的奥秘什么是依赖注入?@Autowired

Web服务器-Nginx-高并发问题

《Web服务器-Nginx-高并发问题》Nginx通过事件驱动、I/O多路复用和异步非阻塞技术高效处理高并发,结合动静分离和限流策略,提升性能与稳定性... 目录前言一、架构1. 原生多进程架构2. 事件驱动模型3. IO多路复用4. 异步非阻塞 I/O5. Nginx高并发配置实战二、动静分离1. 职责2

Python自动化处理PDF文档的操作完整指南

《Python自动化处理PDF文档的操作完整指南》在办公自动化中,PDF文档处理是一项常见需求,本文将介绍如何使用Python实现PDF文档的自动化处理,感兴趣的小伙伴可以跟随小编一起学习一下... 目录使用pymupdf读写PDF文件基本概念安装pymupdf提取文本内容提取图像添加水印使用pdfplum

基于Python实现自动化邮件发送系统的完整指南

《基于Python实现自动化邮件发送系统的完整指南》在现代软件开发和自动化流程中,邮件通知是一个常见且实用的功能,无论是用于发送报告、告警信息还是用户提醒,通过Python实现自动化的邮件发送功能都能... 目录一、前言:二、项目概述三、配置文件 `.env` 解析四、代码结构解析1. 导入模块2. 加载环

Python实战之SEO优化自动化工具开发指南

《Python实战之SEO优化自动化工具开发指南》在数字化营销时代,搜索引擎优化(SEO)已成为网站获取流量的重要手段,本文将带您使用Python开发一套完整的SEO自动化工具,需要的可以了解下... 目录前言项目概述技术栈选择核心模块实现1. 关键词研究模块2. 网站技术seo检测模块3. 内容优化分析模

Linux搭建ftp服务器的步骤

《Linux搭建ftp服务器的步骤》本文给大家分享Linux搭建ftp服务器的步骤,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录ftp搭建1:下载vsftpd工具2:下载客户端工具3:进入配置文件目录vsftpd.conf配置文件4:

基于Redis自动过期的流处理暂停机制

《基于Redis自动过期的流处理暂停机制》基于Redis自动过期的流处理暂停机制是一种高效、可靠且易于实现的解决方案,防止延时过大的数据影响实时处理自动恢复处理,以避免积压的数据影响实时性,下面就来详... 目录核心思路代码实现1. 初始化Redis连接和键前缀2. 接收数据时检查暂停状态3. 检测到延时过

springboot2.1.3 hystrix集成及hystrix-dashboard监控详解

《springboot2.1.3hystrix集成及hystrix-dashboard监控详解》Hystrix是Netflix开源的微服务容错工具,通过线程池隔离和熔断机制防止服务崩溃,支持降级、监... 目录Hystrix是Netflix开源技术www.chinasem.cn栈中的又一员猛将Hystrix熔