«Без сервера» в основном означает, что у вас есть относительно простые микросервисы, как правило, небольшое веб-приложение или одна функция, которая автоматически подключается к интерфейсу REST. Применяются те же понятия, что и при использовании более традиционных веб-сервисов: обычно это некоторая смесь удаленных разработчиков syslog и ElasticSearch.
Сетевой или удаленный системный журнал существует уже давно и имеет достаточно надежный набор инструментов. Вам придется запустить центральный сервер (ы) системного журнала, но протокол очень прост, и на каждом языке есть чистые клиентские библиотеки, которые вы можете использовать для отправки журналов. Одной из распространенных проблем с удаленным системным журналом является то, что он традиционно основан на UDP. Это означает, что при большой нагрузке некоторые сообщения журнала могут быть потеряны. Это может быть полезно, помогая избежать каскадной перегрузки, но об этом нужно знать. Некоторые новые демоны syslog также поддерживают протокол на основе TCP, но поддержка клиентов менее унифицирована, поэтому просто сделайте свое исследование.
Более свежая, но очень популярная регистрация в ElasticSearch. Это в основном полезно из-за панели инструментов Kibana и Logstash takelit (часто называемых ELK, ElasticSearch + Logstash + Kibana). Amazon даже предлагает размещенный вариант ElasticSearch, что облегчает начало работы. ES использует относительно простой REST API, поэтому любой язык с HTTP-клиентом (читай: все) должен быть в порядке с регистрацией в ES, но убедитесь, что вы осторожны с блокировкой сетевых операций в случае частичных сбоев системы (т.е. убедитесь, что ваш приложение не застревает в вызове журнала, который никогда не преуспеет и не прекратит обслуживание пользовательских запросов).
Более сложные топологии ведения журналов ограничены только вашим воображением, хотя в наши дни вы увидите, что база данных Kafka / очередь / все, что вы хотите позвонить ей в качестве связующего звена в очень сложных системах распространения журналов будет широко использоваться. ,
На стороне «без сервера» вы, как правило, захотите интегрироваться с этими системами непосредственно на сетевом уровне, поэтому отправка данных журнала напрямую в syslog или ES из вашей службы / функции, а не запись в локальные файлы (хотя, может быть, эхо тоже для локальной отладки и разработки).