Akamai DataStream2を利用してLinode Object Storageにログを収集、Splunkでログを確認する

# 今回の構成

Akamai DataStream2はAkamaiのエッジ プラットフォームで配信するアクセスログとセキュリティログを収集して、ほぼリアルタイムでデータの宛先にログをストリーミングするサービスです。
今回はDataStream2にてLinode Object Storageへログを収集し、LinodeのインスタンスにSplunkを構築して、ログを確認してみました。

<img width="1100" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/dba11156-73fd-7ba3-03f0-d8654940b10e.png">

:::note warn
執筆時点でDataStream2の宛先としてLinode Object Storageの表示はすべてのAkamaiアカウントで有効にはなっていません。
また、利用に関しては一部機能に制限があります、詳細はAkamaiの営業、技術担当者までご連絡ください。
:::

**DataStream2の詳細**

https://techdocs.akamai.com/datastream2/docs

対応しているログストリーミング先

- S3
- Azure Storage
- custom HTTPS endpoint
- Datadog
- Elasticsearch
- Google Cloud Storage
- Loggly
- New Relic
- Oracle Cloud
- Splunk
- Sumo Logic
- Linode

**Linodeとは**

https://qiita.com/isss802/items/5313c7a6da1d9ed50a38



## Linode Object Storageの作成

Linodeオブジェクトストレージはグローバルに利用可能なS3互換ストレージソリューションです。
データ量は250GBから50TBまで拡張することができ、オブジェクトはサーバー間でレプリケートされるため、サーバーのひとつがオフラインになっても常にアクセス可能です。
インンバウンド転送は無料、アウトバウンドは1TBまでの転送が価格に含まれています。


Linode Object Storageを新規作成します。
Linodeのコンソールから Object Storage > Create Bucket を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/0efb9b82-4872-e0a2-45c7-c0f6f4729c88.png)

Bucket Nameと作成するリージョンを選択します。
今回はシンガポールリージョンにて作成しています。

<img width="600" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/72246e49-9942-fde8-9f19-9d980a1780c5.png">

Bucket Nameと選択したリージョンは控えておきます。

## Object StorageのAccess Keyを発行

Object Storage > Access Keys > Create Access Key を選択し、アクセスキーを発行します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/4c19b55b-139d-db25-5d19-af5ab45539e8.png)

作成したAccess KeyとSecret Keyを控えておきます。

## DataStream2の設定

DataStream2の設定に関しては、以下のドキュメントを参考に実施します。

https://techdocs.akamai.com/datastream2/docs/stream-linode

ACC (Akamai Control Center) のメニューからDataStreamを選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/37439ba2-7231-47c1-adb5-40777279f647.png)

:::note warn
DataStreamがグレーアウトもしくはメニューに表示されていない場合には、契約を追加する必要があります。
追加方法が不明の場合、Akamaiの営業、技術担当者までご連絡ください。
:::

新規作成するため、Create streamを選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/3866ba88-68e5-916b-5263-74b4ee0c3737.png)

DataStream2でログを収集したい配信Propertyを選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/49be0b63-b638-41ee-b0a8-939ed59ba43c.png)

DataStream2で収集したいログの種類を選択します。今回はすべて選択しています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/106ec71c-c4b1-63c2-5ffc-c38303f69cfa.png)

Linode Object Storageに接続するための情報を記載します。

Destination : Linode
Display Name : 任意の設置名
Bucket : Linode Object StorageのBucket名
Cluster ID : Region-ID
Access key ID : Linodeで発行したAccess key
Secret access key : Linodeで発行したSecret key

各リージョンのRegion IDは[**こちら**](https://www.linode.com/docs/products/storage/object-storage/#availability)から確認できます。



![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/2b8b0029-75c3-56ae-4e59-1dcf2c9f13b3.png)

Validateが問題なく完了したら、Nextを選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/b0a13cb1-043c-b402-07dc-fde4fa683421.png)

設定内容を確認し、Saveします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/4f78ddea-02b6-63b9-1fa1-da00678217fc.png)

## Akamai Propertyの設定

ACC (Akamai Control Center) からPropertiesを選択し、DataStream2を設定するPropertyを選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/3b265045-06b0-3245-846c-e9a9d7903252.png)

配信設定内にDataStream2の設定を追加するため、Add Behaviorを選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/e590eb0b-b385-59b0-fb72-cc8b9da83d6f.png)

DataStreamのBehaviorを追加します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/0c885e83-8d2f-7233-6979-cb2ea8d449b6.png)

追加したBehaviorの設定をします。

Stream version : DataStream2
Enable : on
Stream names : 先程作成したDataStream2の名前を選択

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/07a0d630-c439-e583-c2ca-35b2ec0685ff.png)

配信設定をStagingとProductionに展開して設定は完了です。

## Linodeのインスタンスを起動

Linodes > Create Linode からインスタンスを作成します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/82276096-18b5-765b-69b4-b7414a6d014e.png)

作成したインスタンスのIPアドレスをコピーします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/97801a98-db3e-cef9-0d05-0a800fb6a0c6.png)


## Linode Object Storageをサーバーにマウントする

作成したサーバーにs3fs/goofys/rcloneなどを利用してLinode Object Storageをサーバーにマウントします。

インストール、マウント方法については以下を参照ください。

https://qiita.com/isss802/items/eb9197965128986839af

https://qiita.com/isss802/items/afad62f0954635a61531


今回はrcloneを利用して、Linode Object Storageをマウントしています。

```
root@localhost:~# df -h
Filesystem                                   Size  Used Avail Use% Mounted on
linode:test-datastream-ap-south-1  1.0P     0  1.0P   0% /mnt/data
```

## Splunk EnterpriseをLinodeで構築

Splunk公式サイトからアカウントを作成し、Splunk Enterpriseを作成したインスタンスにインストールします。

https://www.splunk.com/ja_jp/download/splunk-enterprise.html

インストールが完了したら、Webブラウザから管理コンソールにアクセスします。

`http://[作成したインスタンスのIPアドレス]:8000/`

メニューからFind More Appsを選択します。

<img width="400" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/09b3b7c1-9ebe-0607-baa2-2cca51a44888.png">

Akamai Data Stream Addonをインストールします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/43e0c97c-c4e9-62cd-e35c-96bcaef5564a.png)

Settings > Data Inputs > Files & Directoriesを選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/d9d753aa-0285-75a6-b7b4-f1a305064263.png)

New Local File & Directory を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/17ff10c1-8911-3868-2473-2ba3ac437ffb.png)

Linode Object Storageをマウントしたディレクトリを指定します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/075ef47a-936c-48db-5cd1-996a4f026658.png)

Source typeをAkamai DataStreamに設定します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/d164c70e-ddbc-c291-2e14-ef1836018ce3.png)

設定内容が問題ないことを確認し、作成します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/b63cbf1c-6e78-8981-3c98-fbe90219ecd4.png)

Start Searching を選択して、ログを確認します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/4ca1ceee-9425-5232-80db-49644161d882.png)

ダッシュボードでログが表示されていることを確認します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/241842d3-e622-66e6-f5b5-2203403827c3.png)

以上で構築は完了です。


# まとめ

Akamai DataStream2 と Linode を活用することでAkamai CDNのログを収集することができました。
Splunkなどのソリューションを利用することにより、収集したデータを加工し、抽出し、お好みの形で可視化することができます。
Linodeのストレージやインスタンスの費用は低価格であるため、大きな費用をかけることなくログの確認も行うことができるようになります。

# 関連記事

アカマイ・テクノロジーズ合同会社のQiitaではLinode関連など開発者向けの記事を記載しております。

https://qiita.com/organizations/Akamai