Я столкнулся с проблемой. У меня работает 2 экземпляра виртуальных машин, и я хочу настроить передачу журналов с одной виртуальной машины на другую (обозначим их как клиент и сервер). Я все настроил. Мой клиентский журнал rsyslog содержит следующее:
. @@192.168.174.132:515
это означает передачу локальных журналов на 192.168.174.132 на порт 515 через tcp. На стороне сервера я установил rsyslog-mysql, и моя конфигурация сервера содержит следующее:
$ ModLoad imtcp $ InputTCPServerRun 515
Я также установил логанализатор. Итак, все работает отлично, но проблема в том, что я выключаю удаленный сервер и несколько раз запускаю этот код на клиентской виртуальной машине:
<?php
openlog("php_script_test", LOG_PID | LOG_PERROR, LOG_LOCAL0);
$access = date("Y/m/d H:i:s");
syslog(LOG_CRIT, "This is to be sent after shutdown: $access");
closelog();
Затем я запускаю удаленный виртуальный компьютер, и эти сообщения не отправляются на удаленный. Есть ли какие-либо параметры конфигурации, которые заставят клиента хранить журналы локально и отправлять их на удаленный сервер, когда он работает? Я попытался поиграть с опцией $ WorkDirectory, но потерпел неудачу. Моя версия rsyslog - 4.6.4, а моя ОС - Debian 6.
Спасибо.