Перед установкой
Клиентская и серверная часть АМ рассчитана на доступ к публичному сетевому репозиторию https://dl.astralinux.ru/am/ для динамической загрузки требуемых ресурсов таких как бинарные файлы экспортёров или контейнеры.
Если в рамках контура данный адрес не доступен, но имеется возможность настроить проксирование через один из хостов, то данный способ будет предпочтительным.
Настройка проксирования
Настроить проксирование можно с помощью squid прокси-сервера.
Примечание
Ниже приводится сценарий настройки. Процесс установки не затрагивается в данном руководстве. Для получения более подробной информации и рекомендаций по безопасности ознакомьтесь с официальной документацией Squid
Для корректной работы агента клиентской части astra-monitoring необходимо указать системные переменные окружения HTTP_PROXY и HTTPS_PROXY.
Открываем для редактирования файл /etc/environment:
sudo nano /etc/environment
Добавляем следующее содержимое в файл (заменить squid-host на адрес хоста с установленным squid)
Для конфигурирования прокси сервера для docker необходимо:
В файл /etc/docker/daemon.json добавить содержимое
{
"proxies": {
"http-proxy": "http://squid-host:3128",
"https-proxy": "http://squid-host:3128",
"no-proxy": "*.test.example.com,.example.org,127.0.0.0/8"
}
}
Или добавить в файл /etc/systemd/system/docker.service.d/http-proxy.conf
[Service]
Environment="HTTP_PROXY=http://squid-host:3128"
Environment="HTTPS_PROXY=http://squid-host:3128"
Подробнее на официальном сайте docker.
Настроить проксирование можно с помощью nexus репозитория.
Примечание
Ниже приводится сценарий настройки. Процесс установки не затрагивается в данном руководстве. Для получения более подробной информации и рекомендаций по безопасности ознакомьтесь с официальной документацией Nexus
Шаг 1: Доступ к Nexus Repository Manager
Откройте веб-интерфейс вашего Nexus Repository Manager. Вам потребуются учетные данные администратора.
Шаг 2: Создание репозитория прокси (Raw)
Тип репозитория: Выберите «Raw (proxy)».
ID репозитория: Выберите понятное имя, например, astra-raw-proxy.
Название репозитория: Укажите описание, например, «Raw Прокси для Astral Linux AM-Generic».
Удаленный репозиторий URL: Введите URL вашего удаленного репозитория: https://dl.astralinux.ru/am/generic.
Разрешенные группы: Укажите группу(ы) пользователя, которым разрешено использовать этот репозиторий. (Например, nx-all-users или другая группа, определённая в вашем Nexus).
Download Remote Indexes: Эта опция не нужна для raw репозитория. Nexus не будет скачивать индексные файлы.
Authentication: Если репозиторий https://dl.astralinux.ru/am/generic требует авторизации (например, имя пользователя и пароль, или API-ключ), то вам нужно настроить это в разделе «Credentials» в Nexus, и указать эти данные в настройках создаваемого прокси-репозитория. Nexus поддерживает различные механизмы аутентификации.
SSL: Убедитесь, что у Nexus есть все необходимые сертификаты для соединения с https://dl.astralinux.ru/am/generic.
Шаг 3: Проверка работы прокси
После сохранения настроек Nexus начнет скачивать файлы только по запросу. Проверьте работоспособность, обратившись к файлу в вашем прокси-репозитории.
Попробуйте получить доступ к файлу агента через URL:
http(s)://<ваш_nexus_адрес>/agent/latest/linux/amd64/agent.tgz
Замените <ваш_nexus_адрес> на фактический адрес вашего Nexus. Возможно, потребуется использовать https вместо http в зависимости от настроек вашего Nexus.
Шаг 4: Настройка сети (если необходимо)
Если ваш Nexus находится за брандмауэром или в сети с ограниченным доступом, вам может потребоваться настроить правила брандмауэра, чтобы разрешить Nexus подключаться к интернету только во время первоначальной загрузки файлов по запросу. После первого скачивания, дальнейшие запросы к тем же файлам будут обрабатываться локально, из кэша Nexus.
Кеширование: Nexus будет кешировать скачанные файлы, предоставляя быстрый доступ к ним внутри закрытого контура после первого запроса.
Настроить проксирование можно с помощью artifactory репозитория.
Примечание
Ниже приводится сценарий настройки. Процесс установки не затрагивается в данном руководстве. Для получения более подробной информации и рекомендаций по безопасности ознакомьтесь с официальной документацией Artifactory
Шаг 1: Доступ к Artifactory
Войдите в веб-интерфейс вашего Artifactory. Вам потребуются учетные данные администратора.
Шаг 2: Создание репозитория прокси
Создайте новый локальный репозиторий: В Artifactory выберите «Local» в качестве типа репозитория. Это будет хранилище для кеширования скаченных файлов. Дайте ему понятное имя, например, astra-linux-local. Выберите «Generic» в качестве типа хранилища (этот тип подходит для raw репозиториев).
Создайте новый репозиторий прокси: Теперь создайте репозиторий типа «Remote». Дайте ему имя, например, astra-linux-remote. В настройках:
URL: Укажите URL вашего удаленного репозитория: https://dl.astralinux.ru/am/generic
Repository Key: Это имя, которое будет использоваться для доступа к этому репозиторию.
Remote Repository Layout: Выберите «generic».
Настройка подключения: В некоторых случаях Artifactory может потребовать настройки прокси-сервера или других параметров сети. Если ваш Artifactory находится за брандмауэром или использует прокси для выхода в интернет, убедитесь, что эти настройки корректно отражают вашу сеть. Artifactory будет использовать эти настройки для первоначальной загрузки данных из https://dl.astralinux.ru/am/generic.
Управление доступом: Установите необходимые разрешения для доступа к этому репозиторию. Определите, какие пользователи или группы имеют право на чтение и скачивание файлов.
Шаг 3: Проверка работы прокси
После сохранения настроек Artifactory начнет кешировать файлы из удаленного репозитория. Это может занять некоторое время. Вы можете проверить его работу, попытавшись загрузить файл непосредственно из вашего локального репозитория Artifactory.
Попробуйте получить доступ к файлу агента через URL:
http(s)://<ваш_artifactory_адрес>/agent/latest/linux/amd64/agent.tgz
(Замените <ваш_artifactory_адрес> и <ваш_local_репозиторий> на соответствующие значения). Artifactory сначала попытается найти файл локально, а если его не обнаружит — обратится к удалённому репозиторию.
Шаг 4: Настройка сети (если необходимо)
Как и с Nexus, если ваш Artifactory находится за брандмауэром, вам нужно будет настроить правила, чтобы разрешить ему только первоначальное подключение к интернету для скачивания файлов. После этого, весь доступ будет осуществляться через локальный кэш.
Важные замечания:
Авторизация: Если доступ к https://dl.astralinux.ru/am/generic требует авторизации (например, через username/password или API key), вам необходимо настроить соответствующие учетные данные в Artifactory. Это обычно делается в настройках репозитория прокси.
SSL сертификаты: Убедитесь, что Artifactory правильно обрабатывает SSL сертификаты. Возможно, потребуется импортировать корневой сертификат доверенного центра сертификации.
Проверка доступности: После настройки обязательно проверьте работоспособность всех необходимых файлов, доступных через ваш проксированный репозиторий.
Добавить проксируемый репозиторий в config-api
Данное действие необходимо в случае отсутствия доступа к https://dl.astralinux.ru/am/ и выполняется после настройки проксирования.
Редактируем секцию registry.endpoints в файле конфигурации config-api/config.yaml, заменяем существующую секцию или добавляем в конце новый репозиторий, к примеру new_registry
server:
address: :7777
enable_swag: true
is_debug: false
log_client_errors: true
encoding_urls:
- configs
logger:
level: info
registry:
enabled: true
cache: ./tmp/cache
max_concurrent: 10
endpoints:
- name: new_registry
url: http://url/to/exporters/{{.Name}}/{{.Version}}/{{.OS}}/{{.Arch}}/{{.Name}}.tgz
# если нужна авторизация добавить явные переменные или ссылки на переменные окружения
# user: $USER
# pass: $TOKEN
Добавляем секцию config_api.config содержащую раздел registry.endpoints в файле файлe values.yaml, дописываем в конце новый репозиторий, к примеру new_registry
config_api:
config:
server:
address: 0.0.0.0:7777
auth_token: ""
is_debug: false
log_client_errors: true
encoding_urls:
- configs
license_service:
address: "http://svc-{{ $.Release.Name }}-license-service:8987/api/v1/license"
request_timeout: 10s
insecure: false
snmpgen:
generator_binary_path: /opt/am/snmpgen
registry:
enabled: true
cache: /tmp/cache
max_concurrent: 10
endpoints:
- name: new_registry
url: http://url/to/exporters/{{.Name}}/{{.Version}}/{{.OS}}/{{.Arch}}/{{.Name}}.tgz
# если нужна авторизация добавить явные переменные или ссылки на переменные окружения
user: $USER
pass: $TOKEN