|
Полезные пакеты, которые можно установить на сервер для диагностики сбоев (доп. ссылка 1) |
[комментарии]
|
| Минимальный набор пакетов для диагностики проблем, которые рекомендуется заранее установить на серверы, чтобы не тратить время на установку дополнительных пакетов или поиск специализированных live-дистрибутивов.
... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
Трассировка обмена данными через Unix domain socket (доп. ссылка 1) |
[комментарии]
|
| Для Unix domain socket до сих пор отсутствовал инструмент для захвата или ослеживания содержимого канала связи, наподобие tcpdump для IP. Для решения данной задачи [[http://laforge.gnumonks.org/blog/20180330-udtrace/ подготовлен]] новый инструмент [[https://github.com/laf0rge/udtrace udtrace]], который реализован в виде разделяемой библиотеки, подключаемой через LD_PRELOAD.
... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
Снятие показаний электросчетчика средствами OpenWRT (доп. ссылка 1) |
Автор: Аноним
[комментарии]
|
| Предупреждение: все что вы делаете на свой страх и риск, так как существует вероятность «окирпичивания» Вашего роутера.
... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
Мониторинг MaxScale в Zabbix |
Автор: Аноним
[комментарии]
|
| Рабочая задача - обеспечить в Zabbix 2.2 мониторинг прокси MaxScale.
Пример скрипта "status":
#!/usr/bin/php
<?php
$json_string = `/usr/bin/maxadmin -pmariadb show serversjson`;
$obj=json_decode($json_string,true);
echo $obj[$argv[1]]["nodeId"];
Добавляем в zabbix_agentd.conf
UserParameter=ServerStatus1, /<yourLovePlace>/status 0
UserParameter=ServerStatus2, /<yourLovePlace>/status 1
UserParameter=ServerStatus3, /<yourLovePlace>/status 2
Если серверов больше чем у меня, добавляем новые строчки, параметр увеличиваем
на 1. В zabbix ловим -1 это значит сервер не в кластере и идем разбираться.
"show serversjson" еще много чего интересного выводит.
|
|
|
|
|
Утилиты для диагностики проблем с производительностью и анализа состояния подсистем Linux (доп. ссылка 1) |
[комментарии]
|
| Плакат с наглядным обзором утилит для диагностики проблем с производительностью и анализа состояния подсистем Linux:
... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
Мониторинг температуры в Zabbix с использованием Digitemp |
Автор: Denis Romanov
[комментарии]
|
| Получаем параметр от 1-Wire датчика температуры DS18S20 и передаем на сервер Zabbix.
... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
Мониторинг репликации MySQL при помощи Zabbix |
Автор: globus
[комментарии]
|
| 0. Кому как удобно ставим zabbix агента. Создаем директорию /zabix/
... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
Первые 5 минут устранения неполадок на Linux-сервере (доп. ссылка 1) |
Автор: Ivan Pesin
[комментарии]
|
| Когда наша команда еще занималась вопросами эксплуатации, оптимизации и масштабирования в предыдущей компании, нам приходилось иметь дело с отладкой медленно работающих приложений и целых инфраструктур, часто большого размера (представьте CNN или the World Bank). Горящие сроки, экзотические стеки технологий и недостаток информации обычно гарантировали незабываемые впечатления.
... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
Мониторинг загрузки многоядерного сервера по каждому ядру в отдельности в Linux |
Автор: fantom
[комментарии]
|
| Исходная задача: по SNMP загрузить параметры загруженности CPU с сервера по каждому ядру в отдельности (ОС Linux).
... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
Раскраска лога для увеличения его наглядности |
[комментарии]
|
| Для наблюдения за логом в наглядном виде с подсветкой наиболее важных элементов или для раскрашивания файлов конфигурации или файлов с кодом удобно использовать утилиту ccze, которая присутствует в стандартных репозиториях.
... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
Скрипт для наглядного ping с ведением лога |
Автор: Kins
[комментарии]
|
| Представленный скрипт может:
* Отображать результат пинга
* Отображать время пинга
* Вести лог пингов
* Визуализировать лог пингов
... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
Выявление нагружающих дисковую подсистему процессов в Linux |
Автор: Yuriy Kulikov
[комментарии]
|
| В Centos 5.x нет нормальной поддержки iotop, без которого трудно понять, какой процесс больше всего грузит дисковую систему.
Но можно использовать скрипт [[http://sourceware.org/systemtap/examples/io/disktop.stp disktop.stp]], написанный для подсистемы динамической трассировки [[http://sourceware.org/systemtap/ SystemTap]].
... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
Мониторинг активности USB-устройств |
[комментарии]
|
| Начиная с Linux-ядра версии 2.6.11 в составе поставляется модуль usbmon, позволяющий осуществить полный мониторинг обмена данными с USB-устройствами.
... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
Борьба с kernel panic в Linux-ядре 2.6.35 и выше |
Автор: Аноним
[комментарии]
|
| Начиная с версии 2.6.35 в Linux-ядре появилась полезная функция "ramoops", позволяющая в случае краха сохранять информационный дамп состояния ядра в памяти для последующего анализа. Данные сохраняются только при мягкой перезагрузке, без очистки прошлого состояния памяти. Вкомпилировать данную функцию в ядро или загружать модулем "ramoops" - без разницы.
... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
Мониторинг работы устройства digium TDM |
Автор: bigbugkik
[комментарии]
|
| Пример решения задачи с отслеживанием отключения (зависания) карт серии digium TDM.
... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
Наблюдение за трафиком на удаленном хосте через GUI-интерфейс Wireshark (доп. ссылка 1) |
[комментарии]
|
| Для наблюдения за трафиком, проходящим через сетевой интерфейс удаленной машины
192.168.1.2 в bash можно воспользоваться следующей конструкцией:
wireshark -k -i <(ssh -l root 192.168.1.2 tshark -w - not tcp port 22)
Конструкция "not tcp port 22" необходима для запрещения перехвата трафика
передаваемого в wireshark по ssh.
В других shell:
mkfifo /tmp/pipe
ssh user@192.168.1.2 "tshark -w - not port 22" > /tmp/pipe
wireshark -k -i /tmp/pipe
Если перехват в реальном времени не требуется, можно записать на удаленной машине дамп в файл:
tshark -w capture.cap
а потом на локальном машине выполнить операцию анализа:
wireshark -k -i capture.cap
|
|
|
|
|
Организация приема SNMP trap’ов и их отправки на коммутаторах DLink (доп. ссылка 1) (доп. ссылка 2) |
Автор: Andrey Sergienko
[комментарии]
|
| В рамках поставленной задачи (узнавать о появлении новых MAC-адресов на портах коммутаторов DLink) понадобилось организовать настройку SNMP-trap'ов на коммутационном оборудовании с последующим приемом их на сервере и дальнейшей обработкой в зависимости от пришедшего события.
... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
Использование протокола CDP (Cisco Discovery Protocol) в Linux (доп. ссылка 1) |
Автор: shadow_alone
[комментарии]
|
| Проект LLDP (http://trac.luffy.cx/lldpd/) позволяет задействовать на Linux-серверах протокол CDP (Cisco Discovery Protocol), позволяющий на Cisco посмотреть соседей с включенной CDP-командой "sh cdp nei". Команда выведет оборудование которое подключено, на каком порту и т.д., более подробно для заданного устройства параметры можно посмотреть командой "sh cdp ent Device_ID".
... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
Tshark для мониторинга запросов http (доп. ссылка 1) |
Автор: CHAPPAY
[комментарии]
|
| Tshark из комплекта сниффера Wireshark (http://www.wireshark.org/) позволяет наглядно проследить запросы к http-серверу.
... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
Установка OpenNMS в Debian Lenny (доп. ссылка 1) |
Автор: Dennis Kucherskiy
[комментарии]
|
| Задача: найти и установить бесплатный аналог HP OpenView. Из всего, что удалось мне найти, максимально подошёл OpenNMS. Устанавливать буду на сервер с установленным Debian Lenny.
... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
Пример конфигурирования IPMI на Linux сервере (доп. ссылка 1) |
Автор: Roman Sozinov
[комментарии]
|
| IPMI - интеллектуальный интерфейс управления платформой, помогающий следить (и не только) за сенсорами
состояния железа на сервере (температуры, напряжения, скоростью вращения вентиляторов,
состоянием источников питания и т.п.).
Задача - сконфигурировать IPMI-интерфейс на сервере, с возможностью получать данные о сенсорах по сети.
Операционная система RHEL/CentOS 5, сервер Intel S5000PAL.
... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
Мониторинг работы http-сервера Lighttpd при помощи mod_rrdtool (доп. ссылка 1) |
[обсудить]
|
| Для оценки нагрузки и отладки работы http-сервера Lighttpd можно использовать входящий в комплект модуль mod_rrdtool.
... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
Мониторинг аппаратных проблем в x86_64 сборке Linux (доп. ссылка 1) |
[комментарии]
|
| Для мониторинга аппаратных проблем в 64-разрядных сборках Linux удобно использовать пакет mcelog,
анализирующий MCE (Machine Check Exception) состояние в CPU AMD и Intel, которое может указать на
проблемы с памятью и с кэшем CPU, ошибки обмена данными между CPU и чипсетом материнской платы.
... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
Просмотр байтовых счетчиков трафика на интерфейсе во FreeBSD и Linux |
[комментарии]
|
| По умолчанию "netstat -i" во FreeBSD показывает только число пакетов, чтобы посмотреть размер в байтах
нужно использовать опцию "-b", упоминание которой удалось найти после трех прочтений man страницы.
... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
Трассировка ввода/вывода в Linux (доп. ссылка 1) |
[комментарии]
|
| Утилита blktrace (присутствует в репозиториях Ubuntu и Debian) позволяет
проконтролировать какие именно данные передаются для заданного блочного устройства.
... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
Временное ведение лога всех запросов к MySQL (доп. ссылка 1) |
[комментарии]
|
| Использование опций конфигурации log-slow-queries и general_log, позволяющих вести полный лог
медленных или всех запросов, требует перезапуска mysql для включения или выключения ведения логов,
что неудобно в ситуации, когда нужно проанализировать запросы только в текущий момент.
Для анализа запросов (не через локальный сокет) на лету можно воспользоваться сетевым сниффером.
Перехватываем и записываем срез трафика MySQL в файл:
tcpdump -i eth0 port 3306 -s 1500 -w tcpdump.out
Выделяем из дампа SQL запросы, используя утилиту tshark из комплекта сниффера
Wireshark (http://www.wireshark.org/):
tshark -r tcpdump.out -d tcp.port==3306,mysql -T fields -e mysql.query > query_log.out
Удаляем из полученного лога пустые и неинформативные строки:
cat query_log.out | grep -vE "^(commit.*|autocommit.*|rollback.*|)$" | awk '{print $0 ";"}' > query_log_no_blank.out
Полученный лог удобно анализировать утилитой mysqlsla (http://hackmysql.com/mysqlsla)
|
|
|
|
|
Быстрый способ посмотреть статус работы memcached (доп. ссылка 1) (доп. ссылка 2) |
[комментарии]
|
| Просмотр статуса:
echo stats | nc 127.0.0.1 11211
echo stats items | nc 127.0.0.1 11211
echo stats sizes | nc 127.0.0.1 11211
echo stats slabs | nc 127.0.0.1 11211
telnet 127.0.0.1 11211
stats
quit
Слежение за динамикой в стиле утилиты top:
watch "echo stats | nc 127.0.0.1 11211"
Для тех у кого нет nc, но есть php:
watch 'php -r '"'"'$m=new Memcache;$m->connect("127.0.0.1", 11211);print_r($m->getstats());'"'"
|
|
|
|
|
Настройка оповещения Nagios по ICQ (доп. ссылка 1) |
Автор: Doktor
[комментарии]
|
| Простое решение для нотификации работы серверов при помощи ICQ:
... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
Просмотр в Linux списка совместно используемых библиотек, загруженных в память |
[комментарии]
|
| Утилита memstat сканирует содержимое /proc и генерирует список запущенных программ, используемых
разделяемых библиотек и прочих объектов находящихся в памяти (например, шрифты,
области разделяемой памяти, файлы локали),
отображает занимаемую ими память, позволяет оценить степень
совместного использования библиотек.
Программа в Debian и Ubuntu находится в пакете memstat.
При запуске, чтобы вывод не обрезался по границе экрана, нужно использовать опцию '-w'.
Вывод с группировкой по библиотекам:
memstat -w|grep PID|sort -k 4|less
Вывод с сортировкой по размеру:
memstat -w|sort -r -n -k 1|less
Вывод с сортировкой по числу использующих объект процессов:
memstat -w|grep -v PID| perl -ne '$a=$_;s/\d+/|/g;s/[^|]//g; print length($_)-1 . " $a";' \
|awk '{print $1 "\t" $2 "\t" $3}'|sort -n -r -k 1|less
|
|
|
|
|
Слежение за изменением файлов и директорий в Linux shell |
[комментарии]
|
| Пакет inotify-tools содержит две полезные утилиты:
... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
Пример мониторинга свободного места на диске. |
Автор: Hamelion
[комментарии]
|
| Наверное, все встречались, когда на том или ином разделе жесткого диска места уже нет. А
... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
Русские символы в rrdtool |
Автор: Vladimir
[комментарии]
|
| При отображении строк в RRD используется кодировка UTF-16, в которой есть таблица русских символов,
соответствующая таблице CP1251, только со смещением.
Чтобы rrdgraph смог отображать русские символы на графиках
необходимо внести изменения в файл src/rrd_afm.h. Находим в нем строчку
... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
Сетевая консоль для отладки зависаний Linux (доп. ссылка 1) |
Автор: niol, debian-administration.org
[комментарии]
|
| Модуль Linux ядра netconsole позволяет экспортировать консоль на другую машину по сети,
что полезно для отладки ситуации зависания Linux без вывода диагностики в лог и
на экран (например, X-ы зависли).
В /etc/modprobe.d/ создаем файл или добавляем в /etc/modules.conf:
options netconsole netconsole=32769@192.168.1.1/eth1,32769@192.168.1.6/01:23:34:56:78:9A
где,
192.168.1.1:32769 сетевой адрес и порт на eth1 интерфейсе локальной машины, с которого будет производится отправка пакетов.
192.168.1.6:32769 сетевой адрес, порт и MAC адрес удаленной машины куда будет экспортирована консоль.
На удаленной машине 192.168.1.6, для доступа к консоли используем netcat:
nc -l -p 32769 -u
Подгружаем модуль netconsole:
modprobe netconsole
|
|
|
|
|
Реализация команды top на Shell |
Автор: rstone
[комментарии]
|
| Должно работать на любом терминале поддерживающем VT Escape последовательности, проверено в Linux, True64 , HP-UX и Соларисе . ... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
Привязка процесса к определенному CPU в SMP системе под Linux (доп. ссылка 1) |
Автор: nixcraft
[комментарии]
|
| Пример использования жесткой привязки процесса к определенному процессору (CPU affinity).
Устанавливаем пакет schedutils
(Debian: apt-get install schedutils, Red Hat: up2date schedutils или rpm -ivh schedutils*)
Привязка процесса с pid 13545 к первому CPU (#0):
taskset -c 1 -p 13545
к 3 и 4 CPU (#2 и #3):
taskset -c 3,4 -p 13545
Загрузку процессоров в SMP системе удобно оценивать через утилиту mpstat из пакета sysstat.
mpstat -P ALL
Утилизацию подсистемы ввода/вывода можно посмотреть через команду iostat
|
|
|
|
|
Как более детально посмотреть сколько программа потребляет памяти |
[комментарии]
|
| Linux:
pmap <pid_процесса>
cat /proc/<pid>/maps
cat /proc/<pid>/status
FreeBSD:
cat /proc/<pid>/map
cat /proc/<pid>/status
|
|
|
|
|
Как получить данные с роутера по SNMP, зная его IP и communitystring |
Автор: cyrex
[комментарии]
|
| % snmpwalk -c communitystring -v 1 10.0.0.254
Ключ -c указывает строку community (обычно public)
-v задаёт версию протокола (1)
Если хотите просмотреть только часть дерева то можно задать вот так:
% snmpwalk -c community -v 1 -m iso.3.6.1.2.1.6.13.1.2 10.0.0.254
|
|
|
|
|
Построение графиков из rrdtool. Подсчёт суммарного трафика |
Автор: cyrex
[комментарии]
|
| Пусть имеется созданная rrd база в файле /path/to/file.rrd (man rrdcreate),
в которой содержатся 2 столбца данных ifinoctets и ifoutoctets
(число входящих и исходящих пакетов на интерфейсе за минуту). Как обновлять man rrdupdate.
Задача: требуется отобразить это графически с подписью данных, а так же суммарным трафиком
и средней загрузкой канала.
... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
Диагностика состояния сервера при помощи IPMI и пакета freeipmi (доп. ссылка 1) |
[обсудить]
|
| Общая информация о BMC и поддержке IPMI:
... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
Как не разбирая корпус посмотреть модель материнской платы (доп. ссылка 1) |
Автор: Anton V. Yuzhaninov
[комментарии]
|
| 1. Просмотреть содержимое BIOS (проверял под Linux и FreeBSD)
dd if=/dev/mem bs=64k skip=15 count=1 | strings | less
в первых строчках обычно упоминается название материнской платы.
2. Воспользоваться утилитой dmidecode
|
|
|
|
|
Просмотр информации оборудовании через /proc в Linux (доп. ссылка 1) |
[комментарии]
|
| cat /proc/cpuinfo
cat /proc/meminfo
cat /proc/ide/via
cat /proc/ide/ide0/hda/geometry
cat /proc/ide/drivers
cat /proc/sys/dev/cdrom/info
cat /proc/scsi/scsi
|
|
|
|
|
|
Как оценить величину трафика и состояние системы в динамике для FreeBSD |
[комментарии]
|
| Динамика изменения параметров:
netstat -w 1
iostat -w 1
vmstat -w 1
gstat
Состояние буферов:
vmstat -z
netstat -m
netstat -Lan
netstat -s -p tcp
|
|
|
|
|
Какую расширенную информацию о процессе можно получить. |
[комментарии]
|
| Определяем родителя:
ps -lp <pid> (в Linux есть утилита ptree)
Определяем какие файлы открыты:
fstat -p <pid> (freebsd)
lsof -p <pid>
Определяем какие сетевые сокеты сопоставлены с процессом:
sockstat| grep <pid> (freebsd)
netstat -pan| grep <pid> (linux)
lsof -i -n|grep <pid>
|
|
|
|
|
Как отследить запущенные пользователями программы (доп. ссылка 1) |
Автор: uldus
[обсудить]
|
| Включение контроля выполняемых процессов в FreeBSD:
... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
|
Что обозначают буквы в поле STAT при запуске ps -aux или top ? |
[комментарии]
|
| R - Процесс выполняется в данный момент
S - Процесс ожидает выполнение (спит)
D - Процесс в полной (непрерываемой) спячке, например, ожидает ввода/вывода
Z - zombie или defunct процесс, т.е. процесс у которого нет родителя.
T - Процесс остановлен.
W - процесс в свопе
< - процесс в приоритетном режиме.
N - процесс в режиме низкого приоритета
L - real-time процесс, имеются страницы заблокированные в памяти.
|
|
|
|
|
|
Как в FreeBSD узнать значения LoadAverage, объем свободного ОЗУ и т.д. |
[комментарии]
|
| sysctl vm.stats.vm.v_active_count
sysctl vm.stats.vm.v_inactive_count
sysctl vm.stats.vm.v_wire_count
sysctl vm.stats.vm.v_cache_count
sysctl vm.stats.vm.v_free_count
sysctl vm.stats.vm.v_page_count
более подробно:
sysctl -a|grep vm
sysctl| less
|
|
|
|
|
|
Как в FreeBSD более подробно ознакомится с поддержкой аппаратного устройства |
[обсудить]
|
| man 4 имя_устройства.
примеры: man 4 fxp; man 4 rl; man 4 ed; man 4 amr; man 4 pcm; man 4 cd; man 4 tty; man 4 sio;
|
|
|
|
|
Команды для аккаутинга |
[обсудить]
|
| Сколько CPU времени использовал каждый юзер в системе
ac -p
Какие команды запускал каждый пользователь и сколько CPU и памяти
было использовано при их выполнении:
sa -u
|
|
|
|
|
|
Замечание по утилите lsof |
[обсудить]
|
| Ключи:
-U - unix socket
-i inet формат:
tcp_или_udp@host:port, например: tcp:25, @192.168.1.1
Примеры:
Список всех открытых файлов: lsof
Все процессы использующие файл: lsof file
Какие процессы используют internet и unix domain сокеты: lsof -i -U
Все открытые файлы для юзера: lsof -l user
...для процесса 12: lsof -p 12
|
|
|
|
|
|
|
Как посмотреть какой сокет заняла какая программа |
[комментарии]
|
| для всех:
lsof -i -U
fuser <port_num>/tcp
для linux:
netstat -pvlA inet
для FreeBSD:
sockstat
|
|
|
|
|
Откуда берется steal внутри виртуальных машин и что с этим делать (доп. ссылка 1) |
Автор: Mail.Ru Cloud Solutions
[комментарии]
|
| CPU steal time - это время, в течение которого виртуальная машина не получает ресурсы процессора для своего выполнения. Это время считается только в гостевых операционных системах в средах виртуализации.
... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|