Установка standalone-версии сервера

Требования: На сервере должен быть установлен docker

Быстрая установка

Установка сервера одной командой:

# curl -sSL https://www.inperfo.ru/install/sa-server | sh

Будет создан пользователь inperfo:inperfo, в директории /local/inperfo-sa-server будут храниться данные (база, rrd-файлы, конфиг mysql и т. д.)

Ручная установка

Создание директории для данных

Данные хранятся на хостовом сервере. Нужно создать для них директорию:

# data_dir=/local/inperfo-sa-server
# guid=65001
# mkdir -p ${data_dir}
## Или создать симлинк на нужную директорию
# mkdir -p /local && ln -sf /path/to/big/volume /local/inperfo-sa-server
				

Создание пользователя и группы inperfo

Из-за особенностей работы docker'a нам нужно создать в хостовой системе отдельного пользователя и группу с ID 65001, чтобы у процессов в контейнере был полный доступ к данным:

# groupadd -g 65001 inperfo
# useradd -d ${data_dir} -M -s /bin/false -u ${guid} -g ${guid} inperfo 

Изменение прав доступа к директории с данными

 # chown -R ${guid}:${guid} ${data_dir} 

Запуск сервера

 # docker run -d -p 443:443 -v ${data_dir}:/local \
	--hostname=inperfo-sa-server \
	--name=inperfo-sa-server \
	inperfo/sa-server
Запустится веб-сервер на 443 порту с базовой авторизацией. Пользователь Admin, пароль Admin

Смена пароля у пользователя Admin

 # printf "Admin:$(openssl passwd -crypt MYPASSWORD)\n" > /local/inperfo-sa-server/nginx/htpasswd
Строку MYPASSWORD нужно заменить на свой пароль

Запуск сервера с валидными сертификатами

Чтобы nginx работал с вашими сертификатами, замените следующие файлы на свои и перезапустите контейнер
# /local/inperfo-sa-server/nginx/certs/server.{crt,key}
# docker restart inperfo-sa-server
				

Установка standalone-версии агента

Требования: На сервере должен быть установлен docker

Быстрая установка

Установка агента в одну команду:

# curl -sSL https://www.inperfo.ru/install/sa-agent | sh

Будут созданы файлы /local/inperfo-sa-agent/etc/{agent,hosts,server}.conf и запущен контейнер inperfo-sa-agent. Теперь нужно добавить адрес сервера в файл server.conf, добавить настройки для snmp-хостов в файл hosts.conf, и перезапустить контейнер (docker restart inperfo-sa-agent)

Ручная установка

Создание пользователя и группы inperfo

Из-за особенностей работы docker'a нам нужно создать в хостовой системе отдельного пользователя и группу с ID 65001, чтобы у процессов в контейнере был полный доступ к данным:

# data_dir=/local/inperfo-sa-agent
# mkdir -p ${data_dir}/etc
# groupadd -g 65001 inperfo
# useradd -d ${data_dir} -M -s /bin/false -u ${guid} -g ${guid} inperfo 

Изменение прав доступа к директории с данными

 # chown -R ${guid}:${guid} ${data_dir} 

Настройка адреса сервера

# vim /local/inperfo-sa-agent/etc/server.conf
<?php
return array (
    'addr'  => '192.168.1.1',
);

Вместо 192.168.1.1 указываем IP-адрес хостовой машины и, если нужно, порт, если мы запустили сервер на порту, отличному от 443

Настройка списка хостов для мониторинга

# vim /local/inperfo-sa-agent/etc/hosts.conf
<?php
return array (

	'host1.dns.name' => array (
		'snmp_version' => '2c',
		'snmp_community' => 'public',
	),

	'host2.dns.name' => array (
		'snmp_version' => '3',
		'snmp_sec_name' => 'username',
		'snmp_sec_level' => 'authPriv',         // or 'authNoPriv', or 'noAuthNoPriv'
		'snmp_auth_protocol' => 'MD5',          // or 'SHA'
		'snmp_auth_passphrase' => 'passphrase1',
		'snmp_priv_protocol' => 'DES',          // or 'AES'
		'snmp_priv_passphrase' => 'passphrase2'
	),
);
			

Вместо host1.dns.name/host2.dns.name указываем/добавляем актуальные хосты, имена пользователей и пароли

Указание прокси сервера для агента (опционально)

Если агент может "достучаться" до сервера только через прокси, то указываем его настройки в файле agent.conf

# vim /local/inperfo-sa-agent/etc/agent.conf
<?php
return array (
    'host'  => null,
    'port'  => 0,
    'user'  => null,
    'pass'  => null,
    'socks' => false,  // Set to true if you are using socks5 proxy
);