от рута
wget https://repo.zabbix.com/zabbix/6.4/debian/pool/main/z/zabbix-release/zabbix-release_6.4-1%2Bdebian11_all.deb && \
dpkg -i zabbix-release_6.4-1+debian11_all.deb && apt update && apt install -y zabbix-server-pgsql zabbix-frontend-php \
php7.4-pgsql zabbix-apache-conf zabbix-sql-scripts zabbix-agent
Добавляем своего пользователя в судуеры и от него:
sudo apt install -y wget software-properties-common apt-transport-https gnupg gnupg2 && \
echo "deb [signed-by=/usr/share/keyrings/postgresql-keyring.gpg] http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg main" | sudo tee /etc/apt/sources.list.d/postgresql.list && \
curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo gpg --dearmor -o /usr/share/keyrings/postgresql-keyring.gpg && \
sudo apt update && sudo apt install postgresql-13 && sudo systemctl start postgresql && sudo systemctl enable postgresql && sudo systemctl status postgresql
От рута:
su postgres
createuser --pwprompt zabbix
Вводим сложный пароль, например cW*4qq*S4V7Ap6
createdb -O zabbix zabbix
quit
zcat /usr/share/zabbix-sql-scripts/postgresql/server.sql.gz | sudo -u zabbix psql zabbix
Настройте базу данных для Zabbix:
nano /etc/zabbix/zabbix_server.conf
DBPassword=cW*4qq*S4V7Ap6
В автозагрузку и запускаю процессы Zabbix сервера и агента
systemctl restart zabbix-server zabbix-agent apache2 && systemctl enable zabbix-server zabbix-agent apache2
Заходим по адресу https://IP/zabbix/
wget https://repo.zabbix.com/zabbix/6.4/debian/pool/main/z/zabbix-release/zabbix-release_6.4-1%2Bdebian11_all.deb && \
dpkg -i zabbix-release_6.4-1+debian11_all.deb && apt update && apt install -y zabbix-proxy-mysql zabbix-sql-scripts
Устанавливаю MariaDB + сброс пароля root на БД
apt -y install mariadb-server && systemctl start mariadb && systemctl enable mariadb && mysql_secure_installation
Enter current password for root (enter for none): Press Enter
Switch to unix_socket authentication [Y/n] y
Change the root password? [Y/n] y
New password:
Re-enter new password:
Remove anonymous users? [Y/n]: Y
Disallow root login remotely? [Y/n]: Y
Remove test database and access to it? [Y/n]: Y
Reload privilege tables now? [Y/n]: Y
Создаю БД и пользователя. Меняем rootDBpass и zabbixDBpass:
mysql -uroot -p'rootDBpass' -e "create database zabbix_proxy character set utf8mb4 collate utf8mb4_bin;"
mysql -uroot -p'rootDBpass' -e "create user 'zabbix'@'localhost' identified by 'zabbixDBpass';"
mysql -uroot -p'rootDBpass' -e "grant all privileges on zabbix_proxy.* to zabbix@localhost identified by 'zabbixDBpass';"
Импортирую схему в БД. Меняем zabbixDBpass::
cat /usr/share/zabbix-sql-scripts/mysql/proxy.sql | mysql --default-character-set=utf8mb4 -uzabbix -p'zabbixDBpass' zabbix_proxy
Настройка Zabbix-proxy. Меняем zabbixDBpass:
nano /etc/zabbix/zabbix_proxy.conf
DBPassword=zabbixDBpass
ProxyConfigFrequency=100
Server=Zabbix-server IP
Hostname=zabbix-proxy
DBName=zabbix_proxy
DBUser=zabbix
Timeout=30
Идём в заббикс-сервер Administration -> Proxies -> Create proxy
Вставляем Proxy-name - zabbix-proxy
Proxy mode - Active
Add
Настройка шифрования (PSK):
nano /etc/zabbix/zabbix_proxy.conf
TLSConnect=psk
TLSAccept=psk
TLSPSKIdentity=zabbix-proxy
TLSPSKFile=/etc/zabbix/zabbix_proxy.psk
Генерируем пароль для прокси:
openssl rand -hex 32 > /etc/zabbix/zabbix_proxy.psk && chmod 644 /etc/zabbix/zabbix_proxy.psk
Пароль из файла /etc/zabbix/zabbix_proxy.psk нам понадобится, записываем.
Идём в заббикс-сервер Administration -> Proxies -> Create proxy
Вставляем Proxy-name - zabbix-proxy
На вкладке Encryption -> Connections from proxy выбираем PSK и вставляем логин (TLSPSKIdentity) и выше сгенерированный пароль.
systemctl restart zabbix-proxy && systemctl enable zabbix-proxy
Debian 11
wget https://repo.zabbix.com/zabbix/6.4/debian/pool/main/z/zabbix-release/zabbix-release_latest%2Bdebian11_all.deb && \
dpkg -i zabbix-release_latest+debian11_all.deb && apt update && apt install zabbix-agent -y && nano /etc/zabbix/zabbix_agentd.conf
systemctl restart zabbix-agent
Debian 12
wget https://repo.zabbix.com/zabbix/6.4/debian/pool/main/z/zabbix/zabbix-agent_6.4.6-1%2Bdebian12_amd64.deb && \
dpkg -i zabbix-agent_6.4.6-1+debian12_amd64.deb && nano /etc/zabbix/zabbix_agentd.conf
systemctl restart zabbix-agent
CentOS 8
rpm -Uvh https://repo.zabbix.com/zabbix/6.4/rhel/8/x86_64/zabbix-release-latest.el8.noarch.rpm && dnf -y install zabbix-agent && nano /etc/zabbix/zabbix_agentd.conf
systemctl restart zabbix-agent
Ubuntu 20
wget https://repo.zabbix.com/zabbix/6.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.4-1%2Bubuntu20.04_all.deb && \
dpkg -i zabbix-release_6.4-1+ubuntu20.04_all.deb && apt update && apt install zabbix-agent -y && nano /etc/zabbix/zabbix_agentd.conf
systemctl restart zabbix-agent
apt update && apt dist-upgrade -y && apt autoremove -y && systemctl daemon-reload && \
apt install gnupg postgresql-common apt-transport-https lsb-release wget -y && \
curl -s https://packagecloud.io/install/repositories/timescale/timescaledb/script.deb.sh | sudo bash && \
apt install -y timescaledb-2-postgresql-13='2.14.*' timescaledb-2-loader-postgresql-13='2.14.*' && \
timescaledb-tune --quiet --yes && echo "shared_preload_libraries = 'timescaledb'" >> /etc/postgresql/13/main/postgresql.conf && \
systemctl restart postgresql && echo "CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;" | sudo -u postgres psql zabbix && \
cat /usr/share/zabbix-sql-scripts/postgresql/timescaledb/schema.sql | sudo -u zabbix psql zabbix && \
systemctl restart postgresql zabbix-server
Скачиваем по ссылке шаблон.
На хосте в файл zabbix_agentd.conf добавить/изменить строки:
Timeout=30
AllowKey=system.run[*]
В zabbix импортировать шаблон, в шаблоне изменить при необходимости пороги триггеров:
макрос {$DAY_ALARM} - количество дней для триггера АЛАРМ
макрос {$DAY_INFO} - количество дней для триггера ИНФО.
Привязать шаблон к узлу.
Получить дату до которой действуют активания можно с помощью команды:
c:\Windows\System32\cscript.exe /nologo c:\Windows\System32\slmgr.vbs /xpr
Ссылка на github автора: Zabbix-License_expiration_date_kms
В качестве хоста я использую сам Zabbix-сервер, привязываю шаблон к нему. На хосте у меня Debian 11, устанавливаю необходимые для работы скрипта пакеты:
apt update && apt install openssl idn -y
Копируем ssl_check.conf в папку с пользовательскими переменными, у меня это/etc/zabbix/zabbix_agentd.d/ssl_check.conf . Не забываем про владельца и права:
chown root\: /etc/zabbix/zabbix_agentd.d/ssl_check.conf && chmod 644 /etc/zabbix/zabbix_agentd.d/ssl_check.conf
Скачиваем по ссылке архив с файлами.
Копируем скрипт ssl_check.sh в /etc/zabbix/scripts/ и не забываем про владельца и права:
chown -R root\: /etc/zabbix/scripts && chmod a+x /etc/zabbix/scripts/ssl_check.sh
Перезапускаем агента:
systemctl restart zabbix-agent
Можно проверить работу скрипта:
/etc/zabbix/scripts/ssl_check.sh "SSL it-admins.ru" "it-admins.ru" "" "443" "web"
Импортируем шаблон zbx6_ssl_check.xml.
Находим шаблон в Data collection → Templates шаблон SSL check. Кликаем по шаблону → Items → Preprocessing.
Здесь один шаг препроцессинга JavaScript. Нажимаем на его параметр.
Здесь список сертификатов в формате JSON. Редактируем и вносим свой список. Формат списка:
var DomainList = {
"data": [
{
"{#NAME}": "SSL it-admins.ru",
"{#DOMAIN}": "it-admins.ru",
"{#SERVER}": "",
"{#PORT}": "443",
"{#TYPE}": "web"
},
{
"{#NAME}": "FTP SSL Intel",
"{#DOMAIN}": "ftp.intel.com",
"{#SERVER}": "",
"{#PORT}": "21",
"{#TYPE}": "ftp"
},
{
"{#NAME}": "SMTP SSL mail.example.com",
"{#DOMAIN}": "mail.example.com",
"{#SERVER}": "",
"{#PORT}": "25",
"{#TYPE}": "smtp"
},
{
"{#NAME}": "SSL сайт.рф",
"{#DOMAIN}": "сайт.рф",
"{#SERVER}": "",
"{#PORT}": "",
"{#TYPE}": ""
}
] };
return JSON.stringify(DomainList)
Ссылка на полную оригинальную статью автора скрипта: Zabbix — мониторинг SSL сертификатов (3)
В качестве хоста я использую сам Zabbix-сервер, привязываю шаблон к нему. На хосте у меня Debian 11, устанавливаю необходимый для работы скрипта пакет whois:
apt update && apt install whois -y
Скачиваем по ссылке архив с файлами.
Копируем domain_check.conf в папку с пользовательскими переменными, у меня это/etc/zabbix/zabbix_agentd.d/domain_check.conf
Не забываем про владельца и права:
chown root\: /etc/zabbix/zabbix_agentd.d/domain_check.conf && chmod 644 /etc/zabbix/zabbix_agentd.d/domain_check.conf
Копируем domain_check.sh папку со скриптом в /etc/zabbix/scripts/
Не забываем про владельца и права:
chown -R root\: /etc/zabbix/scripts && chmod a+x /etc/zabbix/scripts/*
Перезапускаем агента:
systemctl restart zabbix-agent
Можно проверить работу скрипта:
/etc/zabbix/scripts/domain_check.sh "Проверка" "it-admins.ru"
Импортируем шаблон zbx6_domain_check.xml
Находим шаблон в Data collection → Templates шаблон Domain check.
Переходим в items. Здесь всего один элемент данных под названием Domain list.
Кликаем по нему. Выбираем вкладку Preprocessing. Здесь один шаг препроцессинга JavaScript. Нажимаем на его параметр.
Здесь список доменов в формате JSON. Редактируем и вносим свой список. Формат списка:
var DomainList = {
"data": [
{
"{#NAME}": "Сайт №1 example.ru", "{#DOMAIN}": "example.ru"
},
{
"{#NAME}": "Сайт №2 example.com", "{#DOMAIN}": "example.com"
}
] };
return JSON.stringify(DomainList)
Скрипт протестирован в зонах: RU NET.RU ORG.RU PP.RU SPB.RU MSK.RU РФ INFO RE ORG COM NET TW OOO SHOP
ВОт себя внёс изменения в авторский скрипт, которые не давали правильно парсить заббиксу, что имя регистратора получалось с двойными кавычками.
Ссылка на полную оригинальную статью автора скрипта: Zabbix — срок действия домена 3