Zabbix

Zabbix - система мониторинга всего, что способно ответить хоть какими то данными. Можно мониторить все, от количества установленных пакетов в системе, до температуры воздуха на кухне. Если, конечно, это чем-то мониторится. Ну и есть шаблончик соответствующий

Имеет набор достаточно разнообразных шаблонов для мониторинга Линукса, Винды, Сетевого оборудования, ИБП и прочих прикольных штук. Но если нужно сделать мониторинг чего-то специфического, то этот тот еще пердолинг. Но кто ищет тот всегда найдет. Или свой шаблон напишет. Ну или хуй положит и забьет.

Заводим Zabbix сервер на Proxmox с помощью импорта qcow2 файла

На странице https://www.zabbix.com/download_appliance выбираем нужную версию и копируем ссылку на qcow2 фаил. Этот фаил архивирован в tar.gz, поэтому скачиваем чего через wget и растариваем в папку

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 и импортируем фаил виртуальной машины:

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 в качестве виртуалок, поэтому пишем:

sudo apt update
sudo apt install zabbix-agent

После установки правим /etc/zabbix/zabbix_agent.conf изменив два параметра

Server=IP_Zabbix_Server
ListenPort=10050

Перезапускаем сервис zabbix-agent

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. Далее нужно сгенерируем ключ и дать ему права:

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

sudo systemctl restart zabbix-agent

Содержимое файла ключа копируем в блокнот. Если необходимо - открываем порт 10050 на VDSке. В моем случае я использую UFW

sudo ufw allow 10050/tcp

На сервере заббикс добавляем хост по аналогии, но во вкладке Encryption добавляем ключ и ставим галочки как на скриншоте ниже

Расширение раздела /dev/sda5 с /var/lib/mysql

Если инсталяция была путем раскатки готового образа с appliance, то рано или поздно можете столкнуться с тем что место на разделе с бд может закончится

Сначала добавляем +5GB или сколько вам необходимо накинуть

Сперва стопим службу mysql, далее на примере с пояснениями

[root@appliance ~]# fdisk /dev/sda # Запускаем fdisk

Welcome to fdisk (util-linux 2.32.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): p # Выводим список разделов
Disk /dev/sda: 15 GiB, 16106127360 bytes, 31457280 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x0e3fcdb2

Device     Boot    Start      End Sectors  Size Id Type
/dev/sda1  *        2048  1050623 1048576  512M 83 Linux
/dev/sda2        1050624  9439231 8388608    4G 83 Linux
/dev/sda3        9439232 11536383 2097152    1G 83 Linux
/dev/sda4       11536384 20971519 9435136  4.5G  5 Extended
/dev/sda5       11538432 20971519 9433088  4.5G 83 Linux

Command (m for help): d # Удаляем раздел
Partition number (1-5, default 5): 5 # Пятый который с бд

Partition 5 has been deleted.

Command (m for help): d # Удаляем раздел
Partition number (1-4, default 4): 4 # Четвертый (он Extended)

Partition 4 has been deleted.

Command (m for help): n # Создаем новый раздел
Partition type
   p   primary (3 primary, 0 extended, 1 free)
   e   extended (container for logical partitions)
Select (default e): # тыкаем Enter или E

Using default response e.
Selected partition 4
First sector (11536384-31457279, default 11536384): 11536384 # Смотрим стартовый сектор в /dev/sda4
Last sector, +sectors or +size{K,M,G,T,P} (11536384-31457279, default 31457279): # Тыкаем Enter

Created a new partition 4 of type 'Extended' and of size 9.5 GiB.

Command (m for help): n # Создаем новый ЛОГИЧЕСКИЙ раздел
All primary partitions are in use.
Adding logical partition 5
First sector (11538432-31457279, default 11538432): 11538432 # Смотрим стартовый сектор в /dev/sda5
Last sector, +sectors or +size{K,M,G,T,P} (11538432-31457279, default 31457279): # Тыкаем Enter

Created a new partition 5 of type 'Linux' and of size 9.5 GiB.
Partition #5 contains a xfs signature.

Do you want to remove the signature? [Y]es/[N]o: N # Обязательно тыкаем N потому что можем развалить раздел

Command (m for help): w # Записываем изменения

The partition table has been altered.
Failed to update system information about partition 4: Device or resource busy

The kernel still uses the old partitions. The new table will be used at the next reboot.
Syncing disks.

[root@appliance ~]# reboot

После рестарта снова подключаемся к машине и расширяем раздел

[root@appliance ~]# sudo xfs_growfs /var/lib/mysql
meta-data=/dev/sda5              isize=512    agcount=4, agsize=294784 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1    bigtime=0 inobtcount=0
data     =                       bsize=4096   blocks=1179136, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 1179136 to 2489856

Проверяем разделы

[root@appliance ~]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   15G  0 disk
├─sda1   8:1    0  512M  0 part /boot
├─sda2   8:2    0    4G  0 part /
├─sda3   8:3    0    1G  0 part /tmp
├─sda4   8:4    0    1K  0 part
└─sda5   8:5    0  9.5G  0 part /var/lib/mysql