Logo

EcoRouter

EcoNAT

EcoQOE

EcoBypass

English

  • Release Notes
  • Логирование и отладка EcoRouter Documentation / Логирование и отладка

    Логирование

    В системе EcoRouter ведется запись обо всех происходящих событиях (выполняемых операциях, изменениях конфигурации) - логирование. По умолчанию журнал событий (лог) ведется на самом устройстве.

    Сообщения о событиях пишутся в двух форматах, описанных ниже.

    Формат системных сообщений - действий, производимых сервисами (демонами) системы:

    ><DATE> <TIME> [VERBOSE] [SERVICE] <MESSAGE>

    Формат сообщений об операциях, производимых пользователями (аккаунтинга):

     <DATE> <TIME> [VERBOSE] [IMISH] AUDIT [USER] <MESSAGE>

    Параметры приведенной условной записи форматов сообщений описаны в таблице ниже.

    ПараметрОписание
    DATEдата события в формате ГГГГ-ММ-ДД
    TIMEвремя события в формате ЧЧ:ММ:СС.СССССС
    VERBOSEуровень события:
    •    FATAL – критические сообщения,
    •    ERROR – ошибки,
    •    WARN – предупреждения,
    •    INFO – информация
    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.

    В таблице ниже приведен список доступных подсистем и параметров данной команды.

    Подсистема/

    параметр команды

    ОписаниеРежим
    bgpBorder Gateway Protocol (BGP)Административный и конфигурационный
    bgp allall debugging
    bgp dampeningBGP Dampening
    bgp eventsBGP events
    bgp filtersBGP filters
    bgp fsmBGP Finite State Machine
    bgp keepalivesBGP keepalives
    bgp mplsBGP MPLS
    bgp nhtNHT message
    bgp nsmNSM message
    bgp updatesBGP updates
    data-planeData PlaneАдминистративный и конфигурационный
    data-plane allEnable all debugging
    data-plane bridgeBridge subsystem
    data-plane cpControl Plane subsystem
    data-plane fastpathFastpath subsystem
    data-plane generalGeneral subsystem
    data-plane integratorIntegrator subsystem
    data-plane mac checkMac check
    data-plane packetflowPacketflow subsystem
    data-plane printPrint subsystem
    data-plane slowpathSlowpath subsystem
    data-plane testTest subsystem
    igmpInternet Group Management Protocol (IGMP)Административный и конфигурационный
    igmp allAll IGMP debugging
    igmp decodeIGMP decode
    igmp encodeIGMP encode
    igmp eventsIGMP events
    igmp fsmIGMP FSM
    igmp tibIGMP Tree-Info-Base (TIB)
    igmp vrfVPN Routing/Forwarding instance
    isisIntermediate System - Intermediate System (IS-IS)Административный и конфигурационный
    isis allEnable all debugging
    isis authenticationIS-IS Authentication
    isis checksumIS-IS Check-Sum
    isis eventsIS-IS Events
    isis helloIS-IS Hello Debug
    isis ifsmIS-IS Interface Finite State Machine
    isis local-updatesIS-IS Local Updates
    isis lspIS-IS Link State PDU
    isis mplsMulti-Protocol Label Switching (MPLS)
    isis nfsmIS-IS Neighbor Finite State Machine
    isis nsmIS-IS NSM information
    isis pduIS-IS Protocol Data Unit
    isis protocol-errorsIS-IS Protocol Errors
    isis ribIS-IS RIB information
    isis spfIS-IS SPF Calculation
    ldpLabel Distribution Protocol (LDP)Административный и конфигурационный
    ldp advertise-labelsList IP access lists of advertise-labels
    ldp allEnable all debugging
    ldp dsmLDP Downstream SM
    ldp eventsLDP events
    ldp fsmLDP FSM
    ldp graceful-restartLDP Graceful Restart Debugging
    ldp hexdumpLDP HEXDUMP
    ldp nsmNSM messages
    ldp packetLDP packet
    ldp qosLDP QoS
    ldp ribRIB messages
    ldp tsmLDP Trunk SM
    ldp usmLDP Upstream SM
    ldp vcLDP VC Info
    mribMulticast Routing Information Base (MRIB)Административный и конфигурационный
    mrib allAll MRIB debugging
    mrib eventMRIB events
    mrib fib-msgMRIB FIB messages
    mrib mrib-msgMRIB MRIB IPC messages
    mrib mrtMRIB route
    mrib mtraceMRIB traceroute
    mrib mtrace-detailMRIB traceroute detailed debugging
    mrib nsm-msgMRIB NSM IPC messages
    mrib register-msgMRIB PIM Register messages
    mrib statsMRIB statistics
    mrib vifMRIB interface
    mrib vrfVPN Routing/Forwarding instance
    nsmNetwork Service Module (NSM)Административный и конфигурационный
    nsm allEnable all debugging
    nsm eventsNSM events
    nsm packetNSM packets
    ospfOpen Shortest Path First (OSPF)Административный и конфигурационный
    ospf allEnable all debugging
    ospf database-timerOSPF Database Timers
    ospf eventsOSPF events information
    ospf graceful-restartOSPF graceful-restart
    ospf ifsmOSPF Interface State Machine
    ospf lsaOSPF Link State Advertisement
    ospf nfsmOSPF Neighbor State Machine
    ospf nsmOSPF NSM information
    ospf packetOSPF packets
    ospf policyOSPF policy information
    ospf redistOSPF redistribute information
    ospf retransmissionOSPF Debug retransmission information
    ospf ribOSPF RIB information
    ospf routeOSPF route information
    pimProtocol Independent Multicast (PIM)Административный и конфигурационный
    pim allAll PIM debugging
    pim eventsPIM events
    pim mfcPIM MFC updates
    pim mibPIM mib
    pim mtraceMtrace messages
    pim nexthopPIM nexthop
    pim nsmNSM message
    pim packetPIM packet
    pim statePIM state
    pim timerPIM timers
    pim vrfVPN Routing/Forwarding instance
    ribRouting Information Base (RIB)Административный и конфигурационный
    rib allEnable all debugging
    rib eventsRIB events
    rib nsmNSM messages
    rib packetRIB packets
    rib routingEnable debugging for routing events
    security-profileSecurity profileАдминистративный и конфигурационный
    vrrpVirtual Router Redundancy Protocol (VRRP)Административный и конфигурационный
    vrrp allEnable all debugging
    vrrp eventsVRRP events
    vrrp packetVRRP packets
    aaaAAAКонфигурационный
    aaa 1critical
    aaa 2error
    aaa 3warning
    aaa 4notice
    aaa 5info
    aaa 6debug

    Для отключения отладки используется команда 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.
     
     Внимание!
     Включение сниффинга трафика на высокоскоростных физических портах снижает производительность устройства! Используйте это средство
    для отладки подконтрольно и с осторожностью, при необходимости воспользуйтесь силами технической поддержки вендора.