[prometheus-node-exporter] Track obsolete packages

certbot_on_virtu
_shirenn 2022-01-14 12:32:47 +01:00 committed by pa
parent e2463d7460
commit 69e0747c1d
4 changed files with 42 additions and 6 deletions

View File

@ -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"

View File

@ -19,11 +19,11 @@ autoremove="$(/usr/bin/apt-get --just-print autoremove \
| /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' \
| grep '^.[^nc]' | cut -f2 | sort) \
<(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.'
@ -38,9 +38,9 @@ echo '# HELP apt_autoremove_pending Apt package pending autoremove.'
echo '# TYPE apt_autoremove_pending gauge'
echo "${autoremove}"
echo '# HELP apt_orphans Orphan apt package.'
echo '# TYPE apt_orphans gauge'
echo "${orphans}"
echo "# HELP apt_obsolete Apt obsolete package."
echo "# TYPE apt_obsolete gauge"
echo "$obsolete"
echo '# HELP node_reboot_required Node reboot is required for software updates.'
echo '# TYPE node_reboot_required gauge'

View File

@ -38,10 +38,32 @@
dest: /etc/systemd/system/prometheus-node-exporter.service.d/override.conf
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
systemd:
daemon_reload: true
when: override.changed
when: override.changed or ( apt_override is defined and apt_override.changed )
- name: Activate prometheus-node-exporter service
systemd:

View File

@ -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"