вторник, 26 ноября 2013 г.

Развёртывание системы мониторинга Zabbix (CentOS 6.4) / Deploying monitoring system Zabbix (CentOS 6.4)



Zabbix - свободная система мониторинга и отслеживания статусов разнообразных сервисов компьютерной сети, серверов и сетевого оборудования, написанная Алексеем ВладышевымОглавление. Краткая информация и возможности - http://ru.wikipedia.org/wiki/Zabbix

Оглавление:
1. Установка CentOS 6.4
серверной части на Ubuntu Server 12.04.2 LTS
2. Подключение шаблонов для Windows/Linux серверов
3. Подключение коммутаторов Cisco и создание шаблонов
4. Мониторинг web ресурсов
5. Мониторинг Windows services
6. Создание тригеров
7. Настройка отправки отчетов на email

1. Установка CentOS 6.4
1.1 Ставим систему в составе Minimal
1.2 На этапе установки желательно прописать настройки сети (дабы потом это не делать через терминал):


1.3 После установки заходим в систему под root и поднимаем сеть:
               ifup eth0

1.4 Делаем так, чтобы при следующем запуске системы сетевой интерфейс был включен:
               vi /etc/sysconfig/network-scripts/ifcfg-eth0
      Выставляем параметр ONBOOT=YES

1.4 Устанавливаем обновление компонентов системы:
       yum -y update

1.5. Устанавливаем необходимые компоненты:
        yum -y install wget

Перед установкой Zabbix, зайдем под администратором и обновим Ubuntu
$ sudo su
$ sudo apt-get update && sudo apt-get upgrade

Загружаем последний стабильный пакет Zabbix - http://www.zabbix.com/download.php
$ wget http://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/2.0.5/zabbix-2.0.5.tar.gz
Распаковываем его
$ tar zxvf zabbix-2.0.5.tar.gz

Создайте аккаунт пользователя
$ groupadd zabbix
$ useradd -g zabbix zabbix

Создайте базу данных для Zabbix
$ mysql -u<username> -p<password>
$ mysql> create database zabbix character set utf8;
$ mysql> quit;

Создаем структуру таблиц для базы Zabbix
$ mysql -u<username> -p<password> zabbix < zabbix-2.0.5/ database/mysql/schema.sql
$ mysql -u<username> -p<password> zabbix < zabbix-2.0.5/ database/mysql/images.sql
$ mysql -u<username> -p<password> zabbix < zabbix-2.0.5/ database/mysql/data.sql

Ставим необходимые пакеты
$ apt-get install libmysqlclient-dev
$ apt-get install libcurl4-openssl-dev
$ apt-get install snmpd
$ apt-get install libsnmp-dev

Переходим в каталог распакованного zabbix, настраиваем конфигурацию и устанавливаем
$ cd zabbix-2.0.5
$ ./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl
$ make install

Настраиваем конфигурационные файлы
$ nano /usr/local/etc/zabbix_agentd.conf
Timeout=30

$ nano /usr/local/etc/zabbix_server.conf
DBName=zabbix
DBUser=root
DBPassword=******
StartPingers=10
StartDiscoverers=10
Timeout=30

Добавляем службы Zabbix в автозагрузку
$ cp misc/init.d/ubuntu/* /etc/init/
$ cp misc/init.d/debian/* /etc/init.d/

Запускаем службы
$ zabbix_server
$ zabbix_agentd

1.2. Установка Web интерфейса
Создаем отдельный каталог для поддержания порядка
$ mkdir /var/www/zabbix

Переходим в каталог web интерфейса и копируем на виртуальный сервер
$ cd frontends/php
$ cp -a . /var/www/zabbix

Использовать любой другой язык отличный от English
$ cd /var/www/zabbix/locale
$ ./make_mo.sh

Настраиваем PHP под требования Zabbix
$ nano /etc/php5/apache2/php.ini
memory_limit = 128M
post_max_size = 16M
max_execution_time = 300
max_input_time = 300
date.timezone = Europe/Moscow

Перезагружаем MySQL и Apache
$ /etc/init.d/mysql restart && /etc/init.d/apache2 restart

Переходим на наш сервер
http://localhost/zabbix

Если Вы хотите напрямую заходить в Zabbix по http://localhost/ то делаем следующее
$ nano /etc/apache2/sites-enabled/000-default
Меняем строку
DocumentRoot /var/www
на
DocumentRoot /var/www/zabbix
Сохраняем и перезагружаем Apache

1.3. Установка агентов
1.3.1. CentOS 6
Перед установкой Zabbix, зайдем под администратором и обновим CentOS
$ su
$ yum update

Загружаем последний стабильный пакет Zabbix - http://www.zabbix.com/download.php
$ wget http://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/2.0.5/zabbix-2.0.5.tar.gz

Распаковываем его
$ tar zxvf zabbix-2.0.5.tar.gz

Создайте аккаунт пользователя
$ groupadd zabbix
$ useradd -g zabbix zabbix

Ставим необходимые пакеты
$ yum install gcc
$ yum install make

Переходим в каталог распакованного zabbix, настраиваем конфигурацию и устанавливаем
$ cd zabbix-2.0.5
$ ./configure --enable-agent
$ make install

Настраиваем конфигурационные файлы
$ nano /usr/local/etc/zabbix_agentd.conf
Server=IP_Zabbix_Server
ServerActive= IP_Zabbix_Server

Добавляем службы Zabbix в автозагрузку
$ cp misc/init.d/fedora/core5/zabbix_agentd /etc/init.d/
$ chkconfig --level 345 zabbix_agentd on

Добавляем правило в iptables
$ nano /etc/sysconfig/iptables
-A INPUT -p tcp --dport 10050 -j ACCEPT
-A INPUT -p udp --dport 10050 -j ACCEPT

Запускаем службу
$ /etc/init.d/zabbix_agentd start

1.3.2. Windows 2008R2

Распаковываем архив zabbix-2.0.5.tar.gz
В каталоге bin находятся службы Windows как для x86 так и для x64
Для Windows 2008 R2 копируем zabbix-2.0.5\bin\win64\zabbix_agentd.exe на диск C:\
Копируем конфигурационный файл из zabbix-2.0.5\conf\zabbix_agentd.win.conf на диск C:\
Переименуем zabbix_agentd.win.conf в zabbix_agentd.conf
Редактируем conf. Меняем Server=127.0.0.1 на IP_Zabbix_Server

Добавляем правило в Windows Firewall
  • Inbound Rules → New Rule…
  • Выбираем Port
  • Выбираем TCP и Specific local ports: 10050
  • Allow the connection
  • Domain
  • В Name указываем - Zabbix agent
2. Подключение шаблонов для Windows/Linux серверов
В Zabbix уже имеются готовые шаблоны для ОС Windows/Linux. Остается их только подключить.
2.1. Создаем Host group для более удобного наблюдения за серверами (ConfigurationHost groupsCreate host group)
В Group name пишем для Windows - Windows servers, для Linux - Linux servers.
2.2. Заносим шаблоны в только что созданные группы (ConfigurationTemplates)
Выбираем шаблон Template OS Windows или Template OS Linux.
В In groups добавляем ране созданные группы Windows servers или Linux servers.


  
2.3. Добавляем Host или Сервер в Zabbix (Configuration → Hosts → Create hosts)
Вкладка Host - Указываем Host name и IP address, выбираем нужную Group.



Вкладка TemplatesAdd и выбираем нужный шаблон


3. Подключение коммутаторов Cisco и создание шаблонов
3.1. Включение snmp на коммутаторе
Подключаемся к коммутатору (ssh/telnet)
# configure terminal
# snmp-server community public RO
# snmp-server host IP_Zabbix_Server public

3.2. Создание шаблона
Шаблон можно сгенерировать на http://ross.vc/cisco_tpl/
Но он может подойти, а может нет.
Заходим по SSH на Zabbix и проверяем наш коммутатор на название портов.
snmpwalk -v 2c -c public IP_Cisco 1.3.6.1.2.1.2.2.1.2

Примечание: Для старых устройств используйте snmp 1 версии. Например, для Cisco PIX 525, команда будет выглядеть так - snmpwalk -v 1 -c public IP_Cisco_PIX 1.3.6.1.2.1.2.2.1.2

В моём случае вывелось



Как видно номер первого порта
FastEthernet1 = 1
TenGigabitEthernet1/1 = 3
etc.

Шаблон, который сгенерирован на сайте ross.vc имеет порядок портов от 10000 (FastEthernet), 10101 (GigabitEthernet), 10201 (TenGigabitEthernet). Нам просто необходимо будет поменять названия портов с 100000 на 2 и т.д.

Примеры моих шаблонов (24 и 48 портовые свичи + CISCO 4500):
http://rusfolder.com/36183931

3.3. Добавление коммутаторов Cisco
3.3.1. Создаем Host group для более удобного наблюдения за коммутаторами (ConfigurationHost groupsCreate host group)
В Group name пишем Cisco switch.
3.3.2. Импортируем шаблон в созданную группу Cisco switch (Configuration → Templates → Import)
3.3.3. После успешного импорта, выбираем наш шаблон и добавляем в In groups группу Cisco switch.
3.4. Добавляем Host или Коммутатор в Zabbix (ConfigurationHostsCreate hosts) Вкладка Host - Указываем Host name и IP address, выбираем нужную Group.



Вкладка TemplatesAdd и выбираем нужный шаблон


4. Мониторинг web ресурсов
4.1.1. Создаем Host group для более удобного наблюдения за сайтами (ConfigurationHost groupsCreate host group)
В Group name пишем Web monitoring.
4.1.2.        Добавляем Host или Сайт в Zabbix (Configuration → Hosts → Create hosts) Вкладка Host - Указываем Host name и DNS name, выбираем нужную Group.
4.1.3.        Добавляем элементы данных в наш сайт (Configuration → Hosts → Applications → Create application)
В Name пишем имя сайта – www.site.ru
4.1.4.        Создадим сценарий для сайта (ConfigurationWebCreate scenario)
В Application выбираем наш сайт
В Name – site
Update time – 60
Agent – Internet Explorer 9.0

В вкладке Step пропишем, что проверять.


Required status codes – 200 (Означает, что сайт доступен)
4.1.5. Возвращаемся к нашему хосту и сделаем тригер (ConfigurationHostsTriggers)
Выбираем Create trigger
В Name – Site www.site.ru
Severity – High

В Expression добавим:
Item – Response code for step - web.test.rspcode[]
Function – Last (most recent) T value is NOT N
N – 200

4.1.6. Добавляем Host или Коммутатор в Zabbix (Configuration → Hosts → Create hosts) Вкладка Host - Указываем Host name и IP address, выбираем нужную Group.

5. Мониторинг Windows services
Для мониторинга служб на понадобятся сторонние программы (сылка). Распакуем их C:\Program Files\Zabbix\
5.1. В конфигурационном файле zabbix_agentd.conf на машине с ОС Windows нужно добавить в самом конце документа эту строку - UserParameter=windows.services,"C:\Program Files\Zabbix\services.exe"
И включить параметр EnableRemoteCommands=1

Для  проверки работоспособности используем команду:
C:\zabbix_agentd.exe -c "C:\zabbix_agentd.conf" -t "system.run[C:\Program Files\Zabbix\services.exe]"

5.2. В Zabbix импортируем шаблон, и подключаем его к нужной машине (как в п. 2.3.). При отключении или отключении службы, будет срабатывать триггер.

6. Создание триггеров
Создадим триггер на примере пинга какого-нибудь сервера.
Для начала нужно установить пакет fping
apt-get install fping

И дать права
# chown root:zabbix /usr/bin/fping
# chmod 710 /usr/bin/fping
# chmod ug+s /usr/bin/fping

6.1.1. Создаем Host group для более удобного наблюдения за пингом (Configuration → Host groups → Create host group)
В Group name пишем Ping monitoring.
6.1.2. Создаем шаблон в Zabbix (Configuration → Templates → Create template)
Назовём его Ping_VIP

В Items добавим три значения loss, ping и sec со следующими параметрами




Создадим триггер, перейдем в Triggers → Create trigger


Построим графики, перейдем в GraphsCreate graph и создадим три графика loss, ping и sec



6.1.3. Добавляем Host или Сайт в Zabbix (Configuration → Hosts → Create hosts)
6.1.4. Вкладка Host - Указываем Host name и IP address, выбираем нужную Group.
6.1.5. Вкладка Templates, добавляем наш шаблон Ping monitoring
6.1.6. Переходим в Actions и создаём действие (Configuration → Actions → Create action)


Создаём условия во вкладке Conditions


Добавим пользователей, кому отсылать уведомления (Вкладка Operations)

7. Настройка отправки отчетов на email
Administration →  Media types → Email

Administration →  Users → Admin → Media (Добавляем почтовые ящики)
Configuration → Actions → Triggers → Enable

Если необходима отправка SMS на мобильный, то можно зарегистрироваться на площадке www.smstraffic.ru и подключить к мобильному номеру почтовый ящик вида 79008007060@site.smsmail.ru

7. Ошибки возникающие в процессе работы


Zabbix proxy poller processes more than 75% busy
# nano /usr/local/etc/zabbix_server.conf
StartPollers=20

Zabbix icmp pinger processes more than 75% busy
# nano /usr/local/etc/zabbix_server.conf
StartPingers=10
StartDiscoverers=10

Zabbix unreachable poller processes more than 75% busy
# nano /usr/local/etc/zabbix_server.conf
StartPollersUnreachable=10

Это оптимальные параметры под мою систему (Hosts = 150)

Литература:

Комментариев нет:

Отправить комментарий