[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}'
|
||||
)"
|
||||
|
||||
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'
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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