geoipupdateでReceived an unexpected HTTP status code of 401

Cronでgeoipupdateを1か月の1回くらい?実行している際、よくよくログを見てみるとアップデートできずにコケていたというもの。

原因はモジュールとしての
「geoipupdate」のバージョンと、「GeoLite2」のアカウント認証。
まぁエラーまんまの状況。

いつ更新されたのかは定かではないけど、昔はアカウントID「0」で認証キーを「000000000000」にしておけば認証が通っていたものが、それを許可しなくなった。

要するに提供元のmaxmindからすると、「GeoLite2のモジュール更新アカウント取得を実施しないと今後更新できませんよ」とのことらしい。

maxmind+geoLite2のアカウント取得

▲maxmindのPruduct->GeoLite2 Freeのページの下部にあるSIGN UP FOR GEOLITE2クリック
▲必要項目を全部埋めたりして同意して、続行
▲メールが届いた中に、「パスワードを設定する」っていうリンクがあるので選択してモダンなブラウザ開く

上記の画像のとおりできるのかどうかわからないけど、
私はこれでうまくログインできるようになった。

GeoLite2のキーコード発行

▲ログインしたあと、左カラムにある「My License Key」を選択
▲表示されたライセンスキーページ(はじめは空っぽのハズ)で、「Generate new license key」
▲ライセンスキーの概要にテキトーな名前を入れて、画像のようにgeoipupdateのバージョン選んで同意する。

この段階で、
自動更新に必要な情報が羅列されたテキストをダウンロードできる
はず。
ちなみに発行段階でライセンスキーコピーしておかないと、もう二度とコピーできない。(再発行しないといけなくなる)そんなに手間でもないけど、一日に発行できる数には限りがあるみたいなので注意。

Linux側の設定(apt)

まず、maxmind提供の「geoipupdate」モジュールを更新しないといけない。
ここ最近で急激にリビジョンが上がっているため、ある程度のバージョンに上げないと認証が通らないらしい。

更新を実施するために、maxmindのリポジトリを追加。

sudo add-apt-repository ppa:maxmind/ppa
sudo apt-get update

上記を実施した状態で「sudo apt-get install geoipupdate」でもすると、おそらくver 4.5以上のものがインストールされるはず。(少なくとも3.2以上?必要)

以前のgeoipupdateの設定ファイルがどこかに設置されていれば、アップデート時に消していいかどうか聞かれる。id:0 key:0000000000000のやつはもう消し飛ばしていいけど、ほかの有料プランのやつ持ってる場合はバックアップ取っておくこと。

アップデート完了したら、geoipupdateの設定(デフォルトは/etc/GeoIP.conf)を取得したライセンスで書き換える。(特別な設定なければ、さっきダウンロードした内容をベタ貼りでOK)

sudo vi /etc/GeoIP.conf
▲viで/etc/GeoIP.confを編集したやつ

この状態で上書き保存したあと、
通常のgeoipupdateコマンドが通ればOK。

sudo geoipupdate

この状態でまだ「Invalid License Key」みたいなエラーが出る場合は、

  1. 設定ファイルが別にある
  2. ライセンス貼り付けミス
  3. geoipupdateの古いバージョンが共存している

のどれかである可能性が高い。

ここまでうまくいっていれば、あとはCronなどを公式ドキュメントからパクってきてそのまま時間設定すれば更新可能。
でもこれメモってないと絶対忘れるよなぁ・・・。

コメントを残す