Zabbix — это известная старая система мониторинга, которая может проводить унифицированный мониторинг различных целевых носителей, таких как оборудование, операционные системы, базы данных и сети. Она также объединяет множество функций, таких как пользовательский интерфейс, отображение мониторинга, сигналы тревоги и обнаружение сервисов. и может быть очень эффективным осуществлять мониторинг.
Сам Zabbi широко используется, но поскольку продукт включает в себя множество компонентов, процесс установки часто бывает хлопотным и требует много времени для развертывания и отладки. В связи с этим в этой статье будет показано, как быстро создать последнюю версию платформы мониторинга zabbix на основе докер-контейнеров, чтобы решить все болевые точки при установке и развертывании.
01
—
1. zabbix-server
Серверная часть zabbix отвечает за получение данных мониторинга, отправленных агентом, и обеспечивает все основные функции zabbix.
2. database
База данных, используемая для хранения данных мониторинга и информации о конфигурации. В настоящее время широко используются две базы данных: mysql и postgresql.
3. zabbix-web
Сторона пользовательского интерфейса zabbix предоставляет такие функции, как консоль управления и дисплей мониторинга.
4. zabbix-java-gateway
Используется для мониторинга состояния JVM Java-программ. Сам Zabbix не может напрямую получать индикаторы мониторинга от JVM, поэтому для достижения этой цели необходимо использовать этот шлюз.
5. zabbbix-agent
Агент zabbix развертывается на целевом хосте для сбора данных мониторинга хоста и предоставления их на сервер zabbix.
02
—
1. Настройте официальный источник yum.
$ sudo yum install -y yum-utils
$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
2. Установите Докер
$ sudo yum install docker-ce docker-ce-cli containerd.io
3. Запустите Докер
$ sudo systemctl start docker
4. Проверьте номер версии Docker, чтобы убедиться, что он установлен правильно.
$ docker version
03
—
Zabbix поддерживает две базы данных: mysql/postgresql. В этом примере используется версия zabbix, поддерживающая mysql.
1. Установите базу данных
Загрузите образ. Для версии Zabbix 6.x требуется MySQL 8.0.
$ docker pull mysql:8.0
Создайте том хранения для хранения данных MySQL.
$ docker volume create -d local mysql_data #Хранение данных MySQL
$ docker volume create -d local mysql_logs #Сохраняем журнал MySQL
$ docker volume create -d local mysql_conf #Файл конфигурации хранилища MySQL
Примечание. Путь к расположению тома хранилища по умолчанию: /var/lib/docker/volume/${имя_тома}. Знания о рулоне хранилища,Друзья, кто не уверен, могут прочитать эту статью«Практика одиннадцатой практики Docker-контейнеров: хранение данных»。
Запустить контейнер
$ docker run --name mysql-server -t \
-v mysql_data:/var/lib/mysql \
-v mysql_logs:/var/log/mysql \
-v mysql_conf:/etc/mysql \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix_pwd" \
-e MYSQL_ROOT_PASSWORD="123456" \
--restart=unless-stopped \
-d mysql:8.0 \
--character-set-server=utf8 --collation-server=utf8_bin \
--default-authentication-plugin=mysql_native_password
2. Установите zabbix-java-шлюз.
Скачать изображение
$ docker pull zabbix/zabbix-java-gateway:alpine-6.2-latest
Запустить контейнер
$ docker run --name zabbix-java-gateway -t \
--restart=unless-stopped \
-d zabbix/zabbix-java-gateway:alpine-6.2-latest
3. Установите zabbix-сервер
Скачать изображение
$ docker pull zabbix/zabbix-server-mysql:6.2-alpine-latest
Создайте том хранилища для хранения файлов конфигурации Zabbix.
$ docker volume create -d local zabbix_server
Запустите контейнер сервера и откройте порт 10051/TCP для получения данных мониторинга. Добавьте параметр --link, чтобы реализовать взаимную связь между контейнерами MySQL и Java-шлюза.
$ docker run --name zabbix-server-mysql -t \
-v zabbix_server:/etc/zabbix \
-e DB_SERVER_HOST="mysql-server" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix_pwd" \
-e MYSQL_ROOT_PASSWORD="123456" \
-e ZBX_JAVAGATEWAY="zabbix-java-gateway" \
--link mysql-server:mysql \
--link zabbix-java-gateway:zabbix-java-gateway \
--restart=unless-stopped \
-p 10051:10051 \
-d zabbix/zabbix-server-mysql:alpine-6.2-latest
Примечание. Этот метод подходит для развертывания всех контейнеров на одном хосте. Если они развертываются отдельно, соответствующие порты необходимо открыть на предыдущих шагах и подключить через локальную сеть.
4. Установите веб-интерфейс Zabbix.
Скачать изображение
$ docker pull zabbix/zabbix-web-nginx-mysql:alpine-6.2-latest
Запустить веб-контейнер
$ docker run --name zabbix-web-nginx-mysql -t \
-e PHP_TZ="Asia/Shanghai" \
-e ZBX_SERVER_HOST="zabbix-server-mysql" \
-e DB_SERVER_HOST="mysql-server" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix_pwd" \
-e MYSQL_ROOT_PASSWORD="123456" \
--link mysql-server:mysql \
--link zabbix-server-mysql:zabbix-server \
-p 80:8080 \
--restart unless-stopped \
-d zabbix/zabbix-web-nginx-mysql:alpine-6.2-latest
5. Войдите в zabbix
После завершения развертывания откройте браузер и получите доступ к адресу хоста для доступа к zabbix.
Вход в учетную запись: Администратор
Пароль: Заббикс
После входа в систему отображается интерфейс и развертывание завершено.
04
—
Развертывание агента Zabbix относительно простое. Вы можете использовать docker или установить его с помощью Yum, бинарных пакетов и т. д. Здесь мы демонстрируем метод установки на основе docker.
Скачать изображение
$ docker pull zabbix/zabbix-agent:alpine-6.2-latest
Создайте том хранилища для хранения файлов конфигурации агента.
$ docker volume create -d local zabbix_agent
Запустите контейнер агента
$ docker run --name zabbix-agent -t \
-v zabbix_agent:/etc/zabbix \
-e ZBX_HOSTNAME="host-01" \
-e ZBX_SERVER_HOST="192.168.214.112" \
-e ZBX_SERVER_PORT=10051 \
-p 10050:10050 \
--restart=unless-stopped \
--privileged \
-d zabbix/zabbix-agent:alpine-6.2-latest
Примечание. Если агент мониторинга развернут на хосте сервера zabbix, ZBX_SERVER_HOST необходимо изменить на IP-адрес контейнера сервера zabbix вместо IP-адреса хоста.
05
—
После того, как agnt установлен на целевом хосте, соответствующий мониторинг хоста можно настроить на сервере zabbix.
1. Нажмите «Создать хост», чтобы создать новую конфигурацию хоста.
2. После завершения настройки подождите некоторое время, чтобы цель мониторинга вступила в силу.
3. Проверьте данные мониторинга и убедитесь, что они получены нормально.
Подведите итог:
По сравнению с традиционными методами развертывания контейнерная установка, несомненно, является более удобным и быстрым выбором. Обучение использованию контейнеров для развертывания — очень полезный навык. Это помогает нам быстро построить необходимое системное окружение, а также освобождает время технического персонала.