В данном разделе описаны общие команды для управления определенной нодой.
<NODE> - название ноды
cocon-info
Команда показывает настройки Cocon и параметры БД.
Путь команды:
/node/<NODE>/cocon-info
Синтаксис:
info
Параметры:
Команда не содержит аргументов.
Пример:
admin@[mycelium1@ecss1]:/$ node/core1@ecss1/cocon-info
AMQP Realm: cocon_realm
AMQP Exchange: ccn.direct
Prefix: /
Heartbeat: 3000ms
User database: mysql
User db connect status: +
Audit database: mysql
Audit db connect status: +
Audit cleanup time: 2:0:0 UTC
Audit history size: 90 days
MySQL parameters: audit@cocon.mysql.ecss:3306
db - ecss_audit
users table - ecss_users
roles table - ecss_roles
groups table - ecss_groups
groups/users table - ecss_groups_users
groups/roles table - ecss_role_group
roles' settings table - ecss_roles_settings
settings table - ecss_user_settings2
audit commands table - ecss_audit_commands
audit session table - ecss_audit_sessions
audit restrictions table - ecss_audit_restrictions
Tring prefix: ecss10
[exec at: 08.02.2019 11:15:11, exec time: 208ms, nodes: core1@ecss1]
date
Команда показывает текущее время для определенной ноды
Путь команды:
/node/<NODE>/date
Синтаксис:
date
Параметры:
Команда не содержит аргументов.
Пример:
admin@[mycelium1@ecss1]:/$ node/sip1@ecss1/date 11:17:00 08.02.2019 [exec at: 08.02.2019 11:17:00, exec time: 94ms, nodes: sip1@ecss1]
etop
Команда позволяет просмотреть следующую информацию о запущенной ноде:
- Загрузку процессора
- Количество запущенных процессов
- Длину очереди запуска
- Информацию о памяти
Детально предоставляется информация о каждом процессе:
- PID процесса
- Имя инициирующей функции
- Количество редукций
- Количество занимаемой памяти
- Длину очереди сообщений
- Имя текущей функции
Путь команды:
/node/<NODE>/etop
Синтаксис:
etop [OPTIONS]
Параметры:
OPTIONS:
- -sort reductions|msg_q|memory|pid|name - сортировка по полю (reductions по умолчанию);
- -interval TIME - время измерения, ms (по умолчанию 1000);
- -odrder increase|decrease - порядок сортировки (по умолчанию по уменьшению);
- -lines LINES - количество первых отображаемых в списке процессов (по умолчанию 20);
- -accumulate true|false - аккумулировать редукции (по умолчанию false);
- -hreadable true|false - отображать в удобном для восприятия виде (напр., 1K, 234M, 2G. по умолчанию true);
- -hibernate true|false - показывать только "спящие"/"не спящие" процессы.
Примеры:
admin@[mycelium1@ecss1]:/$ node/core1@ecss1/etop
==================================================================================================
core1@ecss1 05:37:15
Load: cpu 0 Memory: total 304.23M binary 3.89M
procs 1576 processes 140.73M code 72.24M
runq 0 atom 3.18M ets 14.22M
Pid Name or Initial Func Reds Memory MsgQ Current Function
--------------------------------------------------------------------------------------------------
<0.16029.0> ccn_gen_command:init/3 32850 449.41K 0 ecss_mgmt_cmd_etop:get
<0.15885.0> gen_tcserver:init/1 5581 106.83K 0 gen_server:loop/7
<0.15884.0> gen_tcserver:init/1 5557 86.62K 0 gen_server:loop/7
<0.15249.0> gen_tcserver:init/1 5468 86.62K 0 gen_server:loop/7
<0.3940.0> tring_l1 2428 18.5K 0 gen_server:loop/7
<0.4571.0> service_agent_2 2420 673.46K 0 gen_server:loop/7
<0.4569.0> service_agent_0 2417 673.48K 0 gen_server:loop/7
<0.4570.0> service_agent_1 2416 673.46K 0 gen_server:loop/7
<0.5582.0> gen_tserver:init/1 2169 29.1K 0 gen_server:loop/7
<0.4572.0> service_agent_3 1705 257.95K 0 gen_server:loop/7
<0.3939.0> tring_r1 1325 26.24K 0 gen_server:loop/7
<0.9281.0> gen_tcserver:init/1 984 86.62K 0 gen_server:loop/7
<0.15895.0> gen_tcserver:init/1 781 86.62K 0 gen_server:loop/7
<0.5581.0> tring.ecss10 758 278.19K 0 timer:sleep/1
<0.5355.0> gen_tcserver:init/1 488 106.83K 0 gen_server:loop/7
<0.4821.0> core_trike_aq_0 471 278.09K 0 gen_server:loop/7
<0.5356.0> gen_tcserver:init/1 354 106.83K 0 gen_server:loop/7
<0.4823.0> core_trike_aq_2 311 74.14K 0 gen_server:loop/7
<0.4824.0> core_trike_aq_3 311 74.14K 0 gen_server:loop/7
<0.3945.0> rps_r2 261 26.24K 0 gen_server:loop/7
==================================================================================================
[exec at: 08.02.2019 12:37:15, exec time: 1s 233ms, nodes: core1@ecss1]
admin@[mycelium1@ecss1]:/$ node/core1@ecss1/etop -lines 10 -sort memory
==================================================================================================
core1@ecss1 05:53:13
Load: cpu 0 Memory: total 296.83M binary 4.13M
procs 1552 processes 132.18M code 72.24M
runq 0 atom 3.18M ets 15.15M
Pid Name or Initial Func Reds Memory MsgQ Current Function
--------------------------------------------------------------------------------------------------
<0.4323.0> az5veso 1 7.28M 0 gen_server:loop/7
<0.3572.0> kernel_sup 1 6.36M 0 gen_server:loop/7
<0.4038.0> ccn_amqp_gate 1 4.5M 0 gen_server:loop/7
<0.3764.0> chronica_supervisor 1 1.72M 0 gen_server:loop/7
<0.3566.0> application_controller 1 1.06M 0 gen_server:loop/7
<0.4857.0> gen_tcserver:init/1 2 1.06M 0 gen_server:loop/7
<0.4858.0> gen_tcserver:init/1 2 1.06M 0 gen_server:loop/7
<0.4859.0> gen_tcserver:init/1 2 1.06M 0 gen_server:loop/7
<0.4860.0> gen_tcserver:init/1 2 1.06M 0 gen_server:loop/7
<0.4569.0> service_agent_0 1 673.53K 0 gen_server:loop/7
==================================================================================================
[exec at: 08.02.2019 12:53:14, exec time: 1s 158ms, nodes: core1@ecss1]
etop-snapshot
Команда сохраняет информацию о процессах ноды в csv файл
Путь команды:
/node/<NODE>/etop-snapshot
Синтаксис:
etop-snapshot [OPTIONS]
Параметры:
- interval TIME - врема замера в миллисекундах (1000 мс по умолчаию)
- append true|false - сохранить старую информацию или удалить её (добавить по умолчанию)
- accumulate true|false - отключить аккумулирование редукции (по умолчанию включено, значение false)
- sys_info_file FILENAME - файл для сохранения системной информации (<LOG_ROOT>/etop_snapshot/<NODENAME>_sys_info.csv по умолчанию)
- proc_info_file FILENAME - файл для сохранения информации о процессах (<LOG_ROOT>/etop_snapshot/<NODENAME>_proc_info.csv по умолчанию)
Пример:
admin@[mycelium1@ecss1]:/$ node/core1@ecss1/etop-snapshot --interval 2000 --sys_info_file ds1@ecss1_proc_info.csv System info file: /var/log/ecss/etop_snapshot/ds1@ecss1_proc_info.csv Process info file: /var/log/ecss/etop_snapshot/core1@ecss1_proc_info.csv [exec at: 08.02.2019 12:56:14, exec time: 2s 334ms, nodes: core1@ecss1]
host-info
Команда для просмотра информации о хостовой машине для выбранной ноды.
Путь команды:
/node/<NODE>/host-info
Синтаксис:
host-info [<TYPE>]
<TYPE> - тип запрашиваемой инофрмации:
- cpu - получить информацию о загрузке процессора из файла unix /proc/stat;
- disk - получить информацию о использовании диска с помощью disksup:get_disk_data/0;
- interfaces - получить список сетевых интерфейсов хоста с помощью inet:getifaddrs/0;
- memory - получить информацию о динамически выделенной ВМ Erlang памяти с помощью вызова erlang:memory/0;
- memory_total - получить информацию о емкости RAM диска хостовой машины с помощью вызова memsup:get_system_memory_data/0;
- nodes - получить список активных нод erlang'a (включая выбранную ноду).
По умолчанию выводится вся инофрмация.
Пример:
admin@[mycelium1@ecss1]:/$ node/core1@ecss1/host-info
Interfaces:
Name MAC addr IP addr Net mask Dst addr Flags
lo 00:00:00:00:00:00 127.0.0.1 255.0.0.0 - [up,loopback,running]
enp3s0 E6:BA:27:44:78:35 - - - [up,broadcast,running,multicast]
enp0s25 E6:BA:27:44:78:35 - - - [up,broadcast,running,multicast]
bond1 E6:BA:27:44:78:35 fe80::e4ba:27ff:fe44:7835 ffff:ffff:ffff:ffff:: - [up,broadcast,running,multicast]
bond1.3 E6:BA:27:44:78:35 192.168.1.21 255.255.255.0 - [up,broadcast,running,multicast]
bond1.2 E6:BA:27:44:78:35 192.168.2.21 255.255.255.0 - [up,broadcast,running,multicast]
bond1.476 E6:BA:27:44:78:35 10.16.33.5 255.255.255.0 - [up,broadcast,running,multicast]
bond1.3:MYSQL 192.168.1.71 255.255.255.0 - [up,broadcast,running,multicast]
bond1.2:SIP61 192.168.2.61 255.255.255.0 - [up,broadcast,running,multicast]
bond1.2:TC 192.168.2.63 255.255.255.0 - [up,broadcast,running,multicast]
bond1.476:SIP10 10.16.33.10 255.255.255.0 - [up,broadcast,running,multicast]
Total Memory:
system_total_memory: 3.84G
free_swap: 0B
total_swap: 0B
cached_memory: 1G
buffered_memory: 508.26M
free_memory: 301.71M
total_memory: 3.84G
Memory used:
total: 299.26M
processes: 135.27M
processes_used: 135.26M
system: 163.99M
atom: 3.18M
atom_used: 3.16M
binary: 3.66M
code: 72.24M
ets: 14.89M
Cpu load:
Total: 9.30%
CPU #1: 9.52%
CPU #2: 9.52%
Disk:
"/": 29.4G(used 27%)
"/dev": 1.89G(used 0%)
"/dev/shm": 1.92G(used 1%)
"/run": 393.53M(used 1%)
"/run/lock": 5M(used 0%)
"/sys/fs/cgroup": 1.92G(used 0%)
"/snap/core/6130": 89.5M(used 100%)
"/snap/core/6259": 91.12M(used 100%)
"/var/log": 19.56G(used 14%)
"/var/log/ecss": 29.4G(used 9%)
"/var/lib/ecss": 19.56G(used 5%)
"/var/lib/ecss/glusterfs": 19.56G(used 1%)
"/var/lib/mysql": 29.4G(used 9%)
"/snap/core/6350": 91M(used 100%)
Erlang Nodes:
mycelium1@ecss1
ds1@ecss1
core1@ecss1
md1@ecss1
sip1@ecss1
[exec at: 08.02.2019 13:30:16, exec time: 337ms, nodes: core1@ecss1]
import-regime
Данная команда позволяет импортировать режимы доступа абонента из файла (сразу для нескольких доменов).
Путь команды:
/node/<NODE>/import-regime
Синтаксис:
import-regime <FILE> [-<Flag>]
Параметры:
<NODE>- имя ноды с функционалом STORAGE(ds);- <FILE> - имя файла (файл располагается по пути: /{DATA_ROOT}/regime). По умолчанию - /var/lib/ecss/regime;
- <Flag> :: l | -log - сохранять результат выполнения команды в log-файл. Имя log-файла формируется из имени <FILE>, добавлением расширения ".log".
Формат файла: АДРЕС_АБОНЕНТА РЕЖИМ_ОБСЛУЖИВАНИЯ
Domain_1 Address_1 Regime_1
Domain_2 Address_2 Regime_2
...
Domain_N Address_N Regime_N
Формат файла логов:
% В случае, если не удалось распарсить строку Номер_Строки: Строка;2;Время_Выполнения_Команды % В случае успешного импорта режима для абонента Address Имя_Домена;Address;1;Время_Выполнения_Команды % В случае, если не удалось импортировать режим для абонента Address (например в случае, если алиас или указанный режим не существуют). Имя_Домена;Address;0;Время_Выполнения_Команды
Пример:
admin@core1@ecss1:/$ node/ds1@ecss1/import-regime regime.700.txt 06.04.2019 11:37:50: Successfully imported: 4. Successfully imported regimes to the 4 aliases. [exec at: 06.04.2019 11:37:50, exec time: 193ms, nodes: ds1@ecss1]
import-regime-to-domain
Данная команда позволяет импортировать режимы доступа абонента из файла.
Путь команды:node/<NODE>/import-regime-to-domain
Синтаксис:
import-regime-to-domain <DOMAIN> <FILE> [-<Flag>]
Параметры:
- <DOMAIN> - имя домена, для алиасов которого импортируются настройки режимов доступа;
<NODE>- имя ноды с функционалом STORAGE(ds);- <FILE> - имя файла (файл располагается по пути: /{DATA_ROOT}/regime/<DOMAIN>); По умолчанию - /var/lib/ecss/regime/<DOMAIN>;
- <Flag> :: l | -log - сохранять результат выполнения команды в log-файл. Имя log-файла формируется из имени <FILE>, добавлением расширения ".log".
Формат файла: АДРЕС_АБОНЕНТА РЕЖИМ_ОБСЛУЖИВАНИЯ
Address_1 Regime_1
Address_2 Regime_2
...
Address_N Regime_N
Формат файла логов:
% В случае, если не удалось распарсить строку Номер_Строки: Строка;2;Время_Выполнения_Команды % В случае успешного импорта режима для абонента Address Имя_Домена;Address;1;Время_Выполнения_Команды % В случае, если не удалось импортировать режим для абонента Address (например в случае, если алиас или указанный режим не существуют). Имя_Домена;Address;0;Время_Выполнения_Команды
Пример:
admin@core1@ecss1:/$ node/ds1@ecss1/import-regime-to-domain biysk.local regime.bsk 06.04.2019 11:53:27: Successfully imported: 2. Successfully imported regimes to the 2 aliases. [exec at: 06.04.2019 11:53:27, exec time: 183ms, nodes: ds1@ecss1]
info
Команда для просмотра информации о ноде с именем <some_node>: версия ПО, информация о приложениях, объем динамически выделяемой памяти, системная статистика, текущее состояние системы.
Путь команды:
/node/<NODE>/info
Синтаксис:
info [<TYPE> [<PARAM>]]
Параметры:
<TYPE> - тип информации, выводимый для просмотра (опциональный параметр). Если параметр не задан, то отображается краткая информация о программном обеспечении ноды:
- releases - версия ПО;
- applications - краткая информация о приложениях ноды, включает в себя:
- S - флаг активности приложения,
- Application - название приложения,
- Pvn - версия,
- Vsn - версия,
- Description - описание приложения;
- From - путь к месту установки приложения.
При указании в параметрах команды названия приложения будет выведена подробная информация: название, версия, версия, описание, состояние (активно/не активно), путь к каталогу размещения приложения, информация о модулях приложения.
- memory - объем динамически выделяемой памяти для Erlang-эмулятора;
- statistics - статистические параметры работы ноды, не используются в эксплуатации;
- system - детализированная информация о внутренних параметрах работы ноды, не используется в эксплуатации;
- nodes - список объединенных в кластер нод.
<PARAM> - название параметра для получения более подробной информации о нем (опциональный параметр).
Пример:
Просмотр информации о ноде sip1@ecss1:
process-info
Команда показывает информацию о процессе.
Путь команды:
/node/<NODE>/process-info
Синтаксис:
process-info [OPTIONS] <PROCESS>
Параметры:
- PROCESS - PID или имя зарегистрированного процесса.
- -A --ALL - показать все, включая sys:get_status().
- -a --all - показать все, исключая sys:get_status().
- -c --last_calls - показать поле last_calls
- -d --dictionary - показать поле dictionary.
- -f --current_function - показать поле current_function.
- -m --memory - показать поле memory.
- -l --message_queue_len - показать поле message_queue_len.
- -q --messages - показать поле messages_queue.
- -r --reductions - показать поле reductions.
- -s --stack_size - показать поле stack_size.
- -t --total_heap_size - показать поле total_heap_size
- --misc - показать поле mics info from sys:get_status().
- --dbgopts - показать поле debug options from sys:get_status().
- --parent - показать поле parent from sys:get_status().
- --sys_state - показать поле sys_state form sys:get_status().
- --depth LEN - максимальная длина отображения обычных данных (по умолчанию 1000)
- --depth_binary LEN - максимальная длина отображения бинарных данных (по умолчанию 100)
- --depth_backtrace LEN - максимальная длина отображения бэктрейса (по умолчанию 1000)
Следующие длинные опции так же доступны:
- --backtrace --binary --catchlevel --error_handler --garbage_collection
- --group_leader --heap_size --initial_call --links --min_heap_size
- --min_bin_vheap_size--monitored_by --monitors priority --registered_name
- --sequential_trace_token --status --suspending --trace --trap_exit
Полное описание смотреть в документации erlang:process_info/2
Пример:
admin@[mycelium1@ecss1]:/$ node/sip1@ecss1/process-info notification_server_manager
backtrace Program counter: 0x00007f74140075b0 (gen_server:loop/7 + 816)
CP: 0x0000000000000000 (invalid)
0x00007f73c83deda0 Return addr 0x00007f7413f93550 (proc_lib:init_p_do_apply/3 + 72)
y(0) []
y(1) infinity
y(2) notification_server_manager
y(3) {s,['notification.1','notification.2','notification.3','notification.4'],4,subscribe_realm,sip_notification_client,false,
started,1549591447959809}
y(4) notification_server_manager
y(5) <0.3380.0>
0x00007f73c83dedd8 Return addr 0x000055ad93149798 (<terminate process normally>)
y(0) []
y(1) Catch 0x00007f7413f93570 (proc_lib:init_p_do_apply/3 + 104)
binary Total size of binaries 50B
Total number of binaries 2
{140136525377864,25,7}
{140136525377936,25,7}
catchlevel 1
current_function {gen_server,loop,7}
dictionary rand_seed {#{bits => 58,jump => #Fun<rand.8.10897371>,next => #Fun<rand.5.10897371>,type =
> exrop,uniform => #Fun<rand.6.10897371>,uniform_n => #Fun<rand.7.10897371>,weak
_low_bits => 1},[69126245970540658|281870883759823950]}
'$initial_call' {notification_server_manager,init,1}
'$ancestors' [notification_client_sup,<0.3379.0>]
dds_session {2,10}
error_handler error_handler
garbage_collection max_heap_size #{error_logger => true,kill => true,size => 0}
min_bin_vheap_size 46422
min_heap_size 233
fullsweep_after 65535
minor_gcs 9
group_leader <0.3378.0>
heap_size 610
initial_call {proc_lib,init_p,5}
links <0.3380.0>
last_calls false
memory 8844
message_queue_len 0
min_heap_size 233
min_bin_vheap_size 46422
monitored_by empty
monitors empty
priority normal
reductions 1658
registered_name notification_server_manager
sequential_trace_token empty
stack_size 10
status waiting
suspending empty
total_heap_size 986
trace 0
trap_exit true
[exec at: 08.02.2019 13:57:31, exec time: 75ms, nodes: sip1@ecss1]
restart
Команда для перезапуска ноды.
Путь команды:
/node/<NODE>/restart
Синтаксис:
restart [<TIMEOUT>] [--force]
Параметры:
<TIMEOUT> - время, через которое производится перезапуск ноды (в секундах). По умолчанию установлено 5 секунд.
--force - выполнить команду без запроса подтверждения.
Пример:
admin@[mycelium1@ecss1]:/$ node/sip1@ecss2/restart
[restart] You are trying to restart the ECSS node sip1@ecss2.
This can cause data loss.
Restart the ECSS node sip1@ecss2: [no]/yes ?> yes
Node sip1@ecss2 will be restarted after 5 seconds.
[exec at: 08.02.2019 14:01:50, exec time: 6s 967ms, nodes: sip1@ecss2]
service
Команда для управления сервисами нод: просмотр информации, запуск сервиса, остановка сервиса.
Путь команды:
/node/<NODE>/service
Синтаксис:
service [<SERVICE> [<COMMAND>]]
Параметры:
<SERVICE> - название сервиса (опциональный параметр). Если не указывать этот параметр, то в результате выполнения команды будет выведена информация о всех сервисах заданной ноды;
<COMMAND> - назначаемое действие (опциональный параметр). Если не указывать этот параметр, то в результате выполнения команды будет выведена информация о состоянии заданного сервиса:
- info - показать информацию о сервисе;
- start - запустить сервис;
- stop - остановить сервис.
Пример:
admin@[mycelium1@ecss1]:/$ node/sip1@ecss1/service There are services at node: sip1@ecss1 ┌─┬─────────────────┬───────────────────────────────┐ │S│ Service │ Description │ ├─┼─────────────────┼───────────────────────────────┤ │+│ecss-node-manager│ECSS MGMT Node Manager Service │ │+│ecss-cm │ECSS Configuration Manager │ │+│dds │DDS management service │ │+│rps │RPS management service │ │+│sip(t) │SIPT cluster management service│ │+│log │Log Server Management Service │ │+│tring │ECSS Tring Service │ │+│oasys │OASYS management service │ │+│amqp │AMQP10 Management Service │ └─┴─────────────────┴───────────────────────────────┘ Legend: S: Current service Status: +: Service is started ^: Service is starting -: Service is stopped v: Service is stopping x: Service is crashed ?: Unknown service status [exec at: 08.02.2019 14:05:03, exec time: 7ms, nodes: sip1@ecss1]
shutdown
Команда для отключения ноды.
Путь команды:
/node/<NODE>/shutdown
Синтаксис:
shutdown [<Timeout>] [--force]
Параметры:
<Timeout> - время, через которое производится отключение (в секундах). По умолчанию установлено 5 секунд.
--force - выполнить команду без запроса подтверждения.
Пример:
admin@[mycelium1@ecss1]:/$ node/md1@ecss2/shutdown
[shutdown] You are going to shutdown the ECSS node md1@ecss2.
This can cause data loss.
Shutdown the ECSS node md1@ecss2?: [no]/yes ?> yes
Node md1@ecss2 will be shut down after 5 seconds.
[exec at: 08.02.2019 14:07:13, exec time: 3s 195ms, nodes: md1@ecss2]
Alarm list changed at 08.02.2019 14:07:20:
critical: 10
major : 3
uptime
Показывает время непрерывной работы ноды c именем <some_node>.
Путь команды:
/node/<NODE>/uptime
Синтаксис:
uptime
Параметры:
Команда не содержит аргументов.
Пример:
admin@[mycelium1@ecss1]:/$ node/core1@ecss1/uptime ecss-core 3.14.0.103 core1@ecss1 uptime is 5h 6m [exec at: 08.02.2019 14:09:45, exec time: 8ms, nodes: core1@ecss1]