Gitlab занимает все свободное место на диске

Gitlab – прекрасный продукт. Он дает возможность легко, быстро и бесплатно развернуть у себя собственный GIT и работать с ним так же, как с любым другим git сервером. Не нужны особо сильные знания администрирования, чтобы развернуть его, особенно используя Docker.

В своей компании я разворачивал его более 3х лет назад и тогда еще не был глубоко знаком с Docker и поднимал gitlab по старинке, опираясь на мануалы на официальном сайте, особо не вдаваясь в детали.

Прошло 3 года, гитлаб разросся и стал занимать неприлично много места – более 50 гб на VPS, на которой весь объем диска – 80гб. В один момент место просто закончилось. Запустим старую добрую программу NCDU я выяснил, что логи prometheus занимают 40гб! В своей работе я его не использовал прямо вообще и принял решение удалить логи и выключить prometheus. Делается это довольно просто ( https://docs.gitlab.com/ee/administration/monitoring/prometheus/ )

  1. Открываем файл /etc/gitlab/gitlab.rb
  2. Добавляем строку prometheus_monitoring[‘enable’] = false
  3. Сохраняем файл

После этого, обязательно, нужно пересобрать конфиги gitlab. Первые разы я этого не делал и не мог понять в чем дело. Чтобы пересобрать конфиги нужно ввести команду

sudo gitlab-ctl reconfigure

С удалением накопившихся логов тоже была история – их было слишком много и все было разбито по большому количеству маленьких файлов. IO просто не выдерживал и сервер “вставал на паузу” когда я запускал rm. Помогли инструкции с хабра – https://habr.com/ru/post/157613/. После прочтения этой статьи я выполнил следующую команду, чтобы удалить накопившиеся данные (!!!ИСПОЛЬЗУЙТЕ ЕЕ С УМОМ!!!)

perl -e 'chdir "/var/opt/gitlab/prometheus/data_back" or die; opendir D, "."; while ($n = readdir D) { unlink $n }'