===== Мониторинг в ОС FreeBSD ===== **Утилита top**\\ Показывает общие сведения о процессоре, памяти и процессах. Параметры: * S — показать системные процессы, по умолчанию они не показываются * u — и имя пользователя, например u mysql покажет процессы запущенные от пользователя mysql * o — используем для сортировки, возможные параметры — pri, size, res, cpu, time, threads * m — переключение между режимами отображения нагрузки и ввода-вывода * k — завершить процесс, ввод pid процесса * r — изменить приоритет процесса, вводим pid процесса * n — отображать статистику по определённому процессу * a — показывает абсолютные запущенных процессов * top -n 3 — показывает самые ресурсоёмкие приложения в данный момент **gstat** — показывает использование дисков.\\ **gstat -a** — используется для вывода только активных устройств **vmstat** — показывает состояние виртуальной памяти и буфера.\\ **vmstat 5** — отображает статистику раз в пять секунд\\ **vmstat -z** — показывает состояние буфера\\ **vmstat -i** — показывает состояние прерываний **iostat** — выводит статистику по I/O усройств\\ **iostat -d -w5** — показывать информацию по дискам, с периодичностью в пять секунд безостановочно\\ **iostat -dx -w5** — показывает расширенную статистику\\ **systat** — отображает различные параметры системы.\\ **systat -vmstat 1** — отображает суммарную системную статистику\\ **systat -netstat 1** — показывает активные сетевые соединения\\ **systat -ifstat 1** — отображает нагрузку сетевых интерфейсов\\ **systat -tcp 1** — отображает статистику tcp-соединения, возможен просмотр по icmp, ip, icmp6, ip6\\ **systat -iostat 1** — отображает нагрузку на процессов, дисковую подсистему\\ **systat -swap 1** — показывает загрузку файла подкачки **netstat** — показывает активные сетевые соединения.\\ **netstat -w 1** — количество пакетов в настоящее время\\ **netstat -ibt** — вывод сетевых интерфейсов с разбивкой по IP адресам, отображает объём трафика, количество ошибок, коллизий.\\ **netstat -rn** — отображает таблицу маршрутизации **diskinfo -t ad0** – показывает информацию по диску, и делает тест на дисковую производительность. **sysctl** — позволяет посмотреть параметры в системы и внести изменения, такие как стек tcp/ip, вирутальной памяти.\\ **sysctl -a** — показывает все параметры\\ **sysctl kern.ipc.numopensockets** — показывает количество открытых сокетов\\ **sysctl kern.openfiles** — показывает количество открытых файлов\\ **df** — утилита, которая показывает свободное место на дисках.\\ **df -h** — отображает слайсы, и свободное\занятое место.\\ **df -i** — показывает количество занятых инодов.\\ **fstat** — показывает список открытых файлов.\\ **fstat |grep http| wc -l** — показывает список открытых файлов по процессу http\\ **sockstat** — отображает информацию о сокетах, сетевых и файловых.\\ **sockstat -l** — список портов открытых на прослушивание\\ **sockstat -c** список установленных соединений\\ **sockstat -4, -6** — по протоколу ipv4 или ipv6 **lsof** — показывает информацию от открытых сокетах, файлах и сетевых соединениях.\\ **lsof -i -n** — показывает открытые Интернет-соединения\\ **lsof -i -n |grep ESTABLISHED** — показывает открытые, и установленные сетевые соединения **ps auxww|grep имя\pid\откого запущено** — позволяет получить информацию по интересующему процессу.\\ **mount** — показывает смонтированные разделы.\\ **swapinfo** — показывает информацию о файле подкачки. Также можно установить iftop, которая показывает статистику по сетевым интерфейсам, к при меру: iftop -i em0 **tunefs -p /tmp** – показывает информацию о файловой системе. **uname -a** — показывает информацию о системе, ядре.\\ **date** — выводит текущую дату и время.\\ **w** — показывает кто, откуда, во сколько зашёл в систему.\\ **last** — показывает историю входов в систему, и последнюю перезагрузку.\\ **uptime** — показывает сколько система работает с момента последней перезагрузки. ==== HDD ==== **atacontrol list** - просмотр всех жестких дисков в системе (показывает в том числе и их модели)\\ **mount** – показывает смонтированные подразделы и флаги из монтирования\\ **cat /etc/fstab** – таблица монтирования при загрузке\\ **disklabel /dev/ad0s1** – показывает список подразделов в первом разделе диска ad0\\ **swapinfo** – показывает список подразделов свопинга на дисках и их использование\\ **gstat** – нагрузка на диски\\ **fstat** – показывает список открытых файлов (имена файлов не выводятся)\\ **pstat -f** – выводит список открытых файлов (имена файлов не выводятся)\\ **iostat** – выводит информацию, аналогичную systat -vmstat, но не выводит занятости диска по времени и может выводить среднюю статистику с момента загрузки.\\ **iostat -d -w1 -c7** – нагрузка на диски. Статистика в удобном виде\\ **vmstat** – выводит количество операций на диске в секунду\\ **sysinstall** – можно посмотреть и изменить разметку диска и монтирование **systat -vmstat n** – каждые n секунд выводит количество транзакций с диском в секунду, объем записанных/считанных данных на диск в секунду, средний размер транзакции и процент времени в течение которого диск был занят работой.\\ **systat -io start 1** - HDD + CPU\\ **diskinfo -t ad4** – тест на дисковую производительность\\ **tunefs -p /var/** – информация о настройках файловой системы (UFS) **df -H** – количество свободного места\\ **df -i** – количество свободных инодов ==== Network ==== **ifconfig** – список сетевых интерфейсов с ip-адресами, масками, mac-адресами, типами карт и их статусами(названия карточек можно посмотреть в файле конфигурации ядра)\\ **ifconfig -d** - Просмотреть список отключенных интерфейсов\\ **ifconfig -u** - Список включенных сетевух\\ **netstat** – вывод активных сетевых соединений (сокетов)\\ **netstat -i** ошибки на интерфейсах\\ **netstat -m** - просмотр хватает ли mbuf и т.д.\\ **netstat -inb** – сколько передано через интерфейс в байтах\\ **netstat -ibt** – список интерфейсов, разбитых по ip-адресам (!) с объемом трафика на каждом, количеством ошибок, коллизий, значением watchdog-таймера\\ **netstat -hdw 1 -i net1** - Просмотр количества пакетов в сек, ошибок и дропов на интерфейсе (online)\\ **netstat -r** – таблица маршрутизации\\ **systat -ifstat n**– интенсивность передачи трафика (online) по всем сетевым интерфейсам за n секунд\\ **systat -netstat n** – аналог netstat в реальном времениsysctl kern.ipc.numopensockets – количество открытых сокетов\\ **systat -ip n** – таблица IP-пакетов и ошибок по типам за n секунд\\ **systat -tcp n** – таблица TCP-пакетов и ошибок по типам за n секунд\\ **systat -icmp n** – таблица ICMP-пакетов и ошибок по типам за n секунд\\ **arp -a** – просмотр всей таблицы ARP\\ **arp -ad** – очистка всей таблицы ARP\\ **tcpdump -i rl0 host 192.168.61.20 and port 80** – сниффер пакетов на интерфейсе rl0, фильтрующий пакеты, содержащие адрес 192.168.61.20 и порт 80\\ **trafshow -i rl0** – программа для сортировки и вывода сетевых потоков (устанавливается дополнительно пакетом или из портов)\\ Для применения настроек сети после редактирования rc.conf. Перезагружаемся или выполняем /etc/netstart. **iftop** Для выяснения кто нагружает канал. Можно использовать утилиту iftop. Установка из портов: cd /usr/ports/net-mgmt/iftop make install clean rehash Далее запускаем утилиту командой: iftop Ссылки:\\ http://itfound.ru/1-zagruzka-kanala-freebsd.html\\ ==== System ==== **top -mio** – показать I/O по процессам\\ **top -S** – показать системные процессы в топе (по дефолту они не показываются)\\ **top -SHPI** - показать загрузку по ядрам, в том числе и системные процессы, кроме тех что в простое. Наиболее удобный вариант.\\ **vmstat -z** чего не хватает\\ **vmstat -i** прерывания по устройствам\\ **systat -vmstat n** – просмотр всей сводной статистики по системе(online). вывод показателей загрузки (number of jobs in the run queue averaged over 1, 5 and 15 min), состояния памяти (в страницах), количества процессов в группах, количество вызовов специальных функций ядра (traps, interrupts, system calls, network software interrupts), использование процессора, трансляции имен, активность свопа, прерывания, а также информацию по использованию диска (см) **uptime** - можно просмотреть время работы системы без перезагрузок и load averages системы\\ **pcpustat** - мониторинг CPU (порт)\\ **ps afx** – список запущенных процессов и время процессора на каждый\\ **rcorder /etc/rc.d/* /usr/local/etc/rc.d/*** - Посмотреть очередность запуска сервисов в freebsd.\\ ==== Модули ядра ==== Модули ядра — это его компоненты, которые можно запускать (или загружать) и выгружать при необходимости. Модули ядра могут загружаться при подключении устройств и выгружаться при их отключении. Это позволяет экономить системную память и повышает гибкость системы. Само ядро по умолчанию хранится в виде файла /boot/kernel/kernel, модули ядра также хранятся в виде файлов в каталоге /boot/kernel. Заглянув в этот каталог, можно увидеть сотни файлов модулей ядра. Имена файлов всех модулей ядра имеют расширение .ko. Обычно файлы модулей ядра получают имена, соответствующие их функциональности. Например, в файле /boot/kernel/joy.ko находится драйвер джойстика (от английского «joy»), описание которого находится в странице руководства joy(4). Этот драйвер делает джойстик видимым для системы в виде устройства joy0. **Просмотр списка загруженных модулей** # kldstat Каждый модуль содержит один или более подмодулей, которые можно увидеть с помощью команды # kldstat -v Ядро содержит несколько сотен подмодулей. **Загрузка и выгрузка модулей** Загрузка и выгрузка модулей ядра производится с помощью команд kldload и kldunload. Например, обычно мой ноутбук подключается к сети посредством проводного соединения Ethernet. При беспроводном подключении мне необходимо загрузить модуль ядра wlan_wep.ko, который использует WEP-шифрование. Для этого я пользуюсь командой kldload, которой передаю имя файла модуля ядра с требуемой функциональностью: # kldload /boot/kernel/wlan_wep.ko Как только беспроводное подключение станет ненужным, я выгружаю модуль.* Для этого требуется указывать не имя файла, а имя модуля, в том виде, как его отображает команда kldstat: # kldunload wlan_wep.ko Команды kldload(8) и kldunload(8) не требуют указания полного пути к модулю ядра, точно так же они не требуют указания расширения файла .ko. Если вы помните точное имя файла модуля ядра, можно использовать примерно такие команды: # kldload wlan_wep # kldunload wlan_wep **Автоматическая загрузка модулей ядра** Для автоматической загрузки модуля надо добавить его в файл /boot/loader.conf. Файл по умолчанию loader.conf содержит множество примеров загрузки модулей ядра, в которых используется один и тот же синтаксис. Нужно взять имя модуля ядра, убрать расширение файла .ko и добавить к нему строку _load="YES". Например, чтобы автоматически загрузить модуль /boot/kernel/procfs.ko, в файл loader.conf нужно добавить такую строку: procfs_load="YES" Ссылки:\\ http://habrahabr.ru/sandbox/31010/\\ http://nix-sa.blogspot.ru/2011/09/freebsd.html\\ http://freebsdguide.ru/_5/_3/