rsyslog потребляет много ресурсов
После обновления сервера столкнулся с тем, что rsyslog начал потреблять очень много ресурсов, более 150% процессорного времени, которое стоит денег на облачном хостинге.
Проблема оказалась в том, что демон rsyslogd не может читать процесс /proc/kmsg, у него нет прав.
Решается проблема просто, нужно создать файл /etc/init/rsyslog-kmsg.conf
:
# rsyslog-kmsg - feed /proc/kmsg into rsyslog
#
# This service is used to feed output from /proc/kmsg into rsyslog so
# it does not need to be privileged.
description "feed /proc/kmsg into rsyslog"
start on starting rsyslog
stop on stopped rsyslog
respawn
pre-start script
mkdir -p /var/run/rsyslog
chown syslog:syslog /var/run/rsyslog
[ -e /var/run/rsyslog/kmsg ] || mkfifo -m 600 /var/run/rsyslog/kmsg
chown syslog:syslog /var/run/rsyslog/kmsg
end script
exec dd bs=1 if=/proc/kmsg of=/var/run/rsyslog/kmsg
post-stop script
rm /var/run/rsyslog/kmsg
end script
После чего выполнить:
$ sudo ln -s /lib/init/upstart-job /etc/init.d/rsyslog-kmsg
В файл /etc/rsyslog.conf
добавить:
$KLogPath /var/run/rsyslog/kmsg
После чего перестартовать rsyslog:
$ sudo service rsyslog restart
15 февраля 2013