はじめまして、福岡拠点の宮里です。
今後ともよろしくお願いします。
先日、アパッチのアクセスログをアーカイブして一定期間保存する作業を行いました。その一定期間を「過ぎた」「過ぎていない」の判定のテストに、アクセスログのダミーデータをたくさん使いたかったので、Rubyで動く「apache-loggen」というツールを使用してダミーデータを作成しました。
また使用する機会がありそうなので、備忘録として記事に残します。
前準備
local環境
CentOS6.9
まずは、Apache-2.4からインストールしていきました。
makeに必要なライブラリをyumでインストール。
1 |
yum -y install wget gcc gcc-c++ libtool openssl-devel pcre-devel expat-devel libxml2-devel |
次に、aprをwgetしたソースからインストール。
1 2 3 4 5 6 7 8 9 10 11 |
cd /適当なディレクトリ/ wget http://ftp.meisei-u.ac.jp/mirror/apache/dist/apr/apr-1.6.3.tar.gz tar xzvf apr-1.6.3.tar.gz cd apr-1.6.3 ./configure make && make install |
apr-utilもソースからインストール。
1 2 3 4 5 6 7 8 9 10 11 |
cd /適当なディレクトリ/ wget http://ftp.meisei-u.ac.jp/mirror/apache/dist/apr/apr-util-1.6.1.tar.gz tar xzvf apr-util-1.6.1.tar.gz cd apr-util-1.6.1 ./configure --with-apr=/適当なディレクトリ/apr-1.6.3/apr-1-config make && make install |
ライブラリが揃ったので、httpdをwgetしてソースからインストール。
1 2 3 4 5 6 7 8 9 10 11 |
cd /適当なディレクトリ/ wget https://archive.apache.org/dist/httpd/httpd-2.4.27.tar.gz tar zxvf httpd-2.4.27.tar.gz cd httpd-2.4.27 ./configure --with-included-apr=/適当なディレクトリ/apr-util-1.6.1/apu-1-config make && make install |
ここからいろいろ設定を記述して、無事アパッチの起動が確認できました。
ブラウザからlocalhostにアクセスすると、しっかりアクセスログが作成されています。
apache-loggenでダミーアクセスログの生成
「apache-loggen」を動かすのにRubyが必要なので、
またyumで必要なライブラリを追加インストールします。
1 |
yum -y install zlib-devel readline-devel libffi-devel |
Rubyの最新安定版をwgetしてソースからインストール。
1 2 3 4 5 6 7 8 9 10 11 |
cd /適当なディレクトリ/ wget https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.1.tar.gz tar zxvf ruby-2.5.1.tar.gz cd ruby-2.5.1 ./configure make && make install |
Rubyのインストールが完了したので、pathを通して、やっとgem install。
1 |
gem install apache-loggen |
「apache-loggen」が/usr/local/bin/へインストールされます。
必要であればpathを通します。
これで準備は完了です。
うっかりapache-loggenと叩くと、
ドキドキしました。
こうならないためにオプションでダミーデータの生成件数と、秒あたりの生成件数、必要であれば件数でローテート(区切り)も指定して、出力先を指定します。
1 |
apache-loggen --limit=10000 --rate=100 --progress /適当なディレクトリ/dummy_access_log |
あとは、一万件/1日のダミーログを30日分を生成するスクリプトで、
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
#!/bin/sh #タイムスタンプ変更用 DATE='Mon Jan 1 23:00:00 JST 2018' TIME=$(seq 1 30) for i in ${TIME[@]}; do if [ $i -lt 10 ]; then apache-loggen --limit=10000 --rate=100 --progress /適当なディレクトリ/access_log.2018050$i #タイムスタンプを変更 touch -d $DATE /適当なディレクトリ/access_log.2018050$i else apache-loggen --limit=10000 --rate=100 --progress /適当なディレクトリ/access_log.201805$i #タイムスタンプを変更 touch -d $DATE /適当なディレクトリ/access_log.201805$i fi done |
ダミーデータがたくさん生成されてほくほくです。
ありがとうございました。