Привет, системный архитектор!
Сегодня расскажу про неочевидное, но очень мощное использование Zabbix, которое поможет тебе в мониторинге и бэкапировании [User Query]. Речь о типе элемента данных SSH Агент.
SSH Агент может подключаться по SSH на удаленный хост, выполнять команду и сохранять вывод [User Query]. Мы можем использовать этот механизм для создания бэкапов конфигураций устройств (например, MikroTik), а Zabbix автоматически отбросит неизменившиеся настройки, чтобы ты не хранил одну и ту же информацию много раз [User Query].
Нам понадобится настроить шаблон.
1. Создание элемента данных (Item) для SSH
Мы используем
SSH Agent для подключения по защищенному каналу. Аутентификация может происходить по паролю или по ключу [User Query]. Аутентификацию по ключу, как более безопасную, можно предварительно настроить с помощью ssh-keygen.Для удобства логин и пароль лучше вынести в скрытые макросы шаблона [User Query].
# -----------------------------------------------
# ШАГ 1: Создание Item в шаблоне
# -----------------------------------------------
# Тип: SSH агент (Zabbix Item Type)
Type: SSH agent
# Ключ элемента данных (Key)
# Формат: ssh.run[description,<IP>,<Port>,<User>,<Password>]
Key: ssh.run[mikrotik_backup,10.20.1.20,22,,]
# Тип информации (для хранения конфигурации)
Type of information: Text
# Выполняемый скрипт (команда на удаленном хосте)
Executed script: /export
2. Вкладка "Предобработка" (Preprocessing)
Это критически важный шаг. Мы используем встроенную возможность Zabbix для отбрасывания не изменившихся значений. Это позволяет хранить только различия в конфигурации и оповещать об изменениях [User Query].
# -----------------------------------------------
# ШАГ 2: Настройка дедупликации
# -----------------------------------------------
# Добавляем шаг Предобработки
Preprocessing step:
# Правило: Отбрасывать не изменившееся
Discard unchanged: True (or use specific preprocessing rule)
3. Настройка триггера на изменение конфигурации
Триггер сработает, если последняя полученная конфигурация отличается от предыдущей [User Query].
# -----------------------------------------------
# ШАГ 3: Добавление триггера
# -----------------------------------------------
# Имя: Configuration changed on {HOST.NAME}
# Серьезность: Warning/Average
# Выражение триггера (Trigger Expression):
# last() сравнивает последнее значение с предыдущим (#2)
# Если они отличаются, то триггер сработает
{<Имя шаблона>:ssh.run[mikrotik_backup,10.20.1.20,22,,].last(#1)}<>
{<Имя шаблона>:ssh.run[mikrotik_backup,10.20.1.20,22,,].last(#2)}
4. Дополнительные команды SSH
Ты можешь использовать SSH для выполнения команд и сценариев. Например, для проверки целостности файлов или сбора данных о системе:
# Использование SSH для удаленного выполнения команды
# (Zabbix SSH Agent использует подобный механизм)
# Получение времени в 12-часовом формате с удаленного хоста:
ssh user@host.example.com 'date +%r'
# Использование именованного канала (pipe) для передачи данных между процессами
# (сложный пример, показывающий возможности туннелирования SSH)
su xyz -c "ssh $THERE \"cat > /home/xyz/backup/${HERE}-daily.tar.gz\" < /pipe"& \
cd / && tar -czf - bin boot dev etc home info lib man root sbin share usr var > /pipe
💡 Вывод
Использование SSH Агента в Zabbix позволяет тебе настроить продвинутый аудит конфигураций [User Query] и автоматизацию бэкапов без сложного внешнего скриптования. Главное, что ты получаешь, — немедленное оповещение о любых изменениях в ключевых настройках.
Помни: создавать такие настройки лучше сразу в шаблонах, а не на хостах, чтобы обеспечить удобство и переносимость [User Query].
#Zabbix #SSH #Monitoring #Mikrotik #Автоматизация