Как установить и настроить zabbix на centos 7

Zabbix Agent

Install the repository configuration package. This package contains yum configuration files.

yum install -y http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
yum install zabbix-agent -y

grep -q '^Server=' /etc/zabbix/zabbix_agentd.conf && sed -i 's/^Server=.*/Server=localhost/' /etc/zabbix/zabbix_agentd.conf || echo 'Server=10.254.236.71' >> /etc/zabbix/zabbix_agentd.conf

grep -q '^ServerActive=' /etc/zabbix/zabbix_agentd.conf && sed -i 's/^ServerActive=.*/ServerActive=localhost/' /etc/zabbix/zabbix_agentd.conf || echo 'ServerActive=localhost' >> /etc/zabbix/zabbix_agentd.conf

grep -q '^Hostname=' /etc/zabbix/zabbix_agentd.conf && sed -i "s/^Hostname=.*/Hostname=`hostname`/" /etc/zabbix/zabbix_agentd.conf || echo "Hostname=`hostname`" >> /etc/zabbix/zabbix_agentd.conf


systemctl restart zabbix-agent
systemctl enable zabbix-agent

Установка zabbix agent

Установим теперь хотя бы один агент мониторинга, чтобы проверить работу системы. Устанавливать будем на этот же сервер. Делается это просто:

# apt install zabbix-agent

Для работы с сервером, который установлен локально на этой же машине, больше никаких настроек не надо делать. Если же вы будете устанавливать zabbix agent на удаленную машину, то в файле конфигурации агента /etc/zabbix/zabbix_agentd.conf нужно будет задать следующие параметры:

# mcedit /etc/zabbix/zabbix_agentd.conf
Server=10.1.4.81
ServerActive=10.1.4.81
Hostname=web-server # имя вашего узла мониторинга, которое будет указано на сервере zabbix

Запускаем агент и добавляем в автозагрузку:

# systemctl start zabbix-agent
# systemctl enable zabbix-agent

Проверяем лог файл.

# cat /var/log/zabbix/zabbix_agentd.log

21197:20150912:212555.935 no active checks on server : host  not monitored

У меня там следующая ошибка. Я знаю с чем она связана. На сервере по-умолчанию уже добавлен локальный host для мониторинга, но он отключен. Чтобы его включить, идем в раздел Configuration -> Hosts и активируем Zabbix server нажатием на Disabled, чтобы он стал Enabled.

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

# systemctl restart zabbix-agent

Для надежности, проверяем еще раз лог файл на наличие ошибок. Их быть не должно. Агент заработал и начал отправлять данные на сервер. Чтобы проверить поступление данных, надо подождать пару минут и идти в раздел Monitoring -> Latest data. Выбрать там наш единственный хост и нажать Apply.

Видно, что данные уже начали поступать.

Теперь попробуем остановить агент и проверить, придет ли уведомление на почту. Идем в консоль и выключаем агента:

# systemctl stop zabbix-agent

Ждем минимум 5 минут. Именно такой интервал указан по-умолчанию для срабатывания триггера на недоступность агента. После этого проверяем Dashboard, виджет Problems.

После возобновления работы агента на debian, вы еще раз получите уведомление о том, что он теперь доступен.

4.Принцип работы proxy-сервера

Любой запрос, который пользователь делает в Интернете через браузер своего компьютера, перехватывается прокси-сервером. Прокси-сервер считывает IP-адрес выходящего в сеть компьютера и перенаправляет его дальше по этапу, но используя уже свой IP-адрес, вместо полученного по внутренней сети. Получив в ответ из Интернета пакеты данных (допустим страницы сайта), прокси-сервер обрабатывает их и перенаправляет на IP-адрес пользователя, сделавшего данный запрос. 
Если компьютер находится за пределами защищенной сети, то все запросы (страницы сайтов, файлы и т.д.) происходят от компьютера пользователя. Механизм применения частных адресов по внутренней сети и подключение сети Интернет через прокси-сервер с официальным IP-адресом именуют трансляцией Network Address Translation.
Внутренняя сеть, чаще всего, работает используя протокол TCP/IP, где любому компьютеру присвоен уникальный адрес. Эти внутренние IP-адреса, зачастую, могут помочь взломщикам проникнуть в закрытые для неавторизованного доступа зоны сети. Избежать этого можно используя прокси-сервера, в этом случае информация и запросы пользователей, которые передаются по протоколу TCP/IP, не будут выдавать действительные IP-адреса владельцев компьютера.

Описание работы простых проверок (simple check)

Стал искать материал на эту тему и прочитал про simple check (простые проверки) в zabbix. Оказалось, это то, что нужно. Их можно использовать для безагентских проверок удаленных сервисов. При этом требуется минимум настроек и только на сервере. Можно создать шаблон и распространить на любое количество хостов.

Принцип работы простых проверок следующий. Вы создаете item, в нем указываете тип simple check, в качестве ключа выбираете net.tcp.service, указываете соответствующие параметры в скобках и все. Сервер сам начинает опрашивать указанный сервис и возвращать в зависимости от его доступности или 1. Устанавливать агент на хост не нужно. Мониторить можно любую сетевую службу, к которой есть доступ по tcp.

Возвращаемые значения net.tcp.service
сервис недоступен
1 сервис работает

Всего в простых проверках доступны 5 ключей. Подробнее о них читайте в документации. В данном случае меня будет интересовать только ключ net.tcp.service. В нем предопределены алгоритмы проверок следующих служб: ssh, ntp, ldap, smtp, ftp, http, pop, nntp, imap, https, telnet. Детали реализации проверки каждой службы описаны тут. Если вы мониторите службу, которая не входит в указанный выше список, то происходит просто проверка возможности подключения, без отправки и получения каких-то данных.

Настройка Zabbix proxy

Открываем файл конфигурации zabbix proxy для настройки:

# mcedit /etc/zabbix/zabbix_proxy.conf

Необходимо изменить несколько параметров, все остальное можно не трогать:

server=84.143.241.246
hostname=proxy01
DBName=/var/lib/sqlite/zabbix.db
server Адрес центрального сервера мониторинга
hostname Имя прокси сервера, которое мы будем использовать на основном сервере
DBName Путь к локальной базе данных

Добавляем proxy в автозагрузку и запускаем:

systemctl enable zabbix-proxy
systemctl start zabbix-proxy

Если сейчас посмотреть лог, то увидим там следующее:

# cat /var/log/zabbix/zabbix_proxy.log
2701:20160816:225839.865 cannot obtain configuration data from server at "84.143.241.246": proxy "proxy01" not found
2702:20160816:225839.865 cannot send heartbeat message to server at "84.143.241.246": proxy "proxy01" not found

В данном случае все в порядке, это не ошибка. Просто основной сервер еще ничего не знает о только что настроенном прокси. Нам нужно идти на сервер и добавлять свежеустановленный proxy. Заходим в web панель, идем в раздел Administration -> Proxies (Администрирование -> Прокси) и справа нажимаем на кнопку Create proxy (Создать прокси):

Заполняете необходимые поля. В данном случае обязательное только одно поле Proxy name.

Proxy name Имя прокси сервера, должно соответствовать параметру hostname в файле конфигурации прокси
Proxy mode Режим работы: active — прокси всегда сам обращается к основному серверу и отправляет данные, passive — команды на получение данных каждый раз инициирует основной сервер
Hosts Хосты, которые будут мониториться через этот прокси. Так как мы только добавляем прокси, вряд ли у нас есть хосты для него.
Description Произвольное описание сервера

После добавление proxy на основной сервер, можно перезапустить сам прокси сервер и посмотреть лог:

# systemctl restart zabbix-proxy
# cat /var/log/zabbix/zabbix_proxy.log
2871:20160816:231130.025 received configuration data from server at "84.143.241.246", datalen 2664

Все в порядке, прокси подключился к основному серверу и забрал от него данные. При этом на основном сервере изменился статус прокси:

В качестве теста запустим на самом прокси сервере zabbix agent и подключим его к основному серверу мониторинга через proxy. Для этого открываем конфиг агента и устанавливаем следующие параметры:

# mcedit /etc/zabbix/zabbix_agentd.conf
Server=192.168.56.10
ServerActive=192.168.56.10
Hostname=proxy01

192.168.56.10 — локальный ip адрес прокси сервера.

Сохраняем файл, агента пока не запускаем. Идем в веб интерфейс и добавляем новый хост.

Имя указываем такое же, как Hostname у агента, ip адрес — локальный адрес агента, Monitored by proxy выбираем в выпадающем списке нужный proxy сервер. Когда добавите их несколько, они все будут в этом списке. Не забудьте назначить какой-нибудь шаблон. Если этого не сделать, то можно долго ждать поступления данных и недоумевать, почему ничего не поступает, хотя на вид все в порядке и ошибок в логах нет. Я много раз с подобным сталкивался в своей практике.

После того, как добавите новый хост на основном сервере, возвращаемся на proxy и перезапускаем его, чтобы сразу же получить настройки с основного сервера. Это делать не обязательно, через некоторое время (не знаю точно какое, любопытно было бы узнать) прокси сам заберет конфигурацию. Но мы форсируем процесс:

# systemctl restart zabbix-proxy

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

# systemctl enable zabbix-agent
# systemctl start zabbix-agent

Проверяем лог агента:

# cat /var/log/zabbix/zabbix_agentd.log

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

Подготовка сервера к установке

Начинаем традиционно с подготовки рабочего окружения. Первым делом вам необходимо установить и настроить сервер CentOS 7. Дальше нам нужно настроить web сервер для работы интерфейса управления. У меня есть подробный материал на тему настройки web сервера на centos 7, можете ознакомиться с ним и настроить внимательно и осмысленно. Далее я буду просто приводить команды установки, без пояснений. В этой статье я буду делать стандартную установку Zabbix на традиционный веб сервер apache + php. Если вы хотите, чтобы ваш заббикс работал на веб сервере nginx + php-fpm, читайте отдельный материал по установке zabbix на nginx и php-fpm.

# yum -y update

Отключаем SElinux. Любителям с ним повозиться, дальше можно не читать. Не люблю споров на тему SElinux. Каждый сам решает для себя в конкретной ситуации, нужен он ему на сервере или нет. Я не вижу смысла с ним заморачиваться на сервере мониторинга в локальной сети.

# mcedit /etc/sysconfig/selinux

Редактируем строку:

SELINUX=disabled

и перезагружаемся.

Теперь установим mariadb. Ее необходимо ставить отдельно, почему-то она не устанавливается как необходимая зависимость при установке самого сервере zabbix.

На всякий случай упомяну для тех, кто не знает, что такое mariadb и почему мы ставим ее, а не mysql. Mariadb — ответвление mysql. Они полностью совместимы, возможен в любой момент переход с одной субд на другую и обратно. Есть информация, что mariadb пошустрее работает mysql и люди потихоньку перебираются на нее. Разработчики CentOS начиная с версии 7 предлагают ее как сервер баз данных по-умолчанию.

# yum install -y mariadb mariadb-server

Запускаем mariadb и добавляем ее в автозагрузку:

# systemctl start mariadb
# systemctl enable mariadb.service

Отрабатываем скрипт первоначальной настройки mysql:

# /usr/bin/mysql_secure_installation

Все подготовительные работы выполнены, двигаемся дальше.

Шаг 1. Установите и настройте httpd-сервер Apache

Установите веб-сервер Apache на сервер CentOS 7, выполнив команду:

После установки Apache настройте базовую безопасность, разрешив только Prod ServerTokens.. Добавьте в конец файла следующую строку:

Директива  настраивает то, что возвращается как HTTP-ответ сервера. Допустимые варианты:  Full | OS | Minimal | Minor | Major | Prod.

Установите ServerName:

Настройте администратора сервера на получение электронной почты в случае возникновения проблем.

После внесения изменений перезапустите веб-службу apache:

Если у вас установлен и включен межсетевой экран firewalld, разрешите доступ к портам 443 и 80 :

Настройка Zabbix Frontend

Итак, продолжаем установку Zabbix 5. На следующей странице установщика вы увидите список требований к веб серверу. У вас должно быть все в статусе ОК, так как подходящая конфигурация установлена вместе с пакетом.

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

На следующем этапе идут Zabbix server details. Там можно ничего не указывать, а оставить дефолтные параметры. Потом будет страница с проверкой введенных данных. Если все в порядке, то заканчивайте установку. В конце увидите сообщение: Congratulations! You have successfully installed Zabbix frontend.

После нажатия на Finish увидите окно авторизации Zabbix сервера.

Стандартная учетная запись для входа в web интерфейс zabbix следующая:

  • Пользователь Admin
  • Пароль zabbix

После логина увидите стандартный dashboard.

На этом установка бесплатного сервера мониторинга zabbix окончена. Можно приступать к настройке.

Установка CentOS 8

Создания USB носителя для установки

Существует множество программ для записи iso образа на устройство. Например, у меня два варианта для создания носителя для установки:

  1. Rufus — использую эту программа для создание загрузочных USB-дисков в системе Windows;
  2. ROSA ImageWriter — использую эту программу для любой системы Linux.

Варианты установки

Рассмотрим два самых популярных варианта установки СentOS 8.

Образы iso CentOS 8

  1. CentOS-8-x86_64-1905-dvd1.iso — полный образ 7G;
  2. CentOS-8-x86_64-1905-boot.iso  — загрузочный образ 550M.

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

Больше нет минимального образа, но радует что есть загрузочный при установке с которого надо только руками внести требуемый репозиторий и выбрать нужные параметры установки.

Смотрим список всех возможных репозиториев и выбираем необходимый который будем использовать при установке с загрузочного образа.

Указывать надо путь к той папке, где лежит каталог repodata. Например, mirror.yandex.ru/centos/8/BaseOS/x86_64/os/.

В выборе программ выбираем базовое окружение «Минимальная установка» а в дополнительных параметрах «Гостевые агенты» и «Стандарт».

Шаблоны

Шаблоны используются как правило для установки на VDS и предоставляются компаниями предоставляющие такие услуги. Удобно, но тем не менее я пару раз попадал в дурацкие ситуации.

Вот моменты почему я советую использовать установку на VDS систем с iso образа:

  • Разбивка диска порой не учитывает конфигурацию тарифа или требований вашей системы — например, на одном хостинге при 2 G оперативной памяти был создал SWAP раздел в 512 М в результате пришлось переустанавливать систему дабы не терять место на и так небольшом диске;
  • Локализация как правило Английская — мне приятней работать на своем родном языке хотя и на английском если надо всё настрою;
  • Присутствие в шаблоне каких-то изменений отличающихся от стандартных минимальных параметров установки — порой не понимаешь откуда взялись какие то настройки которых раньше не видел. Кроме того, можно потратить кучу времени не понимая почему не работает то что всегда работало как часы. В итоге выясняется что в шаблоне установки нет пакета который всегда ставился в стандартном минимальном образе.

Все компании предоставляющие услуги VDS могут предоставить возможность установки системы с ISO образа системы. При установке надо правильно указать сетевые параметры исходя из предоставленных сетевых параметров настроек выбранного тарифа!

Разбивка диска для установки

Вариантов разбивки диска для CentOS 8 может быть множество исходя из пожеланий и предпочтений. Например, мне нравиться придерживаться таких параметров:

  • Размер диска под систему Linux 50 G — этого мне хватает с запасом;
  • Создаю раздел boot размером 1 G — так я гарантирую что при заполнении диска система загрузится однозначно;
  • Создаю SWAP — согласно требованиям системы.

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

SWAP

Тема организации SWAP на сервере очень важная и поэтому я описал все основные моменты использования в статье SWAP для Linux

Дополнительные материалы по Zabbix

Онлайн курс по Linux

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, рекомендую познакомиться с онлайн-курсом «Administrator Linux. Professional» в OTUS. Курс не для новичков, для поступления нужны базовые знания по сетям и установке Linux на виртуалку. Обучение длится 5 месяцев, после чего успешные выпускники курса смогут пройти собеседования у партнеров.

Что даст вам этот курс:

  • Знание архитектуры Linux.
  • Освоение современных методов и инструментов анализа и обработки данных.
  • Умение подбирать конфигурацию под необходимые задачи, управлять процессами и обеспечивать безопасность системы.
  • Владение основными рабочими инструментами системного администратора.
  • Понимание особенностей развертывания, настройки и обслуживания сетей, построенных на базе Linux.
  • Способность быстро решать возникающие проблемы и обеспечивать стабильную и бесперебойную работу системы.

Проверьте себя на вступительном тесте и смотрите подробнее программу по .

Рекомендую полезные материалы по Zabbix:
Настройки системы
  • Установка 4.0
  • Обновление 3.0 -> 3.2
  • Обновление 3.4 -> 4.0
  • Установка Zabbix Proxy
  • Работа на NGINX

Видео и подробное описание установки и настройки Zabbix 4.0, а также установка агентов на linux и windows и подключение их к мониторингу.

Подробное описание обновления системы мониторинга zabbix версии 3.4 до новой версии 4.0.

Пошаговая процедура обновления сервера мониторинга zabbix 2.4 до 3.0. Подробное описание каждого шага с пояснениями и рекомендациями.

Подробное описание установки и настройки zabbix proxy для организации распределенной системы мониторинга. Все показано на примерах.

Подробное описание установки системы мониторинга Zabbix на веб сервер на базе nginx + php-fpm.

Мониторинг служб и сервисов
  • Температура процессора
  • Nginx и php-fpm
  • Mysql репликация
  • Службы Linux
  • Рейд mdadm
  • Транки Asterisk
  • Synology

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

Настройка полноценного мониторинга web сервера nginx и php-fpm в zabbix с помощью скриптов и пользовательских параметров.

Мониторинг репликации mysql с помощью Zabbix. Подробный разбор методики и тестирование работы.

Описание настройки мониторинга tcp служб с помощью zabbix и его инструмента простых проверок (simple checks)

Настройка мониторинга рейда mdadm с помощью zabbix. Подробное пояснение принципа работы и пошаговая инструкция.

Подробное описание мониторинга регистраций транков (trunk) в asterisk с помощью сервера мониторинга zabbix.

Подробная инструкция со скриншотами по настройке мониторинга по snmp дискового хранилища synology с помощью сервера мониторинга zabbix.

Мониторинг различных значений
  • Мониторинг сайта
  • Мониторинг бэкапов
  • Размер бэкапа
  • Делегирование домена
  • Значения из текстового файла
  • Мониторинг логов

Настройка мониторинга web сайта в zabbix. Параметры для наблюдения — доступность сайта, время отклика, скорость доступа к сайту.

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

Подробное описание настройки мониторинга размера бэкапов в Zabbix с помощью внешних скриптов.

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

Пример распознавания и мониторинга за изменением значений в обычных текстовых файлах с помощью zabbix.

Описание мониторинга лог файлов в zabbix на примере анализа лога программы apcupsd. Отправка оповещений по событиям из лога.

Заключение

Завершили установку и настройку системы мониторинга zabbix 3.2 с практическими примерами добавления хостов мониторинга в виде linux и windows агентов. Тема настройки мониторинга zabbix обширна и охватить ее в одном материале невозможно. Для расширения функционала и добавления различных элементов мониторинга используйте мои статьи из раздела zabbix, ссылки на некоторые из них я привел в начале статьи. Все, что написано ранее, относится к версии 2.4 и 3.0, но оно не потеряло актуальность, все приемы, скрипты, шаблоны, все работает и соответствует текущей версии, можно смело пользоваться.

Заключение

Завершили установку и настройку системы мониторинга zabbix 3.2 с практическими примерами добавления хостов мониторинга в виде linux и windows агентов. Тема настройки мониторинга zabbix обширна и охватить ее в одном материале невозможно. Для расширения функционала и добавления различных элементов мониторинга используйте мои статьи из раздела zabbix, ссылки на некоторые из них я привел в начале статьи. Все, что написано ранее, относится к версии 2.4 и 3.0, но оно не потеряло актуальность, все приемы, скрипты, шаблоны, все работает и соответствует текущей версии, можно смело пользоваться.

Заключение

Я постарался рассказать подробно и понятно о полной настройке ELK Stack. Информацию в основном почерпнул в официальной документации. Мне не попалось более ли менее подробных статей ни в рунете, ни в буржунете, хотя искал я основательно. Вроде бы такой популярный и эффективный инструмент, но статей больше чем просто дефолтная установка я почти не видел. Буквально одна на хабре попалась с какой-то более ли менее кастомизацией.

Какие-то проверенные моменты я не стал описывать в статье, так как посчитал их неудобными и не стал использовать сам. Например, если отказаться от logstash и отправлять данные с beats напрямую в elasticsearch, то на первый взгляд все становится проще. Штатные модули beats сами парсят вывод, устанавливают готовые визуализации и дашборды в Kibana. Вам остается только зайти и любоваться красотой Но на деле все выходит не так красиво, как хотелось бы. Кастомизация конфигурации усложняется. Изменение полей в логах приводит к более сложным настройкам по вводу этих изменений в систему. Все настройки поступающей информации переносятся на каждый beats, изменяются в конфигах отдельных агентов. Это неудобно.

В то же время, при использовании logstash, вы просто отправляете данные со всех beats на него и уже в одном месте всем управляете, распределяете индексы, меняете поля и т.д. Все настройки перемещаются в одно место. Это более удобный подход. Плюс, при большой нагрузке вы можете вынести logstash на отдельную машину.

Я не рассмотрел в своей статье такие моменты как создание визуализаций и дашбордов в Кибана, так как материал уже и так получился объемный. Я устал писать эту статью Смотрите остальные мои материалы по данной теме. Там есть примеры.

Так же я не рассмотрел такой момент. Logstash может принимать данные напрямую через syslog. Вы можете, к примеру, в nginx настроить отправку логов в syslog, минуя файлы и beats. Это может быть более удобно, чем описанная мной схема. Особенно это актуально для сбора логов с различных сетевых устройств, на которые невозможно поставить агента, например mikrotik. Syslog поток так же можно парсить на ходу с помощью grok. Отдельно надо рассмотреть автоочистку старых индексов в elasticsearch.

Подводя итог скажу, что с этой системой хранения логов нужно очень вдумчиво и внимательно разбираться. С наскока ее не осилить. Чтобы было удобно пользоваться, нужно много всего настроить. Я описал только немного кастомизированный сбор данных, их визуализация — отдельный разговор. Сам я постоянно использую и изучаю систему, поэтому буду рад любым советам, замечаниям, интересным ссылкам и всему, что поможет освоить тему.

Все статьи раздела elk stack — https://serveradmin.ru/category/elk-stack/.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Мой редактор ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: