```{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 `
```