Мне нужно чтобы мой сервис мониторинга Zabbix 4.4
мог удаленно взаимодействовать с системой Debian 10 Buster на которой у меня развернут гипервизор Proxmox 6
. Т.е. если я создам в Web
-интерфейсе Zabbix – Администрирование – Скрипты – Создать скрипт
, то после имея карту устройств через щелчок по узлу смогу выбирать данные скрипты, и они будут отрабатывать или же будут настроены действия. Пока я еще не совсем понимаю, как буду задействовать, но хочу подготовить шаги.
Исходные данные:
Srv-zabbix
– развернут по заметке и имеетIP
адрес:172.33.33.117
Srv-proxmox
– гипервизорDebian 10 + Proxmox 6
развернут по заметке
Задача: Разобрать, как настроить SSH
взаимодействие:
ekzorchik@srv-zabbix:~$ cat /etc/passwd | grep zabbix zabbix:x:108:116::/var/lib/zabbix/:/usr/sbin/nologin ekzorchik@srv-zabbix:~$ sudo ls -l /var/lib/zabbix ls: cannot access '/var/lib/zabbix': No such file or directory ekzorchik@srv-zabbix:~$ test -d /var/lib/zabbix/ || sudo mkdir /var/lib/zabbix ekzorchik@srv-zabbix:~$ sudo nano /etc/zabbix/zabbix_server.conf SSHKeyLocation=/var/lib/zabbix/.ssh ekzorchik@srv-zabbix:~$ sudo chown root:zabbix /var/lib/zabbix ekzorchik@srv-zabbix:~$ sudo chmod 770 /var/lib/zabbix ekzorchik@srv-zabbix:~$ sudo -u zabbix ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/var/lib/zabbix//.ssh/id_rsa): нажимаю клавишу <ENTER> Created directory '/var/lib/zabbix//.ssh'. Enter passphrase (empty for no passphrase): нажимаю клавишу <ENTER> Enter same passphrase again: нажимаю клавишу <ENTER> Your identification has been saved in /var/lib/zabbix//.ssh/id_rsa. Your public key has been saved in /var/lib/zabbix//.ssh/id_rsa.pub. The key fingerprint is: SHA256:MsWtoa+/Gs9xDI76CNheegObdh6MmWbB8Zc6PwSXi4Y zabbix@srv-zabbix The key's randomart image is: +---[RSA 2048]----+ | | | . . | | . .+ . | | . o. o+ o | | o..+*.S | | oE*ooo* o | |. O=*.o + o | | ++++*.= o | | .o++o=+=. | +----[SHA256]-----+ ekzorchik@srv-zabbix:~$ ekzorchik@srv-zabbix:~$ sudo apt-get -y install tree ekzorchik@srv-zabbix:~$ sudo tree /var/lib/zabbix/.ssh /var/lib/zabbix/.ssh ├── id_rsa – приватный ключ └── id_rsa.pub – публичный ключ 0 directories, 2 files ekzorchik@srv-zabbix:~$
Далее копирую публичный ключ Zabbix
пользователя на сервер с которым посредством SSH
проверок текущий Zabbix
сервер будет взаимодействовать:
ekzorchik@srv-zabbix:~$ sudo -u zabbix /usr/bin/ssh-copy-id -i /var/lib/zabbix/.ssh/id_rsa.pub root@172.33.33.25 /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/var/lib/zabbix/.ssh/id_rsa.pub" The authenticity of host '172.33.33.25 (172.33.33.25)' can't be established. ECDSA key fingerprint is SHA256:dFYFun9pHUCq5N8EiqS9KTQGLhHJR2mwiJQvN16M+wg. Are you sure you want to continue connecting (yes/no)? yes mktemp: failed to create file via template ‘/home/ekzorchik/.ssh/ssh-copy-id_id.XXXXXXXXXX’: No such file or directory /usr/bin/ssh-copy-id: ERROR: mktemp failed ekzorchik@srv-zabbix:~$ Решение проблемы: ekzorchik@srv-zabbix:~$ sudo nano /etc/passwd было: zabbix:x:108:116::/var/lib/zabbix/:/usr/sbin/nologin изменил на: zabbix:x:108:116::/var/lib/zabbix/:/bin/bash ekzorchik@srv-zabbix:~$ sudo chmod -R 770 /var/lib/zabbix/ ekzorchik@srv-zabbix:~$ sudo chown -R root:zabbix /var/lib/zabbix/ ekzorchik@srv-zabbix:~$ sudo su - zabbix zabbix@srv-zabbix:~$ ssh-copy-id root@172.33.33.25 /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/var/lib/zabbix//.ssh/id_rsa.pub" /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys root@172.33.33.25's password: Number of key(s) added: 1 Now try logging into the machine, with: "ssh 'root@172.33.33.25'" and check to make sure that only the key(s) you wanted were added. zabbix@srv-zabbix:~$ ssh root@172.33.33.25 Linux srv-proxmox 5.0.21-3-pve #1 SMP PVE 5.0.21-7 (Mon, 30 Sep 2019 09:11:02 +0200) x86_64 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Mon Nov 11 15:53:33 2019 from 172.33.33.117 root@srv-proxmox:~# ekzorchik@srv-zabbix:~$ sudo nano /etc/passwd было: zabbix:x:108:116::/var/lib/zabbix/:/bin/bash стало: zabbix:x:108:116::/var/lib/zabbix/:/usr/sbin/nologin ekzorchik@srv-zabbix:~$ sudo chown -R zabbix:zabbix /var/lib/zabbix/ ekzorchik@srv-zabbix:~$ sudo chmod -R 700 /var/lib/zabbix ekzorchik@srv-zabbix:~$ sudo -u zabbix ssh root@172.33.33.25 "uname -a" Linux srv-proxmox 5.0.21-3-pve #1 SMP PVE 5.0.21-7 (Mon, 30 Sep 2019 09:11:02 +0200) x86_64 GNU/Linux ekzorchik@srv-zabbix:~$
Вот теперь другое дело.
Проверяю как будет отрабатывать наглядно выполнение команды для хоста:
Шаг №1: На Zabbix Server 4.4
создаю элемент хоста srv-proxmox (172.33.33.25)
http://IP&DNS/zabbix - user&pass - Настройка – Узлы сети – Создать узел сети
Имя узла сети: srv-proxmox
Группы: srv-proxmox
Интерфейс агента: 172.33.33.25:10050
Активировано: установлена галочка
И нажимаю «Добавить
»
Шаг №2: Выношу на карту сетей хост Шага №1.
http://IP&DNS/zabbix - user&pass - Мониторинг – Карты сетей – Изменить карту сети – (Элемент карты сети) Добавить:
Тип: Узел сети
Подпись: {HOST.NAME}
Расположение подписи: По умолчанию
Узел сети: srv-proxmox
Иконки (По умолчанию): Server_(48)
(URLы)
Имя: proxmox
URL: https://{HOST.IP}:8006
И нажимаю «Добавить
», а после «Применить
», после «Закрыть
», после «Обновить
» — ОК
для сохранения изменений на карте сетей.
Шаг №3: На Zabbix Server 4.4
создаю скрипт:
http://IP&DNS/zabbix - user&pass - Администрирование – Скрипты – Создать скрипт
Имя: CheckSpaceRoot
Тип: Скрипт
Выполнять на: Zabbix сервер
Команды: ssh -l root {HOST.IP} "df -H | egrep root"
Группа пользователей: Все
Группа узлов сети: Все
Требуемые права доступа к узлам сети: Чтение
И нажимаю «Добавить
».
На заметку: Можно к примеру ограничить выполнение создаваемых скриптов для определенной группы узлов.
Шаг №4: Захожу в «Карты сетей
» и через левый клик по узлу на карте выбираю свой скрипт:
http://IP&DNS/zabbix - user&pass - Мониторинг – Карты сетей
– нажимаю на текущую с именем Local Network
Выбираю «Скрипт
»: CheckSpaceRoot
и вот результат работы скрипта:
Отлично скрипт отработал.
А если через клик левой кнопкой мыши по «Узлу
» выбрать (URLы): srv-proxmox
текущая вкладка с Zabbix
-сервером будет заменена на URL
доступа к Web
-панели администрирования Proxmox 6:
Итого я кратко познакомился, как настроить возможность Zabbix
-сервера работать с хостами посредством SSH
взаимодействия. Пока на этом всё, с уважением автор блога Олло Александр aka ekzorchik.