写点什么

Ansible 部署 Node_exporter

  • 2025-08-08
    北京
  • 本文字数:1771 字

    阅读完需:约 6 分钟

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


一、简介

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


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


二、环境说明


#操作系统版本[root@XXXXX][~]$cat /etc/redhat-releaseCentOS 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 --versionansible 2.9.25config file = /etc/ansible/ansible.cfgconfigured 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_exporterRequires=network.target remote-fs.targetAfter=network.target remote-fs.target
[Service]Type=simpleUser=prometheusGroup=prometheusExecStart=/home/prometheus/node_exporter-1.2.2.linux-amd64/node_exporter --collector.textfile.directory=/home/prometheus/node_exporter_textfileExecReload=/bin/kill -HUP $MAINPIDKillMode=processRestart=on-failureRestartSec=5s
[Install]WantedBy=multi-user.target
复制代码

4)命令执行

[root@XXX ~]$ansible-playbook node_exporter.yml -i host
复制代码

5)服务验证

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

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

用户头像

还未添加个人签名 2022-02-22 加入

天翼云是中国电信倾力打造的云服务品牌,致力于成为领先的云计算服务提供商。提供云主机、CDN、云电脑、大数据及AI等全线产品和场景化解决方案。

评论

发布
暂无评论
Ansible部署Node_exporter_ansible_天翼云开发者社区_InfoQ写作社区