Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Follow the procedure below in order to configure WSO2 API Manager to receive geolocation based alerts.

Note

Note that we are using MySQL in this documentation for configuring the GEO_LOCATION_DATA database.

  1. Download the Geolocation data from here.
  2. Unzip the file you downloaded.
  3. Create the GEO_LOCATION_DATA database by executing one of the scripts in the Geolocation Data/dbscripts directory. In this example, mysql.sql is executed.

    Tip

    This can be done using the MySQL Workbench.

    For detailed instructions to run the database script, see MySQL Documentation - The Workbench Scripting Shell.

  4. Restore data to the BLOCKS and LOCATION tables by importing data from  BLOCKS.csv and LOCATION.csv in .Geolocation Data/data directory of the extracted zip using below commands.

    • Importing Geolocation Data/data/BLOCKS.csv
      mysqlimport -u root -p --ignore-lines=2 --fields-trminated-by=, --fields-optionally-enclosed-by='"' --local GEO_LOCATION_DATA <path_to_folder_location>/GeolocationData/data/LOCATION.csv

    • Importing Geolocation Data/data/LOCATION.csv
      mysqlimport -u root -p --ignore-lines=2 --fields-terminated-by=, --fields-optionally-enclosed-by='"' --local GEO_LOCATION_DATA <Extracted_location>/GeolocationData/data/BLOCKS.csv

      Tip

      For more information, see MySQL Documentation - Data Export and Import

  5. Check whether your imported dataset is properly working using executing following query in MySQL Command Line.

    SELECT loc.country_name,loc.subdivision_1_name FROM BLOCKS block , LOCATION loc WHERE block.network_blocks = '<Network_part_of_ipv4>' AND
     <Long_value_of_publilc_IP> BETWEEN block.network AND block.broadcast AND block.geoname_id=loc.geoname_id;

    Example query

    SELECT loc.country_name,loc.subdivision_1_name FROM BLOCKS block , LOCATION loc WHERE block.network_blocks = '221.192' AND 3720398641 
    BETWEEN block.network AND block.broadcast AND block.geoname_id=loc.geoname_id;
    TipFor more information, see MySQL Documentation - Data Export and Import


  6. Download a JDBC provider depending on the database you are using (MySQL in this example), and copy it to the <APIM_ANALYTICS_HOME>/repository/components/lib directory.

  7. Configure the datasource in the <DAS_HOME>/repository/conf/datasources/geolocation-datasources.xml file as follows.

    Code Block
    languagexml
    <datasources-configuration xmlns:svns="http://org.wso2.securevault/configuration">
        <datasources>
            <datasource>
                <name>GEO_LOCATION_DATA</name>
                <description>The datasource used for Geo location database</description>
                <jndiConfig>
                    <name>jdbc/GEO_LOCATION_DATA</name>
                </jndiConfig>
                <definition type="RDBMS">
                    <configuration>
                        <url>jdbc:mysql://localhost:3306/GEO_LOCATION_DATA</url>
                        <username>wso2carbon</username>
                        <password>wso2carbon</password>
                        <driverClassName>com.mysql.jdbc.Driver</driverClassName>
                        <maxActive>50</maxActive>
                        <maxWait>60000</maxWait>
                        <testOnBorrow>true</testOnBorrow>
                        <validationQuery>SELECT 1</validationQuery>
                        <validationInterval>30000</validationInterval>
                        <defaultAutoCommit>false</defaultAutoCommit>
                    </configuration>
                </definition>
            </datasource>
        </datasources>
    </datasources-configuration>


  8. Log into the WSO2 API Manager Admin Portal using the https://localhost:<SERVER_PORT>/admin URL.
  9. Under Settings => Analytics, click Configure Alerts to open the Alert Configurations page.
  10. In the Geo Location Configurations section, click Activate for APIM_GEO_LOCATION_STATS. This opens the Edit Configuration page with the default configuration for geolocation statistics as shown below.

    Modify parameter values as required.
  11. Click Save Configuration.

...