GeoIP2 system check like?


#1

On fresh installs of 3.5.0 there’s a system check phase but is there any standalone check to see whether the server’s GeoIP2 setup is compatible ? I have Nginx with GeoIP2 nginx module compiled and fastcgi_param passed GeoIP2 variables to PHP-FPM setup as below and wondering if that would work ?

both legacy GeoIP and GeoIP2 nginx modules and databases are in play

fastcgi_param GEOIP_COUNTRY_CODE $geoip_country_code;
fastcgi_param GEOIP_COUNTRY_CODE3 $geoip_country_code3;
fastcgi_param GEOIP_COUNTRY_NAME $geoip_country_name;
fastcgi_param GEOIP_CITY_COUNTRY_CODE $geoip_city_country_code;
fastcgi_param GEOIP_CITY_COUNTRY_CODE3 $geoip_city_country_code3;
fastcgi_param GEOIP_CITY_COUNTRY_NAME $geoip_city_country_name;
fastcgi_param GEOIP_REGION $geoip_region;
fastcgi_param GEOIP_CITY $geoip_city;
fastcgi_param GEOIP_POSTAL_CODE $geoip_postal_code;
fastcgi_param GEOIP_CITY_CONTINENT_CODE $geoip_city_continent_code;
fastcgi_param GEOIP_LATITUDE $geoip_latitude;
fastcgi_param GEOIP_LONGITUDE $geoip_longitude;

fastcgi_param GEOIP2_CITY $geoip2_data_city_name;
fastcgi_param GEOIP2_CITY_GEONAMEID $geoip2_data_city_geonameid;
fastcgi_param GEOIP2_CONTINENT_CODE $geoip2_data_continent_code;
fastcgi_param GEOIP2_CONTINENT_GEONAMEID $geoip2_data_continent_geonameid;
fastcgi_param GEOIP2_CONTINENT_NAME $geoip2_data_continent_name;
fastcgi_param GEOIP2_COUNTRY_GEONAMEID $geoip2_data_country_geonameid;
fastcgi_param GEOIP2_COUNTRY_ISO_CODE $geoip2_data_country_iso;
fastcgi_param GEOIP2_COUNTRY $geoip2_data_country_name;
fastcgi_param GEOIP2_COUNTRY_IN_EU $geoip2_data_country_is_eu;
fastcgi_param GEOIP2_LOCATION_ACCURACY_RADIUS $geoip2_data_location_accuracyradius;
fastcgi_param GEOIP2_LATITUDE $geoip2_data_location_latitude;
fastcgi_param GEOIP2_LONGITUDE $geoip2_data_location_longitude;
fastcgi_param GEOIP2_LOCATION_METROCODE $geoip2_data_location_metrocode;
fastcgi_param GEOIP2_LOCATION_TIMEZONE $geoip2_data_location_timezone;
fastcgi_param GEOIP2_POSTAL_CODE $geoip2_data_postal_code;
fastcgi_param GEOIP2_REGISTERED_COUNTRY_GEONAMEID $geoip2_data_rcountry_geonameid;
fastcgi_param GEOIP2_REGISTERED_COUNTRY_ISO $geoip2_data_rcountry_iso;
fastcgi_param GEOIP2_REGISTERED_COUNTRY_NAME $geoip2_data_rcountry_name;
fastcgi_param GEOIP2_REGISTERED_COUNTRY_IN_EU $geoip2_data_rcountry_is_eu;
fastcgi_param GEOIP2_REGION_GEONAMEID $geoip2_data_region_geonameid;
fastcgi_param GEOIP2_REGION $geoip2_data_region_iso;
fastcgi_param GEOIP2_REGION_NAME $geoip2_data_region_name;

Nginx build on CentOS 7.5 64bit

nginx -V
nginx version: nginx/1.15.0
built by gcc 7.2.1 20170829 (Red Hat 7.2.1-1) (GCC)
built with OpenSSL 1.1.1-pre6 (beta) 1 May 2018
TLS SNI support enabled
configure arguments: --with-ld-opt=’-ljemalloc -Wl,-z,relro -Wl,-rpath,/usr/local/lib’ --with-cc-opt=’-m64 -march=native -g -O3 -fstack-protector-strong -flto --param=ssp-buffer-size=4 -Wformat -Werror=format-security -Wimplicit-fallthrough=0 -fcode-hoisting -Wp,-D_FORTIFY_SOURCE=2 -gsplit-dwarf’ --sbin-path=/usr/local/sbin/nginx --conf-path=/usr/local/nginx/conf/nginx.conf --with-compat --with-http_stub_status_module --with-http_secure_link_module --with-libatomic --with-http_gzip_static_module --add-dynamic-module=…/ngx_http_geoip2_module --with-http_sub_module --with-http_addition_module --with-http_image_filter_module=dynamic --with-http_geoip_module --with-stream_geoip_module --with-stream_realip_module --with-stream_ssl_preread_module --with-threads --with-stream=dynamic --with-stream_ssl_module --with-http_realip_module --add-dynamic-module=…/ngx-fancyindex-0.4.2 --add-module=…/ngx_cache_purge-2.4.2 --add-module=…/ngx_devel_kit-0.3.0 --add-dynamic-module=…/set-misc-nginx-module-0.32 --add-dynamic-module=…/echo-nginx-module-0.61 --add-module=…/redis2-nginx-module-0.15 --add-module=…/ngx_http_redis-0.3.7 --add-module=…/memc-nginx-module-0.18 --add-module=…/srcache-nginx-module-0.31 --add-dynamic-module=…/headers-more-nginx-module-0.33 --with-pcre=…/pcre-8.42 --with-pcre-jit --with-zlib=…/zlib-cloudflare-1.3.0 --with-http_ssl_module --with-http_v2_module --with-openssl=…/openssl-1.1.1-pre6 --with-openssl-opt=‘enable-ec_nistp_64_gcc_128 no-tls1_3’


#2

FYI I am using Nginx GeoIP2 module ngx_http_geoip2_module/README.md at master · leev/ngx_http_geoip2_module · GitHub

but even if i setup custom variables the GeoIP2 HTTP server checkbox is greyed out ?

Guess it’s better to just use Matomo’s native GeoIP2 database setup !


(Stefan Giehl) #3

The implementation currently checks for the server variables set by the apache module to check if it’s available. Try setting MMDB_ADDR to any value. That should activate the server module within matomo.


(Stefan Giehl) #4

@eva2000 I’ve created a PR to improve the server module implementation, so it’s easier to set up with next version: Check configured variables for availability in GeoIP2 server module by sgiehl · Pull Request #12892 · matomo-org/matomo · GitHub