Индикаторы «физического осмотра» Linux

задняя часть сервер программист Linux

предисловие

В условиях «моли Бога, чтобы сервер не упал» и «убей программистов, чтобы принести жертву небу», программисты дрожат каждый день, и они дрожат от страха, когда им звонят и смс. безопасности, мы можем вовремя выявить проблему работы сервера, это не просто вопрос эксплуатации и обслуживания. Сегодня я подытожу общие показатели мониторинга серверов, надеюсь, что все разработчики запустят скрипт для обеспечения собственной безопасности.

Статья часто сканируется, а исходный адрес не указан. Мое обновление и исправление ошибок здесь синхронизировать нельзя. Вот исходный адрес: http://www.cnblogs.com/zhenbianshu/p/7683496.html


Получить информацию о сервере

Когда необходимо контролировать несколько машин одновременно, на каждой машине должна быть запущена программа мониторинга.Сначала нам нужно получить информацию о сервере, чтобы отличить машину.При возникновении проблемы мы также можем оценить ее серьезность. .

получить IP

Получите IP-адрес интрасети:

Получите всю информацию о сети с помощью команды ifconfig и исключите информацию о локальном хосте и ipv6.

/sbin/ifconfig | grep inet | grep -v '127.0.0.1' | grep -v inet6 | awk '{print $2}' | tr -d "addr:"

Примечание здесь, чтобы использоватьifconfigАбсолютный путь, потому что, если скрипт мониторинга запускается в crontab, он не будет содержать информацию об окружающей среде при выполнении.

Получить внешний IP:

Мы можем повторить IP-адрес внешней сети, запросив другие веб-сайты.Некоторые веб-сайты предоставляют эту услугу, напримерipecho.net/plainИли сайт, который мне лень делать самому:alwayscoding.net.

Команда выглядит следующим образомcurl alwayscoding.net

Получить информацию о системе

Рекомендуется получить системную информациюlsb_release -aметод:

lsb_release -a
LSB Version:    :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch
Distributor ID: CentOS
Description:    CentOS release 6.5 (Final)
Release:    6.5
Codename:   Finalскопировать код

Информация относительно богата, и требуемая часть строки может быть перехвачена;


CPU

Загрузка процессора — это основной показатель, который мы хотим отслеживать, а системная загрузка, о которой мы часто говорим, относится к нему.一段时间内CPU处理进程数占 CPU 能处理最大进程数的比例, то есть максимальная загрузка процессора1.0, в этом случае ЦП может просто завершить выполнение всех процессов, при превышении этого лимита система войдет в перегруженное состояние, и некоторым процессам потребуется дождаться окончания выполнения других процессов. Обычно мы думаем, что загрузка процессора0.6Далее идет состояние здоровья.

Просмотр загрузки системы на терминале обычно выполняется с помощьюtopкоманда, но она интерактивная, а данные все более и более сложные, что не способствует написанию скриптов мониторинга.Мы обычно используемuptimeчерез егоaverage loadполе для получения средней нагрузки за последние 1 минуту, 5 минут, 15 минут.

uptime
16:03:30 up 130 days, 23:33,  1 user,  load average: 4.62, 4.97, 5.08скопировать код

В это время средняя загрузка системы составляет около 5. Дело не в том, что система перегружена и ошибка не отображается, это связано с тем, что при рассмотрении нагрузки также учитывается количество ядер ЦП. процессов, которые многоядерный ЦП может обрабатывать одновременно, пропорциональна количеству ядер.Нагрузка равна не 1, а ее количеству N ядер ЦП.

Мы используемnprocВы можете проверить количество ядер ЦП в системе.Количество ядер на машине, которую я использую, равно 16, поэтому максимальная нагрузка составляет 16, средняя нагрузка составляет 5/16 = 0,32, а ЦП исправен.


ОЗУ

Память — еще один ключевой показатель, который мы хотим отслеживать.Если использование памяти слишком велико, это, несомненно, приведет к тому, что процесс не сможет выделить память для нормального выполнения.

Мы также можем просмотреть использование памяти с помощью команды top, но она чаще используется для мониторинга.freeЗаказ:

free -m
             total       used       free     shared    buffers     cached
Mem:         32108      18262      13846          0        487      11544
-/+ buffers/cache:       6230      25878
Swap:            0          0          0скопировать код

Давайте сначала посмотрим на строку памяти, всего 32108 МБ памяти, 18262 МБ было использовано, а остальные 13846, тогда коэффициент использования памяти составляет 18262/32108 * 100% = 56,88%. Итак, что означают следующие общие, буферные и кэшированные данные?

На самом деле, в Linux выделение памяти также является принципом лени, когда память выделяется процессу, Linux не будет очищать память сразу после выполнения процесса, а сохранит эту часть памяти в виде кеша. Нет необходимости перезагружать, если доступная память израсходована, эта часть кеша очищается и используется повторно. Посмотрите на это с другой стороныused 里的 buffers 和 cached 部分是随时可被重用Да, это нельзя считать занятым. А общая часть — это часть процесса с общей памятью, которая будет использоваться как занятая часть, но обычно она используется меньше.Для связанного контента вы можете обратиться к справочной статье в конце статьи.

Реальные данные — это часть третьей строки, которая удаляет буферы и кеш, то есть реальное использование памяти6230/(6230+25878)*100% = 19.4%.

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


Интернет

Сеть также является очень важным показателем, когда Linux используется в качестве веб-сервера.Существует много связанных команд, но каждая имеет свои сильные стороны.Мы обычно отслеживаем следующие состояния:

Используйте netstat для просмотра прослушиваемых портов.

netstat -an | grep LISTEN | grep tcp | grep 80Посмотрите, не отслеживает ли какой-либо процесс порт 80.

Мониторинг сетевых подключений с помощью ping

использоватьpingКоманда может проверить, подключена ли сеть, использовать параметр -c для управления количеством запросов, использовать параметр -w для управления временем ожидания (единица измерения: миллисекунды) и, наконец, использовать параметр&&символический短路Особенности для управления полученным выходом:

ping -w 100 -c 1 weibo.com &>/dev/null && echo "connected"


жесткий диск

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

Мы используемdfкоманда для просмотра состояния использования диска, -h выводит в удобочитаемом формате:

df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        40G  6.0G   32G  16% /
tmpfs            16G     0   16G   0% /dev/shm
/dev/vdb1       296G   16G  265G   6% /data0скопировать код

Мы можем использовать команду grep, чтобы найти узел монтирования, который мы хотим запросить, а затем использовать команду awk, чтобы получить поля результатов.

дополнительно использоватьdu [-h] /path/to/dir [--max-depth=n]Вы можете просмотреть размер каталога, обратите внимание на использование--max-depth=nУправляет глубиной обхода.


бег/другое

Другие состояния мониторинга в основном включают мониторинг журнала ошибок процесса, мониторинг количества запросов, мониторинг состояния существования процесса и т. д. Их можно использовать с некоторыми базовыми командами, такими какpsЖдать.

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


Суммировать

Наконец, результаты мониторинга статистики, вы можете использовать общий режим «push» и «pull», предполагается, что машина выталкивает результаты на одну статистику машины и сигналы тревоги. также можно использоватьrsyncМетод выбирается с каждого сервера, а способ оповещения, например корпоративный WeChat, SMS, электронная почта и т. д., можно настроить по мере необходимости.

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

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

Ссылаться на:

Понимание нагрузки на систему Linux - Руан Ифэн

Можно ли действительно переработать кеш в памяти Linux?