GeoIP 자동 업데이트 구성


GeoIP 데이터베이스 파일을 이용하면 접근한
IP 주소의 국가, 도시 등의 정보를 얻을 수 있다. 먼저 이 파일을 다운로드 해보자.
또한, 갱신되는 파일을 
주기적으로 업데이트해 줄 필요가 있으므로 자동으로 업데이트 가능하도록 해보자.

GeoIP update 설치
geoipupdate 다운로드 링크에서 geoipupdate-3.1.1.tar.gz  파일을 다운로드하여 해당 경로에서 아래 명령들을 순차적으로 수행한다.

$ tar -zxvf geoipupdate-3.1.1.tar.gz
$ cd geoipupdate-3.1.1
$ ./configure
$ make
$ make install

명령 실행중 curl 이나 zlib이 설치되어 있지 않으면 에러가 발생한다. 해당 경우, 설치 후 명령을 다시 수행하면 된다.
# curl 설치
$ yum install curl-devel

# zlib 설치
$ yum install zlib-devel 

GeoIP.conf 설정
GeoIP.conf 파일에 계정 정보와 필요한 에디션을 설정한다.
유료 이용자에게는 GeoIP2와 GeoIP Legacy DB를 지원하고, 무료 이용자에게는 GeoLite2 DB만 지원한다. (유료 이용 라이센스 발급)

/usr/local/etc/GeoIP.conf

# Paid
AccountID YOUR_ACCOUNT_ID_HERE
LicenseKey YOUR_LICENSE_KEY_HERE
EditionIDs YOUR_EDITION_IDS_HERE
# Free
AccountID 0
LicenseKey 000000000000
EditionIDs GeoLite2-City GeoLite2-Country 

GeoIP update 실행

$ /usr/local/bin/geoipupdate 

위 명령을 수행하면 /usr/local/share/GeoIP 경로에 설정한 Edition이 생성된다.
예를 들어, EditionIDs GeoIP2-City 이면 GeoIP2-City.mmdb 파일이 생성된다.
(단, 방화벽을 사용하는 경우에는 DNS와 443 포트를 열어줘야 한다.)

실행 스크립트를 crontab에 설정하여 주기적으로 동작시키고 결과 값을 메일로 전송할 수 있다.
# top of crontab
MAILTO=mirotic91@tistory.com
2 22 * * 4 /usr/local/bin/geoipupdate2
# end of crontab

GeoIP 자동 업데이트
자동으로 업데이트 받는 shell을 간단히 작성했다. 실행하면 최신 GeoIP2-City.mmdb 파일을 원하는 경로로 이동시킨다.
배포 스크립트에 아래 shell 실행문을 추가해주면 최신 GeoIP를 유지할 수 있다.
#!/bin/bash
/usr/local/bin/geoipupdate
DOWNLOAD_DIR=/usr/local/share/GeoIP
TARGET_DIR=/DATA/GeoIP

mv -f $DOWNLOAD_DIR/GeoIP2-City.mmdb $TARGET_DIR/
chown -R tomcat:tomcat $TARGET_DIR

참고 링크 - https://dev.maxmind.com/geoip/geoipupdate/

'Development > Etc' 카테고리의 다른 글

ssh 접속 불가 현상 해결  (0) 2018.07.22

+ Recent posts