Архив метки: Zabbix

Zabbix. Авторегистрация узлов

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

Зачем это нужно?

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

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

Настройка zabbix сервера

Для начала создаем на сервере zabbix новое действие. Переходим в меню Настройки-Действия-создать действие. Источник выбираем «Авторегистрация»

На открывшейся странице на вкладке «Действия» заполняем следующие поля

Здесь

Имя — любое название действия

Новое условие — выбираем «Метаданные узлов сети» — «содержит» и здесь вписываем строку по которой будем идентифицировать регистрируемые хосты.

Затем переходим на вкладку «Операции». И здесь в поле «операции» кликаем по ссылке «Новый». И добавляем правила которые необходимо применить при регистрации хоста.

Обратите внимание на один момент, при добавлении операции нужно кликать не на большую кнопку «добавить». А на мелкую ссылку «добавить»

Например для добавления узла и добавления его к группе Linux servers с присоединением к шаблону «Template Linux OS_activ» выглядит так

После этого нажимаем большую кнопку «Добавить». На этом настройку сервера можно считать завершенной.

Настройка zabbix агентов

Открываем конфигурационный файл агента и редактируем следующие поля

Закомментировать или прописать свое уникальное имя в параметре

Hostname=Zabbix server

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

В параметре ServerActive прописываем ip адрес сервера

ServerActive=<zabbix server>

Раскомментировать параметр HostMetadata и присвоить ему значение которое мы указали в настройках сервера

HostMetadata=linux.autoreg

После чего перезапускаем агент. Идем на сервер и в узлах сети, в указанной группе, а также в группе «Discovered hosts» должен появиться новый узел. Если этого не произошло, то смотрим логи агента и сервера, как правило там подробно описано что у нас пошло не так. При необходимости мы можем отредактировать настройки вручную, эти настройки не пропадут. Только не меняйте имя, иначе узел снова зарегистрируется под именем настроенном в параметре Hostname.

Заключение

Как видим настроить автоматическое добавление узлов в zabbix дело десяти минут. А вот упрощает и экономит время при дальнейшем обслуживание мониторинга это существенно.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.



2019-04-16T17:21:37
Zabbix

Мониторинг дисков с помощью zabbix

Мониторинг производительности дисковых подсистем с помощью zabbix. Мониторятся следующие параметры.

  • утилизация блочного устройства в % — удобная метрика для отслеживания общей нагрузки на устройстве;
  • latency или отзывчивость — доступна как общая отзывчивость, так и отзывчивость на операциях чтения/записи;
  • величина очереди (в запросах) и средний размер запроса (в секторах) — позволяет оценить характер нагрузки и степень загруженности устройства;
  • текущая скорость чтения/записи на устройство в человекопонятных килобайтах;
  • количество запросов чтения/записи (в секунду) объединенных при постановке в очередь на выполнение;
  • iops — величина операций чтения/записи в секунду;

Для работы нам потребуется утилита iostat входящая в пакет sysstat. Устанавливаем sysstat

yum install sysstat

Создаем директорию для скриптов

mkdir /usr/libexec/zabbix-extensions/scripts/

Создаем первый скрипт для сбора метрик

vi /usr/libexec/zabbix-extensions/scripts/iostat-collect.sh

Копируем в него следующий текст

#!/usr/bin/env bash

# Description: Script for iostat monitoring

# Author: Epikhin Mikhail michael@nomanlab.org

# Revision 1: Lesovsky A.V. lesovsky@gmail.com



SECONDS=$2

TOFILE=$1

IOSTAT="/usr/bin/iostat"



[[ $# -lt 2 ]] && { echo "FATAL: some parameters not specified"; exit 1; }



DISK=$($IOSTAT -xm 1 $SECONDS | awk 'BEGIN {check=0;} {if(check==1 && $1=="avg-cpu:"){check=0}if(check==1 && $1!=""){print $0}if($1=="Device:"){check=1}}' | tr 'n' '|')

echo $DISK | sed 's/|/n/g' > $TOFILE

echo 0

Создаем второй скрипт для парсинга

vi /usr/libexec/zabbix-extensions/scripts/iostat-parse.sh

#!/usr/bin/env bash

# Description:  Script for disk monitoring

# Author:       Epikhin Mikhail michael@nomanlab.org

# Revision 1:   Lesovsky A.V. lesovsky@gmail.com



NUMBER=0

FROMFILE=$1

DISK=$2

METRIC=$3



[[ $# -lt 3 ]] && { echo "FATAL: some parameters not specified"; exit 1; }

[[ -f "$FROMFILE" ]] || { echo "FATAL: datafile not found"; exit 1; }



case "$3" in

"rrqm/s")

        NUMBER=2

;;

"wrqm/s")

        NUMBER=3

;;

"r/s")

        NUMBER=4

;;

"w/s")

        NUMBER=5

;;

"rkB/s")

        NUMBER=6

;;

"wkB/s")

        NUMBER=7

;;

"avgrq-sz")

        NUMBER=8

;;

"avgqu-sz")

        NUMBER=9

;;

"await")

        NUMBER=10

;;

"r_await")

        NUMBER=11

;;

"w_await")

        NUMBER=12

;;

"svctm")

        NUMBER=13

;;

"util")

        NUMBER=14

;;

*) echo ZBX_NOTSUPPORTED; exit 1 ;;

esac



grep -w $DISK $FROMFILE | tail -n +2 | tr -s ' ' |awk -v N=$NUMBER 'BEGIN {sum=0.0;count=0;} {sum=sum+$N;count=count+1;} END {printf("%.2fn", sum/count);}'

Даем права на запуск

chmod +x /usr/libexec/zabbix-extensions/scripts/iostat-collect.sh /usr/libexec/zabbix-extensions/scripts/iostat-parse.sh

Создаем файл с ключами zabbix агента

vi /etc/zabbix/zabbix_agentd.d/iostat.conf

Копируем в него следующие ключи

# Disk statistics via iostat (sysstat)

# Attention: Second parameter in iostat.collect must be less than Timeout option in zabbix_agentd.conf

UserParameter=iostat.discovery, iostat -d | awk 'BEGIN {check=0;count=0;array[0]=0;} {if(check==1 && $1 != ""){array[count]=$1;count=count+1;}if($1=="Device:"){check=1;}} END {printf("{nt"data":[n");for(i=0;i<count;++i){printf("tt{nttt"{#HARDDISK}":"%s"}", array[i]); if(i+1<count){printf(",n");}} printf("]}n");}'

UserParameter=iostat.collect,/usr/libexec/zabbix-extensions/scripts/iostat-collect.sh /tmp/iostat.out 8 || echo 1

UserParameter=iostat.metric[*],/usr/libexec/zabbix-extensions/scripts/iostat-parse.sh /tmp/iostat.out $1 $2

Рестартуем агента

systemctl restart zabbix-agent

Скачиваем шаблон для zabbix сервера и устанавливаем.

В итоге должны получить красивые графики, например загрузка диска

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.



2019-02-11T14:25:23
Zabbix

Установка ZABBIX на Centos 7

Zabbix-очень мощная система мониторинга, для отслеживания различного состояния хостов (серверов, маршрутизаторов, свичей и т.д).

В состав zabbix входит:

  • сервер мониторинга, который собирает все данные, обрабатывает их анализирует и запускает скрипты оповещения.
  • База данных (Mysql, PostgreSQL, SQLite или Oracle)
  • Агент-демон который запускается на отслеживаемом узле и отправляет данные на сервер

Агент устанавливать на хост не обязательно, получать данные можно так же с помощью различных сервисов для мониторинга сетей, таких как snmp, ping, ftp, http и т.д.

Установка ZABBIX

Для установки на CentOS 6 установите пакет конфигурации репозитария. Этот пакет содержит yum файлы конфигурации.

# rpm -ivh http://repo.zabbix.com/zabbix//2.4/rhel/7/x86_64/zabbix-release-2.4-1.el7.noarch.rpm

Установите пакеты Zabbix.

# yum install zabbix-server-mysql zabbix-web-mysql

 Установка только Zabbix агента на отслеживаемый хост.

# yum install zabbix-agent

 Устанавите mariadb

# yum install -y mariadb-server mariadb

Дбавляем в mariadb автозапуск

# systemctl enable mariadb.service

И запускаем

# systemctl start mariadb

Создайте базу данных zabbix и пользователя в MySQL

# mysql -uroot

MariaDB [(none)]> create database zabbix character set utf8;

MariaDB [(none)]>grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';

MariaDB [(none)]> exit

Импортируйте начальную схему и данные.

# cd /usr/share/doc/zabbix-server-mysql-2.4.5/create/

# mysql -uroot zabbix < schema.sql

# mysql -uroot zabbix < images.sql

# mysql -uroot zabbix < data.sql

В текстовом редакторе откройте /etc/zabbix/zabbix_server.conf.

И добавте в файл

DBHost=localhost

DBName=zabbix

DBUser=zabbix

DBPassword=zabbix

Запустите процесс Zabbix сервера.

# systemctl start zabbix-server

И добавте его в автозапуск

# systemctl enable zabbix-server.service

В файле /etc/httpd/conf.d/zabbix.conf найдите строчку # php_value date.timezone Europe/Riga, установите правильную временную зону и раскоментируйте. Перезапустите веб сервер

# systemctl restart httpd

После этого через любой браузер зайдите на адрес  http://<ip-server-zabbiz>/zabbix из браузера. Где продолжится установка через WEB интерфейс. Если не получается открыть страницу, проверте запущен ли у вас сервер apache

# systemctl status httpd

Отключите selinux. для этого  в файле /etc/selinux/config укажите

SELINUX=disabled,

и перезагрузите сервер. В файле /etc/sysconfig/iptables выше запрещающих правил пропишите строку:

-A INPUT -m state —state NEW -m tcp -p tcp —dport 80 -j ACCEPT

И перезапустите iptables

# systemctl restart iptables

 Вы должны увидить такую картинку

Нажимаем NEXT

Смотрим что у нас всё ОК и жмем NEXT.

здесь указываем параметры подключения к нашей MqSQL базе, которые мы настраивали вначале. Нажмите кнопку «Test connection» и убедитесь что есть подключение к базе. На остальных страницах можете просто нажатьNEXT. Вконце вы должны увидеть страницу авторизации.

По умолчанию логин/пароль Admin/zabbix. После входа вы должны увидеть такую страницу

 



2018-10-01T12:40:45
Zabbix

Мониторинг MikroTik с помощью Zabbix

Для мониторинга маршрутизаторов MikroTik через SNMP, нужно настроить SNMP на маршрутизаторе mikrotik и установить шаблон на zabbix сервер,

Настройка mikrotik

через winbox переходим «IP»-«SNMP»

Здесь устанавливаем флаг «Enabled», тем самым включая SNMP на маршрутизаторе. Далее нажимаем кнопку «Сommunities» и выбираем уже созданный по умолчанию community «public», и исправляем его на свой. Так же для безопасности можно указать IP адреса с которых можно подключаться по SNMP.

Нажимаем «ОК» на всех вкладках. На этом настройка маршрутизатора закончена.

Настрока zabbix

1. Скачиваем шаблон для mikrotik  https://zabbix.org/mw/images/2/2e/Mikrotik_CloudCore.xml,

2.Устанавливаем шаблон на свой zabbix сервер.Для этого переходим на вкладку «Настройка»-«Шаблоны».Справа вверху нажимаем кнопку «импорт» и указываем шаблон полученный в шаге 1.

3. Переходим в «Настройка»-«Узлы сети» и создаем новый узел, в качестве шаблона указав новый шаблон «Hardware: CloudCor»

Обучающий курс по настройке MikroTik

Нужно разобраться с MikroTik, но не определились с чего начать? В курсе «Настройка оборудования MikroTik» все по порядку. Подойдет и для начала работы с этим оборудованием, и для того, чтобы систематизировать знания. Это видеокурс из 162 уроков и 45 лабораторных работ, построен на официальной программе MTCNA. Проходить можно, когда удобно и пересматривать по необходимости – материалы курса выдаются бессрочно. Также есть 30 дней на личные консультации с автором. На пробу выдают 25 уроков бесплатно, заказать их можно на странице курса.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.



2018-10-01T12:35:37
Zabbix

Мониторинг XenServer с помощью Zabbix

Заходим в консоль xenservera

1.Добавляем zabbix пользователя.

# adduser zabbix

2.Разрешаем зависимости.

# yum --enablerepo=base install openssl-devel gcc make --disablerepo=citrix -y

3.Загружаем и устанавливаем последнюю версию Zabbix.

# wget "http://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/2.2.4/zabbix-2.2.4.tar.gz"


# tar xvfz zabbix-2.2.4.tar.gz


# cd zabbix-2.2.4

# ./configure --enable-agent

# make install

Добавляем в автозагрузку.

# cp misc/init.d/fedora/core5/zabbix_agentd /etc/init.d/

# chmod +x /etc/init.d/zabbix_agentd

# chkconfig zabbix_agentd on

Настраиваем конфигурационный файл.

# nano /usr/local/etc/zabbix_agentd.conf

В нем в параметрах «Server» и «ServerActive» указываем свой zabbix сервер.

Правим файл iptables

 # nano /etc/sysconfig/iptables

и прописываем строку

-A RH-Firewall-1-INPUT -p tcp -m conntrack —ctstate NEW,ESTABLISHED -m tcp —dport 10050 -j ACCEPT

выше строки

-A RH-Firewall-1-INPUT -j REJECT —reject-with icmp-host-prohibited

делаем рестарт iptables

# /etc/init.d/iptables restart

Запускаем агент.

# /etc/init.d/zabbix_agentd start

Настройка доступа к отчетам.

# nano /etc/sudoers

И добавляем в конец файла:

zabbix ALL = NOPASSWD:/opt/xensource/bin/xe

Очищаем темп.

rm -rf /tmp/zabbix/



2018-10-01T12:31:43
Zabbix

Мониторинг GPU (и не только) с отправкой статистики в Telegram.

В один прекрасный день, отчасти познакомившись с различными статьями в интернете, например вот этой — Raspberry и Telegram: предпосылки создания умного дома и этой — Отправка состояния сервера через Telegram, а также благодаря просьбам нескольких знакомых, занимающихся майнингом на видеокартах, я задумался о реализации возможности отправки статистики состояния GPU (теоретически, это не обязательно именно статистика с GPU, а статистика чего угодно) в Telegram, в рамках периодического мониторинга. На тот момент, когда я заинтересовался этой проблемой общая задача стояла так, есть некий ПК с 6-ю видеокартами на борту. Необходимо периодически в какой-то удобной форме отправлять / отображать с него статистику по температурам и скорости вращения вентиляторов каждого из GPU в процентах. Конечно всегда можно пойти и другим путем, например, настроив на этом ПК тот же Open Hardware Monitor. В нем помимо всего есть также встроенный web-сервер со статистикой (т.е. ни Apache, ни другой web-сервер для отображения статистики через web поднимать не нужно, достаточно настроить Remote Web Server в Open Hardware Monitor), отображение информации при обращении к которому выглядит примерно так: Читать