#!/bin/bash
ZABBIX_CONF="/etc/zabbix/zabbix_agentd.conf"
#Проверка, выполняется ли скрипт с правами sudo
if [ "$(id -u)" -ne 0 ]; then
echo -e "Этот скрипт должен быть запущен с правами sudo.\nЗапустите меня так: sudo ./iostat-agent-plugin-install.sh\nВыхожу."
exit 1
fi
# Обновление репозиториев
apt update >/dev/null 2>&1 || echo "Кажется что то с репозиториями, проверьте их!" && exit 1
# Установка пакетов
apt install sysstat zabbix-agent -y >/dev/null 2>&1 || echo "Похоже что-то не так с установкой, поставьте вручную: sudo apt install zabbix-agent sysstat -y" && exit 1
# Копирование скрипта
echo "Кладу скрипт агента в /etc/zabbix/scripts/iostat.sh"
mkdir /etc/zabbix/scripts/
mv ./iostat.sh /etc/zabbix/scripts/iostat.sh
# Установка прав на скрипт
echo "Поправлю права на скрипт, должно быть '-rwxr-x---(750) root zabbix'"
chmod 750 /etc/zabbix/scripts/iostat.sh
chown root:zabbix /etc/zabbix/scripts/iostat.sh
chmod +x /etc/zabbix/scripts/iostat.sh
# Проверка прав
ls -ld /etc/zabbix/scripts/iostat.sh
echo "UserParameter=iostat[*],/etc/zabbix/scripts/iostat.sh "none" "$1" "$2"" | tee /etc/zabbix/zabbix_agentd.conf
# Проверяем наличие строки UnsafeUserParameters и её значение
if grep -Eq '^#?\s*UnsafeUserParameters\s*=\s*(0|[^1])' "$ZABBIX_CONF"; then
# Если строка закомментирована или значение не 1, то приводим её к UnsafeUserParameters=1
echo "Настрою параметр UnsafeUserParameters на 1 в $ZABBIX_CONF"
# Используем sed для замены или добавления строки
sed -i 's/^#*\s*UnsafeUserParameters\s*=.*/UnsafeUserParameters=1/' "$ZABBIX_CONF"
# Перезапуск Zabbix агент
systemctl restart zabbix-agent
echo "Zabbix агент перезапущен с изменениями."
else
echo "Параметр UnsafeUserParameters не найден, добавляю в конец файла."
echo "UnsafeUserParameters=1" | tee -a "$ZABBIX_CONF"
systemctl restart zabbix-agent
fi |