Решение проблемы с переполнением диска файлами Performance data в Icinga 2

Через некоторое время после развёртывания сервера Icinga 2 при условиях, что в мониторинг подключено большое количество устройств и для каждого устройства по нескольким показателям собираются данные производительности (Performance data), с большой долей вероятности возникнет проблема с переполнением диска, на котором расположен каталог /var/spool/icinga2/perfdata. Этот каталог в конфигурации по умолчанию используется для сохранения множества специальных файлов по каждому хосту и службе Icinga, содержащих данные производительности с отметками времени. Эти служебные файлы сохраняются для возможности обработки данных о производительности сторонними приложениями или расширениями Icinga, например PNP. И как я понимаю, разработчиками Icinga предполагается то, что именно эти сторонние приложения должны брать на себя ответственность за своевременную очистку этих накапливающихся файлов. Если таких сторонних приложений у нас нет, то мы должны самостоятельно настроить периодическую очистку каталога /var/spool/icinga2/perfdata от старых файлов, чтобы избежать проблемы переполнения диска.

В нашем случае примерно после года эксплуатации сервера Icinga, в каталоге /var/spool/icinga2/perfdata накопилось множество файлов с внушительным общим объемом в 25GB:

# du -shc /var/spool/icinga2/*

25G     /var/spool/icinga2/perfdata
24K     /var/spool/icinga2/tmp
25G     total

Чтобы решить эту проблему, создадим нехитрый скрипт очистки вышеупомянутого каталога:

# nano /etc/icinga2/scripts/icinga2-perfdata-cleanup.sh

Наполним скрипт содержимым (находим в каталоге первого уровня все файлы, дата модификации которых более, чем 2 дня назад, и удаляем все эти файлы):

#!/bin/sh
#
find /var/spool/icinga2/perfdata/ -mindepth 1 -mtime +2 -delete

Сделаем скрипт исполняемым и ограничим к нему доступ:

# chmod 700 /etc/icinga2/scripts/icinga2-perfdata-cleanup.sh

Пробуем выполнить скрипт, запустив его вручную от имени супер-пользователя:

# /etc/icinga2/scripts/icinga2-perfdata-cleanup.sh

Скрипт должен отработать без ошибок. После окончания его работы проверим содержимое каталога /var/spool/icinga2/ и посмотрим какой стал размер каталога perfdata:

# du -shc /var/spool/icinga2/*

382M    /var/spool/icinga2/perfdata
4.0K    /var/spool/icinga2/tmp
382M    total

Добавляем задание резервного копирования в планировщик cron

# nano /etc/cron.d/icinga2_perfdata_cleanup

Содержимое файла задания на ежедневное выполнение в 00:10:

# Daily Icinga 2 perfdata files cleanup
 
10 00 * * * root /etc/icinga2/scripts/icinga2-perfdata-cleanup.sh

Добавить комментарий