Download PDF
Download page Zabbix.
Zabbix
Zabbix — это система мониторинга с открытым исходным кодом. С помощью Zabbix вы можете настроить мониторинг сервера платформы и серверов-локаций.
Основные компоненты Zabbix:
- сервер — компонент для управления сетевыми сервисами, хранения данных мониторинга, оповещения администратора о проблемах с оборудованием;
- агент — программное обеспечение, устанавливаемое на платформу и серверы-локации. Агент собирает данные мониторинга и передаёт на сервер.
Подробнее о Zabbix см. в официальной документации.
Установка компонентов Zabbix
Сервер
Для установки используйте отдельный физический или виртуальный сервер. Если вы используете платформу VMmanager, вы можете создать виртуальную машину с сервером Zabbix по инструкциям из документации к платформе.
Обратите внимание!
Для обеспечения стабильной работы DCImanager 6 не рекомендуем устанавливать сервер Zabbix на одном сервере с платформой или локацией.
Системные требования к серверу зависят от количества устройств, для которых нужно проводить мониторинг.
Подробную информацию об установке и системных требованиях см. в официальной документации Zabbix.
Агент
Рекомендуем установить агенты Zabbix с помощью Ansible:
- Установите Ansible по инструкциям из официальной документации.
Создайте Ansible-script zabbix_agent.yml:
--- - name: Install Zabbix agent 2 hosts: all debugger: on_failed tasks: - name: Install zabbix-release CentOS 8 yum: name: https://repo.zabbix.com/zabbix/5.4/rhel/8/x86_64/zabbix-release-5.4-1.el8.noarch.rpm state: present when: ansible_os_family == "RedHat" and ansible_distribution_major_version == "8" - name: Install zabbix-release CentOS 7 yum: name: https://repo.zabbix.com/zabbix/5.4/rhel/7/x86_64/zabbix-release-5.4-1.el7.noarch.rpm state: present when: ansible_os_family == "RedHat" and ansible_distribution_major_version == "7" - name: Install zabbix release package apt: deb: https://repo.zabbix.com/zabbix/5.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.4-1+ubuntu20.04_all.deb when: ansible_distribution == 'Ubuntu' - name: Install zabbix-agent2 package package: name: zabbix-agent2 state: present - name: Change Server IP lineinfile: path: /etc/zabbix/zabbix_agent2.conf regexp: 'Server=127.0.0.1' line: "Server=127.0.0.1,X.X.X.X" - name: Change Active Server IP lineinfile: path: /etc/zabbix/zabbix_agent2.conf regexp: 'ServerActive=127.0.0.1' line: "ServerActive=127.0.0.1,X.X.X.X" - name: Stop zabbix-agent2 service: name: zabbix-agent2 state: stopped enabled: no ignore_errors: yes - name: Start zabbix-agent2 service: name: zabbix-agent2 state: started enabled: yes
YML- Замените выражения "X.X.X.X" в файле zabbix_agent.yml на IP-адрес сервера Zabbix.
Добавьте в файл /etc/ansible/hosts IP-адреса сервера с платформой и серверов-локаций:
Пример настройки
host1 ansible_host=192.168.2.1 ansible_user=root host2 ansible_host=192.168.2.2 ansible_user=root host3 ansible_host=192.168.2.3 ansible_user=root
CODE192.168.2.1, 192.168.2.2, 192.168.2.3 — IP-адреса сервера с платформой и серверов-локаций
Создайте SSH-ключ и скопируйте открытую часть ключа на сервер с платформой и серверы-локации:
Пример команды
ssh-keygen -t rsa -b 4096 && ssh-copy-id -i ~/.ssh/id_rsa.pub root@<IP>
BASH<IP> — IP-адрес сервера
Запустите установку:
ansible-playbook zabbix_agent.yml
BASHНа сервере с платформой и серверах-локациях разрешите подключения на порт 10050/TCP для агента Zabbix:
firewall-cmd --add-port=10050/tcp
CODE
Настройка сервера Zabbix
Добавление шаблона
Чтобы добавить шаблон Zabbix:
Создайте файл dci_template.yaml:
zabbix_export: version: '5.4' date: '2022-02-25T03:01:40Z' groups: - uuid: dc579cd7a1a34222933f24f52a68bcd8 name: 'Linux servers' templates: - uuid: a5ec933fdf8c41a5845bbb529a6a0f46 template: 'Template DCImanager 6' name: 'Template DCImanager 6' description: '2022-02-25 Monitoring of DCImanager 6 server and location servers by Zabbix agent' templates: - name: 'Linux by Zabbix agent' groups: - name: 'Linux servers' discovery_rules: - uuid: 40a0d2d3b69245a1bb151b7d28679c9b name: 'Location discovery' type: HTTP_AGENT key: location.discovery delay: 1d host_prototypes: - uuid: ce1aa235528b4b32b34eeaf6cfca4a8c host: 'DCImanager 6 Location {#LOCATION_NAME}' name: 'DCImanager 6 Location {#LOCATION_NAME}' group_links: - group: name: 'Linux servers' templates: - name: 'Linux by Zabbix agent' custom_interfaces: 'YES' interfaces: - ip: '{#LOCATION_IP}' url: '{$DCI_URL}/api/dci/v3/location' headers: - name: isp-box-instance value: 'true' - name: x-xsrf-token value: '{$DCI_TOKEN}' lld_macro_paths: - lld_macro: '{#LOCATION_IP}' path: $.ssh_address - lld_macro: '{#LOCATION_NAME}' path: $.name preprocessing: - type: JSONPATH parameters: - $.list macros: - macro: '{$DCI_TOKEN}' value: __TOKEN__ description: 'Auth token of admin in DCImanager 6' - macro: '{$DCI_URL}' value: 'https://__DCI_URL__' description: 'URL of DCImanager 6 instance'
YMLСоздайте токен для авторизации в платформе:
curl -s -X POST -H "accept: application/json" -H "Content-Type: application/json" -d '{"email": "admin@example.com", "password": "admin_pass"}' "https://dci6.example.com/auth/v4/public/token" -k
BASHadmin@example.com — имя пользователя DCImanager 6 с правами администратора
admin_pass — пароль пользователя
dci6.example.com — доменное имя или IP-адрес сервера с платформой
Сохраните значение token из ответа:
Пример ответа
{"id":"69","token":"69-a56c5bd9-ba6b-489e-a670-c452cbdd3b70"}
CODE- В интерфейсе Zabbix:
- Перейдите в Configuration → Templates → Import.
- Загрузите файл dci_template.yaml и нажмите Import:
- Перейдите в Configuration → Hosts → Create host.
- Укажите настройки:
- Host name — произвольное имя для обозначения сервера в базе данных Zabbix. Например, DCI6.
- Visible name — произвольное имя для отображения сервера в интерфейсе Zabbix.
- Template — выберите шаблон Template DCImanager 6.
- Groups — выберите группы объектов для мониторинга. Например, Discovered hosts, Linux servers, Templates/Operating systems.
- Interfaces — сетевые интерфейсы. Нажмите Add → Agent.
- IP address — IP-адрес сервера c платформой.
- DNS name — имя DNS-сервера. Оставьте пустое значение по умолчанию.
- Connect to — тип подключения. Выберите IP.
- Port — порт подключения. Оставьте значение по умолчанию — 10050.
- Description — произвольный комментарий.
- Monitored by proxy — используемый прокси. Выберите (no proxy).
- Enabled — включите опцию, чтобы активировать мониторинг платформы.
- Перейдите на вкладку Macros и добавьте макросы:
- {$DCI_TOKEN} — токен для авторизации в платформе.
- {$DCI_URL} — URL сервера с платформой в формате https://dci6.example.com где dci6.example.com — доменное имя или IP-адрес сервера с платформой.
- Нажмите Add.
- Перейдите в Configuration → Templates → Import.
Изменение интервала опроса
По умолчанию данные мониторинга с локаций будут обновляться один раз в сутки. Чтобы изменить интервал опроса в интерфейсе Zabbix:
- Перейдите в Configuration → Templates → выберите шаблон Template DCImanager 6 → Discovery.
- В открывшемся списке нажмите Location discovery.
- Укажите значение интервала в параметре Update interval.
- Нажмите Update.
Создание дашборда
Дашборд Zabbix — это информационная панель, на которую вы можете добавить нужные графики.
Чтобы создать дашборд:
- Перейдите в Monitoring → Dashboard → Create dashboard.
- Укажите произвольное название дашборда в поле Name.
- Нажмите Apply.
- Чтобы добавить график на дашборд:
- Нажмите в любое свободное место.
- В поле Type выберите Graph.
- Нажмите Select справа от поля host pattern и выберите сервер для мониторинга.
- Нажмите Select справа от поля item pattern и выберите параметр для построения графика.
- Нажмите Add.