Iftop — утилита для мониторинга сетевой активности в linux в режиме реального времени

19.10. Утилита iftop

Утилита выводит статистическую информацию об использовании пропускной способности определенных сетевых устройств различными соединениями, представленными сокетами. На серверах, работающих под управлением дистрибутива Red Hat, данная утилита также недоступна по умолчанию.

1.91Mb 3.81Mb 5.72Mb 7.63Mb 9.54Mb
--------------|-------------|--------------|-------------|--------|----
laika.local        => barry                      4.94Kb  6.65Kb  69.9Kb
                   <=                            7.41Kb  16.4Kb   766Kb
laika.local        => ik-in-f19.google.com          0b   1.58Kb  14.4Kb
                   <=                               0b    292b   41.0Kb
laika.local        => ik-in-f99.google.com          0b     83b   4.01Kb
                   <=                               0b     83b   39.8Kb
laika.local        => ug-in-f189.google.com         0b     42b    664b
                   <=                               0b     42b    406b
laika.local        => 10.0.0.138                    0b      0b    149b
                   <=                               0b      0b    256b
laika.local        => 224.0.0.251                   0b      0b     86b
                   <=                               0b      0b      0b
laika.local        => ik-in-f83.google.com          0b      0b     39b
                   <=                               0b      0b     21b

Онлайн курс «Сетевой инженер»

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные сети, рекомендую познакомиться с онлайн-курсом «Сетевой инженер» в OTUS. Это авторская программа в сочетании с удалённой практикой на реальном оборудовании и академическим сертификатом Cisco! Студенты получают практические навыки работы на оборудовании при помощи удалённой онлайн-лаборатории, работающей на базе партнёра по обучению — РТУ МИРЭА: маршрутизаторы Cisco 1921, Cisco 2801, Cisco 2811; коммутаторы Cisco 2950, Cisco 2960.

Особенности курса:

  • Курс содержит две проектные работы.;
  • Студенты зачисляются в официальную академию Cisco (OTUS, Cisco Academy, ID 400051208) и получают доступ ко всем частям курса «CCNA Routing and Switching»;
  • Студенты могут сдать экзамен и получить вместе с сертификатом OTUS ещё сертификат курса «CCNA Routing and Switching: Scaling Networks»;

Проверьте себя на вступительном тесте и смотрите программу детальнее по .

Помогла статья? Подписывайся на telegram канал автора

Рекомендую полезные материалы по Debian:
Настройки системы
  • Установка
  • Базовая настройка
  • Настройка сети
  • Обновление 8 до 9
  • Обновление 7 до 8
  • Включение логов cron

Подробная установка Debian 9 Stratch с помощью графического инсталлятора со скриншотами и пояснениями к каждому пункту установщика.

Базовая настройка сервера Debian. Приведены практические советы по улучшению безопасности и удобства администрирования.

Подробное описание настройки сети в Debian — задать ip адрес, dhcp, отключить ipv6, dns, hostname, статические маршруты и др.

Обновление предыдущей версии Debian 8 Jessie до последней Debian 9 Stratch. Подробная инструкция с описанием по каждому этапу обновления.

Обновление версии Debian 7 wheezy до Debian 8 Jessie. Подробная инструкция с описанием по каждому этапу обновления.

Включение записи логов cron в Debian в отдельный файл и настройка ротации этого файла. Отключение логов в syslog.

Настройка программных комплексов
  • Proxmox
  • Шлюз в интернет
  • Установка Asterisk
  • Asterisk+Freepbx
  • PostgreSQL для 1С
  • Настройка pptp

Подробное описание установки гипервизора proxmox на raid1 mdadm на базе операционной системы Debian 8. Приведены практические советы по настройке.

Настройка интернет шлюза на Debian. Включает в себя настройку iptables, nat, dhcp, dns, iftop.

Чистая установка Asterisk 13 на сервер под управлением Debian 8. Никаких дополнений и GUI, только vanilla asterisk.

Установка Freepbx 12 и Asterisk 13 на сервер под управлением Debian/Ubuntu. Подробное описание и разбор ошибок установки.

Рассказ об установке и небольшой настройке сервера бд postgresql для работы с базами 1С. Задача не сложная, но есть небольшие нюансы как по настройке, так и по выбору дистрибутива.

Описание установки и настройки pptp сервера в Debian с передачей статических маршрутов клиенту для организации доступа к ресурсам сети.

Разное
  • Бэкап с помощью rsync
  • Тюнинг postgresl для 1C

Подробное описание настройки бэкапа с помощью rsync на примере скрипта инкрементного архива на системе Centos, Debian, Ubuntu, Windows.

Ускорение работы 1С с postgresql и диагностика проблем производительности

30. Linux Dash – Мониторинг производительности сервера Linux

Linux Dash представляет собой веб-панель, которая показывает вам самую важную информацию о ваших системах Linux, к этой информации относится RAM, CPU, файловая система, запущенные процессы, пользователи, использование канала сети в реальном времени, имеется приятный графический интерфейс, программа бесплатна, у неё открытый исходный код.

31. Cacti – Мониторинг сети и системы

Cacti – это веб-интерфейс для RRDtool, он часто используется для контроля использования сети, используя SNMP (Simple Network Management Protocol), также может использоваться для контроля использования центрального процессора.

Особенности Cacti

  • Бесплатен, открыт, лицензия GPL.
  • Написан на PHP в PL/SQL.
  • Инструмент является кроссплатформенным, работает на Windows и Linux.
  • Управление пользователями; вы можете создать различные пользовательские аккаунты для Cacti.

Настройка ssh

Теперь внесем некоторые изменения в настройки сервера ssh. Я рекомендую его запускать на нестандартном порту для исключения лишних общений с ботами, которые регулярно сканируют интернет и подбирают пароли пользователей по словарям.

Существует расхожее мнение, что менять порт ssh это наивность, а не защита. Надо просто настроить сертификаты, fail2ban или еще каким-то образом защитить ssh порт, к примеру, с помощью ограничений iptables, и т.д. Тем не менее, я все же рекомендую порт сменить на нестандартный. Даже если у вас все защищено от подбора паролей, так как вы используете сертификаты, лишние запросы к ssh порту тратят ресурсы сервера, хоть и не очень большие. Идет установка соединения, обмен рукопожатиями и т.д. Зачем вам это нужно?

По-умолчанию в Debian, впрочем как и в любом другом дистрибутиве Linux, ssh сервер работает на 22 порту. Изменим этот порт, к примеру, на 23331. Так же я еще изменяю конфигурацию для разрешения подключения по ssh пользователя root с использованием пароля. В Debian из коробки пользователь root по ssh паролем авторизовываться не может. Изменим и это. Открываем файл настроек:

# nano /etc/ssh/sshd_config

И изменяем там следующие строки. Приводим их к виду:

Port 23331
PermitRootLogin yes

Сохраняем изменения и перезапускаем сервер ssh следующей командой:

# service sshd restart

Проверяем изменения:

# netstat -tulnp | grep ssh

tcp 0 0 0.0.0.0:23331 0.0.0.0:* LISTEN 925/sshd
tcp6 0 0 :::23331 :::* LISTEN 925/sshd

Все в порядке, сервер слушает 23331 порт. Теперь новое подключение будет осуществлено только по порту 23331. При этом, после перезапуска ssh, старое подключение не будет разорвано.

Я знаю, что многие возражают против подключения рутом к серверу. Якобы это небезопасно и т.д. и т.п. Мне эти доводы кажутся не убедительными. Не понимаю, в чем может быть проблема, если у меня нормальный сложный пароль на root, который не получится подобрать или сбрутить. Ни разу за всю мою работу системным администратором у меня не возникло проблем с этим моментом. А вот работать так значительно удобнее, особенно, когда необходимо оперативно куда-то подключиться по форс мажорным обстоятельствам.

Отдельно тему подключения к серверу под root я рассмотрел в статье про sudo. Кому интересно, переходите в нее и делитесь своим мнением на этот счет.

Vnstat

Vnstat немного отличается от большинства других инструментов где Мониторинг сети Linux является основой. На самом деле он запускает фоновый сервис / daemon и постоянно фиксирует размер передачи данных. Кроме того, его можно использовать для создания отчета об истории использования сети.

:~$ sudo service vnstat status
 * vnStat daemon is running

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

:~$ sudo vnstat
Database updated: Mon Mar 17 15:26:59 2014

   eth0 since 06/12/13

          rx:  135.14 GiB      tx:  35.76 GiB      total:  170.90 GiB

   monthly
                     rx      |     tx      |    total    |   avg. rate
     ------------------------+-------------+-------------+---------------
       Feb '14      8.19 GiB |    2.08 GiB |   10.27 GiB |   35.60 kbit/s
       Mar '14      4.98 GiB |    1.52 GiB |    6.50 GiB |   37.93 kbit/s
     ------------------------+-------------+-------------+---------------
     estimated      9.28 GiB |    2.83 GiB |   12.11 GiB |

   daily
                     rx      |     tx      |    total    |   avg. rate
     ------------------------+-------------+-------------+---------------
     yesterday    236.11 MiB |   98.61 MiB |  334.72 MiB |   31.74 kbit/s
         today    128.55 MiB |   41.00 MiB |  169.56 MiB |   24.97 kbit/s
     ------------------------+-------------+-------------+---------------
     estimated       199 MiB |      63 MiB |     262 MiB |

Чтобы отслеживать использование полосы пропускания в реальном времени, используйте параметр «-l» (режим «вживую»). Затем она покажет общую пропускную способность, используемую входящими и исходящими данными, но очень точным образом, без каких-либо внутренних сведений о хостах или процессах.

:~$ vnstat -l -i eth0
Monitoring eth0...    (press CTRL-C to stop)

   rx:       12 kbit/s    10 p/s          tx:       12 kbit/s    11 p/s

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

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

Установить в Debian или Ubuntu

Установить в Fedora или CentOS

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

А затем ввести команду установки заново.

3 Февраль 2013

Утилита iotop показывает статистику нагрузки на жесткие диски, в том числе она показывает процессы и пользователей, которые эту самую нагрузку создают. Но на CentOS 5.9 Final, стандартный iotop из репозитория может не запуститься. В таком случае делаем следующее:
Если при запуске iotop, получаем ошибку:

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

Traceback (most recent call last):
  File "/usr/bin/iotop", line 16, in ?
    main()
  File "/usr/lib/python2.4/site-packages/iotop/ui.py", line 567, in main
    main_loop()
  File "/usr/lib/python2.4/site-packages/iotop/ui.py", line 557, in 
    main_loop = lambda: run_iotop(options)
  File "/usr/lib/python2.4/site-packages/iotop/ui.py", line 465, in run_iotop
    return curses.wrapper(run_iotop_window, options)
  File "/usr/lib64/python2.4/curses/wrapper.py", line 44, in wrapper
    return func(stdscr, *args, **kwds)
  File "/usr/lib/python2.4/site-packages/iotop/ui.py", line 457, in run_iotop_window
    process_list = ProcessList(taskstats_connection, options)
  File "/usr/lib/python2.4/site-packages/iotop/data.py", line 375, in __init__
    self.update_process_counts()
  File "/usr/lib/python2.4/site-packages/iotop/data.py", line 431, in update_process_counts
    stats = self.taskstats_connection.get_single_task_stats(thread)
  File "/usr/lib/python2.4/site-packages/iotop/data.py", line 158, in get_single_task_stats
    reply = self.connection.recv()
  File "/usr/lib/python2.4/site-packages/iotop/netlink.py", line 229, in recv
    raise err
OSError: Netlink error: Недопустимый аргумент (22)

Чтож, не отчаивайтесь.
Попробуйте так:
И выполните следующие действия:

После этого, запускайте — заработало?

Ну и пара полезных аргументов команды:

— показывать только процессы, реально использующие жесткие диски в текущий момент времени

— где вместо NUM нужно указать количество повторов, прежде чем программа завершит работу

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

Категория: Заметки линуксоида, Памятка, Процессы, окружение, Решение проблем, Серверы;

ATOP

ATOP особенно полезен, когда есть необходимость проанализировать изменения на системном уровне. Он выполняет фантастическую работу по информированию об улучшениях с течением времени. Он может составлять таблицы всех процессов, которые вызвали любые изменения на уровне системы (например, выполнение ввода-вывода диска) в течение определенного периода, в отличие от других – эта функция предоставляется только ATOP.

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

  • Мы можем видеть использование ресурсов процессами, которые были закрыты задолго до этого.
  • Он отслеживает все активные потоки в многопоточных приложениях и оставляет остальные, которые являются неактивными.
  • Он выделяет те ресурсы, которые используют ресурсы на критическом уровне, что обеспечивает высокий уровень взаимодействия с пользователем.

Как установить ATOP в Linux

Atop можно установить в операционных системах на основе Ubuntu, выполнив следующую команду. Эта команда извлекает пакет из репозитория Linux по умолчанию.

$ sudo apt-get install atop

Выполнение команд ATOP для анализа производительности диска

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

  • atop -m: эта команда показывает потребление памяти всеми активными процессами.
  • atop -V: отображает установленную поверх версии.
  • atop -a: эта команда показывает текущий статус всех активных процессов.
  • atop -s: эта команда отображает всю информацию, связанную с планированием задач.
  • atop -d: отображает информацию, относящуюся к потреблению данных во время операций ввода/вывода диска.
  • atop -v: отображает такую ​​информацию, как userId, rgid, processId и т. д.
  • atop -y: отображает информацию обо всех текущих потоках в активных процессах.
  • atop -C: перечисляет все процессы в отсортированном порядке по уровню потребления ЦП.

Инструменты мониторинга производительности

49. top: Программа командной строки для просмотра процессов. Может мониторить системную нагрузку, состояния процессво, использование CPU и памяти. Варианты включают более дружественный к пользователю htop.

50. ps: Показывает снимок всех запущенных в системе процессов. Вывод может быть настроен для показа PID, PPID, пользователя, нагрузки, памяти, совокупное время пользователя/системы, время запуска и другое. Варианты включают pstree, которая показывает процессы в виде дерева.

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

52. ngxtop: Инструмент для разбора логов доступа веб-сервера и мониторинга, его интерфейс вдохновлён командой top. Он может представить отчёт в режиме реального времени о веб-запросах вместе с их частотой, размером возвращённым кодом HTTP, IP адресом и т.д.

53. vmstat: Простой инструмент командной строки, который показывает различные свойства работающей системы, такие как количество процессов, свободная память, статус подкачки, использование CPU, блок активности ввода/вывода, статистика прерывания/переключения контекста и другое.

54 iotop: Основанный на ncurses инструмент мониторинга ввода/вывода, который показывает в реальном времени дисковую активность по вводу/выводу всех запущенных процессов в отсортированном порядке.

55. iostat: Инструмент командной строки, который сообщает о текущем использовании CPU, а также об использовании устройств ввода/вывода, где использование ввод/вывод (например, скорость передачи блока, скорость чтения/записи байта) сообщаются на основе каждого устройства или каждого раздела.

56. sysdig: Универсальный и всеобъемлющий инструмент с открытым исходным кодом для захвата и анализа поведения системы и состояние сервера как в режиме реального времени так и оффлайн режимах.

57. htop: Как top, но цветной.

58. dstat: Это vmstat+iostat+ifstat и цвет. Я обычно запускаю так ‘dstat -cdmsgnpl’.

Модуль 11. Анализ производительности и оптимизация системы

Лабораторные работы

11.2 Стресс тестирование и выявление нагрузки на CPU

  • Утилита john

  • Утилита ps

$ stress -c 6 -t 60s

$ top

$ ps ax -o pcpu,pid,user,command --sort pcpu

$ uptime

linux$ cat /proc/loadavg

11.4 Стресс тестирование и выявление нагрузки на HDD

# cat /sys/block/sda/stat

$ stress -d 2 --hdd-bytes 2GB

$ while true; do head -c 1G </dev/urandom >myfile;done

$ while true; do grep -r `openssl rand -base64 12` /usr /var; done

linux# iotop

linux# iostat

11.7 Оптимизация производительности или ее тестирование на реальной задаче

  • Управление ядром и модулями в Linux

  1. Перечислите основные ресурсы системы.
  2. Перечислите команды, позволяющие найти критический ресурс.

Run iftop using options

Turn on Port display

To turn on port display, add -P option with iftop

# iftop -P

The port will be displayed in both side. With this option turn on, we can analyze what kind of communication that happened the most.

Display bandwidth rates in bytes/sec

By default, iftop will display rates in bits/sec. To display it in bytes/sec, we can use -B option.

# iftop -B

We know that iftop display rates in bytes/sec is from the capital B letter on the data sent (TX) and received (RX). While if we show the b letter on the data sent and received it tell us that the rates is in bits/sec.

Specifies a network for traffic analysis

We can also ask iftop to only monitor specified network mask. To use this, we can use -F option followed by network mask.

# iftop -F 255.255.0.0

The above command will ask iftop to monitor network which has network mask 255.255.0.0.

Specify a listening interface

If your system has more than 1 interfaces to monitor, we can specify particular interface. Let say if we want to monitor eth0 interface, we can use -i option followed by the interface name.

# iftop -i eth0

Limit the upper bandwidth

Iftop provide an option to limit the upper bandwidth. To use this we can -m option followed by how much the limit.

# iftop -m 2000

The above command will tell iftop to limit 2 Kb (2 Kilobits).

On-screen command

Another part that makes iftop is interesting that iftop provides on-screen command. Press the question mark (?) button on the iftop screen to display the available command.

To exit from the on-screen command help, press the question mark button again.

1. Top – Мониторинг процессов Linux

Linux команда Top – это программа наблюдения за производительностью, которая часто используется системными администраторами для монитора производительности Linux, она доступна во многих операционных системах Linux и Unix-подобных. Команда top используется для отображения всех запущенных и активных процессов в реальном времени в упорядоченном списке, который регулярно обновляется. В нём показано использование ЦПУ, использование памяти, использование файла подкачки (Swap), размер кэша, размер буфера, PID процессов, пользователь, команды и многое другое. Также выделены процессы, интенсивно использующие центральный процессор и память. Команда top очень полезна для системных администраторов для контроля и принятия мер, в отношении процессов, излишне нагружающих систему. Давайте взглянем на команду top в действии.

top

Модуль 5. Настройка и тестирование сети

Лабораторные работы

5.1 Команды для настройки сети

Задание:

  1. выяснить состояние сетевых интерфейсов в системе, назначить им ip/mask/gate
  2. выяснить состояние переменных ядра отвечающих за forwarding ip пакетов и базовое значение ttl

Команды для настройки сети в Linux

5.2 Команды для диагностики сети

Задание: используя настроенную сетевую подсистему ядра проверить ее функционирование и подключиться к системе по протоколу ssh

Команды для диагностики сети в Linux

5.3 Файлы конфигурации сети

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

  • Текстовый редактор nano

  • сети в Linux

5.4 Дополнительные утилиты для тестирования сети

Задание: посмотреть какой порт “слушает” сервис ssh

Команды для диагностики сетевой подсистемы в Linux

Задание: посмотреть содержимое трафика ssh командой tcpdump

Утилиты для тестирования сети

Задание: проверить работу клиента DNS

Утилиты тестирования DNS

  1. Какие команды используются для управления/диагностики сетевых параметров системы?
  2. Какие команды используются для тестирования настроек DNS?
  3. Какие команды используются для анализа открытых сетевых портов системы?
  4. Что общего между файлами /etc/resolv.conf и /etc/hosts?
  5. Какие варианты управления файлом /etc/resolv.conf могут быть?
Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Мой редактор ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: