Zabbix мониторинг дисков linux

Как использование Zabbix для мониторинга дисков поможет оптимизировать работу сервера

Мониторинг дисков с помощью Zabbix: оптимизируйте работу сервера

В настоящее время многие компании и организации сталкиваются с проблемой эффективного управления серверами. Для достижения оптимальной производительности сервера необходимо активно отслеживать состояние его подсистем. Особое внимание следует уделить дисковой подсистеме, так как именно от нее во многом зависит производительность всего сервера. Для решения этой задачи можно использовать систему мониторинга Zabbix. В этой статье мы предлагаем небольшое руководство по использованию Zabbix для мониторинга дисков.

В Zabbix для мониторинга дисковых показателей используются шаблоны. Шаблоны – это наборы предварительно настроенных параметров, которые могут быть применены к различным хостам без необходимости создания новых конфигураций. Для мониторинга утилизации дисковой подсистемы можно использовать шаблон «Template Disk IO». Для мониторинга IOPS можно использовать шаблон «Template Disk Performance».

Для получения данных о дисковой утилизации и IOPS Zabbix использует скрипт, который нужно добавить на сервер. Скрипт должен быть выполнен с некоторой периодичностью, например, каждую секунду или каждые 5 секунд. В скрипте задаются параметры, например, диск, по которому будет производиться мониторинг, и время ожидания ответа на запрос. По результатам выполнения скрипта возвращаются необходимые данные, которые затем передаются в Zabbix-агент.

Небольшое отступление

В предыдущем разделе мы рассмотрели настройку мониторинга дисковых метрик с помощью Zabbix. Однако, хочется добавить небольшое отступление насчет одной метрики, которую мы не упомянули ранее.

Эта метрика называется queued disk requests и отображает количество запросов, которые ожидали своей очереди для записи на диск. Она может быть полезна для анализа производительности диска и определения, сколько времени требуется для обработки запросов.

Настройка этой метрики аналогична настройке других дисковых метрик. Вам потребуется добавить следующую опцию в конфигурационный файл /etc/zabbix/zabbix_agentd.d/userparameter_diskstats.conf:

UserParameter=diskstat.queue[*],cat /proc/diskstats | grep ^$1 | awk '{print $12}'

После изменения файла конфигурации, перезапустите службу Zabbix агента:

sudo service zabbix-agent restart

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

Небольшое отступление, например, о queued disk requests, было вполне уместным. Но скажу вам по секрету, давным-давно даже аналогичная метрика уже была включена в шаблоны Zabbix. Если зайти в настройки этой метрики, то можно увидеть, что она называется disk.iops. Но дело в том, что она считает количество запросов в секунду, а не сколько запросов ожидают своей очереди для записи на диск. Потому что метрика disk.iops базируется на данных, которые выдает утилита iostat, и в этой утилите есть колонка r/s, которая показывает сколько запросов в секунду делается на диск. А у нас же интерес к числу запросов на запись.

Но, чтобы знать, сколько запросов на запись ожидают своей очереди, нужно умножить количество запросов в секунду на время, которое требуется чтобы записать запрос на диск. Это обычно измеряется в секторах в секунду (sectors/s), но в нашем случае возвращается в килобайтах в секунду (kilobytes/s).

Читайте также:  Windows 10 rsat wsus

Колонка rkB/s возвращает сколько килобайт в секунду записано на диск. Потому чтобы узнать, сколько запросов было добавлено в очередь, нужно умножить количество запросов в секунду на количество затраченного времени на запись одного запроса в секундах. Однако в настройке этой метрики нет возможности задать время в секундах, потому что мы не знаем, сколько времени потребуется дискам на запись одного запроса.

Поэтому в настройке этой метрики есть опция Timeout when reading from the disk, которая позволяет задать таймаут на чтение данных из iostat. Он указывается в миллисекундах, поэтому нужно учесть, что если время на запись запроса будет больше указанного таймаута, то данные не будут получены и вместо них будет возвращено значение 0.

Как добавить queued disk requests в Zabbix

Как добавить queued disk requests в Zabbix

Чтобы добавить метрику queued disk requests, вам потребуется создать скрипт. Например, создайте файл в директории /etc/zabbix/scripts/ с именем queued_disk_requests.sh и следующим содержимым:

#!/bin/bash
DEVICE=$1
DELTA=$(iostat -xk /dev/$DEVICE 1 2 | awk '{if ($1 == "'$DEVICE'") {print $2}}' | tail -n 1)
RKB=$(iostat -xk /dev/$DEVICE 1 2 | awk '{if ($1 == "'$DEVICE'") {print $6}}' | tail -n 1)
echo "scale=2; $DELTA / $RKB * 1024" | bc

Не забудьте сделать скрипт исполняемым:

chmod +x /etc/zabbix/scripts/queued_disk_requests.sh

Теперь вам нужно создать ключик в Zabbix. Перейдите в раздел «Конфигурация» — «Шаблоны» — «Ваш шаблон» — «Ключи» и добавьте новый ключ:

  • Имя ключа: queued_disk_requests[{#DISK}]
  • Тип информации: Внешняя проверка
  • Команда: /etc/zabbix/scripts/queued_disk_requests.sh $1

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

Теперь у вас есть возможность мониторить метрику queued disk requests и использовать ее для анализа производительности диска.

Заключение

Заключение

Заключение

В этом небольшом отступлении мы рассмотрели, как добавить метрику queued disk requests в Zabbix с помощью скрипта и внешней проверки. Эта метрика может быть полезна для анализа производительности диска и оптимизации работы сервера. Теперь у вас есть дополнительный инструмент для мониторинга и улучшения работы вашего сервера.

Также, хочу отметить, что в Zabbix есть множество других полезных метрик и шаблонов для мониторинга дисков. Используйте их, чтобы получать более полную картину о состоянии и производительности ваших серверов.

Мониторинг дисков Zabbix

Необходимые данные

Для того чтобы мониторить дисковую подсистему, нам необходимо знать следующие показатели:

  • Утилизация дисковой подсистемы
  • Количество обработанных запросов в секунду (IOPS)
  • Время обработки каждого запроса (svctime)
  • Среднее количество запросов, находящихся в очереди (queued)

Настройка Zabbix-агента

Для сбора данных о дисковой подсистеме необходимо настроить Zabbix-агента на сервере. Для этого мы можем использовать следующий скрипт:

root@debian7:/usr/local/etc/zabbix-3.0/scripts# cat iostat-collect.sh

В этом скрипте мы создаем файл и используем команду iostat для сбора данных о дисках. Затем мы умножаем значения метрик на 1000, чтобы перевести их в килобайты.

Скрипт создает файл /tmp/iostat.stat, который содержит данные о дисковой подсистеме:

root@debian7:/usr/local/etc/zabbix-3.0/scripts# ./iostat-collect.sh

Настройка шаблонов

После того как у нас есть необходимые данные, мы можем настроить шаблоны в Zabbix для мониторинга дисков. Для этого мы используем следующие параметры:

Читайте также:  Сервер шлюза удаленных рабочих столов linux

- Read operations per second (number of sectors read from the disk)

- Write operations per second (number of sectors written to the disk)

- Kilobytes read per second (number of kilobytes read from the disk)

- Kilobytes written per second (number of kilobytes written to the disk)

- Time spent reading (ms)

- Time spent writing (ms)

- Time spent doing I/Os (ms)

- Average queue length (number of requests in the queue)

Анализ данных

После настройки Zabbix и сбора данных о дисковой подсистеме, мы можем анализировать эти данные и оптимизировать производительность сервера. Например, если у нас есть большая утилизация дисковой подсистемы, мы можем установить более быстрые диски или уменьшить количество операций записи. Если время обработки каждого запроса (svctime) слишком велико, мы можем проанализировать причины этого и принять меры для улучшения производительности.

Заключение

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

Мониторинг дисков Zabbix – Настройка

В этой статье мы рассмотрим настройку мониторинга дисков с помощью Zabbix. Для начала, создадим несколько шаблонов и скриптов, чтобы получить исходные данные, необходимые для мониторинга.

  • Задаем timeout для опросов. Например, можно установить значение в 5 секунд.
  • В файле конфигурации Zabbix server должны быть указаны исполняемые файлы, которые будут служить для получения данных о дисках. Например, можно добавить следующую опцию: Include=/usr/local/etc/zabbix_agentd.conf.d/.
  • Для мониторинга дисковой подсистемы можно использовать программу iostat. Устанавливаем ее, если она не была установлена ранее.

Настройка шаблонов:

  1. Создаем шаблон для мониторинга дисков. Задаем имя и описание шаблона, а также добавляем нужные метрики в колонки.
  2. Создаем шаблон для мониторинга сети. Задаем имя и описание шаблона, а также добавляем нужные метрики в колонки.

Настройка скриптов:

Для получения данных о дисковой подсистеме используем скрипт iostat-parser.sh. В этом скрипте указываем путь к программе iostat и задаем нужные опции, чтобы получить нужные нам данные. Например, используем команду iostat -d -x -k 1 2, которая позволяет получить информацию о дисках в единицах килобайт.

Запускаем скрипт, чтобы получить исходные данные.

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

Мониторинг производительности дисковой подсистемы при помощи Zabbix и blockstat

Настройка мониторинга с помощью Zabbix

Для начала, необходимо создать шаблоны и правила мониторинга в Zabbix. Создаем скрипт, который будет собирать необходимые данные:

root@debian7:~# nano /etc/zabbix/zabbix_agentd.conf.d/diskstats.conf

Вставляем в файл следующий код:

UserParameter=diskstats.discovery[*],/etc/zabbix/scripts/diskstats.py -d $1
UserParameter=diskstats[*],/etc/zabbix/scripts/diskstats.py -d $1 -s $2

Затем создаем скрипт для сбора данных:

root@debian7:~# nano /etc/zabbix/scripts/diskstats.py

Вставляем в файл следующий код:

#!/usr/bin/env python
# coding: utf-8
import json
import os
import sys
def discovery(device):
# Здесь реализуем логику определения дисковых устройств
# ...
discovery_data = [
{
"{#DEVICE}": "sda"
},
{
"{#DEVICE}": "sdb"
}
]
print(json.dumps(discovery_data))
def main(device, stat):
# Здесь реализуем логику сбора статистики по дисковому устройству
# ...
if stat == "read_bytes":
value = 1234567890.0
elif stat == "write_bytes":
value = 9876543210.0
print("{0:.2f}".format(value))
if __name__ == "__main__":
if len(sys.argv) < 3:
print("Usage: {0} device stat".format(sys.argv[0]))
sys.exit(1)
device = sys.argv[2]
stat = sys.argv[2]
if sys.argv[1] == "-d":
discovery(device)
else:
main(device, stat)

После создания скриптов, необходимо добавить права на выполнение:

root@debian7:~# chmod +x /etc/zabbix/scripts/diskstats.py

Затем перезапускаем Zabbix Agent:

root@debian7:~# service zabbix-agent restart

Настройка мониторинга с помощью blockstat

Утилита blockstat позволяет мониторить производительность дисковой подсистемы при помощи системного вызова stat. Для начала, устанавливаем утилиту:

root@debian7:~# apt-get install blockstat

После установки, перезапускаем сервер:

root@debian7:~# reboot

Затем протестируем утилиту, запустив следующую команду:

root@debian7:~# blockstat -p sda -t 5

Мониторинг производительности дисковой подсистемы

Теперь, когда настройка Zabbix и blockstat были выполнены, можно приступить к мониторингу производительности дисковой подсистемы. Добавьте новые элементы данных в шаблон мониторинга и настройте соответствующие триггеры и графики. Например, можно мониторить следующие метрики:

  • Утилизация дисковой подсистемы (utilization)
  • Число операций чтения и записи (number)
  • Количество секторов, считанных и записанных (sectors)
Читайте также:  Как создать загрузочную флешку windows 10 fat32

При помощи этих метрик можно отслеживать производительность дисковой подсистемы и реагировать на возможные проблемы.

Мониторинг производительности дисковой подсистемы с помощью Zabbix и blockstat позволяет оптимизировать работу сервера и обнаруживать возможные проблемы. Разработанные шаблоны и правила мониторинга позволяют собирать и анализировать важные метрики производительности дисков.

Исходные данные

Для начала, необходимо установить утилиту iostat:

root@debian7:~# apt-get install sysstat
root@debian7:~# iostat -x

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

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

Мониторинг дисков в Zabbix

Для эффективного мониторинга дисков в системе Zabbix необходимо создать скрипты, которые будут собирать нужные метрики и отправлять их на сервер мониторинга.

Для начала необходимо скопировать скрипты iostat-parser.sh и iostatcollect.pl в директорию /usr/local/etc/zabbix_agent_scripts/. Затем убедитесь, что скрипты доступны для выполнения пользователем zabbix-agent. Если необходимо, измените права доступа к скриптам с помощью команды chmod.

После этого добавьте новые элементы данных и триггеры в Zabbix для мониторинга нужных вам метрик. Все необходимые параметры, такие как timeout и количество опросов, задаются в конфигурационном файле zabbix_agentd.conf.

Теперь вы можете протестировать новые элементы данных и убедиться, что сервер Zabbix получает нужные значения. Для этого воспользуйтесь командой zabbix_get, указав имя хоста, имя элемента данных и таймаут для запроса.

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

Видео:

Обзор Системы Мониторинга Заббикс Zabbix Server Часть 2

Обзор Системы Мониторинга Заббикс Zabbix Server Часть 2 by Артём Андреевич Мамзиков 4,499 views 3 years ago 31 minutes

Оцените статью