Ошибка 401 MaxMind — ключ лицензии есть, но загрузка не получается

Следуя инструкциям на странице Настройка MAXMIND для обратных IP-запросов, я считаю, что всё настроено правильно, но получаю ошибку 401 при загрузке баз данных MaxMind.

У меня стандартная установка, самохостинг и актуальная версия.
Я создал аккаунт в MaxMind и добавил новый лицензионный ключ.

Я отредактировал секцию ENV в файле app.yml следующим образом:

  ## Ключ геолокации IP-адресов MaxMind для поиска по IP-адресу
  ## подробности см. по адресу https://meta.discourse.org/t/-/137387/23
  DISCOURSE_MAXMIND_ACCOUNT_ID: [мой ID аккаунта]
  DISCOURSE_MAXMIND_LICENSE_KEY: [мой лицензионный ключ]

…затем выполнил ./launcher rebuild app.

При пересборке в логах были зафиксированы ошибки “401 Unauthorized”:

Сбой загрузки базы данных MaxMind GeoLite2-City. : OpenURI::HTTPError : Ошибка 401
Сбой загрузки базы данных MaxMind GeoLite2-ASN. : OpenURI::HTTPError : Ошибка 401

(… и, разумеется, файлы БД не попали в /var/www/discourse/vendor/data)

Согласно этому предложению, я использовал команду, найденную на Портале разработчиков MaxMind, — с теми же самыми учётными данными — для прямой загрузки базы данных:

curl -O -J -L -u [мой ID аккаунта]:[мой лицензионный ключ] \
'https://download.maxmind.com/geoip/databases/GeoLite2-City/download?suffix=tar.gz'

…что сработало без проблем.

Чего мне может не хватать, чтобы при подключении из Discourse возникала ошибка 401?

Похоже, что на эту тему никто не откликнулся! Вам удалось разобраться?

Спасибо, что проверили! Нет, я так и не разобрался. После следующего обновления и пересборки результат остался прежним. Не знаю, куда ещё посмотреть… :person_shrugging:

Привет, извини, эта тема заглохла. У меня самого не так много опыта в этом. У тебя возникают проблемы с поиском по IP в очереди проверки? Возможно, это просто предупреждение, о котором не стоит беспокоиться? :thinking:

У меня не так много очереди на проверку, но без MaxMind DB я не смог бы выполнить поиск местоположения пользователя, если бы мне нужно было исследовать какую-либо проблему, и…

Интересно, сталкивались ли другие с проблемами при подключении к MaxMind для загрузки БД, или это только у меня. Похоже, что такая проблема может остаться незамеченной до тех пор, пока она не понадобится.

Кстати, у меня всё ещё работает нормально. :person_shrugging:

К сожалению, я не знаю, в чём разница. :thinking:

Кажется, это работает на сайте, который я только что пересобрал.

Единственное предположение: у вас эти настройки somehow находятся не в том месте (хотя судя по тому, что вы привели, это маловероятно).

Показывает ли это ваши учётные данные MaxMind вот так?

root@figgy:/var/discourse# ./launcher enter app
root@figgy-spm:/# set|grep MAXM
DISCOURSE_MAXMIND_ACCOUNT_ID=12345
DISCOURSE_MAXMIND_LICENSE_KEY=mycoolkey
root@figgy-spm:/# grep maxm /var/www/discourse/config/discourse.conf
maxmind_license_key = 'mcoolkey'
maxmind_account_id = '12345'

Так что вам нужно выполнить:

./launcher enter app
set|grep MAXM
grep maxm /var/www/discourse/config/discourse.conf

Также можно проверить, что Rails видит их (всё ещё внутри контейнера):

rails c

А затем:

GlobalSetting.maxmind_account_id
GlobalSetting.maxmind_license_key

Надеюсь, что у вас как-то не оказались ваши данные в секции env: файла app.yml (хотя ваши вставленные комментарии указывают на то, что они находятся в правильном месте), что легко исправить.

Спасибо, Джей! Все шаги по устранению неполадок, которые вы указали выше, были проверены, поэтому, пока я был там, я просто очистил всё и начал заново. На этот раз Discourse загрузил базы данных MaxMind, и теперь я могу определять географическое положение IP-адресов.

Единственное, что я могу предположить, — это какой-то странный сбой в моём аккаунте MaxMind или, возможно, ошибка при копировании/вставке оригинального лицензионного ключа.

Ваши усилия помогли исключить другие проблемы, поэтому я отмечу это как решение. :white_check_mark: