# Дополнительные программы

1. TkPortHistory.tcl
2. TkIfUtil.tcl
3. TkIfUtil.tcl
4. TkDeviceView.tcl
5. TkSnmpTable.tcl
6. EventsLog.tcl
7. SystemLog.tcl
8. NodeReport.tcl

### TkPortHistory.tcl

Утилита TkPortHistory предназначена для просмотра данных по загрузке интерфейсов маршрутизатора, собранных программой мониторнинга netmond.

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

          ......................
          RootDir "/var/netmon"
          Saving 300
          TimeFmt "%d/%m/%G %z %H:%M:%S"
          ......................
          Object "MyRouter" {
            Address "192.168.1.1"
    	Method router "my_snmp_get_community"
    	Save router
    	..............
    	Interface "Serial0" {
    	    Save interface
    	}
    	Interface "Ehternet0" {
    	    Save interface
    	}
            ..............
          }

В процессе работы netmond создает каталоги

             /var/netmon/MyRouter/Serial0
             /var/netmon/MyRouter/Ethernet0

а в них файлы с именами вида YYYY.MM.DD (напрмер, 2002.05.15) Т.е. получается, что за каждый день есть отдельный файл с данными. В этих файлах содержится информация по утилизации соответствующего порта в формате:

    	15/05/2002 +0700 00:26:00 "Ethernet0" 63398 69057 655 1134 0 0 0 0
    	15/05/2002 +0700 00:31:00 "Ethernet0" 53904 123444 589 1197 0 0 0 0
    	15/05/2002 +0700 00:36:00 "Ethernet0" 55075 69205 606 1134 0 0 0 0
    	15/05/2002 +0700 00:41:00 "Ethernet0" 50058 67035 562 1129 0 0 0 0

Первые три поля - год, смещение локальной тайм-зоны от GMT и локальное время. Затем имя интерфейса. Далее:

          ifInBytes.delta ifOutBytes.delta \
          ifinUcastPackets.delta ifOutUcastPackets.delta \
          ifInDrops.delta ifOutDrops.delta \
          ifInErros.delta ifOutErrors.delta

- изменение соответствующего параметра за последний 300 секундный интервал.

### Запуск программы

           $ ./TkPortHistory.tcl /var/netmon/MyRouter/Serial0/2002.05.15

в этом случае будет отображена информация из этого файла.

           $ ./TkPortHistory.tcl /var/netmon/MyRouter/Serial0

В этом случае появится диалог выбора файлов в каталоге /var/netmon/MyRouter/Serial0

           $ ./TkPortHistory.tcl

В этом случае появится диалог выбора файлов в текущем каталоге.

### Порядок работы

В рабочем окне есть следующие элементы:

- левая полоса прокрутки (левый скроллбар)
- область построение графиков
- правая полоса прокрутки (правый скроллбар)
- нижняя полоса прокрутки (нижний скроллбар)
- флажки (чекбоксы)

Область построения графиков имеет левую шкалу - она отображает масштаб для графиков ifInBytes ifOutBytes; правая-первая шкала отображает масштаб для графиков ifInUcastPackets ifOutUcastPackets; правая-вторая шкала отображает масштаб для ifInDrops ifOutDrops ifInErrors ifOutErrors. Нижняя шкала - шкала времени.

Когда курсор попадает в область построения графиков, на картинке появляются перекрещивающиеся горизонтальная и вертикальная линии, и они двигаются так, что курсор оказывается в точке их пересечения.

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

При этом, Вы можете двигать ползунок левой полосы прокрутки (левый скроллбар) - будут двигаться графики ifInBytes ifOutBytes и их шкала.
Если Вы будете двигать двигать ползунок правой полосы прокрутки(правый скроллбар) - будут двигаться графики ifInUcastPackets ifOutUcastPackets и их шкала.
Если Вы будете двигать двигать ползунок нижней полосы прокрутки (нижний скроллбар) - окно просмотра будет двигаться вдоль шкалы времени.

Если нажать правую клавишу мыши, масштабирование будет отменено.

Если очистить какой-нибудь флажок (чекбокс) - соответствующая пара графиков будет скрыта. Если установить - графики снова появятся.

Флажок (чекбокс) с надписью "legend" отвечает за видимость таблички соответствия цвета линии отображаемому параметру.

### Управляющие комбинации клавиш

Control-n - Загрузить данные из другого файла.
F3 - Сохранить график в файл (.GIF)
F4 - Сохранить график в файл (.PS)
Alt - F4, F10 - Выйти.

### TkIfUtil.tcl

программа TkIfUtil.tclпредназначена для наблюдения за утилизацией сетевого интерфейса в реальном времени.
Запуск программы

           $ ./TkIfUtil.tcl ROUTER communty 4

Здесь ROUTER - FQND или IP адрес сетевого оборудования, community - SNMP community, и последний параметр - индекс интерфейса, за загрузкой которого будем наблюдать. ( Идекс можно узнать при помощи прогаммы TkSnmpTable.tcl)
Интервал опроса - 20 секунд. На графике отображаются данные только за последние 2 часа. Если в данном устройстве присутсвтуют 64 разраядные счетчики, то опрашиваются именно они (ifHCInOctets ifHCOutOctets).

### TkDeviceView.tcl

Программа предназначена для удобного просмотра SNMP информации по определенному хосту.
Запуск программы

           $ ./TkDeviceView.tcl ROUTER communty

Здесь ROUTER - FQND или IP адрес сетевого оборудования, community - SNMP community.
Это своего рода "надстойка" для удобного запуска других программ.

### TkSnmpTable.tcl

Программа TkSnmpTable.tcl предназначена для просмотра SNMP таблиц сетевого оборудования - таблицы интерфесов, маршрутов, Tcp сеансов, процессов и так далее.
Запуск программы

           $ ./TkSnmpTable.tcl ROUTER communty ifTable

Здесь ROUTER - FQND или IP адрес сетевого оборудования, community - SNMP community, последний параметр - ссылка на таблицу так, как ее понимает программа snmptable

### SystemLog.tcl

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

           $ ./SystemLog.tcl [ dirname | filename ]

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

### NodeReport.tcl

Программа NodeReport.tcl предназначена для отображения внутренних переменных сервиса Netmond для хоста.
Запуск программы

           $ ./NodeReport.tcl Netstate_Server Netstate_Port host

Здесь: Netstate_server - FQDN или IP адрес хоста, на катором работает сервис netmond;
Netstate_Port - порт Netstate сервиса netmond;
host - хост, параметры которго нужно постмотреть.