У меня есть Ruby On Rails на сервере Ubuntu - сервер находится в инфраструктуре AWS.
Приложение работает там в течение 4 лет, и все было в порядке до прошлой недели, когда я начал получать их (и аналогичные) сообщения об ошибках:
Errno::ENOSPC: No space left on device @ io_write - /home/deployer/apps/myapp-production/shared/log/unicorn.stderr.log
Мне пришлось войти на сервер и очистить файлы журнала - >unicorn.stderr.log
. Теперь эта ошибка возникает каждый (или каждый второй) день.
Вот как выглядят файлы журналов в моем приложении Rails:
drwxrwxr-x 2 deployer deployer 4096 Sep 28 06:28 .
drwxrwxr-x 11 deployer deployer 4096 Jun 11 2016 ..
-rw-rw-r-- 1 deployer deployer 0 Sep 9 2017 newrelic_agent.log
-rw-rw-r-- 1 deployer deployer 0 Sep 19 16:22 newrelic_agent.log.1
-rw-rw-r-- 1 deployer deployer 0 Sep 19 16:23 newrelic_agent.log.2.gz
-rw-rw-r-- 1 deployer deployer 0 Sep 19 16:23 newrelic_agent.log.3.gz
-rw-rw-r-- 1 deployer deployer 0 Sep 19 16:23 newrelic_agent.log.4.gz
-rw-rw-r-- 1 deployer deployer 0 Sep 19 16:23 newrelic_agent.log.5.gz
-rw-rw-r-- 1 deployer deployer 0 Sep 19 16:23 newrelic_agent.log.6.gz
-rw-rw-r-- 1 deployer deployer 0 Sep 19 16:23 newrelic_agent.log.7.gz
-rw-rw-r-- 1 deployer deployer 0 Feb 20 2018 procat
-rw-rw-r-- 1 deployer deployer 12480512 Sep 28 21:12 production.log
-rw-rw-r-- 1 deployer deployer 71216391 Sep 28 06:28 production.log.1
-rw-rw-r-- 1 deployer deployer 20 Sep 27 12:22 production.log.2.gz
-rw-rw-r-- 1 deployer deployer 20 Sep 26 15:27 production.log.3.gz
-rw-rw-r-- 1 deployer deployer 0 Sep 26 15:28 production.log.4.gz
-rw-rw-r-- 1 deployer deployer 0 Sep 26 15:28 production.log.5.gz
-rw-rw-r-- 1 deployer deployer 0 Sep 26 15:28 production.log.6.gz
-rw-rw-r-- 1 deployer deployer 0 Sep 26 15:28 production.log.7.gz
-rw-rw-r-- 1 deployer deployer 1391716 Sep 28 21:11 skylight.log
-rw-rw-r-- 1 deployer deployer 734536 Sep 28 06:28 skylight.log.1
-rw-rw-r-- 1 deployer deployer 20 Sep 27 12:23 skylight.log.2.gz
-rw-rw-r-- 1 deployer deployer 20 Sep 26 15:28 skylight.log.3.gz
-rw-rw-r-- 1 deployer deployer 0 Sep 26 15:29 skylight.log.4.gz
-rw-rw-r-- 1 deployer deployer 0 Sep 26 15:29 skylight.log.5.gz
-rw-rw-r-- 1 deployer deployer 0 Sep 26 15:29 skylight.log.6.gz
-rw-rw-r-- 1 deployer deployer 0 Sep 26 15:29 skylight.log.7.gz
-rw-rw-r-- 1 deployer deployer 0 May 20 2018 staging.log
-rw-rw-r-- 1 deployer deployer 0 Oct 4 2016 unicorn.log
-rw-rw-r-- 1 deployer deployer 1 Oct 4 2016 unicorn.log.1
-rw-rw-r-- 1 deployer deployer 20480 Sep 28 21:13 unicorn.stderr.log
Это то, что df -H
говорит перед очисткойфайлы журналов:
Filesystem Size Used Avail Use% Mounted on
udev 2.0G 13k 2.0G 1% /dev
tmpfs 395M 373k 395M 1% /run
/dev/xvda1 17G 16G 0 100% /
none 4.1k 0 4.1k 0% /sys/fs/cgroup
none 5.3M 0 5.3M 0% /run/lock
none 2.0G 0 2.0G 0% /run/shm
none 105M 0 105M 0% /run/user
И это после их очистки:
Filesystem Size Used Avail Use% Mounted on
udev 1.9G 12K 1.9G 1% /dev
tmpfs 377M 364K 377M 1% /run
/dev/xvda1 16G 15G 437M 98% /
none 4.0K 0 4.0K 0% /sys/fs/cgroup
none 5.0M 0 5.0M 0% /run/lock
none 1.9G 0 1.9G 0% /run/shm
none 100M 0 100M 0% /run/user
Приложение довольно стабильно, не то чтобы трафик увеличился в 10 раз в последнее время.
Я также пытался просмотреть самые большие файлы на сервере - find / -size +100M
- и это вывод:
/var/log/nginx/myapp_production.access.log.1
/var/log/nginx/myapp_production.access.log
/var/log/btmp.1
find: `/var/spool/rsyslog': Permission denied
find: `/var/spool/cron/atjobs': Permission denied
find: `/var/spool/cron/crontabs': Permission denied
find: `/var/spool/cron/atspool': Permission denied
find: `/var/cache/ldconfig': Permission denied
find: `/var/lib/polkit-1': Permission denied
find: `/var/lib/monit/events': Permission denied
find: `/var/lib/nginx/scgi': Permission denied
find: `/var/lib/nginx/body': Permission denied
find: `/var/lib/nginx/uwsgi': Permission denied
find: `/var/lib/nginx/fastcgi': Permission denied
find: `/var/lib/nginx/proxy': Permission denied
find: `/var/lib/sudo': Permission denied
find: `/etc/ssl/private': Permission denied
find: `/etc/chatscripts': Permission denied
find: `/etc/polkit-1/localauthority': Permission denied
find: `/etc/ppp/peers': Permission denied
find: `/etc/sudoers.d': Permission denied
find: `/root': Permission denied
find: `/run/user/1003': Permission denied
...
Я посмотрел на эти два файла - /var/log/nginx/myapp_production.access.log.1
и /var/log/nginx/myapp_production.access.log
и размеры219M
и 248MB
.
Файл /var/log/btmp.1
имеет 330MB
. Могу ли я удалить этот файл?
Если я отображаю размер каталога /var/log/nginx
- du -hs .
- размер 846MB
. Могу ли я очистить файлы журнала в этом каталоге, не затрагивая при этом функциональность приложения?
Кроме того, есть идеи, почему у меня внезапно начинает заканчиваться свободное место на сервере? Как мне «отладить» эту ситуацию?
Заранее спасибо.