# Zabbix  Zabbix - система мониторинга всего, что способно ответить хоть какими то данными. Можно мониторить все, от количества установленных пакетов в системе, до температуры воздуха на кухне. Если, конечно, это чем-то мониторится. Ну и есть шаблончик соответствующий Имеет набор достаточно разнообразных шаблонов для мониторинга Линукса, Винды, Сетевого оборудования, ИБП и прочих прикольных штук. Но если нужно сделать мониторинг чего-то специфического, то этот тот еще пердолинг. Но кто ищет тот всегда найдет. Или свой шаблон напишет. Ну или хуй положит и забьет. ## Заводим Zabbix сервер на Proxmox с помощью импорта qcow2 файла На странице https://www.zabbix.com/download_appliance выбираем нужную версию и копируем ссылку на qcow2 фаил. Этот фаил архивирован в tar.gz, поэтому скачиваем чего через wget и растариваем в папку ```bash wget https://cdn.zabbix.com/zabbix/appliances/stable/X.X/X.X.X/zabbix_appliance-X.X.X-qcow2.tar.gz tar -xvf zabbix_appliance-X.X.X-qcow2.tar.gz cd zabbix_appliance-X.X.X-qcow2 ``` Далее создаем произвольную виртуальную машину без жесткого диска. Достаточно пары гигабайт оперативной памяти и пары ядер. После создания виртуалки переходим по ssh на Proxmox и импортируем фаил виртуальной машины: ```bash qm importdisk <VM_ID> zabbix_appliance-X.X.X.qcow2 <NAME_OF_PARTITION> --format qcow2 ``` Где: VM_ID - идентификатор виртуальной машины, обычно трехзначное число NAME_OF_PARTITION - имя раздела на которую будем импортировать qcow2. Чаще всего это local-lvm После импорта, диск будет привязан к виртуальной машине, но будет в состоянии Unused. Для подключения нужно выбрать диск в Hardware-опциях виртуалки и кликнуть Edit. Далее просто щекнуть по Add и диск будет добавлен  После запуска виртуалки скорее всего пригодится изменить настройки сети. Вносим правки в фаил `/etc/sysconfig/network-scripts/ifcfg-eth0` и приводим к такому виду ``` BOOTPROTO=none IPADDR=IP_address PREFIX=24 GATEWAY=IP_gateway DNS1=IP_DNS_Server DNS2=IP_DNS_Server ``` Рестартим вм или сетевую службу. Далее меняем пароль для пользователя root командой `passwd` Для авторизации в веб-панели Zabbix используем логин `Admin` и пароль `zabbix` ## Настройка агента zabbix-agent на Linux VM В зависимости от целевого дистрибутива, нужно установить пакет `zabbix-agent`. Я использую debian и ubuntu в качестве виртуалок, поэтому пишем: ```bash sudo apt update sudo apt install zabbix-agent ``` После установки правим `/etc/zabbix/zabbix_agent.conf` изменив два параметра ``` Server=IP_Zabbix_Server ListenPort=10050 ``` Перезапускаем сервис zabbix-agent ```bash sudo systemctl restart zabbix-agent ``` В админ-панели переходим в `Data collection` -> `Hosts` -> `Create host` и заводим данные о сервере на котором установили zabbix-agent  В течении минуты статус ZBX у хоста должен окрасится в зеленый. Если статус красный, проверьте перезапустили службу и открыт ли порт у целевой машины? Проверить порт можно командой `telnet IP-OR-FQDN 10050` ## Настройка агента zabbix-agent на Linux VM с шифрованием PSK Возможно есть задача по мониторингу машины которая находится где-нибудь удаленно, к примеру - VPSка Подключаемся по ssh к удаленной машине, ставим пакет `zabbix-agent`. Далее нужно сгенерируем ключ и дать ему права: ```bash sudo openssl rand -hex 32 > /etc/zabbix/zabbix_agentd.psk sudo chmod 644 /etc/zabbix/zabbix_agentd.psk ``` Теперь приводим `/etc/zabbix/zabbix_agentd.conf` к такому виду ``` Server=IP_Adress_Zabbix_Server ListenPort=10050 TLSConnect=psk TLSAccept=psk TLSPSKFile=/etc/zabbix/zabbix_agentd.psk TLSPSKIdentity=PSK 001 ``` Перезапускаем сервис zabbix-agent ```bash sudo systemctl restart zabbix-agent ``` Содержимое файла ключа копируем в блокнот. Если необходимо - открываем порт 10050 на VDSке. В моем случае я использую UFW ``` sudo ufw allow 10050/tcp ``` На сервере заббикс добавляем хост по аналогии, но во вкладке Encryption добавляем ключ и ставим галочки как на скриншоте ниже 