Логирование и отладка EcoRouter Documentation / Логирование и отладка
Логирование
В системе EcoRouter ведется запись обо всех происходящих событиях (выполняемых операциях, изменениях конфигурации) - логирование. По умолчанию журнал событий (лог) ведется на самом устройстве.
Сообщения о событиях пишутся в двух форматах, описанных ниже.
Формат системных сообщений - действий, производимых сервисами (демонами) системы:
><DATE> <TIME> [VERBOSE] [SERVICE] <MESSAGE>
Формат сообщений об операциях, производимых пользователями (аккаунтинга):
<DATE> <TIME> [VERBOSE] [IMISH] AUDIT [USER] <MESSAGE>
Параметры приведенной условной записи форматов сообщений описаны в таблице ниже.
Параметр | Описание |
---|---|
DATE | дата события в формате ГГГГ-ММ-ДД |
TIME | время события в формате ЧЧ:ММ:СС.СССССС |
VERBOSE | уровень события:
|
SERVICE | системный сервис (демон) |
MESSAGE | сообщение о событии |
USER | пользователь EcoRouter, который выполнил операцию |
Для просмотра и записи журнала в файл используется команда административного режима show log.
Общий синтаксис команды: show log (all |) (excessive |) (lines <NUM> |) (follow |reverse|). Как и для других команд группы show, здесь также доступны модификаторы.
Чтобы отправить вывод команды в указанный файл, необходимо добавить к команде show log модификатор | redirect <FILE> или его краткую форму:
ecorouter#show log > Text1.log
Команда show log без параметров выводит на консоль все сообщения из системного журнала с момента загрузки устройства.
ecorouter#show log
>2016-10-26 13:55:28.490128 [info] [ecolog] writer thread started
>2016-10-26 13:55:28.490128 [info] [ecolog] reader thread started
>2016-10-26 13:55:28.490128 [info] [ecolog] listener thread started
>2016-10-26 13:55:28.490128 [info] [ecolog] watchdog thread started
>2016-10-26 13:55:28.490128 [info] [ecolog] Ecolog v1.0 connection request[0]: 1
>2016-10-26 13:55:28.490128 [info] [ecolog] Ecolog v1.0 connection request[0]: OK
>2016-10-26 13:55:28.490128 [info] [ecolog] [0] reader thread started
>2016-10-26 13:55:28.490128 [info] [ecobus] reader thread started
>2016-10-26 13:55:28.490128 [info] [ecobus] listener thread started
>2016-10-26 13:55:28.490128 [info] [ecobus] watchdog thread started
...
Команда show log с параметром all выводит на консоль все сообщения из journalctl.
Команда show log с параметром excessive выводит на консоль сообщения из системного журнала с дополнительной информацией о файле, функции и строке исходного файла.
ecorouter#show log excessive
>2016-10-27 12:25:10.571110 [info] [ecolog] [src/writer.c:263,ecolog_writer_thread_proc] writer thread started
>2016-10-27 12:25:10.571110 [info] [ecolog] [src/reader.c:295,ecolog_reader_thread_proc] reader thread started
>2016-10-27 12:25:10.571110 [info] [ecolog] [src/listener.c:380,ecolog_listener_thread_proc] listener thread started
>2016-10-27 12:25:10.571110 [info] [ecolog] [src/watchdog.c:197,ecolog_watchdog_thread_proc] watchdog thread started
>2016-10-27 12:25:12.571112 [info] [ecolog] [src/listener.c:212,ecolog_listener_accept] Ecolog v1.0 connection request[2]: 1
>2016-10-27 12:25:12.571112 [info] [ecolog] [src/listener.c:225,ecolog_listener_accept] Ecolog v1.0 connection request[2]: OK
>2016-10-27 12:25:12.571112 [info] [ecolog] [src/reader.c:155,ecolog_reader_session_thread_proc] [2] reader thread started
>2016-10-27 12:25:12.571112 [info] [IMI] [log.c:311,openzlog] trace started
>2016-10-27 12:25:12.571112 [info] [IMI] [imi_ercp.c:488,imi_ercp_init] -> imi_ercp_init []
>2016-10-27 12:25:12.571112 [info] [IMI] [imi_ercp.c:750,imi_ercp_platform_init] -> imi_ercp_platform_init []
>2016-10-27 12:25:12.571112 [info] [IMI] [imi_ercp_snmp.c:318,imi_ercp_snmp_init] -> imi_ercp_snmp_init [snmp_config Ox00000000]
>2016-10-27 12:25:12.571112 [info] [IMI] [imi_ercp_snmp.c:382,imi_ercp_snmp_init] <- imi_ercp_snmp_init: 0x0
...Команда show log с параметром lines <NUM> выводит на консоль несколько последних сообщений, где <NUM> - количество сообщений.
ecorouter#show log lines 10
>2016-10-27 12:25:29.571129 [info] [OSPF] OSPFd (3.2.1) starts
>2016-10-27 12:25:29.571129 [info] [IMI] imi_server_send_config called (PM 4)
>2016-10-27 12:25:29.571129 [info] [IMI] imi_server_send_config called (PM 44)
>2016-10-27 12:25:29.571129 [info] [BGP] BGPd 3.2.1 starting: vty@2605, bgp@179
>2016-10-27 12:25:29.571129 [info] [IMI] imi_server_send_config called (PM 44)
>2016-10-27 12:25:30.571130 [info] [ecolog] Ecolog v1.0 connection request[11]: 1
>2016-10-27 12:25:30.571130 [info] [ecolog] Ecolog v1.0 connection request[11]: OK
>2016-10-27 12:25:30.571130 [info] [ecolog] [11] reader thread started
>2016-10-27 12:25:30.571130 [info] [PIM] trace started
>2016-10-27 12:25:30.571130 [info] [IMI] imi_server_send_config called (PM 11)
Команда show log с параметром follow выводит на консоль непрерывный поток логов. Для непрерывного просмотра логов необходимо отключить pager: show log follow | nopager.
Команда show log с параметром reverse выводит на консоль поток логов в обратном порядке.
Можно задать несколько параметров и модификатор одновременно.
ecorouter#show log excessive lines 2
>2016-10-27 14:14:20.577660 [info] [ecobus] [src/listener.c:351,ecobus_listener_accept] Ecobus v1.0 connection request[7109]: 0/2/0
>2016-10-27 14:14:20.577660 [info] [ecobus] [src/listener.c:366,ecobus_listener_accept] Ecobus v1.0 connection request[7109]: OK
ecorouter#show log all | include IMISH
2016-10-27 12:25:43.571143 [info] [IMISH] AUDIT Logged in user
2016-10-27 12:25:43.571143 [info] [IMISH] AUDIT [admin] logged in
>2016-10-27 12:25:43.571143 [info] [IMISH-1648] trace started
2016-10-27 12:25:46.571146 [info] [IMISH] AUDIT ER user
2016-10-27 12:25:46.571146 [info] [IMISH] AUDIT [admin] logged in
2016-10-27 12:25:48.571148 [info] [IMISH] AUDIT [admin] en
2016-10-27 12:26:29.571189 [info] [IMISH] AUDIT [admin] terminal monitor
2016-10-27 12:26:47.571207 [info] [IMISH] AUDIT [admin] conf t
2016-10-27 12:26:58.571218 [info] [IMISH] AUDIT [admin] port te0
2016-10-27 12:28:11.571291 [info] [IMISH] AUDIT [admin]
2016-10-27 12:28:42.571322 [info] [IMISH] AUDIT [admin] service-instance 100
2016-10-27 12:29:02.571342 [info] [IMISH] AUDIT [admin] ex
2016-10-27 12:29:05.571345 [info] [IMISH] AUDIT [admin] ex
Для дополнительного контроля за производимыми действиями предусмотрена возможность вывода сообщений логов на консоль в режиме реального времени.
Для включения данной функции используется команда административного режима terminal monitor. Для отключения вывода сообщений на консоль используется команда административного режима no terminal monitor.
Включение/выключение отладки
Для каждого компонента системы действуют отладочные команды, описанные в этом разделе.
Для включения отладки отдельных подсистем используются команда debug <SUBSYSTEM>, где SUBSYSTEM - имя подсистемы. Данная команда доступна и в административном, и в конфигурационном режиме. При использовании данной команды в конфигурационном режиме она будет записана в конфигурацию маршрутизатора.
Кроме подсистем можно включить отладку для отдельных опций, например, debug nsm packet recv detail.
В таблице ниже приведен список доступных подсистем и параметров данной команды.
Подсистема/ параметр команды | Описание | Режим |
---|---|---|
bgp | Border Gateway Protocol (BGP) | Административный и конфигурационный |
bgp all | all debugging | |
bgp dampening | BGP Dampening | |
bgp events | BGP events | |
bgp filters | BGP filters | |
bgp fsm | BGP Finite State Machine | |
bgp keepalives | BGP keepalives | |
bgp mpls | BGP MPLS | |
bgp nht | NHT message | |
bgp nsm | NSM message | |
bgp updates | BGP updates | |
data-plane | Data Plane | Административный и конфигурационный |
data-plane all | Enable all debugging | |
data-plane bridge | Bridge subsystem | |
data-plane cp | Control Plane subsystem | |
data-plane fastpath | Fastpath subsystem | |
data-plane general | General subsystem | |
data-plane integrator | Integrator subsystem | |
data-plane mac check | Mac check | |
data-plane packetflow | Packetflow subsystem | |
data-plane print | Print subsystem | |
data-plane slowpath | Slowpath subsystem | |
data-plane test | Test subsystem | |
igmp | Internet Group Management Protocol (IGMP) | Административный и конфигурационный |
igmp all | All IGMP debugging | |
igmp decode | IGMP decode | |
igmp encode | IGMP encode | |
igmp events | IGMP events | |
igmp fsm | IGMP FSM | |
igmp tib | IGMP Tree-Info-Base (TIB) | |
igmp vrf | VPN Routing/Forwarding instance | |
isis | Intermediate System - Intermediate System (IS-IS) | Административный и конфигурационный |
isis all | Enable all debugging | |
isis authentication | IS-IS Authentication | |
isis checksum | IS-IS Check-Sum | |
isis events | IS-IS Events | |
isis hello | IS-IS Hello Debug | |
isis ifsm | IS-IS Interface Finite State Machine | |
isis local-updates | IS-IS Local Updates | |
isis lsp | IS-IS Link State PDU | |
isis mpls | Multi-Protocol Label Switching (MPLS) | |
isis nfsm | IS-IS Neighbor Finite State Machine | |
isis nsm | IS-IS NSM information | |
isis pdu | IS-IS Protocol Data Unit | |
isis protocol-errors | IS-IS Protocol Errors | |
isis rib | IS-IS RIB information | |
isis spf | IS-IS SPF Calculation | |
ldp | Label Distribution Protocol (LDP) | Административный и конфигурационный |
ldp advertise-labels | List IP access lists of advertise-labels | |
ldp all | Enable all debugging | |
ldp dsm | LDP Downstream SM | |
ldp events | LDP events | |
ldp fsm | LDP FSM | |
ldp graceful-restart | LDP Graceful Restart Debugging | |
ldp hexdump | LDP HEXDUMP | |
ldp nsm | NSM messages | |
ldp packet | LDP packet | |
ldp qos | LDP QoS | |
ldp rib | RIB messages | |
ldp tsm | LDP Trunk SM | |
ldp usm | LDP Upstream SM | |
ldp vc | LDP VC Info | |
mrib | Multicast Routing Information Base (MRIB) | Административный и конфигурационный |
mrib all | All MRIB debugging | |
mrib event | MRIB events | |
mrib fib-msg | MRIB FIB messages | |
mrib mrib-msg | MRIB MRIB IPC messages | |
mrib mrt | MRIB route | |
mrib mtrace | MRIB traceroute | |
mrib mtrace-detail | MRIB traceroute detailed debugging | |
mrib nsm-msg | MRIB NSM IPC messages | |
mrib register-msg | MRIB PIM Register messages | |
mrib stats | MRIB statistics | |
mrib vif | MRIB interface | |
mrib vrf | VPN Routing/Forwarding instance | |
nsm | Network Service Module (NSM) | Административный и конфигурационный |
nsm all | Enable all debugging | |
nsm events | NSM events | |
nsm packet | NSM packets | |
ospf | Open Shortest Path First (OSPF) | Административный и конфигурационный |
ospf all | Enable all debugging | |
ospf database-timer | OSPF Database Timers | |
ospf events | OSPF events information | |
ospf graceful-restart | OSPF graceful-restart | |
ospf ifsm | OSPF Interface State Machine | |
ospf lsa | OSPF Link State Advertisement | |
ospf nfsm | OSPF Neighbor State Machine | |
ospf nsm | OSPF NSM information | |
ospf packet | OSPF packets | |
ospf policy | OSPF policy information | |
ospf redist | OSPF redistribute information | |
ospf retransmission | OSPF Debug retransmission information | |
ospf rib | OSPF RIB information | |
ospf route | OSPF route information | |
pim | Protocol Independent Multicast (PIM) | Административный и конфигурационный |
pim all | All PIM debugging | |
pim events | PIM events | |
pim mfc | PIM MFC updates | |
pim mib | PIM mib | |
pim mtrace | Mtrace messages | |
pim nexthop | PIM nexthop | |
pim nsm | NSM message | |
pim packet | PIM packet | |
pim state | PIM state | |
pim timer | PIM timers | |
pim vrf | VPN Routing/Forwarding instance | |
rib | Routing Information Base (RIB) | Административный и конфигурационный |
rib all | Enable all debugging | |
rib events | RIB events | |
rib nsm | NSM messages | |
rib packet | RIB packets | |
rib routing | Enable debugging for routing events | |
security-profile | Security profile | Административный и конфигурационный |
vrrp | Virtual Router Redundancy Protocol (VRRP) | Административный и конфигурационный |
vrrp all | Enable all debugging | |
vrrp events | VRRP events | |
vrrp packet | VRRP packets | |
aaa | AAA | Конфигурационный |
aaa 1 | critical | |
aaa 2 | error | |
aaa 3 | warning | |
aaa 4 | notice | |
aaa 5 | info | |
aaa 6 | debug |
Для отключения отладки используется команда no debug <SUBSYSTEM>, которая также работает в двух режимах. Предусмотрена также команда un debug <SUBSYSTEM>, однако, она работает только для подсистем и доступна только в административном режиме.
Для отлючения отладки сразу для всех доступных подсистем используются команды no debug all и undebug all.
Для вывода на консоль информации об отладке подсистем используется команда административного режима show debugging <SUBSYSTEM>, где SUBSYSTEM - имя подсистемы. Данная команда доступна для подсистем: bgp, data-plane, igmp, isis, ldp, mrib, nsm, ospf, pim, rib, security-profile, vrrp.
Архив логов
Просмотр архива логов
В EcoRouterOS в случае непредвиденных ситуаций собирается архив с логами и со всеми необходимыми для диагностики данными. Эти файлы имеют префикс "report" в названии. В название каждого такого архива также включается дата и точное время создания. Все репорты хранятcя локально на маршрутизаторе. Для их просмотра следует воспользоваться командой show reports. В результате ее выполнения выводится списко архивов логов с указанием размеров архивов и даты и времени их создания.
ecorouter#show reports
report-20171107T143644UTC-3.2.3.9.11254-develop-68fb7f7.tar.xz: 181 KB 2017-10-07 14:36:45
report-20171107T143606UTC-3.2.3.9.11254-develop-68fb7f7.tar.xz: 174 KB 2017-10-07 14:36:07
Удаление архива логов
Ненужные или старые архивы можно удалить при помощи команды delete report <REPORT_NAME>, где <REPORT_NAME> - имя удаляемого архива. Для удаления всех архивов следует использовать команду delete report all.
ecorouter#show reports
report-20171107T143644UTC-3.2.3.9.11254-develop.tar.xz: 181 KB 2017-10-07 14:36:45
report-20171107T143606UTC-3.2.3.9.11254-develop: 174 KB 2017-10-07 14:36:07
ecorouter#delete report report-20171107T143644UTC-3.2.3.9.11254-develop.tar.xz
ecorouter#show reports
report-20171107T143606UTC-3.2.3.9.11254-develop.tar.xz: 174 KB 2017-10-07 14:36:07
ecorouter#delete report all
ecorouter#show reports
No reports found!
ecorouter#
Копирование архива логов на внешний сервер
При необходимости архив логов можно скопировать на внешние FTP/TFTP-сервера. Общий вид команды для копирования следующий:
copy report {ftp | tftp} <REPORT_NAME> <URL>[<NEW_FILENAME>] {mgmt | vr default | vr <VRNAME>}
Здесь <REPORT_NAME> - имя копируемого архива логов, <URL> - адрес сервера с указанием имени пользователя и пароля, <NEW_FILENAME> - новое имя файла архива логов (если возникла необходимость сохранить его на сервере под исходным именем, отличным от исходного).
Различные варианты применения команды copy report представлены в таблице.
Команда | Описание |
---|---|
copy report ftp REPORT_NAME ftp://user:password@xxx.xxx.xxx.xxx/ mgmt | Архив логов с именем REPORT_NAME будет выгружен на FTP-сервер, FTP-сервер доступен через менеджмент-порт (mgmt) |
copy report ftp REPORT_NAME ftp://user:password@xxx.xxx.xxx.xxx/filename vr default | Архив логов с именем REPORT_NAME будет выгружен на FTP-сервер. Доступ к FTP-серверу осуществляется через интерфейс виртуального маршрутизатора, выбранного по умолчанию. Архив логов будет сохранен на сервере под именем filename |
copy report tftp REPORT_NAME tftp://xxx.xxx.xxx.xxx/ vr vrname | Архив логов с именем REPORT_NAME будет выгружен на TFTP-сервер. Доступ к TFTP-серверу осуществляется через интерфейс виртуального маршрутизатора с именем vrname. |
copy report tftp REPORT_NAME tftp://xxx.xxx.xxx.xxx/filename mgmt | Архив логов с именем REPORT_NAME будет выгружен на TFTP-сервер. Доступ к TFTP-серверу осуществляется через менеджмент-порт (mgmt). Архив логов будет сохранен на сервере под именем filename |
Сниффинг
В EcoRouterOS можно включить сниффинг трафика на физических портах устройства. Трафик записывается в файл с расширением PCAPNG, и хранится во внутреннем хранилище. Имя файла формируется автоматически и содержит имя порта, оно не может быть изменено.
Для старта сниффинга трафика в режиме администрирования enable-exec (ecorouter#) введите команду:
service dump port <NAME> start
где NAME - имя порта.
По умолчанию для каждого физического порта установлен лимит на запись в PCAPNG файл в 1000 пакетов, после сбора 1000 пакетов в файл синффинг траффика будет автоматически оставновлен. Сниффинг можно также остановить принудительно командой:
service dump port <NAME> stop
где NAME - имя порта.
Для того, чтобы изменить лимит по умолчанию воспользуйтесь командой:
service dump port <NAME> limit (mbyte <1-100> | pkts <1-1000000>)
где NAME - имя порта, а ключевые слова mbyte и pkts указывают тип лимита, лимит может быть задан в:
* мегабайтах — размер PCAPNG файла,
* количестве пакетов — в PCAPNG файле.
Вернуть лимит к значению по умолчанию можно командой:
service dump port <NAME> limit unset
или командой:
no service dump port <NAME> limit
где NAME - имя порта.
При старте сниффинга есть возможность задать фильтры для записи трафика, чтобы в конечный PCAPNG файл попал трафик включающий только определенный IP адрес , MAC адрес или протокол. Чтобы задать фильтр воспользуйтесь командой:
service dump port <NAME> filter (ether <WORD> | ip A.B.C.D | mac XXXX.XXXX.XXXX )
где NAME - имя порта, а ключевые слова ether, ip и mac указывают тип фильтра:
* A.B.C.D — интересующий IP адрес (может быть как в качестве источника так и получателя в пакете),
* XXXX.XXXX.XXXX — интересующий MAC адрес (может быть как в качестве источника так и получателя во фрейме),
* WORD — Поле EtherType во фрейме укажет интересующий протокол, значение вводится в формате hex в пределах 0x600-0xffff (воспользуйтесь подсказкой в CLI, чтобы увидеть предустановленные фильтры для EtherType).
Максимальное кол-во созданных фильтров для каждого порта - 10, между ними будет работать логическое правило «ИЛИ». Для удаления правила воспользуйтесь командой:
no service dump port te0 filter <1-10>
где <1-10> - номер фильтра, который можно узнать с помощью команды:
show dump port <NAME> stats
где NAME - имя порта.
Пример вывода:
ecorouter#show dump port ge1 stats
Stats for port:ge1
limit: 1000 packets, current 0
filter 1: enable(mac: any, ipv4: 1.1.1.1, ether type: any)
filter 2: enable(mac: any, ipv4: 2.2.2.2, ether type: any)
После остановки сниффера обработанные PCAPNG файлы можно посмотреть с помощью команды:
show dump files
Для дальнейшего анализа PCAPNG файлов присутствует возможность отправить их на удаленный сервер или ПК с помощью протокола SSH, воспользовавашись командой
copy scp dump <FILENAME> <URL>, где FILENAME - имя PCAPNG файла (воспользуйтесь командой show dump files), а URL — конечный адрес получателя. Убедитесь, что в security-profile (см. раздел Авторизация в системе) есть возможность подключения к устройству с помощью протокола SSH.
Внимание!
Включение сниффинга трафика на высокоскоростных физических портах снижает производительность устройства! Используйте это средство для отладки подконтрольно и с осторожностью, при необходимости воспользуйтесь силами технической поддержки вендора.