feat: Добавлена установка Node Exporter на все хосты

- Создана роль node_exporter для установки на LXC контейнеры
- Добавлен плейбук deploy_all_node_exporters.yml
- Настроен ansible.cfg для правильного поиска ролей
- Node Exporter успешно установлен на все 10 хостов
- Prometheus собирает метрики со всех Node Exporters
- Все 14 таргетов в состоянии UP
This commit is contained in:
Freazzzing
2026-02-03 04:43:05 +00:00
parent 8212b75ac9
commit 26f6832275
5 changed files with 152 additions and 0 deletions

View File

@ -0,0 +1,3 @@
---
node_exporter_version: "1.7.0"
node_exporter_port: 9100

View File

@ -0,0 +1,103 @@
---
- name: Install required packages
apt:
name:
- wget
- tar
state: present
update_cache: yes
tags: node_exporter
- name: Create node_exporter user
user:
name: node_exporter
system: yes
shell: /bin/false
home: /nonexistent
comment: "Node Exporter Service User"
tags: node_exporter
- name: Download Node Exporter
get_url:
url: "https://github.com/prometheus/node_exporter/releases/download/v{{ node_exporter_version }}/node_exporter-{{ node_exporter_version }}.linux-amd64.tar.gz"
dest: "/tmp/node_exporter-{{ node_exporter_version }}.tar.gz"
timeout: 30
validate_certs: no
tags: node_exporter
- name: Extract Node Exporter
unarchive:
src: "/tmp/node_exporter-{{ node_exporter_version }}.tar.gz"
dest: "/tmp/"
remote_src: yes
creates: "/tmp/node_exporter-{{ node_exporter_version }}.linux-amd64"
tags: node_exporter
- name: Install Node Exporter binary
copy:
src: "/tmp/node_exporter-{{ node_exporter_version }}.linux-amd64/node_exporter"
dest: "/usr/local/bin/node_exporter"
owner: node_exporter
group: node_exporter
mode: '0755'
remote_src: yes
tags: node_exporter
- name: Create systemd service for LXC
template:
src: node_exporter.service.j2
dest: /etc/systemd/system/node_exporter.service
owner: root
group: root
mode: '0644'
tags: node_exporter
- name: Create textfile collector directory
file:
path: /var/lib/node_exporter/textfile_collector
state: directory
owner: node_exporter
group: node_exporter
mode: '0755'
tags: node_exporter
- name: Clean up temp files
file:
path: "/tmp/node_exporter-{{ node_exporter_version }}.tar.gz"
state: absent
tags: node_exporter
- name: Clean up extracted directory
file:
path: "/tmp/node_exporter-{{ node_exporter_version }}.linux-amd64"
state: absent
tags: node_exporter
- name: Reload systemd
systemd:
daemon_reload: yes
tags: node_exporter
- name: Enable and start Node Exporter
systemd:
name: node_exporter
enabled: yes
state: started
daemon_reload: yes
tags: node_exporter
- name: Configure UFW for Node Exporter
ufw:
rule: allow
port: "{{ node_exporter_port }}"
proto: tcp
comment: "Node Exporter metrics"
tags: node_exporter
- name: Verify Node Exporter is running
wait_for:
port: "{{ node_exporter_port }}"
host: "{{ ansible_host }}"
delay: 3
timeout: 60
tags: node_exporter

View File

@ -0,0 +1,30 @@
[Unit]
Description=Node Exporter
After=network.target
Wants=network.target
[Service]
User=node_exporter
Group=node_exporter
Type=simple
ExecStart=/usr/local/bin/node_exporter \
--collector.cpu \
--collector.diskstats \
--collector.filesystem \
--collector.loadavg \
--collector.meminfo \
--collector.netdev \
--collector.netstat \
--collector.stat \
--collector.time \
--collector.uname \
--collector.vmstat \
--collector.systemd \
--collector.textfile \
--web.listen-address=:{{ node_exporter_port }}
Restart=always
RestartSec=3
[Install]
WantedBy=multi-user.target