Server logs

ndavydov

New Member
Здравствуйте!

Подскажите, пожалуйста, столкнулся с проблемой, работал сервер уже полтора месяца, и почему-то сейчас обнаружил, что логи перестали писаться с 13 ноября, перезапустил сервер, удалил папки в server_logs, и логи начали заново идти, в чем может быть проблема?

И еще не могли бы вы подсказать, может где-то есть гайд по тому, как настроить экспорт логов через fluentbit в yandex cloud logging?
 

Max

Administrator
Staff member
Добрый день
Подскажите, пожалуйста, столкнулся с проблемой, работал сервер уже полтора месяца, и почему-то сейчас обнаружил, что логи перестали писаться с 13 ноября, перезапустил сервер, удалил папки в server_logs, и логи начали заново идти, в чем может быть проблема?
Скорее всего, закончилось место на том дисковом ресурсе, куда писались логи. Настройте периодическую очистку старых логов через cron, например
Code:
find /usr/local/FlashphonerWebCallServer/logs/server_logs/ -type f -mdays +14 | xargs rm -rf
И еще не могли бы вы подсказать, может где-то есть гайд по тому, как настроить экспорт логов через fluentbit в yandex cloud logging?
Есть статья в документации Yandex.Cloud. В ней приводится пример экспорта логов от сервиса (фактически выборка из syslog). А в этой статье показан пример экспорта логов из файла на диске. Обратите внимание, что экспортировать надо файл /usr/local/FlashphonerWebCallServer/logs/server_logs/flashphoner.log, т.к. FluentBit использует tail -f для мониторинга файловых логов.
 

ndavydov

New Member
Да, с диском конечно получилось смешно) Дефолтный мониторинг Яндекса этого не показывает, настроил прометеус по вашим гайдам и стало все явно видно, спасибо!
 

ndavydov

New Member
С логами вроде разобрался, но появилась другая проблема, мы передаем record: false, но в папке recording все равно есть записи, подскажите, пожалуйста, как такое может быть возможно?
 

Max

Administrator
Staff member
Как именно передаете record: false и какие настройки flashphoner.properties на стороне сервера?
/usr/local/FlashphonerWebCallServer/conf/flashphoner.properties

{record: "false"}
Если так передать, то скорее всего будет записывать

{record:false}
Если передать так, то не будет

Демо пример записи:


Code:
function publishStream(session) {
    var streamName = $('#url').val().split('/')[3];
    session.createStream({
        name: streamName,
        display: localVideo,
        record: true,
        receiveVideo: false,
        receiveAudio: false
    }).on(STREAM_STATUS.PUBLISHING, function (stream) {
        setStatus(stream.status());
        onStarted(stream);
    }).on(STREAM_STATUS.UNPUBLISHED, function (stream) {
        setStatus(stream.status());
        showDownloadLink(stream.getRecordInfo());
        onStopped();
    }).on(STREAM_STATUS.FAILED, function (stream) {
        setStatus(stream.status(), stream.getInfo());
        showDownloadLink(stream.getRecordInfo());
        onStopped();
    }).publish();
}
 

ndavydov

New Member
Передаем вот так



JavaScript:
        mediaProvider: MEDIA_PROVIDER,
        display: userVideoRef.current,
        name: createStreamName(roomID, id),
        constraints: {
          audio: {
            fec: true,
            stereo: true,
          },
          video: DEFAULT_VIDEO_SETTINGS,
        },
        record: false,
        receiveVideo: false,
        receiveAudio: false,
        disableConstraintsNormalization: true,
        cacheLocalResources: true,
        videoContentHint: 'motion',
        transport: 'TCP',
Config

Code:
# Config flashphoner.properties
# To get more settings:
# ssh -p 2001 admin@localhost
# default password: admin
# show node-settings
# show node-settings | grep port

#server ip
ip                     =84.201.149.130
ip_local               =10.131.0.34

#webrtc ports range
media_port_from        =31001
media_port_to          =32000

#codecs
codecs                   =opus,alaw,ulaw,g729,speex16,g722,mpeg4-generic,telephone-event,h264,vp8,flv,mpv
codecs_exclude_sip       =mpeg4-generic,flv,mpv
codecs_exclude_streaming =flv,telephone-event
codecs_exclude_sip_rtmp  =opus,g729,g722,mpeg4-generic,vp8,mpv

#websocket ports
ws.port                 =8080
wss.port                =8443

client_mode=false

rtc_ice_add_local_component=true
# client_log_level=DEBUG
 

ndavydov

New Member
Причем выглядит так, как будто это эпизодически произошло, тк сегодня было 2 звонка и ничего не записалось нового
Могло ли оно записать, когда я использовал demo админку инстанса? Просто странно, я там пробыл наверно минуты 2, а заполнило это сразу 3 ГБ памяти, не очень очевидный момент
 

ndavydov

New Member
Подскажите, пожалуйста, насчет логов - можно ли как-то так настроить, чтобы они форматировались под json и были связаны между собой room name? типа чтобы у логов относящихся к определенному названию комнаты был всегда ключ room_name: <название комнаты>? Так было бы очень удобно смотреть логи
 

ndavydov

New Member
Вообще может быть у вас есть какой-то удобный пример для фильтра, чтобы настроить log4j так, чтобы он писал json с осмысленными лог полями?
 

Max

Administrator
Staff member
Добрый день.
Логи выводятся только в текстовом формате: время, имя функции, содержимое сообщения. Если необходима фильтрация по содержимому сообщения, следует использовать внешние системы сбора логов: FluentBit, Splunk и т.п. Готовых примеров настройки у нас, к сожалению, нет.
При использовании SFU в кейсе видео/аудио чатов логи по каждой комнате пишутся в отдельный каталог logs/sfu/ROOM1
 
Top