本文分享自天翼云开发者社区《Ansible部署Node_exporter》,作者:SummerSnow

一、简介

Ansible是基于Python开发的自动化运维工具,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。

Exporter是Prometheus的指标数据收集组件,而node_exporter就是我们常用的其中之一,它主要用于采集类UNIX内核的硬件以及系统指标,如磁盘、cpu、内存等信息。

二、环境说明

#操作系统版本
[root@XXXXX][~]
$cat /etc/redhat-release
CentOS Linux release 7.7.1908 (Core) #Ansible版本
ansible 2.9.25
#node-exporter版本
node_exporter-1.2.2
#环境说明:本操作未涉及容器化部署,同时在centos 7环境进行部署

三、安装Ansible

#上传已经准备好的的安装包(内网环境)
[root@XXXXX ~] tar -zxvf ansible.tar.gz #使用下面的命令进行安装(yum本地安装)
[root@XXXXX ~]# yum localinstall *.rpm -y #查看ansible版本
[root@XXX][~]
$ansible --version
ansible 2.9.25
config file = /etc/ansible/ansible.cfg
configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']

四、使用Ansible部署node_exporter

1)填写需要部署的主机清单host

#如果机器之间已经做了免密,那就去掉ansible_ssh_pass改配置,多台机器直接追加就行
[root@XXXXXX][~]
$vim host
[node]
XX.XX ansible_ssh_user=XXX ansible_ssh_pass="XXXXXX"
XX.XX ansible_ssh_user=XXX ansible_ssh_pass="XXXXXX"

2)编写Ansible的剧本文件node_exporter.yml

---
- hosts: node
gather_facts: yes
become: yes
become_method: sudo
become_user: root
tasks:
- name: 添加prometheus用户
user:
name: prometheus
password: "{{ 'XXXXX' | password_hash('sha512') }}"
home: /home/prometheus - name: 创建node_exporter_script目录
file:
path: /home/prometheus/node_exporter_script
state: directory
mode: '0755'
owner: prometheus
group: prometheus - name: 创建node_exporter_textfile目录
file:
path: /home/prometheus/node_exporter_textfile
state: directory
mode: '0755'
owner: prometheus
group: prometheus - name: 安装CentOS7的node_exporter
unarchive: src=node_exporter-1.2.2.linux-amd64.tar.gz dest=/home/prometheus mode='0755' owner=prometheus group=prometheus
when:
- ansible_distribution == "CentOS"
- ansible_distribution_major_version == "7" - name: 添加CentOS7的node_exporter服务
copy: src=prometheus_node_exporter.service dest=/usr/lib/systemd/system/prometheus_node_exporter.service
when:
- ansible_distribution == "CentOS"
- ansible_distribution_major_version == "7" - name: 开启centos7的prometheus_node_exporter服务并设置开机自启动
systemd:
name: prometheus_node_exporter
daemon_reload: yes
state: restarted
enabled: yes
when:
- ansible_distribution == "CentOS"
- ansible_distribution_major_version == "7"

3)编写node-exporter的注册服务文件

[root@XXX][~]
$vim prometheus_node_exporter.service
[Unit]
Description=Prometheus node_exporter
Requires=network.target remote-fs.target
After=network.target remote-fs.target [Service]
Type=simple
User=prometheus
Group=prometheus
ExecStart=/home/prometheus/node_exporter-1.2.2.linux-amd64/node_exporter --collector.textfile.directory=/home/prometheus/node_exporter_textfile
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartSec=5s [Install]
WantedBy=multi-user.target

4)命令执行

[root@XXX ~]
$ansible-playbook node_exporter.yml -i host

5)服务验证

#验证目标端口是否开启
[root@XXXXX ~]
$telnet 目标主机 9100

至此,使用Ansible部署node-exporter完成。

Ansible部署Node_exporter的更多相关文章

  1. 001.Ansible部署RHCS存储集群

    一 前期准备 1.1 前置条件 至少有三个不同的主机运行monitor (MON)节点: 至少三个直接存储(非外部SAN硬件)的OSD节点主: 至少两个不同的manager (MGR)节点: 如果使用 ...

  2. 使用Ansible部署etcd 3.2高可用集群

    之前写过一篇手动搭建etcd 3.1集群的文章<etcd 3.1 高可用集群搭建>,最近要初始化一套新的环境,考虑用ansible自动化部署整套环境, 先从部署etcd 3.2集群开始. ...

  3. ansible部署,规划

    部署管理服务器 第一步:先检查有没有ssh服务 [root@iZm5eeyc1al5vzh8bo57zyZ ~]# rpm -qf /etc/init.d/sshd openssh-server-5. ...

  4. CentOS7.5 -- Ansible部署与应用

    第1章 Ansible概述 Ansible是一个配置管理系统configuration management system python 语言是运维人员必须会的语言 ansible 是一个基于pyth ...

  5. 使用ansible部署CDH 5.15.1大数据集群

    使用ansible离线部署CDH 5.15.1大数据集群 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在此之前,我之前分享过使用shell自定义脚本部署大数据集群,不管是部署CD ...

  6. SSH与ansible 部署方法与核心模块简介

    SSH与ansible 部署方法 部署环境 管理服务器 172.16.1.61 NFS服务器 172.16.1.31 备份服务器 172.16.1.41 1检查SSH服务是否运行并开启服务 netst ...

  7. 003 ansible部署ceph集群

    介绍:在上一次的deploy部署ceph,虽然出了结果,最后的结果并没有满足最初的目的,现在尝试使用ansible部署一遍,看是否会有问题 一.环境准备 ceph1充当部署节点,ceph2,ceph3 ...

  8. k8s ansible部署部署文档

    一:基础系统准备 ubuntu 1804----> root密码:123456 主要操作:   1.更改网卡名称为eth0: # vim /etc/default/grub GRUB_CMDLI ...

  9. 使用Ansible部署openstack平台

    使用Ansible部署openstack平台 本周没啥博客水了,就放个云计算的作业上来吧(偷个懒) 案例描述 1.了解高可用OpenStack平台架构 2.了解Ansible部署工具的使用 3.使用A ...

  10. rh358 004 bind反向,转发,主从,各种资源记录 unbound ansible部署bind unbound

    通过bind实现正向,反向,转发,主从,各种资源记录 7> 部署反向解析 从ip解析到fqdn vim /etc/named.conf zone "250.25.172.in-addr ...

随机推荐

  1. 为何PostgreSQL没有聚集索引?解读两大数据库的设计差异

    为何PostgreSQL没有聚集索引?解读两大数据库的设计差异 前言 高效的数据检索是数据库管理的基石, PostgreSQL和SQL Server都能提供强大的数据访问方法以支持各种工作负载方面表现 ...

  2. golang中写个字符串遍历谁不会?且看我如何提升 50 倍

    作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 引子 VictoriaMetrics (Github: h ...

  3. redis的常见面试题

    为什么要用redis 减少了mysql数据库的压力, 在这之前mysql一个人承受,然后要承受大量的数据请求, 大部分都是读操作.而且经常都是重复查一个东西,浪费了很多时间进行磁盘io redis将数 ...

  4. GStreamer开发笔记(七):gstreamer播放ogg详解

    前言   gtreamer播放ogg音频文件的流程讲解.   Ogg   Ogg全称是OGGVobis(oggVorbis)是一种音频压缩容器格式.Ogg格式不仅是一个高效的容器格式,它还融合了Vor ...

  5. NOIP 2024 游寄

    别让我担心 派蒙可爱! 天气晴 风平浪静 沙滩上混乱的脚印 钓鱼竿 两份孤单 会飞的落汤鸡 是故事的开局 青橙紫绿 留影机塞满了回忆 可我却无比思念 遇见你的那一集 才发现我们早已 走了很远很远 多少 ...

  6. 腾讯云的devops自动化部署代替jenkins

    起因 jenkins太耗内存了,经常导致服务器崩. 了解到devOps也是做类似的服务的,遂用之. serverless framework也可以做这个,但是截至目前,只能够打包node项目. dev ...

  7. jenkins部署后端SpringBoot

    安装和配置java 安装java就不介绍了,因为到这一步,java环境肯定是已经安装完了. 这里多介绍给jekins配置java环境,方便编译后端项目. 全局工具配置>JDK>新增 安装和 ...

  8. esbuild vs webpack

    先看提速效果 上图:使用默认设置(包括缩小和源映射)从头开始制作包含 10 个three.js库副本的生产包的时间.更多信息在这里. 我们当前用于 Web 的构建工具比esbuild速度可能慢 10- ...

  9. html手写板

    js版本 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF- ...

  10. 开发工具系列001-Git Tag

    本文简单介绍 git 仓库中 tag 的用法. 如何为 git 仓库打上 tag 标记. git tag // 查看当前仓库的 tag 信息,如果当前没有版本则显示为空 git tag -l &quo ...