Понадобилось как-то для некоторых Linux серверов настроить SSH проверки, чтобы не устанавливать на них Zabbix-agent.
Сам Zabbix-server у меня установлен на Ubuntu Server.
Ниже по порядку опишу как настроить SSH проверки в Zabbix.
Авторизацию по SSH настроим по ключу вместо пароля, для этого остановим zabbix-agent и zabbix-server:
sudo service zabbix-agent stop
sudo service zabbix-server stop
Создадим домашнюю директорию пользователя Zabbix (для хранения ssh ключей):
sudo usermod -m -d /home/zabbix zabbix
sudo chown zabbix:zabbix /home/zabbix
sudo chmod 700 /home/zabbix
Запустим обратно zabbix-agent и zabbix-server:
sudo service zabbix-agent start
sudo service zabbix-server start
Откроем конфигурационный файл /etc/zabbix/zabbix_server.conf (в редакторе nano комбинация клавиш Ctrl+O и Enter означает сохранение, Ctrl+X выход):
sudo nano /etc/zabbix/zabbix_server.conf
Раскомментируем строку SSHKeyLocation и укажем путь к директории с ключами:
SSHKeyLocation=/home/zabbix/.ssh
Перезапустим zabbix-server:
sudo service zabbix-server restart
Генерируем ssh ключ:
sudo -u zabbix ssh-keygen -t rsa
Нажмем Enter если предлагается путь /home/zabbix/.ssh/id_rsa
На предложение зашифровать файл ключа нажмем Enter чтобы не шифровать его или введем два раза любой пароль (им будет зашифрован файл ключа и при подключении его придется указывать)
Скопируем сгенерированый ключ на сервер за которым будем наблюдать:
sudo -u zabbix ssh-copy-id -i /home/zabbix/.ssh/id_rsa.pub -p 22 root@192.168.0.55
Если возникает ошибка при копировании ключа, то можно вручную скопировать строку из id_rsa.pub на удаленный сервер в файл authorized_keys.
И попробуем подключиться к удаленному серверу без ввода пароля командой:
sudo -u zabbix ssh -p 22 root@192.168.0.55
Теперь в Zabbix добавим элемент данных к шаблону или хосту:
Имя: любое
Тип: SSH агент
Ключ: ssh.run[описание,ip,порт,кодировка] (например ssh.run[cpu,192.168.0.55,22,utf8]
Метод аутентификации: Публичный ключ
Имя пользователя (на удаленном хосте): root
Файл публичного ключа: id_rsa.pub
Файл приватного ключа: id_rsa
Фраза-пароль ключа: оставим пустым если не шифровали ключ паролем
Выполняемый скрипт: команда выполняемая на удаленном сервер, примеры ниже
Приведу ниже пример команд для Linux которые можно выполнить и получить различную информацию.
Загрузка процессора за 1мин/5мин/15мин:
cat /proc/loadavg |cut -d " " -f1
cat /proc/loadavg |cut -d " " -f2
cat /proc/loadavg |cut -d " " -f3
Количество текущих запущенных процессов указанной программы:
pgrep apache2|wc -l
pgrep -c sshd
Свободное пространство в точке монтирования «/» (в мегабайтах):
df -m|grep "/$"|awk '{print $4}'
Занятое пространство в точке монтирования «/» (в процентах):
df|grep "/$"|awk '{print $5}'|tr -d "%"
Получено байт на сетевой интерфейс eth0:
cat /proc/net/dev|grep eth0|awk '{print $2}'
Отправлено байт на сетевой интерфейс eth0:
cat /proc/net/dev|grep eth0|awk '{print $10}'
Количество свободной оперативной памяти:
free |grep "Память:"|awk '{print $4}'
free |grep "Mem:"|awk '{print $4}'
Смотрите также:
Подключение к SSH с использованием ключей