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

相关文章

prometheus如何使用pushgateway监控网路丢包

《prometheus如何使用pushgateway监控网路丢包》:本文主要介绍prometheus如何使用pushgateway监控网路丢包问题,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录监控网路丢包脚本数据图表总结监控网路丢包脚本[root@gtcq-gt-monitor-prome

Spring Boot集成Druid实现数据源管理与监控的详细步骤

《SpringBoot集成Druid实现数据源管理与监控的详细步骤》本文介绍如何在SpringBoot项目中集成Druid数据库连接池,包括环境搭建、Maven依赖配置、SpringBoot配置文件... 目录1. 引言1.1 环境准备1.2 Druid介绍2. 配置Druid连接池3. 查看Druid监控

如何在Ubuntu 24.04上部署Zabbix 7.0对服务器进行监控

《如何在Ubuntu24.04上部署Zabbix7.0对服务器进行监控》在Ubuntu24.04上部署Zabbix7.0监控阿里云ECS服务器,需配置MariaDB数据库、开放10050/1005... 目录软硬件信息部署步骤步骤 1:安装并配置mariadb步骤 2:安装Zabbix 7.0 Server

SpringBoot+Docker+Graylog 如何让错误自动报警

《SpringBoot+Docker+Graylog如何让错误自动报警》SpringBoot默认使用SLF4J与Logback,支持多日志级别和配置方式,可输出到控制台、文件及远程服务器,集成ELK... 目录01 Spring Boot 默认日志框架解析02 Spring Boot 日志级别详解03 Sp

mysql中的服务器架构详解

《mysql中的服务器架构详解》:本文主要介绍mysql中的服务器架构,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、mysql服务器架构解释3、总结1、背景简单理解一下mysqphpl的服务器架构。2、mysjsql服务器架构解释mysql的架

浏览器插件cursor实现自动注册、续杯的详细过程

《浏览器插件cursor实现自动注册、续杯的详细过程》Cursor简易注册助手脚本通过自动化邮箱填写和验证码获取流程,大大简化了Cursor的注册过程,它不仅提高了注册效率,还通过友好的用户界面和详细... 目录前言功能概述使用方法安装脚本使用流程邮箱输入页面验证码页面实战演示技术实现核心功能实现1. 随机

Linux如何快速检查服务器的硬件配置和性能指标

《Linux如何快速检查服务器的硬件配置和性能指标》在运维和开发工作中,我们经常需要快速检查Linux服务器的硬件配置和性能指标,本文将以CentOS为例,介绍如何通过命令行快速获取这些关键信息,... 目录引言一、查询CPU核心数编程(几C?)1. 使用 nproc(最简单)2. 使用 lscpu(详细信

HTML5实现的移动端购物车自动结算功能示例代码

《HTML5实现的移动端购物车自动结算功能示例代码》本文介绍HTML5实现移动端购物车自动结算,通过WebStorage、事件监听、DOM操作等技术,确保实时更新与数据同步,优化性能及无障碍性,提升用... 目录1. 移动端购物车自动结算概述2. 数据存储与状态保存机制2.1 浏览器端的数据存储方式2.1.

MySQL MCP 服务器安装配置最佳实践

《MySQLMCP服务器安装配置最佳实践》本文介绍MySQLMCP服务器的安装配置方法,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下... 目录mysql MCP 服务器安装配置指南简介功能特点安装方法数据库配置使用MCP Inspector进行调试开发指

在Windows上使用qemu安装ubuntu24.04服务器的详细指南

《在Windows上使用qemu安装ubuntu24.04服务器的详细指南》本文介绍了在Windows上使用QEMU安装Ubuntu24.04的全流程:安装QEMU、准备ISO镜像、创建虚拟磁盘、配置... 目录1. 安装QEMU环境2. 准备Ubuntu 24.04镜像3. 启动QEMU安装Ubuntu4