Указывает на домен на котором развернута система, он будет добавляться к ссылкам, по нему будет определяться какие ссылки являются внутренними Например:
environment:
APP_HOST: tasks.demius.ru
По умолчанию логи выводятся в stderr, благодаря чем их можно читать через docker log, или же использовать свои
системы сбора логов с контейнеров.
Вывод логов через gelf позволит получить более подробную информацию, а так же эффективнее по ней искать.
Для подключения заведены новые env-переменные GRAYLOG_HOST и GRAYLOG_PORT, их можно указать их в docker compose файле
environment:
GRAYLOG_HOST: logs.develop.int
GRAYLOG_PORT: 12201 # порт по умолчанию можно не указывать
Для того чтобы отделить логи системы от логов других систем, они маркируются атрибутом ‘service’ с значением равным установленному APP_HOST
Так же нужно скопировать директорию config/prod отдельно, отредактировать там файл конфигурации
config/prod/packages/monolog.yaml
monolog:
handlers:
main:
type: fingers_crossed
action_level: error
handler: graylog
excluded_http_codes: [404, 405]
graylog:
type: gelf
publisher: { id: 'gelf.publisher' }
formatter: 'monolog.formatter.gelf_message'
channels: ['!event']
level: info
Для отправки в graylog нужно установить значение handler: graylog. Так же там можно настроить, уровень лога, который отправляется, исключить какие-то из каналов. Или даже задать несколько разных хэндлеров для разных каналов или уровней, отправляющий в разные хосты graylog После чего подмонтировать её в контейнер
volumes:
- '<your path to config>:/app/config/prod:ro'
Опционально можно переопределить атрибут в который записывается информация о сервисе. По умолчанию это атрибут ‘service’
и в него кладется значение переменной APP_HOST.
environment:
GRAYLOG_TAG: 'tndt:php'
GRAYLOG_TAGNAME: 'tag'
после чего к записям лога будет добавляться атрибут ‘tag’ со значением ‘tndt:php’, это позволит использовать настроенные ранее правила распределения логов по streams.