Назад | Перейти на главную страницу

Как устранить ошибку GeoIP: ошибка при открытии файла /usr/share/GeoIP/GeoIP.mmdb

Я новичок в решении GeoIP. Некоторые вещи изменились в отношении устаревших баз данных GeoIP, что сделало его немного сложнее.

Я использую AWS Linux

Я установил GeoIP:

rpm -qa | grep GeoIP

GeoIP-devel-1.4.8-1.5.amzn1.x86_64

GeoIP-1.4.8-1.5.amzn1.x86_64

apache / httpd:

rpm -qa | grep httpd

httpd24-2.4.41-1.88.amzn1.x86_64

httpd24-tools-2.4.41-1.88.amzn1.x86_64

Я установил учетную запись на веб-сайте maxmind и заполнил /etc/GeoIP.conf следующим образом:

СНИП

AccountID удален

LicenseKey отредактирован

EditionIDs GeoLite2-ASN GeoLite2-City GeoLite2-Country

КОНЕЦ СНИП

Ошибки, которые я вижу в / var / log / httpd / error_log, выглядят следующим образом:

Ошибка при открытии файла /usr/share/GeoIP/GeoIP.mmdb

Ошибка при открытии файла /usr/share/GeoIP/GeoIP.mmdb

Ошибка при открытии файла /usr/share/GeoIP/GeoIP.mmdb

Ошибка обхода базы данных для ipnum = 886277125 - Возможно, база данных повреждена?

Ошибка обхода базы данных для ipnum = 886277125 - Возможно, база данных повреждена?

Ошибка обхода базы данных для ipnum = 168300841 - Возможно, база данных повреждена?

Ошибка обхода базы данных для ipnum = 168300643 - Возможно, база данных повреждена?

Ошибка обхода базы данных для ipnum = 168300841 - Возможно, база данных повреждена?

Ошибка обхода базы данных для ipnum = 0 - возможно, база данных повреждена?


Итак, я проверил, могу ли я извлечь информацию из базы данных:

mmdblookup --file /usr/share/GeoIP/GeoLite2-Country.mmdb --ip xxx.xxx.xxx.x названия стран en

"Ирландия"

Итак, теперь мы знаем, что база данных GeoIP содержит данные; мы знаем, что он правильно определяет страну происхождения IP-адреса нашего тестового сервера. Проблема в том, что apache все еще не может загрузить базу данных GeoIP.

Мне не ясно, что делать дальше по устранению неполадок.

Кроме того, я не уверен, насколько это важно, но он устанавливается на сервере Jira / Confluence, поэтому служба apache / httpd прослушивает 443, а затем передает трафик экземпляру java. Я не думаю, что это действительно важно, потому что трафик сначала попадает в apache. Похоже, что apache по какой-то причине не может получить доступ к базе данных geoip. Я попытался сменить владельца базы данных на apache: apache от root, и это тоже не сработало.

Что делать дальше?

    [Wed Jan 22 21:14:25.057803 2020] [so:warn] [pid 13168] AH01574: module ssl_module is already loaded, skipping
    VirtualHost configuration:
    *:443                  redacted
 (/etc/httpd/conf.d/ssl.conf:77)
    *:80                   redacted
 (/etc/httpd/conf/httpd.conf:359)
    ServerRoot: "/etc/httpd"
    Main DocumentRoot: "/var/www/html"
    Main ErrorLog: "/etc/httpd/logs/error_log"
    Mutex default: dir="/var/run/httpd/" mechanism=default
    Mutex mpm-accept: using_defaults
    Mutex cache-socache: using_defaults
    Mutex authdigest-opaque: using_defaults
    Mutex watchdog-callback: using_defaults
    Mutex proxy-balancer-shm: using_defaults
    Mutex rewrite-map: using_defaults
    Mutex ssl-stapling-refresh: using_defaults
    Mutex authdigest-client: using_defaults
    Mutex lua-ivm-shm: using_defaults
    Mutex ssl-stapling: using_defaults
    Mutex proxy: using_defaults
    Mutex authn-socache: using_defaults
    Mutex ssl-cache: using_defaults
    PidFile: "/var/run/httpd/httpd.pid"
    Define: DUMP_VHOSTS
    Define: DUMP_RUN_CFG
    User: name="apache" id=48
    Group: name="apache" id=48