Роман Теличко

Заметки веб-разработчика/админа

Тег мониторинг

Средний LA (Load Average) за сутки используя статистику atop

// Март 2, 2017 | 397 просмотров | комментариев (0)

Начнём с того что такое atop.
atop — продвинутый интерактивный полноэкранный монитор производительности, расширенный аналог top. Позволяет контролировать загрузку ЦПУ, ОЗУ, HDD, сети и многое другое. На мой взгляд, является самым удобным инструментом для мониторинга состояния системы, поскольку собирает всю необходимую информацию вместе. Важной особенностью является возможность сохранения данных в файл собственного двоичного формата, что мы и будем использовать для решения этой задачи.
Я не буду останавливаться на возможностях atop в рамках этой статьи.

После инсталляции atop складывает свою статистику в файлы (по дням) в папку /var/log/atop/.

С помощью опции -r <путь_к_файлу> указывается какой именно дамп будет считан.
Для ещё более точного определения диапазона за этот день можно использовать опции -b время старта (в формате hh:mm) и -e время окончания (в формате hh:mm)
Если нас интересует статистика только по некоторым параметрам, мы можем указывать это с помощью опции -P. Значения могут быть следующие:

  • PRC — Process level totals
  • CPU — CPU utilization
  • CPL — CPU load information
  • MEM — Memory occupation
  • SWP — Swap occupation and overcommit info
  • PAG — Paging frequency
  • LVM/MDD/DSK — Logical volume/multiple device/disk utilization
  • NET — Network utilization (TCP/IP)

Тогда средний LA (Load Average, параметр CPL) за сутки (в примере это 20170302) можно вывести используя следующее:

atop -PCPL -r /var/log/atop/atop_20170302 | grep 'CPL' | awk -F ' ' '{print $8}' | awk '{ total += $1 } END { print "LA AVG: " total/NR }'

Что выведет:

LA AVG: 2.155

Подобным образом можем посчитать максимальное значение:

atop -PCPL -r /var/log/atop/atop_20170302 | grep 'CPL' | awk -F ' ' '{print $8}' | awk '{ if(max<$1) { max=$1 } } END { print "LA MAX: " max }'

Что выведет:

LA MAX: 3.46

Точно так же вы можете отобразить и другие параметры.
Это всё. Удачи.

Linux. Установка и настройка анализатора логов Logwatch

// Апрель 30, 2015 | 3149 просмотров | комментариев (1)

logwatch — это анализатор системных логов (журналов), начиная от /var/log/messages и заканчивая логами CISCO-оборудования. Результаты анализа утилита группирует и помещает в отчёт, который может как выводиться в stdout, так и отправляться электронной почтой или сохраняется в файл. Формат отчёта предлагается в трех вариантах: plaintext, HTML или файл, при этом вы можете регулировать уровень детализации отчёта исходя из собственных потребностей.
Сегодня я расскажу вам как его установить и настроить.

Ставится он в Debian/Ubuntu довольно просто:

sudo apt-get install logwatch

После установки копируем файл конфига из довольно странного месторасположения в привычное:

cp /usr/share/logwatch/default.conf/logwatch.conf /etc/logwatch/conf/

И открываем на редактирование:

vi /etc/logwatch/conf/logwatch.conf

Настраиваем:

  • Задаём месторасположение временной директории

    TmpDir = /tmp
  • Вид отправки отчета по-умолчанию задаём как

    Output = mail

    чтобы получать отчёты не в stdout (поток стандартного вывода), а на почту.

  • Формат отчёта выбираем HTML, а не plaintext

    Format = html
  • Указываем ваш email, куда будут отправлены ежедневные отчёты

    MailTo = roman@romantelycko.com
  • Задаёт имя и адрес отправителя (потом удобно создать фильтр)

    MailFrom = logwatch@myserver.com
  • Задаём за какой период времени отбирать анализируемые сообщения: all, today или yesterday

    Range = yesterday
  • Определяем уровень детализации отчёта. Может принимать как числовые значения от 0 (минимум детализации) до 10 (максимум). Также можно использовать синонимы: Low, Med и High, которые соответственно равны числовым 0, 5 и 10;

    Detail = Med
  • Задаём имя службы (имя файла из каталога /usr/share/logwatch/scripts/services/), логи которой необходимо анализировать. Если указать значение All, то будут обрабатываться все службы. Более того, можно некоторые из них исключить из отчёта указав перед именем службы минус ("-"). Например включаю в отчёт все службы кроме http и exim:

    Service = All
    Service = "-eximstats"
    Service = "-http"

Внешне вывод в HTML виде выглядит страшненько. Прямо «Привет из 90х».
Лично я сам формат стилизовал следующим образом, хотя можно найти и другие темы в Сети.

Открываем файл HTML-шаблона

vi /usr/share/logwatch/default.conf/html/header.html

И заменяем наш <style>...</style> на следующий:

<style type="text/css">
    body,h1,h2,h3 { 
        margin:0; padding:0; color:#404040;
        font:16px/16px courier,"courier new",Verdana,Arial,sans-serif; 
    }
    a { color:#227596; font-size:14px; }
    ul li a { font-size:18px; line-height:22px; }
    .service { padding:20px 0 0 20px; } 
    .return_link { padding:10px 0 30px 20px; }
    table,tr,td,th { 
        border:0!important; border-collapse:collapse; 
        font:14px/18px courier,"courier new",Verdana,Arial,sans-serif; 
        color:#404040; text-align:left; background: #ffffff; 
    }
    td,th { padding:2px 4px; margin:0; }  
    h1, h1 a, h2, h2 a, h3, h3 a, th { font-size:16px; }
</style>

Проверим работу logwatch. Отчет должен сформироваться и прийти на почту.

/etc/cron.daily/00logwatch

Это всё. Удачи.