Система мониторинга

Ключ
Эта строка удалена.
Это слово было удалено. Это слово было добавлено.
Эта строка добавлена.

Изменения (39)

просмотр истории страницы

# /app/collector/service build: [FAILED]{code}
Необходимо проверить, чтоб файлы в данном контейнере не были заблокированы или использовались каким-либо пользователем в системе.
В конфигурационном файле [collector|CarbonBilling:Collector] настроено сохранение [детальной статистики|CarbonBilling:Описание работы служб сбора статистики] на отдельный диск:
{code}# grep mount /app/collector/cfg/config
{code}- check_events_stack_compact_count.sh: ERROR(1) [СБОЙ ]{code}

Возникает при количестве событий больше 100000 в таблице events_stack_compact. В таблице events_stack_compact собираются события, связанные с отправкой команд на оборудование, но ещё не обработанные биллингом. Примеры состояния абонента и событий которые отправляются на оборудование после их обработки Вы можете посмотреть по [ссылке|Состояния пользователей, услуг и команды управления интернет].
Большое количество событий в таблице events_stack_compact может быть вызвано возрошей нагрузкой на биллинг. Например массовая авторизация абонентов при перезагрузке оборудования. При этом имеется проблема производительности сервера биллинга, в следтвии которой события не могут быть оперативно обработаны. Наблюдать за количеством событий можно с помощю следующего запроса.
{code}# sqlexec "select count(*) from events_stack_compact"
110249
{code}
Проверьте сервер биллинга на соответствие [системным требованиям|Системные требования] и проверьте, какие события собираются [в стеке|CarbonBilling:nas_event_daemon]. Если количество не уменьшается, то следует обратиться в техническую поддержку для решения проблем с производительностью.

{info}Если в стеке скопились команды отправки на маршрутизаторы *Mikrotik*, проверьте количество записей в _address list_:



{info}Если в стеке скопились команды отправки на маршрутизаторы *Mikrotik*, проверьте количество записей в _address list_:
{code}/ip firewall address-list print count-only{code}
{code}2019-05-07 10:01:00,717 1690 nas_event_daemon/lifestream CRITICAL Невозможно получить пользователей, т.к. не найден NAS{code}
В хранилище OSS схем (/app/asr_billing/var/oss/core) существует папка с OSS-схемой IPTV, при этом сам NAS не заведён в биллинге.
Для решения проблемы заведите NAS в ббиллинге или удалите OSS директорию.
Если удаляете OSS директорию NAS IPTV в каталоге */app/asr_billing/var/oss/core/*, обязательно, после этого требуется выполнить перезапуск службы *nas_event_daemon*.
{code}chroot /app/asr_billing/ service nas_event_daemon restart {code}

h3. Сервер ответил ошибкой
Для решения, актуализируйте данные по приставкам в биллинге или удалите устройство на портале.

h3. Специфическая ошибка Смотрёшки
{code}2020-04-13 12:01:03,366 - worker - lifestream_sync - ERROR - Произошла ошибка
2020-04-13 12:01:03,366 31543 nas_event_daemon/lifestream ERROR Произошла ошибка{code}
В данном случае нужно смотреть полный лог Смотрёшки и анализировать конкретную ошибку.
Лог находится по пути */app/asr_billing/var/log/nas_event_daemon/lifestream.log*

Во-первых можно попробовать воспроизвести ошибку: включите непрерывный мониторинг лога в одном терминале:
{code}tail -f /app/asr_billing/var/log/nas_event_daemon/lifestream.log{code}
И перезапустите сервер синхронизации в другом:
{code}chroot /app/asr_billing/ service oss restart{code}
Из полученного лога в первом терминале можно сделать какие-то выводы. Если происходит ошибка, в выводе можно будет увидеть команду которую выполнял биллинг и что получил в ответ. Например:
{code:title=Команда} result.request.method=GET
result.request.url=https://best_isp.proxy.lfstrm.tv/v2/accounts?page_size=50000&page=0
result.request.body=None {code}
{code:title=Ответ} result.status_code=500
result.content={"error": "argument of type 'NoneType' is not iterable"}{code}
Получив вывод лога и возникшую ошибку, Вы можете обратиться в Смотрёшку и уточнить почему API вернул ошибку.

h2. check_error_django.sh
{code}- check_error_django.sh: ERROR(2) [СБОЙ ]
Ошибка функции *web_api_get* говорит о том, что скорей всего проблема в выполняемых к биллингу API-запросах. Отладить это можно по статье [CarbonBilling:API REST v2.0], раздел "*Отладка*"

h3. Нужно добавить префикс для логинов в настройках услуги\!

{code}2019-09-12 08:35:17,269 - django - commands - ERROR - Логин {0} состоит из одних цифр и может быть не принят!
Ошибка говорит о том, что в услуге создающей учетную запись не задан префикс. Вероятней всего ошибка возникла при [настройке услуг IPTV|CarbonBilling:Настройка услуг IPTV]


Посмотреть список услуг создающих учетные записи и из префиксы можно через [конструктор отчетов|CarbonBilling:Конструктор отчетов] таким запросом:


h3. Сервис IPTV недоступен (ERROR - Произошла ошибка)

В логе на котрый ссылается тест написано что просто произошла ошибка:
{code}2019-12-16 05:39:40,098 - worker - lifestream_sync - ERROR - Произошла ошибка{code}



h3. account_traf - Не найден абонент для N записей (некорректная настройка Collector)
{code}2019-02-22 08:38:02,458 - worker - account_traf - ERROR - Не найден абонент для 367 записей{code}
172.31.10.2{code}

h3. account_traf - Неизвестный трафик (NAS не опознал трафик)
{code}
2020-04-27 03:35:19,771 - worker - account_traf - WARNING - Неизвестный трафик: user_id=-1, user_ip=0 (NAS не опознал трафик)
2020-04-27 04:05:12,614 - worker - account_traf - WARNING - Неизвестный трафик: user_id=-1, user_ip=0 (NAS не опознал трафик)
2020-04-27 04:35:22,370 - worker - account_traf - WARNING - Неизвестный трафик: user_id=-1, user_ip=0 (NAS не опознал трафик)
2020-04-27 05:05:11,747 - worker - account_traf - WARNING - Неизвестный трафик: user_id=-1, user_ip=0 (NAS не опознал трафик)
2020-04-27 05:35:21,180 - worker - account_traf - WARNING - Неизвестный трафик: user_id=-1, user_ip=0 (NAS не опознал трафик)
2020-04-27 06:05:11,770 - worker - account_traf - WARNING - Неизвестный трафик: user_id=-1, user_ip=0 (NAS не опознал трафик)
2020-04-27 06:35:11,355 - worker - account_traf - WARNING - Неизвестный трафик: user_id=-1, user_ip=0 (NAS не опознал трафик)
2020-04-27 07:05:14,855 - worker - account_traf - WARNING - Неизвестный трафик: user_id=-1, user_ip=0 (NAS не опознал трафик)
2020-04-27 07:35:08,466 - worker - account_traf - WARNING - Неизвестный трафик: user_id=-1, user_ip=0 (NAS не опознал трафик)
{code}
В данном случае NAS не смог распознать трафик и прислал трафик с IP адресом 0.0.0.0 Для начала убедимся, что действительно в collector приходит netflow поток с неверным IP адресом в содержимым:
# Включим повышенное логирование в контейнере collector:
{code}
mkdir -p /app/collector/cfg/etc/netflow_collector/
cp -p /app/collector/etc/netflow_collector/nf_collector.conf /app/collector/cfg/etc/netflow_collector/nf_collector.conf
sed 's|LOG_LEVEL=0|LOG_LEVEL=3|' -i /app/collector/cfg/etc/netflow_collector/nf_collector.conf
/app/collector/service restart
{code}
# Подождём 5 минут, чтобы накопились данные в логе.
# Проверим какие IP адреса не смог распознать collector. Мы видим в первой записи адрес 0.0.0.0
{code}
grep 'New entry for ip' /app/collector/var/log/nf_collector.log | awk '{print $12}' | sort -u | head -n 3
0.0.0.0
10.0.0.20
10.100.20.20
{code}
# Выключим расширенное логирование collector
{code}
rm -f /app/collector/cfg/etc/netflow_collector/nf_collector.conf
/app/collector/service restart
{code}

Теперь мы убедились, что в netflow потоке приходит IP адрес 0.0.0.0 Для исправления проблемы вам нужно настроить поток netflow на NAS, для этого обратитесь к официальной документации по своему NAS.

h3. account_voip - Проблема с межоператорским расчетом звонка VoipLog
{code}2019-04-04 16:27:42,794 - worker - account_voip - ERROR - Проблема с межоператорским расчетом звонка VoipLog [ id=805042, src=71111111111, dst=72222222222, s_time=2019-04-04 16:26:30, suid=CDR_SMG1016201904041626305842335, dst_chan=Provider2 ] Доступные операторы: Abonents [ id=1418, name=ООО "Лучший провайдер" ]{code}
Решение проблемы описано в статье "[CarbonBilling:FAQ по ошибкам телефонии]"

h3. account_voip - Вы используете deprecated настройки для парсера CDR / Для OSS схемы 250002 не настроен обработчик CDR
{code}2020-04-20 08:44:41,544 - worker - account_voip - WARNING - Вы используете deprecated настройки для парсера CDR.
2020-04-20 08:44:41,544 - worker - account_voip - ERROR - Для OSS схемы 250002 не настроен обработчик CDR{code}
Данная ошибка проявляется, когда в биллинге создан VOIP NAS, но не инициализирован и отсутствуют правила обработки CDR-файлов. Для решения проблемы, необходимо выполнить настройку по инструкции: "[CarbonBilling:Настройка парсинга CDR]":
# Инициалихируйте NAS
# Добавьте настройки CDR-парсера из статьи

h3. account_traf - Очень старая дата у трафика\!
{code}2019-08-28 12:41:40,184 - worker - account_traf - ERROR - Очень старая дата у трафика! Проверьте настройки NAS! Дата: 2010-10-24 02:43:35, User ID: 4769, NAS: 10.0.0.1{code}
{info}Чтобы посмотреть по какой учетной записи возникла проблема в интерфейсе биллинга, подставьте ID из ошибки в адресную строку.
*Пример*. Допусти Вы подключаетесь к биллингу по IP 192.168.0.10, ссылка на учетную запись ID 4769 будет такой: [http://192.168.0.10/admin/Users/4769]

{info}
Настройка netflow-потоков подробно описана в [статье|Настройка и проверка netflow-потоков]. Для того, что бы решить проблему выполните:

h2. test_free_space.sh

h3. check_free_fs_space failed
{code}- test_free_space.sh: ERROR(1) [FAILED]

2019-04-10 07:54:55 billing5_server test_free_space.sh[16503]: check_free_fs_space failed on /tmp used 96% when used_limit 85% and free 4741708 when free_limit 5000000
2019-04-10 07:54:55 billing5_server test_free_space.sh[16503]: Filesystem 1K-blocks Used Available Use% Mounted on - 10572056 2253400 7774964 23% /mnt/backup - 85501368 3777096 77374372 5% /mnt/db - 3964096 47108 3712292 2% /mnt/etc - 53396996 5200816 45477104 11% /mnt/log - 9947884 6264104 3171788 67% /mnt/shared - 106925104 96745248 4741700 96% /mnt/var
2019-04-10 07:54:55 billing5_server test_free_space.sh[16503]: ALARM Свободное место на диске заканчивается!

/usr/local/angel/test_free_space.sh ERROR(1)
Create_date: 2019-04-10 07:54:55{code}
Функция +check_free_fs_space+ проверяет наличие свободного места на разделах /var/db, /tmp/ (смонтирован на /mnt/var хост системы), /var/log внутри контейнера биллинга.
Если в описании заявки ошибка возникла в проверке "check_free_fs_space failed", используя утилиту *df \-h* проверьте на каком из разделов места недостаточно (занято более 85%).
Определить проблемный раздел можно с помощью следующих команд:
1. создать временный каталог _tmproot_.
{code}mkdir tmproot {code}
2. примонтировать необходимый раздел к _tmproot_.
{code}mount /dev/sda1 tmproot/{code}
3. постепенно найти папку которая занимает больше всего места.
{code}du -sh tmproot/* | egrep 'M|G' {code}

Утилитами *rm*, и *mv* Вы можете удалить или перенести данные на другой раздел.

4. отмонтировать раздел от каталога.
{code}umount tmproot/{code}

h3. check_db_space
{code}- test_free_space.sh: ERROR(1) [FAILED]

2019-04-10 10:04:24 localhost.localdomain test_free_space.sh[8221]: check_db_space /var/db/billing.gdb size is 1587576832 and on /var/db used 76%
2019-04-10 10:04:24 localhost.localdomain test_free_space.sh[8221]: TRIPLE_BILLING_DB_SIZE=6350307328; FREE_SPACE=6119776256
/usr/local/angel/test_free_space.sh ERROR(1)
Create_date: 2019-04-10 10:04:24{code}
Функция +check_db_space+ Тест *test_free_space.sh* проверяет что на разделе /var/db (/mnt/db в хост системе) свободного места в три раза больше текущего размера БД биллинга.
В первую очередь проверьте следующие папки:
* /mnt/db/app/asr_billing/db/notstopped - базы, поврежденные в результатате некорректного завершения работы сервера.
h1. Тесты collector

h2. check_nf_collector_listen.sh

{code}
Netflow Collector не запущен
Останавливается Netflow collector: [СБОЙ ]
nf_collector disabled in /cfg/config
is stopped

/usr/local/angel/check_nf_collector_listen.sh ERROR(2)
Create_date: 2020-05-16 22:40:10
{code}

Тест проверят запущена ли служба [nf_collector|Collector#NetflowCollector]
Обычно ошибка возникает, если на разделе со статистикой кончилось [место|#check_disk_space_stat.sh]. Сбор статистики был остановлен.
{warning}
Если служба сбора статистики выключена, биллинг не сможет считать объём трафика.
{warning}

h3. Как исправить проблему

Наиболее вероятной причиной отключения коллектора является переполнение раздела с детальной статистикой - это проверяет автоматический тест *check_disk_space_stat.sh*
Перейдите по [ссылке|#checkdiskspacestat.sh] - там описано как решить проблему.

h2. check_critical_traf_reporter.sh
{code}- check_check_critical_traf_reporter.sh: ERROR(1) [СБОЙ ]



h2. check_bstat_check_raw_stat.sh
{code} Отсутствует сырая статистика
{info}Объём статистики за 7 дней вычисляется исходя из архива предыдущих месяцев - тест ищет в каком периоде было больше всего статстики, делить объём на 30 и умножает на 7.{info}
{note}Рекомендуемый объём диска *1ТБ*, диска меньшего объёма скорей всего надолго не хватит.{note}
{warning}Если служба сбора статистики выключена, биллинг не сможет считать объём трафика. После очистки места на диске включите службу по статье: [nf_collector|Collector#NetflowCollector].{warning}

h3. Как исправить проблему

# Освободите место, чем больше - тем лучше, *свободным должно быть хотя бы 200Гб*
# После очистки места на диске включите службу:
## В файле */app/collector/cfg/config* поменяйте значение опции *app\['nf_collector.enabled'\]* на 1, должно получиться так:
{code:title=Команда}grep nf_collector\.enabled /app/collector/cfg/config | grep -v widget{code}
{code:title=Вывод}app['nf_collector.enabled']='1'{code}
## И перезапустите коллектор трафика:
{code:title=Команда}
chroot /app/collector/ service nf_collector restart
{code}
{code:title=Вывод}
Stopping Netflow collector: [FAILED]
Starting Netflow collector: [ OK ]
{code}

h2. check_error_bstad.sh.sh check_error_bstatd.sh
{code} - check_error_bstad.sh: ERROR(2) [СБОЙ ]


h3. Решение выше не помогло, XGE/Softrouter только установили

Файлы классов создаются при первой установке абоненту тарифа ограничением скорости. При свежей установке, создайте такой тариф и назначьте его абоненту чтобы не возникала ошибка теста. В случае, если они не создались после установки тарифа, выполните следующую команду:
{code}for shaperid in `seq 2000 8998`; do touch /app/xge/var/lib/xge_shapers/free/$shaperid; done{code}

# [Включите синхронизацию со стороны XGE|http://docs.carbonsoft.ru/pages/viewpage.action?pageId=38961204#НастройкасвязкисCarbonBilling5-Синхронизациясбиллингом]
# Сбросьте все сессии абонентов на XGE
{code}chroot /app/xge
for sessions in $(xgesh session dump | awk '{print $1}'); do xgesh session $sessions remove; done{code}
# Дождитесь синхронизации или запустите её вручную:



h2. check_xge_httpd_redirect_netstat.sh

Если IP-адрес отличается от указанного выше, необходимо заменить его на 169.254.80.90 и перезапустить контейнер XGE.

h2. check_xge_shapers.sh

Сообщение

{info}
Сломалось дерево шейперов
Пытаемся починить шейперы
Cannot find device "imq0"
Cannot find device "imq1"
Command failed \-:1
Не удалось востановить дерево шейперов из последнего сейва, строим новое дерево шейперов. Требуется синхронизация скоростей
Cannot find device "imq0"
Cannot find device "imq1" {info}

Данная ошибка может возникать в том случае, если сервер загрузился с некорректным ядром. Посмотреть, с каким ядром загружен сервер, можно с помощью команды uname \-a:
{code:title=Команда} uname -a{code}
{code:title=Вывод}Linux localhost_localdomain 2.6.32-754.28.1.el6.x86_64 #1 SMP Wed Mar 11 18:38:45 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux {code}
Для корректной работы шейперов сервер должен быть загружен с одним из следующих ядер:
* Linux-carbon-master
* Linux-carbon-johnik_xge
* Linux-carbon-devel
* Linux-carbon-754

h1. Общие ошибки продуктов на платформе Carbon PL5







h2. ALARM Мало свободного места на диске\!

Ошибка возникает если на одном из разделов занято *более 85%* пространства.

h3. Диагностика в командной строке:
Решение подобных проблем довольно обширная тема, поэтоу мы вынесли её в отдельную статью [CarbonBilling:Мало места на диске]

1. Проверям какой раздел заполнен:
{code}
df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 3,7G 1,9G 1,6G 55% /
/dev/sda2 14G 6,7G 6,3G 52% /app
/dev/sda3 13G 1,4G 11G 12% /mnt/backup
/dev/sda4 1,9G 36M 1,7G 3% /mnt/etc
/dev/sda5 53G 47,2G 5.8G 89% /mnt/var
/dev/sda6 8,2G 4,3G 3,6G 55% /mnt/log
/dev/sdb1 394G 140G 234G 38% /mnt/stat
/dev/sdb1 394G 140G 234G 38% /app/collector/mnt/var/stat
{code}

Видно, что заполнен раздел /dev/sda5 с логами.
{code}
/dev/sda5 53G 47,2G 5.8G 89% /mnt/var
{code}

2. Теперь нужно узнать какие именно данные занимают раздел. Запускаем комманду подсчёта объёма и двигаемся вглубь файловой системы.
{code}
du -sh /mnt/log/*
{code}

3. После того как найдены данные, которые занимают диск, их необходимо перенести на другой носитель. Или подключить дополнительный диск для их хранения. Для раздела с логами это можно сделать по [инструкции|CarbonBilling:Добавление диска под логи].

{info}
В данном примере рассмотрено заполение раздела с логами. Удалить старые логи можно по [статье|Переполнение разделов диска логами].
{info}

h2. ALARM app заблокирован в течении минут

{code}/app/base/var/log/monitoring.log{code}

h2. ALARM Reboot\! Не могу записать в /tmp/softdog_agent.tmp

Данная ошибка означает, что на текущий момент невозможно работать с корневым разделом (*/*) в системе. Чаще всего это связано с отсутствием свободного места в разделе.
{code}

Также, проблема может проявляться при некорректной работе жесткого диска, или из-за проблем с файловой системой на котором размещен раздел.
Если проблема наблюдается в текущий момент времени, то информацию можно посмотреть с использованием команды *dmesg | \| tail*

h2. WARNING Не запущен kdump
{code}- check_kdump.sh: ERROR(2) [СБОЙ ]
Не запущен kdump. Возможно, нужна перезагрузка сервера.{code}

Окружение, и дисковая подсистема в частности, должна быть совместима с kdump
Для проверки нужно выполнить команду:

{code} /etc/init.d/kdump status {code}

при несовместимости появляется ответ

{code} Kdump is unsupported on this kernel {code}

Точно не поддерживаются:
а) дисковые контроллеры с драйвером cciss (все не новые серверы HP)
б) виртуальные машины Xen HVM с PV-драйверами;
в) паравиртуальные среды (OpenVZ, LXC, Xen PV)


Убедитесь что у Вас установлено и загружено актуальное ядро ОС: если с первым пунктом всё в порядке, но */etc/init.d/kdump start* всё равно выдаёт *"Kdump is not supported on this kernel"*, то:

* Если в [базовом интерфейсе|https://docs.carbonsoft.ru/display/CarbonBilling/Base] есть предложение обновиться, то обновите и перезагрузите сервер
* Если предложения нет, то просто перезагрузить сервер в новом ядре

В некоторых случаях ядро не может само выделить память. Проверяем загрузочный вывод ядра:
{code} grep crash /var/log/dmesg {code}
Появится строка "Reserving xxxMB of memory at ... for crashkernel"

Строка "kexec: crashkernel=auto resulted in zero bytes of reserved memory" появляется, если на сервере менее 2 Гб оперативной памяти. Если объем памяти соответствует системным требованиям, обратитесь в техподдержку.


h2. WARNING Не доступны DNS серверы
{code}- check_dns.sh: ERROR(2) [FAILED]
Скрипт из примера установит timeout=2 в конфигурационных файлах всех контейнеров.

h2. ALARM Billing Сбились настройки coredump
{code}Сбились настройки coredump (возможно сломался carbon_sysctl.d или carbon_limits.d, либо не выполнена перезагрузка после обновления).

/app/base/usr/local/monitoring/check_coredump.sh ERROR(2)
Create_date: 2020-02-26 18:05:04{code}

Данный тест проверяет следующие параметры:
1. Какое ограничение по размеру применяется к файлу дампа (core file size значение unlimited) (carbon_limits.d). Информацию об этом можно посмотреть с помощью команды:
{code}ulimit -a | grep 'core file size'{code}
2. Соответствие имени файла дампа указанному шаблону "/tmp/cores/core.%e.%p.%h.%t" (sysctl kernel.core_pattern) (carbon_sysctl.d). Текущие настройки можно проверить:
{code}sysctl -a | grep 'kernel.core_pattern'{code}




h1. Диагностика в веб-интерфейсе