mirror of
https://codeberg.org/hyperreal/techne
synced 2024-11-25 07:43:42 +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]]
|
||||
|
||||
** Install and configure Node Exporter on each client using Ansible ad-hoc
|
||||
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.
|
||||
** Install and configure Node Exporter on each client using Ansible
|
||||
|
||||
Place the following ~node_exporter.service~ into the same directory as the inventory file:
|
||||
#+BEGIN_SRC systemd
|
||||
[Unit]
|
||||
Description=Node Exporter
|
||||
Wants=network-online.target
|
||||
After=network-online.target
|
||||
Install the prometheus.prometheus role from Ansible Galaxy.
|
||||
|
||||
[Service]
|
||||
User=node_exporter
|
||||
Group=node_exporter
|
||||
Type=simple
|
||||
Restart=on-failure
|
||||
RestartSec=5s
|
||||
ExecStart=/usr/local/bin/node_exporter
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
#+BEGIN_SRC shell
|
||||
ansible-galaxy collection install prometheus.prometheus
|
||||
#+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
|
||||
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 -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"
|
||||
ansible-playbook -i inventory.yml node_exporter-setup.yml
|
||||
#+END_SRC
|
||||
|
||||
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.
|
||||
#+BEGIN_SRC shell
|
||||
|
Loading…
Reference in New Issue
Block a user