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

四、监控搭建-Prometheus-采集端批量部署

四、监控搭建-Prometheus-采集端批量部署

  • 1、背景
  • 2、目标
  • 3、传承
  • 4、操作
    • 4.1、准备部署工具
    • 4.2、编制部署脚本
    • 4.3、服务端添加客户端

1、背景

在前三篇中我们搭建了Prometheus平台,采集端部署和配合图形化grafana部署,将Linux主机进行监控。基本完成了一个最小化的监控模型,本篇是在前三篇的基础上继续操作。在日常使用中很少只有单台设备而是多态设备和服务进行统一化,集中监控。利用ansible自动化工具批量部署node_exporter客户端。

2、目标

使用prometheus平台批量部署,监控Linux主机资源。

3、传承

本篇操作依赖《一、监控搭建-Prometheus》、《二、监控搭建-Prometheus-采集端部署》和《三、监控搭建-Prometheus-grafana部署》的基础上的操作。操作端安装ansible工具,不在本篇做介绍,安装参考ansible安装中文文档
以上安装步骤很全面,也可以参考[环境搭建]-[局域网ansible离线安装]。

4、操作

4.1、准备部署工具

将上篇中的软件包下载至本地

Linux系统采集模块: node_exporter 下载

上传至指定目录,本篇以/home/backup/prometheus目录为例。

4.2、编制部署脚本

切换到部署文件的目录下

cd /home/backup/prometheus

创建deploy_node_exporter.yml文件并输入如下内容
脚本内容分为七步操作:

  • 将客户端工具解压至客户端服务器的指定目录
  • 重命名解压缩后的文件夹
  • 创建文件夹的软链接
  • 上传客户端服务器文件
  • 启动监控客户端
  • 启动监控客户端
  • 启动服务器防火墙
  • 添加客户端监控端口
---
- name: deploy the node_exporter
  hosts: proc
  gather_facts: no
  become: yes
  remote_user: root

  tasks:
  - name: 01-Extract node_exporter
    unarchive:
      src: /home/backup/prometheus/node_exporter-1.6.1.linux-amd64.tar.gz
      dest: /usr/local
  - name: 02-Rename floder name
    shell:
     cmd: mv /usr/local/node_exporter-1.6.1.linux-amd64 /usr/local/node_exporter-1.6.1
  - name: 03-Creating soft connections
    file:
      src: /usr/local/node_exporter-1.6.1
      dest: /usr/local/node_exporter
      state: link
  - name: 04-Copy the node_exporter.service to the client 
    copy:
      src: /usr/lib/systemd/system/node_exporter.service
      dest: /usr/lib/systemd/system
  - name: 05-Start the service of node_exporter
    systemd:
      name: node_exporter
      state: started
      enabled: yes
  - name: 06-Start the service of firewalld
    systemd:
      name: firewalld
      state: started
      enabled: yes
  - name: 07-Set Firewall Polices
    firewalld:
      port: 9100/tcp
      state: enabled
      permanent: yes
      immediate: yes

查看脚本预防错误

ansible-playbook --syntax-check deploy_node_exporter.yml 

模拟运行脚本

ansible-playbook -C deploy_node_exporter.yml 

以上两步运行无报错提示,则运行以上脚本进行操作部署

ansible-playbook -C deploy_node_exporter.yml 

PLAY [deploy the node_exporter] ********************************************************************************************

TASK [01-Extract node_exporter] ********************************************************************************************
changed: [proc-dese2]
changed: [proc-divu1]
changed: [proc-dese1]
changed: [proc-divu2]

TASK [02-Rename floder name] ***********************************************************************************************
changed: [proc-dese2]
changed: [proc-dese1]
changed: [proc-divu1]
changed: [proc-divu2]

TASK [03-Creating soft connections] ****************************************************************************************
changed: [proc-dese1]
changed: [proc-dese2]
changed: [proc-divu1]
changed: [proc-divu2]

TASK [04-Copy the node_exporter.service to the client] *********************************************************************
changed: [proc-dese1]
changed: [proc-dese2]
changed: [proc-divu1]
changed: [proc-divu2]

TASK [05-Start the service of node_exporter] *******************************************************************************
changed: [proc-dese2]
changed: [proc-dese1]
changed: [proc-divu1]
changed: [proc-divu2]

TASK [06-Start the service of firewalld] ***********************************************************************************
changed: [proc-dese1]
changed: [proc-dese2]
changed: [proc-divu1]
changed: [proc-divu2]

TASK [07-Set Firewall Polices] *********************************************************************************************
changed: [proc-dese2]
changed: [proc-divu1]
changed: [proc-dese1]
changed: [proc-divu2]

PLAY RECAP *****************************************************************************************************************
proc-dese1                 : ok=7    changed=7    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
proc-dese2                 : ok=7    changed=7    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
proc-divu1                 : ok=7    changed=7    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
proc-divu2                 : ok=7    changed=7    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   


部署完毕后,在云平台的安全组中新增9100端口
在这里插入图片描述

4.3、服务端添加客户端

以上部署为在客户端的服务器上部署了采集器,接下来需要在服务端添加客户端的IP和端口

vi /usr/local/prometheus/prometheus.yml

- job_name: "host_monitor"
    static_configs:
      - targets: ["localhost:9100","1xx.xx.x.xx:9100","1xx.xx.x.xx:9100","1xx.xx.x.xx:9100","1xx.xx.x.xx:9100"]

编辑完毕后检测语法

./promtool check config prometheus.yml

提示SUCCESS字样后,确认文件格式无误,
重启prometheus

systemctl restart prometheus

在浏览器中输入部署promethues服务端的IP和端口查看
在这里插入图片描述
在浏览器中输入部署的grafana服务端的IP和端口查看
输入用户名和密码,在主机名中选中对应的主机名,查看主机的信息,

注:需要一段采集周期后有指标数据

在这里插入图片描述
以上为批量化部署prometheus客户端工具。


http://www.kler.cn/a/284036.html

相关文章:

  • Ceph 中Crush 算法的理解
  • 华为大变革?仓颉编程语言会代替ArkTS吗?
  • 45.第二阶段x86游戏实战2-hook监控实时抓取游戏lua
  • 【嵌入式开发】单片机CAN配置详解
  • 前端神经网络入门(三):深度学习与机器学习的关系、区别及核心理论支撑 - 以Brain.js示例
  • mongoDB的安装及使用
  • TCP/UDP的对比,粘包分包抓包,http协议
  • MYSQL集群技术
  • JavaScript 网页设计案例
  • 12、stm32通过dht11读取温湿度
  • Elasticsearch简单介绍
  • 智慧高校迎新服务平台的设计与实现---附源码92489
  • http方法调用接口
  • Django如何实现websocket
  • 【工作实践】MVEL 2.x语法指南
  • vscode在html中的使用
  • 多进程比多线程开销大的原因
  • 海绵城市雨水监测系统
  • C++:Github开源7.8Kstar的线程池介绍
  • 如何在没有密码的情况下解锁 Oppo 手机?5 种简单的方法
  • hadoop日志文件
  • 随身wifi靠谱吗?适合哪类人使用?靠谱随身wifi怎么选?热门随身wifi推荐测评!
  • CRC32
  • 使用[KafkaStreams流计算框架实时计算产生报警(升级报警)
  • 深入解析Nginx的Fair调度算法:实现请求的智能分配
  • 中国各地区数字经济发展对环境污染的影响数据(2011-2021年)