找回密码
 立即注册
首页 业界区 业界 Ansible部署Node_exporter

Ansible部署Node_exporter

锑砖 2025-8-8 17:23:17
本文分享自天翼云开发者社区《Ansible部署Node_exporter》,作者:SummerSnow
一、简介
       Ansible是基于Python开发的自动化运维工具,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。
       Exporter是Prometheus的指标数据收集组件,而node_exporter就是我们常用的其中之一,它主要用于采集类UNIX内核的硬件以及系统指标,如磁盘、cpu、内存等信息。
二、环境说明
  1. #操作系统版本
  2. [root@XXXXX][~]
  3. $cat /etc/redhat-release
  4. CentOS Linux release 7.7.1908 (Core)
  5. #Ansible版本
  6. ansible 2.9.25
  7. #node-exporter版本
  8. node_exporter-1.2.2
  9. #环境说明:本操作未涉及容器化部署,同时在centos 7环境进行部署
复制代码
三、安装Ansible
  1. #上传已经准备好的的安装包(内网环境)
  2. [root@XXXXX ~] tar -zxvf ansible.tar.gz
  3. #使用下面的命令进行安装(yum本地安装)
  4. [root@XXXXX ~]# yum localinstall *.rpm -y
  5. #查看ansible版本
  6. [root@XXX][~]
  7. $ansible --version
  8. ansible 2.9.25
  9.   config file = /etc/ansible/ansible.cfg
  10.   configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
复制代码
四、使用Ansible部署node_exporter
1)填写需要部署的主机清单host
  1. #如果机器之间已经做了免密,那就去掉ansible_ssh_pass改配置,多台机器直接追加就行
  2. [root@XXXXXX][~]
  3. $vim host
  4. [node]
  5. XX.XX ansible_ssh_user=XXX ansible_ssh_pass="XXXXXX"
  6. XX.XX ansible_ssh_user=XXX ansible_ssh_pass="XXXXXX"
复制代码
2)编写Ansible的剧本文件node_exporter.yml
  1. ---
  2. - hosts: node
  3.   gather_facts: yes
  4.   become: yes
  5.   become_method: sudo
  6.   become_user: root
  7.   tasks:
  8.     - name: 添加prometheus用户
  9.       user:
  10.         name: prometheus
  11.         password: "{{ 'XXXXX' | password_hash('sha512') }}"
  12.         home: /home/prometheus
  13.     - name: 创建node_exporter_script目录
  14.       file:
  15.         path: /home/prometheus/node_exporter_script
  16.         state: directory
  17.         mode: '0755'
  18.         owner: prometheus
  19.         group: prometheus
  20.     - name: 创建node_exporter_textfile目录
  21.       file:
  22.         path: /home/prometheus/node_exporter_textfile
  23.         state: directory
  24.         mode: '0755'
  25.         owner: prometheus
  26.         group: prometheus
  27.     - name: 安装CentOS7的node_exporter
  28.       unarchive: src=node_exporter-1.2.2.linux-amd64.tar.gz dest=/home/prometheus mode='0755' owner=prometheus group=prometheus
  29.       when:
  30.         - ansible_distribution == "CentOS"
  31.         - ansible_distribution_major_version == "7"
  32.     - name: 添加CentOS7的node_exporter服务
  33.       copy: src=prometheus_node_exporter.service dest=/usr/lib/systemd/system/prometheus_node_exporter.service
  34.       when:
  35.         - ansible_distribution == "CentOS"
  36.         - ansible_distribution_major_version == "7"
  37.    
  38.     - name: 开启centos7的prometheus_node_exporter服务并设置开机自启动
  39.       systemd:
  40.         name: prometheus_node_exporter
  41.         daemon_reload: yes
  42.         state: restarted
  43.         enabled: yes
  44.       when:
  45.         - ansible_distribution == "CentOS"
  46.         - ansible_distribution_major_version == "7"
复制代码
3)编写node-exporter的注册服务文件
  1. [root@XXX][~]
  2. $vim prometheus_node_exporter.service
  3. [Unit]
  4. Description=Prometheus node_exporter
  5. Requires=network.target remote-fs.target
  6. After=network.target remote-fs.target
  7. [Service]
  8. Type=simple
  9. User=prometheus
  10. Group=prometheus
  11. ExecStart=/home/prometheus/node_exporter-1.2.2.linux-amd64/node_exporter --collector.textfile.directory=/home/prometheus/node_exporter_textfile
  12. ExecReload=/bin/kill -HUP $MAINPID
  13. KillMode=process
  14. Restart=on-failure
  15. RestartSec=5s
  16. [Install]
  17. WantedBy=multi-user.target
复制代码
4)命令执行
  1. [root@XXX ~]
  2. $ansible-playbook node_exporter.yml -i host
复制代码
5)服务验证
  1. #验证目标端口是否开启
  2. [root@XXXXX ~]
  3. $telnet 目标主机 9100
复制代码
至此,使用Ansible部署node-exporter完成。

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册