У меня есть приложение, которое просто записывает в файл. Я планирую развернуть это приложение в облаке. Если я разверну его на экземплярах AmazonEC2 (нескольких), я захочу отслеживать журналы каждого экземпляра. Что-то, что отображает журналы в структурированном виде и предупреждает, если в журнал заносится что-нибудь серьезное.
Любые идеи ?
ps: если это повторяющийся вопрос, не стесняйтесь ссылаться на этот вопрос здесь
Я использую для этого syslog-ng, вы можете настроить syslog-ng на своем локальном компьютере для чтения из файла назначения (или вы можете сделать журнал своего приложения в syslog), а затем отправить его на конечный компьютер, где все журналы либо объединены в один, либо разделены на разные файлы и даже в структуру каталогов.
На стороне клиента
source yourservice {
file("/var/log/xxx.log" follow_freq(1) flags(no-parse));
};
destination yourcollector {
tcp("xx.xx.xx.xx" port(65140));
};
log { source(yourservice); destination(yourcollector); };
Затем на сервере-сборщике
source yourservice {
tcp(port(65140) keep-alive(yes));
};
destination yourservice_dir { file("/var/log/yourservice/$YEAR/$MONTH/yourlog-$YEAR-$MONTH-$DAY" create_dirs(yes) template("$MESSAGE\n") template_escape(no));};
log { source(yourservice); destination(yourservice_dir); };
Вы можете изменить параметры места назначения, чтобы добавить или удалить переменные, чтобы разделить его в одном или нескольких журналах.