Назад | Перейти на главную страницу

Как я могу использовать инструмент удаленного администрирования (марионетка или шеф-повар) в сочетании с инструментом синхронизации (например, rsync) для отправки файлов журнала с нескольких серверов на центральный сервер?

Резюме

Как я могу использовать инструмент удаленного администрирования (марионетка или шеф-повар) в сочетании с инструментом синхронизации (например, rsync) и планировщиком (cron) для отправки файлов журнала с нескольких серверов на центральный сервер?

Контекст

Наши системные администраторы (справедливо) ограничили доступ разработчиков к рабочим серверам. Одно из последствий: в частности, разработчики больше не будут иметь легкий доступ к файлам журналов при решении проблем клиентов.

Цель: отправить файлы на общий сервер журналов

Я хочу настроить автоматическое копирование журналов на центральный «сервер журналов». Разработчики / служба поддержки будут иметь доступ для чтения к файловой системе «сервера журналов» при устранении проблем.

Вот пример структуры нашей файловой системы. Один каталог для каждого клиента. Внутри него по одному каталогу на приложение. Каждое приложение имеет свою структуру подкаталогов и имена файлов журналов.

Server A
d:/
  Instances/
     CustomerFoo  
         App 101/
            logs
               server.log
               access.log
         App 201/
            logs
               stdout.log
               jdbc.log
               timing.log
     CustomerBar/
         App 101/
          ....
         App 301/
             logs/
                monitor.log

Они будут отправляться на центральный сервер с такой структурой. (Имя клиента уникально на предприятии, поэтому конфликтов не будет)

LogServer
d:/
  logfiles/
     CustomerFoo  
         App 101/
            logs/                   
         App 201/
            logs/
               ...
     CustomerBar/
         App 101/
          ....
         App 301/
             logs/

Желаемый результат

Окружающая среда

Заранее спасибо!

Я предлагаю системный журнал. Это стандарт того, чего вы хотите.

Ваше приложение должно иметь возможность разговаривать с системным журналом, предпочтительно с удаленным сервером системного журнала. Похоже, вы используете Java? Надеюсь, вы используете Log4J, потому что он будет говорить о системном журнале. Затем вы указываете им на свой сервер системного журнала. для Windows доступны коммерческие и бесплатные серверы системного журнала.

В качестве альтернативы вы можете записать все из своего приложения в журнал событий Windows, а затем использовать подписки / коллекцию журнала событий, чтобы передать их на другой компьютер Windows, к которому вам разрешен доступ.

Как вы понимаете, сделать это с помощью только текстовых журналов, когда у вас несколько узлов, сложно. Конечно, вы можете просто запросить доступ только для чтения к каталогам, в которых в настоящее время находятся журналы.