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

相关文章

SpringBoot中封装Cors自动配置方式

《SpringBoot中封装Cors自动配置方式》:本文主要介绍SpringBoot中封装Cors自动配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录SpringBoot封装Cors自动配置背景实现步骤1. 创建 GlobalCorsProperties

idea中创建新类时自动添加注释的实现

《idea中创建新类时自动添加注释的实现》在每次使用idea创建一个新类时,过了一段时间发现看不懂这个类是用来干嘛的,为了解决这个问题,我们可以设置在创建一个新类时自动添加注释,帮助我们理解这个类的用... 目录前言:详细操作:步骤一:点击上方的 文件(File),点击&nbmyHIgsp;设置(Setti

Python实现自动化接收与处理手机验证码

《Python实现自动化接收与处理手机验证码》在移动互联网时代,短信验证码已成为身份验证、账号注册等环节的重要安全手段,本文将介绍如何利用Python实现验证码的自动接收,识别与转发,需要的可以参考下... 目录引言一、准备工作1.1 硬件与软件需求1.2 环境配置二、核心功能实现2.1 短信监听与获取2.

Python实现Microsoft Office自动化的几种方式及对比详解

《Python实现MicrosoftOffice自动化的几种方式及对比详解》办公自动化是指利用现代化设备和技术,代替办公人员的部分手动或重复性业务活动,优质而高效地处理办公事务,实现对信息的高效利用... 目录一、基于COM接口的自动化(pywin32)二、独立文件操作库1. Word处理(python-d

Python使用DrissionPage中ChromiumPage进行自动化网页操作

《Python使用DrissionPage中ChromiumPage进行自动化网页操作》DrissionPage作为一款轻量级且功能强大的浏览器自动化库,为开发者提供了丰富的功能支持,本文将使用Dri... 目录前言一、ChromiumPage基础操作1.初始化Drission 和 ChromiumPage

CentOS 7部署主域名服务器 DNS的方法

《CentOS7部署主域名服务器DNS的方法》文章详细介绍了在CentOS7上部署主域名服务器DNS的步骤,包括安装BIND服务、配置DNS服务、添加域名区域、创建区域文件、配置反向解析、检查配置... 目录1. 安装 BIND 服务和工具2.  配置 BIND 服务3 . 添加你的域名区域配置4.创建区域

Python实现自动化表单填写功能

《Python实现自动化表单填写功能》在Python中,自动化表单填写可以通过多种库和工具实现,本文将详细介绍常用的自动化表单处理工具,并对它们进行横向比较,可根据需求选择合适的工具,感兴趣的小伙伴跟... 目录1. Selenium简介适用场景示例代码优点缺点2. Playwright简介适用场景示例代码

Windows Server服务器上配置FileZilla后,FTP连接不上?

《WindowsServer服务器上配置FileZilla后,FTP连接不上?》WindowsServer服务器上配置FileZilla后,FTP连接错误和操作超时的问题,应该如何解决?首先,通过... 目录在Windohttp://www.chinasem.cnws防火墙开启的情况下,遇到的错误如下:无法与

一文详解SQL Server如何跟踪自动统计信息更新

《一文详解SQLServer如何跟踪自动统计信息更新》SQLServer数据库中,我们都清楚统计信息对于优化器来说非常重要,所以本文就来和大家简单聊一聊SQLServer如何跟踪自动统计信息更新吧... SQL Server数据库中,我们都清楚统计信息对于优化器来说非常重要。一般情况下,我们会开启"自动更新

Flask 验证码自动生成的实现示例

《Flask验证码自动生成的实现示例》本文主要介绍了Flask验证码自动生成的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习... 目录生成图片以及结果处理验证码蓝图html页面展示想必验证码大家都有所了解,但是可以自己定义图片验证码