В этой статье хочу продолжить делиться опытом по созданию Zabbix-сервера на хостинге Openshift. О базовой установке и настройке я рассказывал в предыдущей статье «Установка Zabbix 2.4 на RedHat Openshift». В этой статье речь пойдёт о установке zabbix-agent на локальный хост (который будем мониторить) и настройку соединения его с zabbix-server через ssh-туннель.
Для начала надо создать новую пару ключей (для безопасности) и поместить публичный ключ в хранилище ключей OpenShift.
Проверяем,
Для проброса туннеля нужно знать свой локальный ip приложения OpenShift.
Теперь создадим скрипт, который будет поддерживать на локальном хосте ssh-туннель:
И поместим его в кронтаб непривилегированного пользователя (например, zabbix) на выполнение раз в минуту.
Проверяем:
Устанавливаем на localhost агента, создаём примерно такой конфиг zabbix_agentd.conf:
Теперь надо добавить localhost как ноду в zabbix
Сразу скажу что красный значок так и останется — работа агента в пассивном режиме не предполагается.
Берём нужный Вам темплейт (например встроенный Template OS Linux), и в настройках Items меняем(проще всего через mass update) тип на zabbix-agent(active).
Если есть сценарии дискаверинга — не забываем и там поставить zabbix-agent(active) тоже.
Через некоторое время данные начнут поступать на сервер.
Если по какой-то причине данные не поступают — смотрим в лог на предмет ошибок.
На этом всё, надеюсь кому-то это будет полезно.
Буду признателен за конструктивную критику.
P.S. Думаю, таким же образом можно прикрутить активную проксю и сливать уже какие угодно данные.
Для начала надо создать новую пару ключей (для безопасности) и поместить публичный ключ в хранилище ключей OpenShift.
Проверяем,
% ssh 55e9bc400c1e66a589000029@zabbix-chinacoolhacker.rhcloud.com
[zabbix-chinacoolhacker.rhcloud.com 55e9bc400c1e66a589000029]\>
Для проброса туннеля нужно знать свой локальный ip приложения OpenShift.
[zabbix-chinacoolhacker.rhcloud.com 55e9bc400c1e66a589000029]\> export | grep OPENSHIFT_PHP_IP
declare -x OPENSHIFT_PHP_IP="127.13.151.129"
Теперь создадим скрипт, который будет поддерживать на локальном хосте ssh-туннель:
#!/bin/sh
SSH_DAEMON="/usr/bin/ssh"
SSH_DAEMON_OPTS="-2 -N -f -L"
LOCAL_PREF="10051:<YOUR_LOCAL_OPENSHIFT_IP>:30051"
REMOTE_PREF="<USER>@<YOUR_SERVER>.rhcloud.com"
CONNECT=" $SSH_DAEMON $SSH_DAEMON_OPTS $LOCAL_PREF $REMOTE_PREF"
#
STAT=$(ps auxww | grep "$CONNECT" | grep -v grep | wc -l)
if [ $STAT == 0 ]; then
$CONNECT
exit 0;
else
exit 0;
fi
И поместим его в кронтаб непривилегированного пользователя (например, zabbix) на выполнение раз в минуту.
Проверяем:
user@localhost:~ % telnet localhost 10051
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
^]
telnet> quit
Устанавливаем на localhost агента, создаём примерно такой конфиг zabbix_agentd.conf:
LogFile=/tmp/zabbix_agentd.log
LogFileSize=1
Server=127.0.0.1
StartAgents=0
ServerActive=127.0.0.1
Hostname=localhost
RefreshActiveChecks=120
Timeout=10
User=zabbix
Теперь надо добавить localhost как ноду в zabbix
Сразу скажу что красный значок так и останется — работа агента в пассивном режиме не предполагается.
Берём нужный Вам темплейт (например встроенный Template OS Linux), и в настройках Items меняем(проще всего через mass update) тип на zabbix-agent(active).
Если есть сценарии дискаверинга — не забываем и там поставить zabbix-agent(active) тоже.
Через некоторое время данные начнут поступать на сервер.
Если по какой-то причине данные не поступают — смотрим в лог на предмет ошибок.
На этом всё, надеюсь кому-то это будет полезно.
Буду признателен за конструктивную критику.
P.S. Думаю, таким же образом можно прикрутить активную проксю и сливать уже какие угодно данные.