Size: a a a

2020 January 22

k

kiosaku in nginx_ru
сливай по udp
источник

k

kiosaku in nginx_ru
возможно, rsyslog не успевает вычитывать … посмотри ошибки у него
источник

AN

Anton Noginov in nginx_ru
Andrey Yanda
Всем привет! Может кто-то сталкивался с подобной проблемой. Есть centos 7 и nginx, который сливает access-логи в /dev/log. /dev/log это сокет, который слушает journald. Приодически бывают всплески запросов (порядка 1000 запросов/сек) и, как результат, не все логи попадают в journald. sendto() возвращает EAGAIN. В systemd-journald.socket пытался изменить ReceiveBuffer (это размер SO_RCVBUF). Также, увеличивал net.core.rmem_max и net.core.wmem_max до размера ReceiveBuffer. Остается последнее - SO_SNDBUF со стороны nginx, если я все верно понимаю. Собственно, вопрос, насколько возможно его изменить? Или я иду в неверном направлении?
Сливай напрямую в сислог, мимо журнала
источник

AY

Andrey Yanda in nginx_ru
Прошу прощения, я испугался и забыл про net.core.wmem_max и net.core.wmem_default, увеличил значения - заработало нормально. Более того, что-то мне подсказывает, что в этой ситуации могло спасти только использования логирования в файлы, так как что журнал, что rsyslog, и там, и там - UDP
источник

AN

Anton Noginov in nginx_ru
Andrey Yanda
Прошу прощения, я испугался и забыл про net.core.wmem_max и net.core.wmem_default, увеличил значения - заработало нормально. Более того, что-то мне подсказывает, что в этой ситуации могло спасти только использования логирования в файлы, так как что журнал, что rsyslog, и там, и там - UDP
Откуда в /dev/log udp?
источник

AY

Andrey Yanda in nginx_ru
хм, действительно)
источник

k

kiosaku in nginx_ru
Andrey Yanda
Прошу прощения, я испугался и забыл про net.core.wmem_max и net.core.wmem_default, увеличил значения - заработало нормально. Более того, что-то мне подсказывает, что в этой ситуации могло спасти только использования логирования в файлы, так как что журнал, что rsyslog, и там, и там - UDP
да и писать в /dev/log так себе идея. вызов-то блокирующий
источник

k

kiosaku in nginx_ru
остановишь journald и всё, хана nginx-у ...
источник

AY

Andrey Yanda in nginx_ru
Разве? Сокет вроде как неблокирующий
источник

AY

Andrey Yanda in nginx_ru
static ngx_int_t
ngx_syslog_init_peer(ngx_syslog_peer_t *peer)
{
   ngx_socket_t  fd;

   fd = ngx_socket(peer->server.sockaddr->sa_family, SOCK_DGRAM, 0);
   if (fd == (ngx_socket_t) -1) {
       ngx_log_error(NGX_LOG_ALERT, ngx_cycle->log, ngx_socket_errno,
                     ngx_socket_n " failed");
       return NGX_ERROR;
   }

   if (ngx_nonblocking(fd) == -1) {
       ngx_log_error(NGX_LOG_ALERT, ngx_cycle->log, ngx_socket_errno,
                     ngx_nonblocking_n " failed");
       goto failed;
   }

   if (connect(fd, peer->server.sockaddr, peer->server.socklen) == -1) {
       ngx_log_error(NGX_LOG_ALERT, ngx_cycle->log, ngx_socket_errno,
                     "connect() failed");
       goto failed;
   }
   
   peer->conn.fd = fd;

   /* UDP sockets are always ready to write */
   peer->conn.write->ready = 1;

   return NGX_OK;
источник

AY

Andrey Yanda in nginx_ru
и он это проверяет при создании сокета
источник

AY

Andrey Yanda in nginx_ru
к слову, вот как выглядит перезапуск journald в логах nginx
2020/01/22 14:13:00 [error] 1193#1193: send() failed (111: Connection refused)
источник

k

kiosaku in nginx_ru
а, вспомнил, когда сокет слушался, но из него не читалось, то при попытке записи подвисало
источник

k

kiosaku in nginx_ru
хотя это пару лет назад было
источник

AN

Anton Noginov in nginx_ru
А в чем вобще сакральный смысл сначала писать строку в журнал, перепаковывать в бинарный вид, писать в файл, потом читать сислогом из файла, переформатировать назад в строку, и писать в другой файл?
источник

А

Аза in nginx_ru
Добрый вечер
источник

А

Аза in nginx_ru
можете подсказать
источник

А

Аза in nginx_ru
adding module in ../nginx-rtmp-module
+ ngx_rtmp_module was configured
adding module in ../nginx-rtmp-module/hls
./configure: error: no ../nginx-rtmp-module/hls/config was found
источник

А

Аза in nginx_ru
root@debian:~/nginx-1.14.2# ./configure --add-module=../nginx-rtmp-module --add-module=../nginx-rtmp-module/hls
источник

А

Аза in nginx_ru
Аза
adding module in ../nginx-rtmp-module
+ ngx_rtmp_module was configured
adding module in ../nginx-rtmp-module/hls
./configure: error: no ../nginx-rtmp-module/hls/config was found
Выдает ошибку
источник