[prometheus-node-exporter] Track obsolete packages
parent
e2463d7460
commit
69e0747c1d
|
@ -0,0 +1,11 @@
|
||||||
|
#!/bin/bash
|
||||||
|
obsolete="$(comm -23 \
|
||||||
|
<(dpkg-query -W -f '${db:Status-Abbrev}\t${Package}\n' \
|
||||||
|
| grep '^.[^nc]' | cut -f2 | sort) \
|
||||||
|
<(apt-cache dumpavail | sed -rn 's/^Package: (.*)/\1/p' | sort -u) \
|
||||||
|
| awk 'END{printf "apt_obsolete %d", NR}'
|
||||||
|
)"
|
||||||
|
|
||||||
|
echo "# HELP apt_obsolete Apt obsolete package."
|
||||||
|
echo "# TYPE apt_obsolete gauge"
|
||||||
|
echo "$obsolete"
|
|
@ -19,11 +19,11 @@ autoremove="$(/usr/bin/apt-get --just-print autoremove \
|
||||||
| /usr/bin/awk '/^Remv/{a++}END{printf "apt_autoremove_pending %d", a}'
|
| /usr/bin/awk '/^Remv/{a++}END{printf "apt_autoremove_pending %d", a}'
|
||||||
)"
|
)"
|
||||||
|
|
||||||
orphans="$(comm -23 \
|
obsolete="$(comm -23 \
|
||||||
<(dpkg-query -W -f '${db:Status-Abbrev}\t${Package}\n' \
|
<(dpkg-query -W -f '${db:Status-Abbrev}\t${Package}\n' \
|
||||||
| grep '^.[^nc]' | cut -f2 | sort) \
|
| grep '^.[^nc]' | cut -f2 | sort) \
|
||||||
<(apt-cache dumpavail | sed -rn 's/^Package: (.*)/\1/p' | sort -u) \
|
<(apt-cache dumpavail | sed -rn 's/^Package: (.*)/\1/p' | sort -u) \
|
||||||
| awk 'END{printf "apt_orphans %d", NR}'
|
| awk 'END{printf "apt_obsolete %d", NR}'
|
||||||
)"
|
)"
|
||||||
|
|
||||||
echo '# HELP apt_upgrades_pending Apt package pending updates by origin.'
|
echo '# HELP apt_upgrades_pending Apt package pending updates by origin.'
|
||||||
|
@ -38,9 +38,9 @@ echo '# HELP apt_autoremove_pending Apt package pending autoremove.'
|
||||||
echo '# TYPE apt_autoremove_pending gauge'
|
echo '# TYPE apt_autoremove_pending gauge'
|
||||||
echo "${autoremove}"
|
echo "${autoremove}"
|
||||||
|
|
||||||
echo '# HELP apt_orphans Orphan apt package.'
|
echo "# HELP apt_obsolete Apt obsolete package."
|
||||||
echo '# TYPE apt_orphans gauge'
|
echo "# TYPE apt_obsolete gauge"
|
||||||
echo "${orphans}"
|
echo "$obsolete"
|
||||||
|
|
||||||
echo '# HELP node_reboot_required Node reboot is required for software updates.'
|
echo '# HELP node_reboot_required Node reboot is required for software updates.'
|
||||||
echo '# TYPE node_reboot_required gauge'
|
echo '# TYPE node_reboot_required gauge'
|
||||||
|
|
|
@ -38,10 +38,32 @@
|
||||||
dest: /etc/systemd/system/prometheus-node-exporter.service.d/override.conf
|
dest: /etc/systemd/system/prometheus-node-exporter.service.d/override.conf
|
||||||
register: override
|
register: override
|
||||||
|
|
||||||
|
- name: Deploy APT obsolete collector
|
||||||
|
copy:
|
||||||
|
src: apt-obsolete.sh
|
||||||
|
dest: /usr/share/prometheus-node-exporter-collectors/apt-obsolete.sh
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: 0755
|
||||||
|
when: ansible_distribution_release == "bullseye"
|
||||||
|
|
||||||
|
- name: Create /etc/systemd/system/prometheus-node-exporter-apt.service.d/
|
||||||
|
file:
|
||||||
|
path: /etc/systemd/system/prometheus-node-exporter-apt.service.d/
|
||||||
|
state: directory
|
||||||
|
when: ansible_distribution_release == "bullseye"
|
||||||
|
|
||||||
|
- name: Patch prometheus-node-exporter-apt service
|
||||||
|
template:
|
||||||
|
src: systemd/system/prometheus-node-exporter-apt.service.d/override.conf.j2
|
||||||
|
dest: /etc/systemd/system/prometheus-node-exporter-apt.service.d/override.conf
|
||||||
|
register: apt_override
|
||||||
|
when: ansible_distribution_release == "bullseye"
|
||||||
|
|
||||||
- name: systemctl daemon-reload
|
- name: systemctl daemon-reload
|
||||||
systemd:
|
systemd:
|
||||||
daemon_reload: true
|
daemon_reload: true
|
||||||
when: override.changed
|
when: override.changed or ( apt_override is defined and apt_override.changed )
|
||||||
|
|
||||||
- name: Activate prometheus-node-exporter service
|
- name: Activate prometheus-node-exporter service
|
||||||
systemd:
|
systemd:
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
[Service]
|
||||||
|
ExecStart=
|
||||||
|
ExecStart=/bin/bash -c "cat <(/usr/share/prometheus-node-exporter-collectors/apt.sh) <(/usr/share/prometheus-node-exporter-collectors/apt-obsolete.sh) | sponge /var/lib/prometheus/node-exporter/apt.prom"
|
Loading…
Reference in New Issue