Skip to content

Commit f281528

Browse files
committed
add document
1 parent fe037b3 commit f281528

2 files changed

Lines changed: 139 additions & 16 deletions

File tree

Lines changed: 131 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,131 @@
1+
# クローラリストの変更
2+
3+
## 前提条件
4+
5+
従来のJAIRO Cloudクローラリスト(https://bitbucket.org/niijp/jairo-crawler-list)を
6+
COUNTER Robots(https://github.com/atmire/COUNTER-Robots/tree/master)のような正規表現を含むリストに変更する。
7+
8+
IPアドレスリストは以下の様に正規表現で記述する。
9+
10+
```
11+
^1\.1\.1\.1$
12+
^11\.11\.11\.11$
13+
```
14+
15+
新しいリストのURLは現状のリストとは異なるものと想定する。
16+
17+
以下手順では旧クローラリストを以下とする。
18+
19+
https://bitbucket.org/niijp/jairo-crawler-list/raw/master/JAIRO_Crawler-List_ip_blacklist.txt
20+
https://bitbucket.org/niijp/jairo-crawler-list/raw/master/JAIRO_Crawler-List_useragent.txt
21+
22+
23+
また、新クローラリストを以下とする。
24+
25+
https://bitbucket.org/niijp/jairo-crawler-list/raw/master/JAIRO_Crawler-List_ip_blacklist_new.txt
26+
https://bitbucket.org/niijp/jairo-crawler-list/raw/master/JAIRO_Crawler-List_useragent_new.txt
27+
28+
また、RedisキーのTTLは 86400 秒とする。
29+
30+
## 事前作業
31+
32+
### Redisに事前にキーを設定する
33+
34+
新旧の環境がクローラリストを参照できるようにする。
35+
36+
まずはじめに、redisに新クローラリストの値を設定する。
37+
38+
値は正規表現をパイプ(|)でつなぎ合わせた文字列となる。
39+
40+
具体的なイメージとしては、以下のような正規表現があった場合、
41+
42+
```
43+
^1\.1\.1\.1$
44+
^11\.11\.11\.11$
45+
```
46+
47+
以下のような文字列を作成する。
48+
49+
```
50+
^1\.1\.1\.1$|^11\.11\.11\.11$
51+
```
52+
53+
登録のイメージは以下の通りとなる。
54+
55+
```
56+
SET "https://bitbucket.org/niijp/jairo-crawler-list/raw/master/JAIRO_Crawler-List_ip_blacklist_new.txt" "^1\.1\.1\.1$|^11\.11\.11\.11$"
57+
SET "https://bitbucket.org/niijp/jairo-crawler-list/raw/master/JAIRO_Crawler-List_useragent_new.txt" "bot|googlebot"
58+
```
59+
60+
また、あわせてTTLも設定する。
61+
62+
```
63+
EXPIRE "https://bitbucket.org/niijp/jairo-crawler-list/raw/master/JAIRO_Crawler-List_ip_blacklist_new.txt" 86400
64+
EXPIRE "https://bitbucket.org/niijp/jairo-crawler-list/raw/master/JAIRO_Crawler-List_useragent_new.txt" 86400
65+
```
66+
67+
最後に旧クローラリストのTTLを延長する。
68+
69+
```
70+
EXPIRE "https://bitbucket.org/niijp/jairo-crawler-list/raw/master/JAIRO_Crawler-List_ip_blacklist.txt" 86400
71+
EXPIRE "https://bitbucket.org/niijp/jairo-crawler-list/raw/master/JAIRO_Crawler-List_useragent.txt" 86400
72+
```
73+
74+
## 切り替え作業
75+
76+
77+
### 設定を変更する
78+
79+
instance.cfg に以下設定を追加する。
80+
81+
```
82+
WEKO_ADMIN_USE_REGEX_IN_CRAWLER_LIST = True
83+
```
84+
85+
### 再起動を行う
86+
87+
88+
### クローラリストを新しいものに変更する
89+
90+
管理画面(/admin/loganalysissetting/)またはデータベースを直接書き換える。
91+
92+
93+
データベース調節書き換える場合は、以下クエリを参考とする。
94+
95+
```
96+
UPDATE loganalysis_restricted_crawler_list SET list_url='https://bitbucket.org/niijp/jairo-crawler-list/raw/master/JAIRO_Crawler-List_ip_blacklist_new.txt' WHERE id = 1;
97+
UPDATE loganalysis_restricted_crawler_list SET list_url='https://bitbucket.org/niijp/jairo-crawler-list/raw/master/JAIRO_Crawler-List_useragent_new.txt' WHERE id = 2;
98+
```
99+
100+
## 検証
101+
102+
ボットによるアイテムアクセスリクエストを再現する。
103+
104+
```
105+
curl -k -I -H "User-Agent: alexa" "https://localhost/records/2000001"
106+
```
107+
108+
イベントキューを処理する。
109+
110+
111+
```
112+
invenio stats events process
113+
```
114+
115+
elasticsearch の```-events-stats-record-view```インデックスのドキュメントを確認し、
116+
当該リクエストのis_restrictedがtrueとなっていることを確認する。
117+
118+
クローラリストおよびIP除外リストに該当するリクエストは、
119+
is_restrictedがtrueとなる。
120+
121+
## 事後処理
122+
123+
旧クローラリストを参照する機関がなくなったら、旧クローラリストを削除する。
124+
125+
```
126+
DEL "https://bitbucket.org/niijp/jairo-crawler-list/raw/master/JAIRO_Crawler-List_ip_blacklist.txt"
127+
DEL "https://bitbucket.org/niijp/jairo-crawler-list/raw/master/JAIRO_Crawler-List_useragent.txt"
128+
```
129+
130+
131+

docs/spec/base/admin/ADMIN_14_10.md

Lines changed: 8 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
1-
### ログ解析
1+
# ログ解析
22

3-
- > 目的・用途
3+
## 目的・用途
44

55
本機能は、リポジトリ管理者として、利用統計の集計除外とするIPアドレスとユーザエージェントを設定できる機能である
66

7-
- > 利用方法
7+
## 利用方法
88

99
【Administration \> 設定(Setting) \> ログ解析(Log Analysis)画面】にて操作を行う
1010

11-
- > 利用可能なロール
11+
## 利用可能なロール
1212

1313
<table>
1414
<thead>
@@ -39,9 +39,7 @@
3939
</tbody>
4040
</table>
4141

42-
- > 機能内容
43-
44-
<!-- end list -->
42+
## 機能内容
4543

4644
- 利用統計の集計除外とするIPアドレスとユーザエージェントを設定する
4745

@@ -125,21 +123,15 @@
125123

126124
- 画面にてIPアドレスを削除、または共用クローラーリストを有効から無効に変更しても、一度除外されたアクセスログは集計されない
127125

128-
<!-- end list -->
129-
130-
- > 関連モジュール
131-
132-
<!-- end list -->
126+
## 関連モジュール
133127

134128
- > invenio-stats:register\_events 関数にて、各インデックスに対する処理クラス、前処理を設定している
135129
136130
- > weko-admin:画面表示と集計除外処理を定義する
137131
138132
- > weko-redis:集計除外処理中で、Redisとの接続を管理する
139133
140-
<!-- end list -->
141-
142-
- > 処理概要
134+
## 処理概要
143135

144136
1\. 画面表示
145137

@@ -298,7 +290,7 @@
298290

299291
<!-- end list -->
300292

301-
- > 更新履歴
293+
## 更新履歴
302294

303295
<table>
304296
<thead>

0 commit comments

Comments
 (0)