部署Prometheus
  • 为什么会有本书
  • Part I - Prometheus基础
    • 第一章 简介
    • 第二章 部署
      • 二进制部署
      • Docker部署
      • Kubernetes部署
    • 第三章 集群与高可用
      • Prometheus
      • Alertmanager
  • Part II - Prometheus数据采集与告警
    • 第四章 数据采集
      • 主机
        • Linux
        • Windows
        • Docker
        • PushGateway
      • Web服务器
        • Nginx
        • Tomcat
      • 数据库
        • MySQL
        • Redis
      • 消息队列
        • RabbitMQ
        • Kafka
      • 微服务
        • Eureka
        • Nacos
        • Zookeeper
        • Consul
      • 网络探测
    • 第五章 告警规则
      • 主机
        • Linux
        • Windows
        • Docker
        • PushGateway
      • Web服务器
        • Nginx
        • Tomcat
      • 数据库
        • MySQL
        • Redis
      • 消息队列
        • RabbitMQ
        • Kafka
      • 微服务
        • Eureka
        • Nacos
        • Zookeeper
        • Consul
      • 网络探测
    • 第六章 告警处理
  • Part III -Prometheus数据展示
    • 第七章 数据展示
Powered by GitBook
On this page
  • node_exporter
  • Ansible Playbook部署node_exporter
  • 1.新建ansible playbook roles
  • 2.编写playbook tasks
  • 3.编写playbook
  • 4.部署node_exporter
  • 5.验证

Was this helpful?

  1. Part II - Prometheus数据采集与告警
  2. 第四章 数据采集
  3. 主机

Linux

node_exporter

Node_exporter部署请参考 第二章 部署/二进制部署 中的Node_exporter。 还可以使用Ansible进行部署。

Ansible Playbook部署node_exporter

node_exporter为golang开发编译的程序,直接运行即可。

1.新建ansible playbook roles

# 进入ansible roles目录
cd /etc/ansible/roles

# 初始化
ansible-galaxy init deploy_node_exporter

# 下载node_exporter
cd deploy_node_exporter/files
wget https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gz

# 目录结构
tree deploy_node_exporter/
deploy_node_exporter/
├── defaults
│   └── main.yml
├── files
│   └── node_exporter-0.18.1.linux-amd64.tar.gz
├── handlers
│   └── main.yml
├── meta
│   └── main.yml
├── README.md
├── tasks
│   └── main.yml
├── templates
├── tests
│   ├── inventory
│   └── test.yml
└── vars
    └── main.yml

2.编写playbook tasks

vi /etc/ansible/roles/deploy_node_exporter/tasks/main.yml

---
- name: create directory /ops
  file: 
    path: /ops
    state: directory
    mode: '0755'

- name: unarchive node_exporter
  unarchive:
    src: node_exporter-0.18.1.linux-amd64.tar.gz
    dest: /ops/

- name: configure node_exporter.service
  lineinfile:
    path: /usr/lib/systemd/system/node_exporter.service
    line: "{{ item }}"
    create: yes
    state: present
  with_items:
    - "[Unit]"
    - "Description=Node Exporter For Prometheus"
    - "[Service]"
    - "Type=simple"
    - "ExecStart=/ops/node_exporter-0.18.1.linux-amd64/node_exporter"
    - "[Install]"
    - "WantedBy=mutil-user.target"

- name: start and enable service
  shell: |
    systemctl daemon-reload 
    systemctl enable node_exporter
    systemctl start node_exporter
- name: add firewall port 9100
  shell: firewall-cmd --add-port=9100/tcp --permanent && firewall-cmd --reload

3.编写playbook

vi /etc/ansible/workflow/deploy_node_exporter.yml 其中hosts为需要安装的机器。

---
- hosts: node01
  remote_user: root
  roles:
    - deploy_node_exporter

4.部署node_exporter

ansible-playbook deploy_node_exporter.yml

5.验证

curl http://node01:9100/metrics
Previous主机NextWindows

Last updated 5 years ago

Was this helpful?