Система мониторинга. Автоматические заявки FATAL, ALARM, WARNING. Проверка состояния сервера из командной строки.

Skip to end of metadata
Go to start of metadata
Вы просматриваете старую версию данной страницы. Смотрите текущую версию. Сравнить с текущим  |   просмотр истории страницы

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

На платформе Carbon PL5 существует система автоматического тестирования, запускающая тесты всех контейнеров раз в 10 минут. При возникновении ошибки по любому из тестов, создаётся заявка в портале HelpDesk. Помимо тестов server_check существуют так же тест выгрузки резервных копий на FTP и тест на наличие UPS. Также каждые 6 часов, в 5-ю минуту запускается тест monitoring, который запускает проверку всех контейнеров биллинга.

Запуск проверки вручную

Проверку можно запустить вручную, выполнив команду server_check в терминале или открыв диагностику в веб-интерфейсе.

Диагностика в командной строке

1. При каких либо сбоях требуется проверить состояние сервера и работу всех служб. Делается это командой 

server_check

В ответ будет выведено состояние всех служб биллинга. Все службы должны иметь состояние [ OK ]. Если где-то есть сбой, то при обращении в поддержку укажите сбойную службу.

2. Для проверки базы можно посмотреть логи которые ведет система:
лог базы биллинга

cat /app/asr_billing/var/log/firebird/firebird.log

В выводе особое внимание обратить на строки содержащие примерно такие блоки текста

2.1. Повреждена целостность БД, серьезный сбой. Вероятно потребуется восстановление из бекапа:

Database: /mnt/var/db/billing.gdb
database file appears corrupt (/mnt/var/db/billing.gdb)
wrong page type
page 1647 is of wrong type (expected 7, found 5)
internal gds software consistency check (error during savepoint backout (290), file: exe.cpp line: 4026)

2.2. Биллинг не может найти БД, вероятно биллинг в safemode:

Database: /mnt/var/db/billing.gdb
I/O error for file "/mnt/var/db/billing.gdb"
Error while trying to read from file
No such file or directory

2.3. Отдельная запись в таблице помечена как поврежденная:

Database: /mnt/var/db/billing.process.gdb.13836
Record 1002 is marked as damaged in table RDB$RELATIONS (6)

base

check_free_inodes.sh

- check_free_inodes.sh:  ERROR(254)                        [FAILED]

    /dev/md5             9125888 8581637  544251   95% /mnt/var
    ALARM Мало свободных inode
    
    ALARM На одном из устройств осталось мало свободных inode. Возможно какая-то папка забита большим количеством файлов

Ошибка говорит о том, что на одном из дисков слишком много файлов, в результате чего переполнена база файловой системы (inodes).
Для решения проблемы попробуйте перезагрузить сервер - возможно какой-то процесс создал много файлов, удалил, но до сих пор держит их в памяти.
Если перезагрузка не решила проблему, необходимо опеределить где слишком много файлов и удалить лишнее.
Воспользуйтесь утилитой tree, запустив её на указанный раздел:

tree /mnt/var/ | tail -n 1

Вывод будет преблизительно следующим:

39143 directories, 8730047 files

После чего нужно посмотреть сколько занято подпапками:

find /mnt/var -maxdepth 1 -type d | grep -v /$ | while read path; do echo $path; tree $path | tail -n 1; done

И так постепенно можно найти папки в которых находится более всего файлов. Что делать с файлами зависит от конкретной ситуации.
Если лишних файлов не оказалось, - их просто много -, возможно стоит пересоздать файловую систему, зарезервировав под БД файлов больший процент раздела передав команде mkfs параметр -N.
Возможно получится увеличить число inode без пересоздания утилитой tune2fs с ключем -m
Как временно перерести данные Вы можете узнать в разделе "Замена оборудования". Полную информацию по параметрам утилит mkfs и tune2fs Вы можете найти в их справочном руководстве: man mkfs.ext4, man tune2fs

Возмжно предварительно потребуется установить команду man:
yum install -y man

check_apps_not_destroyed.sh

- check_apps_not_destroyed.sh:  ERROR(2)                   [FAILED]

    ALARM Некорректное состояние аппов
    Обнаружены следующие аппы в состоянии destroy, которые должны быть включены:
    	 collector 
    Требуется перезапустить их с помощью /etc/init.d/apps restart

Ошибка говорит о том, что какая-то из подсистем (контейнеров) платформы Carbon остановлена и "разрушена" - под этим понимается что контейнер остановлен и все точки монтирования внутри контейнера размонтированы.
Возможные причины:

  • Ведутся сервисные работы, изменяется конфигурация (например добавляются диски для расширения пространства под какие-либо данные) контейнера
  • При "сборе" контейнера произошла ошибка и какие-то разделы внутри него сервисный скрипт не смог замонтировать
  • Произошла какая-либо иная ошибка при старте системы, из-за которой работа сервисного скрипта запускающего платформу Carbon завершилась некорректно (например, если на диске были обнаружены ошибки и системная утилита mount не смогла собрать контейнер)

Для отладки в первую очередь можно попробовать запустить команду build:

/app/collector/service build

И посмотреть каким будет вывод, исходя из этого пути решения могут быть разными. Ниже рассмотрены возможные проблемы.

Ведутся сервисные работы

Сообщите, пожалуйста, в автоматической создавшейся заявке инженерам техподдержки что ведутся работы.

Ошибка при "сборе конрейнера

Попробуйте найти в журнале сервисного скрипта информацию когда контейнер с котором произошла ошибка запускался:

[root@Billing5 ~]# grep collector /var/log/apps.log  | tail -n 2
Sat Mar 23 17:06:56 +08 2019 collector stop STOPPING
Sat Mar 23 17:07:01 +08 2019 collector stop OK

По данному времени попробуйте найти информацию в логах загрузки (сохраняются в папке /var/log/boot/) и в системном логе */var/log/messages и архивных логах:

cat /var/log/messages*

Возможно в файлов логов удастся найти информацию об ошибках файловой системы или некорректном завершении процессов по котором удастся понять причину почему не запустился контейнер.

Ошибка монтирования

/app/collector build
mount: no such partition found

# /app/collector/service build:                            [FAILED]

В конфигурационном файле collector настроено сохранение детальной статистики на отдельный диск:

# grep mount /app/collector/cfg/config
declare -A mount
mount['1statfs']='-U a7a26c14-e788-40a0-b0f9-f051be5c9e61 /app/collector/var/stat'
mount['2statfsnfsen']='--bind /app/collector/var/stat/nfsen_stat /app/collector/var/nfsen_stat'
mount['3statfsncapdndump']='--bind /app/collector/var/stat/nfcapd_dump /app/collector/var/nfcapd_dump'
mount['proc']='-t proc none /proc'

Но раздела с ID a7a26c14-e788-40a0-b0f9-f051be5c9e61 нет в системе:

[root@st-rline ~]# blkid | grep a7a26c14-e788-40a0-b0f9-f051be5c9e61 -c
0

Весьма вероятно что конфигурационный файл перенесли с другого сервера, но диск на который ранее сохранялась статистика не подключили. Вариантов решения несколько:

  1. Выключите сервер, подключите диск, включите сервер
  2. Настройте сохранение на другой выделенный диск или раздел
  3. Уберите настройку выделенного раздела из конфигурационного файла

asr_billing

check_billing_db_size.sh

- check_billing_db_size.sh:  ERROR(1)                      [СБОЙ ]

    2017-03-03 13:38:47 Чрезмерно большая база данных биллинга

2017-03-03 13:38:47: /usr/local/monitoring/check_billing_db_size.sh ERROR(1): 2017-03-03 13:38:47 Чрезмерно большая база данных биллинга

Ошибка происходит при увеличении размера БД до 10Гб. Почему так происходит, описано в справочной документации firebird.
Со временем база может достичь данного размера по той простой причине, что место на диске не очищается при удалении записей из базы данных, так как это создаст лишнюю постоянную нагрузку на диск и ОЗУ. Записи в БД добавляются постоянно - любые события, происходящие с абонентами, их лицевыми считами, оборудованием, добавляются в стэк событий, обрабатываются воркером, после чего очищаются.
Для решения проблемы Вам необходимо создать бэкап, после чего восстановиться с него же.

check_critical_jobs.sh

- check_critical_jobs.sh:  ERROR(2)                        [СБОЙ ]

    ALARM Имеются критические ошибки в логе jobs_daemon за последний час: 5690

Тест сообщает что при выполнении запланированных задач произошла ошибка. Посмотрел описание ошибки можно в логе службы:

grep CRITICAL /app/asr_billing//var/log/jobs_daemon.log | cut -d' ' -f 8-100 | sort | uniq
CRITICAL - Не удалось выполнить отложенную задачу id=18 абонента Тестовый:Traceback (most recent call last):
CRITICAL - Ошибка выполнения команды python2.7 /usr/lib/python2.7/site-packages/jobs_worker/jobs_scripts/make_reports.pyc  abonent_id=812

В данном случае ошибка возникла из-за некорректного заполнения параметров запланированной задачи на выполнение отчета - не указан ID отчета.
Путей решения задачи два:

  • Исправить параметры, указав верные
  • Удалить запланированную задачу

check_events_stack_count.sh

- check_events_stack_count.sh:  ERROR(1)                   [СБОЙ ]

    2017-03-07 07:32:18 Очень большое количество команд в event_stack

В таблице events_stack собираются события для отправки на оборудования. Большое количество событий связано как правило с проблемами доступа на оборудование (nas недоступен, сменились какие-то параметры вроде логина/пароля/ip, оборудование не принимает CoA и тд). Так же, возможно, что проблема в медленном ответе биллингу от НАСа, так как команды отправляются в заданное количество потоков (по-умолчанию, 1) и каждая следующая выполняется только после ответа от сервера. Убедитесь, что нагрузка процессора и канала на NAS в норме.
Узнать количество скопившихся событий можно выполнив запрос к БД

# sqlexec "select count(*) from events_stack"

       COUNT
============
      122837 

test_radius_nas_list.sh

- test_radius_nas_list.sh:  ERROR(1)                       [СБОЙ ]

    Nas с IP 192.168.0.1 нету в /etc/raddb/clients.conf
    2017-03-21 14:48:52 localhost test_radius_nas_list.sh[1277]: Fix radiusd by restart
    Останавливается radiusd:                               [  OK  ]
    Останавливается radiusd_acc:                           [  OK  ]
    Запускается radiusd:                                   [  OK  ]
    Запускается radiusd_acc:                               [  OK  ]
    Nas с IP 192.168.0.1 нету в /etc/raddb/clients.conf

Тест пытается исправить ошибку автоматический, пересоздав конфигурационные файлы radius. Такое может произойти, например, при обнлении, в случае если radius-сервер запустился раньше чем закончилась перезагрузка СУБД по той или иной причине. Так же ошибка может возникать в случае, если Вы не указали ни OSS-схему ни Тип НАСа при добавлении (например, если добавляли NAS не мастером, или не удалили демонстрационные NAS).

test_radius.py

Для отладки теста и подробного разбора проблемы можно выполнить его в режиме повышенного логирования

chroot /app/asr_billing python /usr/local/angel/test_radius.py --debug

check_error_django.sh

- check_error_django.sh:  ERROR(2)                         [СБОЙ ]

    WARNING Имеются ошибки в логе /var/log/django/error.log за последний час: 1

Причин возникновения этой ошибки может быть несколько и иногда они требуются анализа отделом разработки, однако если посмотреть какие именно были ошибки возможно получится отладить их без привлечения разработчика. Например:

  • 2018-11-15 20:45:08,307 - django - handlers - ERROR - Exeption:'NoneType' object has no attribute '__getitem__' 'NoneType' object has no attribute '__getitem__'
    2018-11-15 20:45:08,307 - django - handlers - ERROR - 'NoneType' object has no attribute '__getitem__' 'NoneType' object has no attribute '__getitem__'
    2018-11-15 20:45:08,307 - django - handlers - ERROR - traceback: ['Traceback (most recent call last):\n', '  File "//usr/local/www/sites/admin/api/handlers.py", line 353, in get\n', '  File "//usr/local/www/sites/admin/api/handlers.py", line 399, in web_api_get\n', '  File "//usr/local/www/sites/admin/api/handlers.py", line 368, in process_method\n', "TypeError: 'NoneType' object has no attribute '__getitem__'\n"]

    Ошибка функции web_api_get говорит о том, что скорей всего проблема в выполняемых к биллингу API-запросах. Отладить это можно по статье API REST v2.0, раздел "Отладка"

check_error_worker.sh

- check_error_worker.sh:  ERROR(2)                         [СБОЙ ]

    ALARM Имеются ошибки в логе worker за последний час: 57

2019-02-22 08:38:32: pl5monitoring ALARM Имеются ошибки в логе worker за последний час: 57

Тест регистрирует наличине некритичных ошибок обработки абонентов, но те не менее требующих реакции администратора или техподдержки.
Узнать что за ошибки произошли Вы можете следующей командой:

grep ERR /app/asr_billing/var/log/worker.log

Ниже приведены кейсы решения некоторых возможных ошибок.

account_traf - Не найден абонент для N записей (некорректная настройка Collector)

2019-02-22 08:38:02,458 - worker - account_traf - ERROR - Не найден абонент для 367 записей

Ошибка говорит о том, что [обработчик абонентов] не смог соотнести с каким-либо абонетом часть данных пришедших от коллектора аккаунтинга интернет-трафика
Это может произойти, если список с учетными записями и их IP-адресами на стороне коллектора устарел, вероятней всего по какой-то причине он не смог его синхронизировать (синхронизация проходит каждые 30 секунд).
В первую очередь стоит посмотреть лог синхронизатора:

# egrep -i 'CRIT|ERR' /app/collector/var/log/sync_billing.log | head -n 2
2019-02-08 03:48:50,602 - CRITICAL - Не удалось выполнить api запрос: http://192.168.8.71:8082/system_api/?arg1=%7B%7D&model=Collector&psw=3ln8bshn&context=collector&method1=collector_manager.collector_get_checked_ip_pools&format=json.
 Error: <urlopen error [Errno 101] Network is unreachable>

Список не обновился потому что в настройках коллектора указан неверный IP-адрес биллинга:

# grep api_ip /app/collector/cfg/config
collector['api_ip.widget']='inputbox "IP адрес для доступа к API биллинга" "IP адрес для доступа к API биллинга"'
collector['api_ip']='192.168.8.71'

Так как коллектор и биллинг находятся на одном физическом сервере, просто в разных контейнерах, в настройках следует указывать локальынй адрес биллинга 169.254.80.82. Приведите параметр к следуещему виду:

collector['api_ip']='169.254.80.82'

И перезапустите коллектор:

/app/collector/service restart

account_traf - Не найден абонент для N записей (аккаунтинг по неизвестным биллингу IP-адресам)

2019-02-26 09:00:51,620 - worker - account_traf - ERROR - Bad traffic row ID=3408858 IP=10.24.240.1
2019-02-26 09:00:51,621 - worker - account_traf - ERROR - Bad traffic row ID=3408857 IP=10.24.240.1
2019-02-26 09:05:48,390 - worker - account_traf - ERROR - Не найден абонент для 4 записей
2019-02-26 09:05:48,392 - worker - account_traf - ERROR - Bad traffic row ID=3409307 IP=172.31.10.2
2019-02-26 09:05:48,392 - worker - account_traf - ERROR - Bad traffic row ID=3409350 IP=192.168.0.110
2019-02-26 09:05:48,393 - worker - account_traf - ERROR - Bad traffic row ID=3409361 IP=172.31.10.1
2019-02-26 09:05:48,393 - worker - account_traf - ERROR - Bad traffic row ID=3409306 IP=172.31.10.2
2019-02-26 09:15:40,475 - worker - account_traf - ERROR - Не найден абонент для 2 записей
2019-02-26 09:15:40,477 - worker - account_traf - ERROR - Bad traffic row ID=3410341 IP=192.168.0.100
2019-02-26 09:15:40,477 - worker - account_traf - ERROR - Bad traffic row ID=3410342 IP=192.168.0.100

В случае если у Вас возникает ошибка аккаунтинга интернет-трафика, при этом в логе Вы видите записи "Bad traffic row", но нет ошибки синхронизации Collector, как в выше приведенном кейсе, вероятней всего проблема в том, что аккаунтинг (netflow) приходит по IP-адресам находящимся в Вашей сети, но не заведенным в биллинг.
Для решения проблемы ограничте набор интерфейсов с которых собирается netflow и разместите хосты вызывающие ошибку за другими интерфейсами BRAS. В случае если это сделать не возможно, например если Ваше оборудование не имеет такой настройки netflow-сенсора или это нарушит структуру сети, назначьте данные адреса учетным записям в биллинге, Вы можете использовать для этого одного абонента назвав его "Служебный трафик" или завести для каждого хоста своего абонента.
Получить список адресов вызывающих ошибку Вы можете следующей командой:

grep 'Bad traffic row ID' /app/asr_billing/var/log/worker.log | awk '{print $14}' | sed 's/IP=//g' | sort | uniq

Примерный результат:

10.24.240.1
172.16.5.148
172.31.10.1
172.31.10.2

ALARM Billing Не настроены реквизиты доступа к администраторской панели для тестирования

Для ускорения работы веб-интерфейса биллинга, планировщик задач ежечасно делает запрос в веб-интерфейс для формирования кеша и проверки отсутствия ошибок в отображении абонентов.

Для корректной работы требуется администратор с правами root. По-умолчанию, в конфигурационном файле биллинга используются учетные данные root с паролем servicemode.

При изменении пароля root, необходимо исправить так же конфигурационный файл. Либо Вы можете создать нового администратора исключительно для данной функции по статье "Интерфейсы пользователей биллинга" и указать его учетные данные.

/app/asr_billing/cfg/config

declare -A django
django['username']='root'
django['password']='servicemode'

FATAL Billing Error copy metadata

Заявка может возникнуть при обновлении базы данных и говорит о том, что в процессе возникли какие-либо ошибки. Обновление БД может происходить в следующих случаях:

Скрипт обновления БД пишет лог в файл /app/asr_billing/var/log/ib_upgrade.sh.log
Если Вы столкнулись с этой ошибкой, попробуйте еще раз запустить update_hook.sh с ключем --force.

update_hook.sh можно запускать только на остановленном биллинге

В случае если повторное обновление не исправило проблему (это можно проверить по логу, поискав слово "error"), обратитесь в техподдержку.

ALARM /usr/local/bin/sync_nas! Не могу получить списки

Ошибка теста говорит о том, что в процессе синхронизации оборудования интернет возникли ошибки.
Причину ошибки можно определить по логу синхронизации /app/asr_billing/var/log/sync_nasd.log. Ниже описаны наиболее часто возникающие ошибки и пети их решения.

NAS-сервер недоступен для биллинга

Сообщения в логе:

__main__.TimeoutError: Timeout
[Errno 113] No route to host
[Errno 113] No route to host

Проверьте что:

  • NAS-сервер включен
  • NAS-сервер доступепен биллингу по сети
  • На NAS-сервере не заблокирован доступ с биллинга фаерволом

Отключен или закрыт фаерволом порт протокола синхронизации

Сообщения в логе:

[Errno 111] Connection refused
[Errno 111] Connection refused
[Errno 111] Connection refused

Проверьте следующее:

  • В биллинге указан правильный порт управления NAS-сервером
  • На NAS-сервере обращения с биллинга не блокируются фаерволом
  • На NAS-сервере включен протокол через который описано получение данных в session скрипте (в стандартных схемах это API для Mikrotik, ssh/telnet для Cisco и RedBack)

В функции users_from_nas скрипта session есть ошибка, в результате которой она завершается некорректно

Пример сообщений в логе:

2019-03-26 10:26:51 vm120 sync_nas[1897]: sync by oss cheme
/var/oss/core/Mikrotik-Simple/bin/session: line 75: syntax error near unexpected token `}'
/var/oss/core/Mikrotik-Simple/bin/session: line 75: `}'
/usr/local/bin/sync_nas: line 207: users_from_nas: command not found

В указанном скрипте /var/oss/core/Mikrotik-Simple/bin/session есть ошибка синтаксиса.
В примере некорректно реализовано ветвление (if [ nnn ]; then; действие; fi), не дописан оператор закрывающий "if", и bash дойдя до конца функции users_from_nas говорит об ошибке.

Вы интегрируете новый NAS и ошибка возникла в процессе отладки.

В случае если Вы интегрируете новый NAS, снимите опцию "В эксплуатации" чтобы погасить ошибки синхронизации до момент когда он будет полностью интегрирован.

collector

check_critical_traf_reporter.sh

- check_check_critical_traf_reporter.sh:  ERROR(1)         [СБОЙ ]

    ALARM Критические ошибки в логе /var/log/reporter.log: 4

2018-03-20 17:07:00: pl5monitoring ALARM Критические ошибки в логе /var/log/reporter.log: 4

	/usr/local/monitoring/check_check_critical_traf_reporter.sh ERROR(1)
	Create_date: 2018-03-20 17:07:00

Тест определяет наличине ошибок в логе traf_reporter - эта служба отправляет в биллинг данные по объёмам абонентского трафика. Данные отправляются на radiusd_traf в биллинге. Подобные ошибки могу возникать, если с RADIUS-сервер трафика в биллинге отключен или его работа была прервана по какой-либо причине. Отсутствие связи можно увидеть по логу traf-reporter:

# grep ERR /app/collector/var/log/reporter.log -A10 | tail -n 9
2018-03-20 17:04:25 - [traf-reporter] - ERROR - File /var/dump/1521471029.10.0.0.1.dat. Not send packets: 1
2018-03-20 17:04:25 - [traf-reporter] - INFO - File /var/dump/1521471029.10.0.0.1.dat not remove
2018-03-20 17:04:41 - [traf-reporter] - INFO - RADIUS server does not reply
2018-03-20 17:04:41 - [traf-reporter] - INFO - Radius server does not responce. Sleep 60 sec and retry.
2018-03-20 17:05:56 - [traf-reporter] - INFO - RADIUS server does not reply
2018-03-20 17:05:56 - [traf-reporter] - ERROR - File /var/dump/1521524972.10.0.0.2.dat. Not send packets: 1
2018-03-20 17:05:56 - [traf-reporter] - INFO - File /var/dump/1521524972.10.0.0.2.dat not remove
2018-03-20 17:06:11 - [traf-reporter] - INFO - RADIUS server does not reply
2018-03-20 17:06:11 - [traf-reporter] - INFO - Radius server does not responce. Sleep 60 sec and retry.

Обратить внимание следует на сообшение "RADIUS server does not reply"
Для решения проблемы попробуйте перезапустить RADIUS:

chroot /app/asr_billing/ service radiusd_traf restart

Возможные ответы:

Starting radiusd_traf: [ OK ]

Корректный ответ, сервис запустился. На всякий случай проверьте что трафик стал отсылаться в биллинг по логу репортера (новые сообщения должны быть только с тегом INFO:

2018-03-20 15:20:50 - [traf-reporter] - INFO - File /var/dump/1521548443.10.0.0.1.dat remove
2018-03-20 15:20:50 - [traf-reporter] - INFO - Stop report
2018-03-20 15:20:50 - [traf-reporter] - INFO - Wait 10 seconds...
2018-03-20 15:21:00 - [traf-reporter] - INFO - Start report
2018-03-20 15:21:00 - [traf-reporter] - INFO - File /var/dump/1521548458.10.0.0.2.dat remove
2018-03-20 15:21:00 - [traf-reporter] - INFO - File /var/dump/1521548457.dat remove
2018-03-20 15:21:00 - [traf-reporter] - INFO - Stop report

Stopping radiusd_traf: [FAILED]

Подобный ответ говорит о проблемах с запуском радиус-сервера. Попробуйте найти решение в документации или обратитесь в техподдержку.

radius_traf disabled in /cfg/config

Данный ответ говорит о том, что сервер сбора трафика отключен в настройках биллинга. Включите его в биллинге в меню Настройки (в файле)

xge

check_xge_free_class.sh

check_xge_free_class.sh:  ERROR(1)                       [СБОЙ]

Шейпер в XGE (Softrouter) является динамическим. Занятые классы определяется по наличию файлов в папке /app/xge/var/lib/xge_shapers/lock, свободные в /app/xge/var/lib/xge_shapers/free.
В ситуации, когда по той или иной причине не сработала синхронизация шейперов, может возникнуть ошибка скрипта check_xge_free_class.sh. Подобная проблема наиболее характерна при подключении абонентов через vpn (pptp, pppoe)
В данном случае следует посмотреть количество свободных и занятых классов:

ls /app/xge/var/lib/xge_shapers/lock/ | wc -l
7000
ls /app/xge/var/lib/xge_shapers/free | wc -l
0

В выводе: количество занятых классов, далее количество свободных. Как видно из примера, свободных более нет. Для решения проблемы следует запустить скрипт, удаляющий лишние локи:

chroot /app/xge fix_locked_shapers.sh

Если после выполнения скрипта абоненты будут жаловаться на наличие проблем со скоростью, перезапустите XGE

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

check_vm.sh

Сообщение:

ALARM XGE запущен на виртуальной машине: kvm. Максимальная производительности может быть достигнута только при установке на физическую машину.

Имя виртуальной машины может изменяться, в зависимости от оборудования.

Тест сообщает об ошибке потому что XGE (как отдельно, так и в составе Softrouter) не предназначен для работы в гипервизоре. Softrouter и XGE предназначены только для работы на физическом оборудовании.
Стабильная работа в виртуальных машинах не гарантируется и поддержка по проблемам с повисаниями, с потерей пакетов, с производительностью не оказывается.
Об этом так же упоминается в статье Системные требования

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

ALARM Ошибка автоматического бекапа!

Полный текст ошибки

Ошибка автоматического бекапа! Информация в логе: /app/base/var/log/cron_backup.sh.log

В нём сообщается, где можно уточнить в чем заключается проблема с бэкапами.
Как правило, ошибки возникают на стороне FTP, как то: недостаток свободного места, недоступность сервера, превышение квот, о чем можно подробней посмотреть в логе FTP-сервера.

backup: [СБОЙ ]

Ошибка говорит о проблемах с созданием бэкапа.
Убедитесь, что на разделе /mnt/backup достаточно свободного места

# df -h /mnt/backup/
Файловая система      Разм  Исп  Дост  Исп% смонтирована на
/dev/sdc3              32G  6,0G   24G  21% /mnt/backup

Если места достаточно, найдите в логе /app/base/var/log/cron_backup.sh.log строку, содержашую "backup: [СБОЙ]", например:

# /app/collector/service backup: [СБОЙ ]

Перед ней будет лог выполнения резервного копирования. Причин проблемы с резервным копированием может быть огромное множество, соответственно и решение строго индивидуально в каждом конкретном случае.

backup_upload: [СБОЙ ]

найдите в логе /app/base/var/log/cron_backup.sh.log строку, содержашую "backup_upload: [СБОЙ]", например:

# /app/collector/service backup_upload: [СБОЙ ]

Перед ней будет лог выполнения резервного копирования.

FTP недоступен, curl: (7) couldn't connect to host

Наиболее респространенной причиной ошибки является недоступность ФТП-сервера:

/app/collector backup_upload
Backup upload collector
Синхронизирую каталог root:servicemode /app/collector/mnt/backup/ ftp://10.20.30.40/carbon/collector
Procedd /app/collector/mnt/backup//.... Не найден md5 для файла /app/collector/mnt/backup//.! Не синхронизируем!
Procedd /app/collector/mnt/backup//./config_11.42.57_09-2014... Не найден md5 для файла /app/collector/mnt/backup//./config_11.42.57_09-2014! Не синхронизируем!
Procedd /app/collector/mnt/backup//./config_16.40.08_12-2014... Не найден md5 для файла /app/collector/mnt/backup//./config_16.40.08_12-2014! Не синхронизируем!
Procedd /app/collector/mnt/backup//./config_08.00.16_12-2014... Не найден md5 для файла /app/collector/mnt/backup//./config_08.00.16_12-2014! Не синхронизируем!
Procedd /app/collector/mnt/backup//./backup_monthly_2017-03-31_02-51_collector.tar.gz... curl: (7) couldn't connect to host
md5 не сходится! Выкладываем! ebba6adaa42ad946cfed04g9af0420dc  /app/collector/mnt/backup/backup_monthly_2017-03-31_02-51_collector.tar.gz !=
curl: (7) couldn't connect to host
Retry: curl -v -sS --user root:servicemode --ftp-create-dirs --upload-file /app/collector/mnt/backup//./backup_monthly_2017-03-31_02-51_collector.tar.gz ftp://10.20.30.40/carbon/collector//./backup_monthly_2017-03-31_02-51_
* About to connect() to 10.20.30.40 port 21 (#0)
*   Trying 10.20.30.40... Время ожидания соединения истекло
* couldn't connect to host
* Closing connection #0
curl: (7) couldn't connect to host

В данном случае, следует проверить что FTP-сервер доступен и работает.

Далее приведёны примеры наиболее часто встречающихся проблем. Полный список кодов ошибок с описанием можно посмотреть в соответствующей статье на Википедии.

Отсутствует свободное место на фтп-сервере, curl: (25) Failed FTP upload: 452

* Connecting to 1.2.3.4 (1.2.3.4) port 59996
> TYPE I^M
< 200 Type set to I.^M
> STOR audit_operations.fdb.gbk.gz^M
< 452 Unique file name cannot be created.^M
* Failed FTP upload: 452
* Remembering we are in dir "backups/asr_billing//./static/var/db/billing/201705/"
* Uploaded unaligned file size (0 out of 323513 bytes)
* Connection #0 to host 1.2.3.4 left intact
curl: (25) Failed FTP upload: 452
> QUIT^M
< 221 Goodbye.^M
* Closing connection #0

Ошибка 452 говорит о том, тчо закончилось свободное место на фтп-сервере.

Логин или пароль не подходят, curl: (67) Access denied: 530

Как видно из лога, ошибка с логином

* About to connect() to 10.20.30.40 port 21 (#0)
*   Trying 10.20.30.40... connected
* Connected to 10.20.30.40 (10.20.30.40) port 21 (#0)
< 220 ProFTPD 1.3.5b Server (Hetzner Backup) [::ffff:10.20.30.40]^M
> USER root^M
< 331 Password required for root^M
> PASS servicemode^M
< 530 Login incorrect.^M
* Access denied: 530
* Closing connection #0
curl: (67) Access denied: 530

Нет прав на создание директорий, curl: (9) Failed to MKD dir: 550

Убедитесь, что корректно настроили права пользователя в настройках ftp, а так же права файловой системы.

< 250 Directory successfully changed.^M
> CWD backup^M
< 550 Failed to change directory.^M
> MKD backup^M
< 550 Create directory operation failed.^M
* Failed to MKD dir: 550
* Remembering we are in dir "/mnt/carbon/backup/billing/monitoring//"
* Uploaded unaligned file size (0 out of 76018 bytes)
* Connection #0 to host 10.20.30.40 left intact
curl: (9) Failed to MKD dir: 550

ALARM Не обнаружен работающий UPS

Настройка и решение проблемы с ИБП описаны в статье Подсистема контроля UPS

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

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

Диагностика в командной строке:

1. Проверям какой раздел заполнен:

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

Видно, что заполнен раздел /dev/sda5 с логами.

/dev/sda5        53G 47,2G  5.8G  89% /mnt/var

2. Теперь нужно узнать какие именно данные занимают раздел. Запускаем комманду подсчёта объёма и двигаемся вглубь файловой системы.

du -sh /mnt/log/*

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

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

Журнал блокировок пишется в файл /var/log/pl5_service.log.
По времени создания заявки можно найти какая оперпция занимала слишком много времени и отладить.

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

Описание диагностики находится в соответствующей статье.

Введите метки, чтобы добавить к этой странице:
Please wait 
Ищите метку? просто начните печатать.