воскресенье, 17 февраля 2013 г.

Консольные утилиты мониторинга для Linux

Перепост отличной статьи с сайта: Korodus


На данный пост меня вдохновила статья на хабре про утилиты мониторинга для Linux. Оригинал статьи находится здесь.
1. vmstat (virtual memory statistics) — выдает некоторую статистику по использованию процессов и памяти.
vmstat [-V] [-n] [delay [count]]
2. top - консольная команда, которая выводит список работающих в системе процессов и информации о них.
top -hv | -bcisSH -d delay -n iterations [-u user | -U user] -p pid [,pid ...]
Программа с частотой обновления в 2с показывает текущую активность процессов в виде таблицы. Стандартные колонки:
  • PID — идентификатор процесса
  • USERNAME — пользователь, от которого запущен процесс
  • THR — количество потоков, запущенных процессом
  • PRI — текущий приоритет процесса
  • NICE — приоритет, выставленный командой nice. От −20 (наивысший) до 19.
  • SIZE — размер процесса (данные, стек и т. д.) в килобайтах
  • RES — текущее использование оперативной памяти
  • STATE — текущее состояние («START», «RUN» (только в этом состоянии показывает текущую нагрузку программы на процессор), «SLEEP», «STOP», «ZOMB», «WAIT» или «LOCK»)
  • C — номер процессора, на котором идет выполнение (доступен только на SMP системах)
  • TIME — время использования процессора в секундах
  • CPU — процент доступного времени процессора, которое использовала запущенная программа
  • WCPU — усредненное значение CPU
  • COMMAND — название команды, под которой работает процесс.
Чтобы выйти из программы top, нужно нажать клавишу [q].
Полезные интерактивные команды, которые можно использовать в top:
  • [Пробел] Немедленно обновить содержимое экрана.
  • [h] Вывести справку о программе.
  • [k] Уничтожить процесс. Программа запрашивает у вас код процесса и сигнал, который будет ему послан.
  • [n] Изменить число отображаемых процессов. Вам предлагается ввести число.
  • [u] Сортировать по имени пользователя.
  • [M] Сортировать по объёму используемой памяти.
  • [P] Сортировать по загрузке процессора.
Подробнее об утилите top на страничке Wiki http://ru.wikipedia.org/wiki/Top
3. atop — продвинутый интерактивный полноэкранный монитор производительности, написанный для Linux. Является аналогом top, но в отличие от него выводит только новые изменения об активных системных процессах. Позволяет контролировать загрузку ЦПУ, ОЗУ, HDD, компьютерной сети, а также распределение нагрузок по обрабатываемым процессам. Является удобным инструментом для администрирования системы.
atop [-flags] [interval [samples]]
atop -w  file  [-S] [-a] [interval [samples]]
atop -r [file] [-b hh:mm] [-e hh:mm] [-flags]
Подробнее об утилите atop на страничке Wiki http://ru.wikipedia.org/wiki/Atop  4. htop - продвинутый монитор процессов. Htop показывает динамический список системных процессов, список обычно выравнивается по использованию ЦПУ. В отличие от top htop показывает все процессы в системе. Также показывает время непрерывной работы, использование процессоров и памяти.
Подробнее об утилите htop на страничке Wiki http://ru.wikipedia.org/wiki/Htop


5. iotop — показывает активность записи на диск и чтения с диска, использование swap-раздела, и полную статистику обращения к диску всех процессов. Список процессов сортируется от более активных процессов к менее активным и обновляется раз в секунду.
Список команд управления утилитой очень короткий и состоит всего из двух команд:
  • r обратная сортировка, то есть от менее активных процессов к более активным;
  • q для выхода.
Для iotop нет man-страницы, так что используйте опцию —help для просмотра списка всех доступных опций, таких, например, как -d, которая задает частоту обновления.
Установка: sudo apt-get install iotop
Команда запуска: /usr/bin/iotop
Сайт: http://guichaz.free.fr/misc/#iotop
6. iftop - утилита предназначена для мониторинга загрузки канала в реальном времени. По умолчанию программа отображает конечные точки сетевых соединений (можно нажать клавишу p, тогда будут отображаться также номера портов), причем объем передаваемых данных отображается как в виде цифр, так и в виде графического представления: горизонтальной полоски.
Настройка отображаемой информации осуществляется путем нажатия на клавиши: для вывода списка доступных команд нажмите ?. iftop можно запускать с различными опциями, например, если нужно отслеживать только один интерфейс.
Информация отображается iftop в очень простом и понятном виде. Программа незаменима для контроля сети и определения ее пропускной способности. Возможно, вам также понадобится команда netstat -p для определения, какой именно процесс использует сеть в настоящее время.
Установка из командной строки: sudo apt-get install iftop
Команда запуска: /usr/sbin/iftop
Сайт: http://www.ex-parrot.com/~pdw/iftop/
7. powertop - находит программные компоненты, которые вынуждают Ваш ноутбук потреблять больше энергии, чем это необходимо, в то время как он находится в режиме ожидания.
PowerTOP собирает информацию из различных источников ядра и отображает результат работы системы в одном окне так, что Вы можете видеть, насколько хорошо Ваша система работает, и какие компоненты наиболее проблемные.
Подробнее об утилите можно прочитать на сайте
http://www.calculate-linux.org/blogs/en/205/show
8. itop - Мониторинг интенсивности генерации прерываний.
http://www.hunz.org/itop/
9. kerneltop
Наверное, должен показывать что-то интересное про ядро. У меня дома ему не понравился System.map, а на сервере — отсутствие /proc/profile.
10. dnstop
Специализированный анализатор DNS-трафика на интерфейсе. Наверное, был бы очень полезен при починке DNS на контроллере домена, к сожалению, Active Directory на линуксе работает не очень хорошо.
Безусловно полезно для нахождения засранца, загоняющего бинд в неприличный LA.
Анализ количества DNS запрососв как средство борьбы с завирусованными клиентами
На DNS сервер запускаем dnstop
dnstop -4 -Q -i IP_АДРЕС ВАШЕГО_DNS eth0
На DNS сервер запускаем dnstop
Смотрим tcpdump-ом DNS запросы клиентов которые превышают 1% от общего количества и убеждаемся что они с «бешеной» скоростью перебирают MX записи. Звоним клиенту – предупреждаем о зараженной машине которая рассылает спам.
11. jnettop — так же, как и iftop утилита предназначена для мониторинга загрузки канала в реальном времени.
12. sntop
Замечательная штука для скринсейвера или публичного монитора — по конфигу рассылает пинги и показывает, если какой-то хост лёг. В принципе, в рабочих условиях при настроенном конфиге позволяет быстро оценить состояние не очень большого парка серверов (запустили — и сразу красным видно, кто лежит).
13. latencytop
14. xrestop
Монитор потребления ресурсов X-сервера разными приложениями, которые к нему подключились. (Обнаружил, что хром жрёт ресурсов х-сервера много больше, чем опера. Но, Опера в свою очередь жрет гораздо больше системных ресурсов, чем слово «херня» нарисованное на заборе, что не означает, что будем использовать ту херню.)
14a. slabtop
Специализируется на структурах данных SLAB ядра, фактически, показывает использование памяти в более тонких категориях, чем «свободно/занято/кеш». View only, несколько режимов сортировки.
15. apachetop
Не столь полезен, как хотелось бы, показывает статистику ответов на запросы. Никакой магии, просто читает логи апача.
16. sqtop
Топ по логам сквида. С учётом скорости их роста, сначала генерирует промежуточную статистику, а потом уже даёт по ней шаритьс
17. pg_top
Пакет в debian почему-то называется ptop (Как и всё в дебиане… Вроде есть, но не так называется, не так работает… Пример VIM. Отвлекся…). Мониторит загрузку postgresql.
18. mytop
Мониторит mysql. Есть альтернативный mtop, делает примерно то же, но заброшен и (в дебиане ;] ) выпилен в районе lenny -> squeeze.
19. xentop
Мониториг доменов XEN’а. Интересен тем, что показывает не только память-процессор, но и дисковые операции с сетью. К сожалению, никакого управления, view only. Единственный из всех top’ов, не влазящий в 80 столбцов при выводе.
Список топов, которые я глазами не посмотрел:
  • hatop — мониторинг haproxy
  • virt-top — мониторинг за работой libvirt
  • mctop — мониторинг состояния memcached
  • perf-top — нашёл документацию, самого perf-top в виде тарбола или пакета не нашёл.
20. hatop
21. virt-top
22. mctop
23. gkrelmtop
24. ntop
25. libgtop
26. nload
27. nethogs
Отображает сетевой трафик от конкретных приложений. Очень топовая штука, имхо…
28. ntop показывает текущее использование сети. Он отображает список хостов, которые в настоящее время используют сети и предоставляет информацию, касающуюся IP и не-IP-трафикf, генерируемого каждым хостом.
29. netstat позволяет получить в режиме реального времени информацию о состоянии сетевых соединений, а также статистические данные и таблицу маршрутизации.
30. iptraf мониторинг данных, пересылаемых через сетевой интерфейс, а также просмотр статистики пo соединениям.
31. ipstate мониторит contrack из iptables, показывает активные трансляции с возможностью их прибить. Фактически, близок к цисковому sh ip nat tra, но удобнее.
32. prstat
33. glance
34. vnstat
vnstat —live Monitoring eth0
Сначала ложные топы кратко:
  • gkrelmtop — плагин под gkrelm (монитор производительности в гуе) — оффтопик.
  • ntop — нарушает text-based традицию интерактивных программ и ставится как сайт для апача.
  • libgtop — библиотека для мониторигна производительности
  • nload — консольный монитор сетевой активности, в отличие от обычных top’ов не выводит рейтинг, а рисует текстовый график.
При подготовке поста использовались материалы Wikipedia, http://www.fedoralinux.ru http://gnu.su/news.php?extend.602

понедельник, 15 октября 2012 г.

Перевод чисел из одной системы счисления в другую

Периодически понимаю, что СНОВА забыл как переводить из одной системы СС в другую!
В памяти остается только то, что это "Ну очень-же просто!"
Вообще хороший пример отсюда

Перевод чисел из одной системы счисления в другую

 Привожу примеры перевода из одной системы счисления в другую.
1)Перевод из 16 с.с. в 10 с.с.

9E16 =9*161+14*160=144+14=158;  
2)Перевод из 10 с.с в 8 с.с.
Здесь мы должны делить наше число на основание системы в которую хотим перевести число (то есть в данном случае на 8)! Собираем полученные при делении цифры, снизу вверх.
6210= 768
3)Перевод из 10 с.с в 16 с.с.

В 16 с.с. мы используем кроме цифр буквы: A,B,C,D,E,F. Поэтому при переводе из десятичной с.с. в 16 с.с., если вам встречаются числа: 10,11,12,13,14,15, то не забывайте их заменять буквами A,B,C,D,E,F!

9210= 5C16

Надо еще помнить, что  пинг адреса 172.16.1.70 и к примеру 172.016.001.070 это разные адреса - последний будет пытаться слать английский алфавит ;) на адрес 172.14.1.56 .
То есть пинг - вполне себе  калькулятор перевода из восьмеричной или шестнадцатеричной  сс в 10сс.

понедельник, 3 сентября 2012 г.

Этапы загрузки системы c Linux

При включения компьютера, первоначально происходит запуск BIOS (basic input/output system — «базовая система ввода-вывода»), которая  производит инициализацию и  проверку аппаратных средств машины (POST - power-on-self-test). Сама BIOS представляет из себя микросхему с неизменным набором микропрограмм (ПЗУ), пользовательские настройки к которым находятся в динамической энергозависимой памяти CMOS. По завершению тестирования, BIOS ищет на доступных носителях информации запись MBR - данные необходимые для дальнейшей загрузки операционной системы расположенную в первых секторах носителей, загружает его в оперативную память и передает ей управление.

В MBR находится программа-загрузчик (скорее всего GRUB(GRand Unified Bootloader), так как LILO(LInux LOader) уже практически не используется). Основная задача загрузчика состоит в переносе ядра ОС в оперативную память и передача ему управления дальнейшим функционированием компьютера.

Ядро при загрузке производит опрос присутствующих устройств с целью определения "что есть в системе". Если драйвер вкомпилирован в ядро, то устройство инициализируется, а если нет, то оно должно подключиться в виде модуля, а модуль лежит в виде файла на файловой системе, причем на неизвестно каком носителе. То есть для загрузки модулей ядра порождения процесса init (отвечающего за создание процессов описанных в /etc/inittab) необходимо получить доступ к файловой системе. Но файловая система не является частью ядра - значит её модуль тоже надо загрузить из файла который лежит где? Правильно, где то на диске.
Для решения этой проблемы была реализована технология initrd, а в настоящий момент initramfs.

initramfs - виртуальная файловая система, образ которой хранится рядом с образом ядра. при этом минимальный набор драйверов включается в ядро, а остальные подгружаются в виде модулей из виртуальной системы.
Цитата:
 Все сказанное выше относительно процедур загрузки и использования файла initrd справедливо для ядер версии 2.4.xx и более ранних. В ядрах версии 2.6 (а точнее, начиная с экспериментального ядра версии 2.5.46) разработчики решили реализовать иной механизм. Причиной послужили несколько недостатков ранее использовавшегося варианта реализации временной корневой файловой системы.
Во-первых, виртуальный диск, как и все блочные устройства, требует драйвер файловой системы для интерпретации данных во время выполнения. Этот драйвер приходилось включать в ядро.
Во-вторых, неэфективно используется оперативная память, так как размер виртуального диска фиксирован и не может изменяться во время работы без его переформатирования (даже если диск не заполнен, невозможно отдать эту память под другие нужды).
В третьих, в Linux осуществляется кэширование всех файлов и записей каталогов, прочитанных или записанных на блочное устройство. Виртуальный диск тоже кешируется, как и обычные диски, то есть часть данных будет храниться не только на RAM диске, но и в страничном кэше "page cache" (для файловых данных) и в кэше для записей каталогов "dentry cache", что еще больше снижает эффективность использования памяти.
Для устраненеия этих недостатков Линус Торвальдс предложил монтировать кэш ядра Линукс как особую файловую систему, работающую полностью в кэше ядра. При этом нет лишнего дублирования информации между блочным устройством и кэшем, так как блочного устройства попросту нет. Файловая система, реализующая эти идеи, была разработана и получила название initramfs. Ее использование имеет следующие преимущества:
  • Система, использующая initramfs в качестве корневой файловой системы, более не нуждается в соответствующем драйвере файловой системы, встроенном в ядро, так как нет блочных устройств для интерпретации файловых систем.
  • Размер этой файловой системы автоматически изменяется в соответствии с обьёмом данных, которые она содержит. При добавлении новых файлов (как и при расширении существующих) автоматически выделяется память, при удалении или уменьшении файла происходит высвобождение памяти.
  • Достоинством initramfs является также то, что это не новый код, а новое применение уже существующего кода кэширования ядра Линукс, что практически не влечёт увеличение размера ядра, выполнение будет очень простым и основано на чрезвычайно хорошо протестированной инфраструктуре.
  • Исчезают некоторые проблемы загрузки с SATA-дисков.
  • Initramfs загружается немного быстрее, чем initrd.
Формат initramfs используется по умолчанию для всех ядер, начиная с версии 2.6.15.

После загрузки модулей происходит монтирование корневой системы в режиме "только чтение"
и запуск процесса init, который является родоначальником всех других процессов в LINUX.
init отвечает за продолжение загрузки системы и перевод её от состояния "после загрузки ядра"  к рабочему состоянию обработки запросов многих пользователей. init так же выполняет много различных операций необходимых для дальнейшей работы операционной системы, таких как проверка и монтирование файловых систем, запуск различных служб и демонов, запуск процедур логирования, загрузка оболочек пользователя...


Для подробной информации стоит воспользоваться следующими ресурсами на основе которых была написана эта статья:
  1. Исследуем процесс загрузки Linux  ,
  2. Новая модель инициализации initramfs
  3. Процесс загрузки Linux

вторник, 22 мая 2012 г.

Установка Ubuntu по сети и настройка кэширующего сервера обновлений

Описание здесь
sudo apt-get install apt-cacher.
Создаем и назначаем права на папку, которая будет хранить пакеты.
Настройки apt-cacher хранятся в /etc/apt-cacher/apt-cacher.conf.
Настройка Apache:
Alias /apt-cacher /usr/share/apt-cacher/apt-cacher.pl Options ExecCGI, AddHandler cgi-script .pl.
Запускаем демона
sudo /etc/init.d/apt-cacher start.
По умолчанию сервер будет работать на 9999 порту. На клиентских машинах редактируем файл: /etc/apt/sources.list, раскоментируем настройки и добавляем:
deb updateserver:9999/ubuntu intrepid multiverse restricted main universe
, где updateserver – это имя компьютера на котором мы только что подняли apt-cacher.

четверг, 1 марта 2012 г.

Samba с асторизацией через AD

За основу и рыбу была взята замечательная статья:
Samba c доменной авторизацией и правкой пермишенов через галочки автора lissyara/

# yum install samba-winbind krb5-workstation samba

Указываем использовать winbind в /etc/nsswitch.conf

passwd: files winbind
shadow: files
group: files winbind
hosts: files dns

Правим конфиг самбы:
[global]
workgroup = BITZA
realm = BITZA.LAN
server string = Samba Server Version %v
interfaces = lo, eth0
security = ADS
password server = fs.bitza.lan dc.bitza.lan
log file = /var/log/samba/log.%m
max log size = 50
idmap uid = 10000-20000
idmap gid = 10000-20000
winbind use default domain = Yes
admin users = "@BITZA\Domain Admins", BITZA\admin
hosts allow = 172.16.1., 127.
cups options = raw

[SVN_conf]
comment = SVN configuration
path = /var/svn/conf
admin users = "@BITZA\Domain Admins"
read only = No
vfs objects = recycle, full_audit
full_audit:priority = INFO
full_audit:facility = local1
full_audit:failure = unlink rmdir mkdir write rename write aio_write pwrite
full_audit:success = unlink rmdir mkdir write rename write aio_write pwrite
full_audit:prefix = share=%S; id=%U; ip=%I -->
recycle:minsize = 1
recycle:versions = Yes
recycle:directory_mode = 0770
recycle:exclude = *.TMP *.tmp
recycle:maxsize = 0
recycle:version = Yes
recycle:touch_mtime = Yes
recycle:touch = Yes
recycle:keeptree = Yes
recycle:repository = /shares/trash/%S

[TRAC_conf]
comment = SVN configuration
path = /var/trac-projects
admin users = "@BITZA\Domain Admins"
read only = No
vfs objects = recycle, full_audit
full_audit:priority = INFO
full_audit:facility = local1
full_audit:failure = unlink rmdir mkdir write rename write aio_write pwrite
full_audit:success = unlink rmdir mkdir write rename write aio_write pwrite
full_audit:prefix = share=%S; id=%U; ip=%I -->
recycle:minsize = 1
recycle:versions = Yes
recycle:directory_mode = 0770
recycle:exclude = *.TMP *.tmp
recycle:maxsize = 0
recycle:version = Yes
recycle:touch_mtime = Yes
recycle:touch = Yes
recycle:keeptree = Yes
recycle:repository = /shares/trash/%S

Ну и на всякий случай как ввести машину в домен:

# more /etc/krb5.conf
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log

[libdefaults]
default_realm = BITZA.LAN
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true

[realms]
BITZA.LAN = {
kdc = fs.bitza.lan
admin_server = fs.bitza.lan
}

[domain_realm]
.example.com = BITZA.LAN
example.com = BITZA.LAN

Получаем тикет:
# kinit -p admin
Password for admin@BITZA.LAN: # Вводим пароль администратора домена
Вводим машину в домен:
net ads join -U admin

пятница, 3 февраля 2012 г.

Нужные команды в консоли и горячие клавиши, которые я пытался забыть.

GENTOO:
elogv - оболочка для парсинга вывода результата emerge



CONSOLE:
CTRL-A - переход к началу строки (+CISCO CLI)
CTRL-E - переход к концу строки (+CISCO CLI)

четверг, 1 декабря 2011 г.

Windows 7. Не применяется logon-скрипт доменной политики.

Если перейти в папку:
\\DOMAIN\SYSVOL\DOMAIN\Policies\POLICY%GUID\User\Scripts\Logon
и руками запустить скрипт - всё нормально отрабатывает. В автозагрузке - никак.

Исправление:
Создать и выполнить файл (ну или просто прописать в реестре):

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System]
"EnableLinkedConnections"=dword:00000001