Начнём с того что такое 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
Точно так же вы можете отобразить и другие параметры.
Это всё. Удачи.
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 = [email protected]
- Задаёт имя и адрес отправителя (потом удобно создать фильтр)
MailFrom = [email protected]
- Задаём за какой период времени отбирать анализируемые сообщения:
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
Это всё. Удачи.