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