```{index} 500, ошибки, мониторинг ``` # Стек отслеживания 50х (v2) ```{note} Эта статья с изменениями от 09-го апреля 2021 г. В wiki сохранилась также первая версия статьи, и я не стал удалять её. Посмотреть её можно здесь: {doc}`/docker/stack-50x-old` ``` ## Порядок работы На докере `infra-docker` задеплоен код `memcached` + специально подготовленный контейнер с `php-fpm`. Чтобы запустить систему отслеживания нужно: 1. Сбилдить контейнер с тегом: ```bash docker build . --tag=registry.appworks.ru/infra/php-fpm:7.4 ``` 2. После завершения билда запушить в registry: ```bash docker push registry.appworks.ru/infra/php-fpm:7.4 ``` 3. Запустить стек: ```bash docker stack deploy --with-registry-auth \ -c docker-compose-fpm.yml trace50x ``` 4. Настроить реверс-прокси на проксирование `fastcgi` в контейнер `php-fpm`. 5. Добавить код на страницу перед закрывающимся `body`: ```html ``` ## Пример конфигурации nginx: ```nginx server { listen 80; listen 443 ssl; include /etc/nginx/conf.d/ssl-settings.rules; ssl_certificate /run/secrets/cloudflare-origin.crt; ssl_certificate_key /run/secrets/cloudflare-origin.key; server_name catch.appworks.ru; set $host_header "catch.appworks.ru"; if ($scheme = http) { return 301 https://$host_header$request_uri; } charset utf-8; access_log /dev/stdout; add_header 'Access-Control-Allow-Origin' '*' always; add_header 'Access-Control-Allow-Credentials' 'true' always; add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS' always; add_header 'Access-Control-Allow-Headers' 'Authorization, Accept, ' 'Accept-Charset, X-Requested-With, User-Agent, Cache-Control, ' 'Content-Type, Content-Length, Content-Range, ' 'If-Modified-Since, x-language' always; add_header 'Access-Control-Max-Age' 3600 always; root /var/www; location / { fastcgi_split_path_info ^(.+\.php)(.*)$; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info; fastcgi_param SCRIPT_FILENAME $document_root/route.php; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param QUERY_STRING $request_uri; include fastcgi_params; fastcgi_pass 11.100.250.9:34599; fastcgi_index route.php; } location ~*i (\.(bak|config|sql|fla|psd|ini|log|sh|inc|swp|dist|git|.docker.config)|~)$ {return 418;} } ``` ## Общая схема взаимодействия ```{figure} img/errors-tracing.png :alt: Общая схема взаимодействия стека отслеживания ошибок :target: /_images/errors-tracing.png Общая схема взаимодействия стека отслеживания ошибок ``` ```{seealso} Связанная статья по настройке мониторинга: {doc}`/zabbix/monitoring-50x` ``` ```{index} вложения ``` ```{admonition} Вложения - {download}`SiteFactory_ErrorsTracer_2020-12-01.zip ` - {download}`docker-compose-fpm.yml ` - {download}`Errors_Tracing.drawio ` ```