mirror of
https://codeberg.org/hyperreal/techne
synced 2024-11-01 14:23:06 +01:00
Use Ansible Galaxy role for Node Exporter
This commit is contained in:
parent
459b71e0a3
commit
b4ff8fb0c2
@ -126,44 +126,52 @@ Restart ~prometheus.service~ again.
|
|||||||
|
|
||||||
The Prometheus web interface and dashboard should now be browsable at [[http://localhost:9090]]
|
The Prometheus web interface and dashboard should now be browsable at [[http://localhost:9090]]
|
||||||
|
|
||||||
** Install and configure Node Exporter on each client using Ansible ad-hoc
|
** Install and configure Node Exporter on each client using Ansible
|
||||||
This assumes you have an inventory file properly setup. The inventory file contains a host group labeled 'homelab', which contains a list of all hosts you want to install node_exporter on.
|
|
||||||
|
|
||||||
Place the following ~node_exporter.service~ into the same directory as the inventory file:
|
Install the prometheus.prometheus role from Ansible Galaxy.
|
||||||
#+BEGIN_SRC systemd
|
|
||||||
[Unit]
|
|
||||||
Description=Node Exporter
|
|
||||||
Wants=network-online.target
|
|
||||||
After=network-online.target
|
|
||||||
|
|
||||||
[Service]
|
#+BEGIN_SRC shell
|
||||||
User=node_exporter
|
ansible-galaxy collection install prometheus.prometheus
|
||||||
Group=node_exporter
|
|
||||||
Type=simple
|
|
||||||
Restart=on-failure
|
|
||||||
RestartSec=5s
|
|
||||||
ExecStart=/usr/local/bin/node_exporter
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=multi-user.target
|
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
Download and unpack the latest version of node_exporter. This note assumes it is version 1.8.2.
|
Ensure you have an inventory file with clients to setup Prometheus on.
|
||||||
|
|
||||||
|
#+BEGIN_SRC yaml
|
||||||
|
---
|
||||||
|
prometheus-clients:
|
||||||
|
hosts:
|
||||||
|
host0:
|
||||||
|
ansible_user: user0
|
||||||
|
ansible_host: host0 ip address or hostname
|
||||||
|
ansible_python_interpreter: /usr/bin/python3
|
||||||
|
host1:
|
||||||
|
...
|
||||||
|
host2:
|
||||||
|
...
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
Create ~prometheus-setup.yml~.
|
||||||
|
|
||||||
|
#+BEGIN_SRC yaml
|
||||||
|
---
|
||||||
|
- hosts: prometheus-clients
|
||||||
|
tasks:
|
||||||
|
- name: Import the node_exporter role
|
||||||
|
import_role:
|
||||||
|
name: prometheus.prometheus.node_exporter
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
The default values for the node_exporter role variables should be fine.
|
||||||
|
|
||||||
|
Run ansible-playbook.
|
||||||
|
|
||||||
#+BEGIN_SRC shell
|
#+BEGIN_SRC shell
|
||||||
ansible -i inventory.yml homelab -a "wget https://github.com/prometheus/node_exporter/releases/download/v1.8.2/node_exporter-1.8.2.linux-amd64.tar.gz"
|
ansible-playbook -i inventory.yml node_exporter-setup.yml
|
||||||
ansible -i inventory.yml homelab -m ansible.builtin.shell -a "echo '6809dd0b3ec45fd6e992c19071d6b5253aed3ead7bf0686885a51d85c6643c66 node_exporter-1.8.2.linux-amd64.tar.gz' | sha256sum -c"
|
|
||||||
ansible -i inventory.yml homelab -m ansible.builtin.shell -a "tar xfz node_exporter-1.8.2.linux-amd64.tar.gz"
|
|
||||||
ansible -i inventory.yml homelab -m ansible.builtin.shell -a "sudo mv node_exporter-1.8.2.linux-amd64/node_exporter /usr/local/bin/"
|
|
||||||
ansible -i inventory.yml homelab -m ansible.builtin.shell -a "rm -rf node_exporter-1.8.2.linux-amd64*"
|
|
||||||
ansible -i inventory.yml homelab -m ansible.builtin.shell -a "sudo useradd -rs /bin/false node_exporter"
|
|
||||||
ansible -b -i inventory.yml homelab -m ansible.builtin.copy -a "src=node_exporter.service dest=/etc/systemd/system/node_exporter.service"
|
|
||||||
ansible -b -i inventory.yml homelab -m ansible.builtin.systemd_service -a "daemon_reload=true"
|
|
||||||
ansible -b -i inventory.yml homelab -m ansible.builtin.systemd_service -a "name=node_exporter enabled=true state=started"
|
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
Node Exporter should now be installed, started, and enabled on each host with the homelab label in the inventory.
|
Node Exporter should now be installed, started, and enabled on each host with the homelab label in the inventory.
|
||||||
|
|
||||||
To confirm that statistics are being collected on each host, navigate to ~http://host_url:9100~. A page entitled Node Exporter should be displayed containg a link for Metrics. Click the link and confirm that statics are being collected.
|
To confirm that statistics are being collected on each host, navigate to ~http://host_url:9100~. A page entitled Node Exporter should be displayed containing a link for Metrics. Click the link and confirm that statistics are being collected.
|
||||||
|
|
||||||
Note that each node_exporter host must be accessible through the firewall on port 9100. Firewalld can be configured for the ~internal~ zone on each host.
|
Note that each node_exporter host must be accessible through the firewall on port 9100. Firewalld can be configured for the ~internal~ zone on each host.
|
||||||
#+BEGIN_SRC shell
|
#+BEGIN_SRC shell
|
||||||
|
Loading…
Reference in New Issue
Block a user