# ThousandEyesのエージェントを作りたい！

# ThousandEyes のエージェントを作りたい！
今流行りの **ThousandEyes** のエージェントをお勉強がてら作ってみたい！ので作ってみます。
今回はRaspberry Piと家のルータを有線で接続する方法です。
公式のブログを読みながらやれば問題なくできましたが、備忘をかねて自分でやった方法を書き留めておこうと思います。
※Raspberry Piを無線で接続したい場合は、別の方法となります。


# ThousandEyes とは？
ThousandEyesとは、インターネットとの通信経路と性能・品質を可視化できる製品です。
様々な場所にエージェントと呼ばれる監視ポイントを設置し、ネットワークの性能とパフォーマンスを検証・可視化します。
普通では見えない、インターネット上の通信性能や負荷状況を可視化できるのがメリットです。
インターネット経由でクラウド上のサービスを利用している場合、その都度通信の状況を可視化できるため、通信障害にいち早く気づくことができます。

https://www.thousandeyes.com/ja/

# 環境
- Windows 10
- Raspberry Pi 4 ModelB（4GB RAM）
- microSDカード
- ThousandEyes アカウント
- Etcher

# エージェントのダウンロード
ThousandEyesのライセンス取得後、Dashboardsにログインします。
左側のメニューから、Cloud＆Enterprise Agents > Agent Settings の順に選択後、Enterprise Agentsタブであることを確認します。
その後、Add New Enterprise Agent を選択

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1953283/1d955cc7-098d-d502-6635-f213107c15d9.png)

イメージファイル一覧が出てきます。
今回はRaspberry Piをエージェントにするので、こちらをダウンロードします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1953283/e843a63c-42b5-6059-9da6-5515dc51c8bf.png)

# イメージの書き込み
ダウンロードが完了したら、microSDカードにイメージを書き込みます。
今回は[Etcher](https://www.balena.io/etcher/)を使いました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1953283/0d73e5de-ad64-efd8-df8c-81ac01b48d1d.png)

「Flash from file」を選択し、先ほどダウンロードしたエージェントイメージを選択します。
その後、書き込むドライブを選択し「Flash!」をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1953283/2d167193-fe68-a3a4-9c17-e55ed60d37fd.png)

書き込みが完了しました。
※"Flash Failed!" と表示されていますが、現状はなぜか問題なく動いてそうです。
　調査しつつ、エージェントの様子を見ようと思います。

# Raspberry Piとの接続
イメージの書き込みが完了したら、microSDをラズパイに差し込み、LANケーブルを接続します。
その後、電源ケーブルを接続します。
この時にモニターを一緒に接続していれば安心です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1953283/a7069fc1-7477-6b4a-8ae7-b95680e321ea.png)
モニターを接続し正常に起動できた場合、こんな画面になります。
①設定用URL（DHCP自動付与）：https://*IPaddress*/
②ユーザーネーム：*admin*
③パスワード（default）：*welcome*

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1953283/2b4e0287-5e5a-b79a-b938-c55fb3681570.png)
この時上位機器（ルータ等）でDHCPが設定されていない場合はIPアドレスが付与されないため、手動で設定する必要があります。
"dose not have an IP address assigned." と記載されていいるのが確認できます。
IPアドレスを手動で設定する場合は`N`を押下し、画面に沿って設定しましょう。

# エージェント初期設定
IPアドレス取得後、エージェントの初期設定を実施します。

1. パスワード変更
1. エージェントとアカウントの紐づけ
1. エージェントの設定


### 1. パスワード変更
上記で確認した設定用URLにwebブラウザでアクセスします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1953283/fe69cbe3-94ca-a8ff-daac-bff9807ed778.png)

パスワードを変更します。（数字+英大文字+英小文字+記号の混合で8文字以上）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1953283/a2b74d18-94d7-bb4b-852e-e16ddbef19f4.png)

旧パスワードと新パスワードを入力後、`Change Password`を押下すれば完了です。

### 2. エージェントとアカウントの紐づけ
Thousandeyesのアプリケーションに戻り、アカウントから発行されるトークンを取得します。
エージェントのイメージファイルダウンロード時同様に、Cloud＆Enterprise Agents > Agent Settings > Enterprise Agentsタブ > Add New Enterprise Agent を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1953283/7b2d959b-8470-a07f-ebb1-6eeb2e1bb44c.png)
最上部に`Account Group Token`が記載されているため、右側の`copy`を押下します。
その後、再度設定用URLにアクセスし、エージェントにアクセスします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1953283/39d770bc-8bf8-667a-72e7-3be7fa10aad6.png)
取得したTokenを入力し、`Seve Changes`を押下します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1953283/e8d5333a-427f-0374-76f4-965016eb2e0a.png)
製品のステータスと設定情報の自動チェックが走ります。
Appliance Status の Browserbot は無効でも問題なく動いてそうです。
仮想アプライアンスでは有効化されてるみたいなので、仮想サーバ上にエージェントを立てる場合は必要なのかも。

###3. エージェントの設定
Thousandeyesのアプリケーションに戻り、Cloud＆Enterprise Agents > Agent Settings の順に選択後、Enterprise Agentsタブを確認すると、エージェントが追加されていることが確認できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1953283/90f861fc-d6e0-780e-cfad-e2dc0e26634a.png)

エージェントを選択すると、設定変更ができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1953283/f9bfac2a-3269-f161-b521-11976122b92a.png)

- Agent Name：　ホスト名
- Countty：　設置している国
- Region/City：　設置している都市
- Tests：　疎通テストするルールの選択
- Enable agent notifications：エージェントの通知

灰色箇所は勝手に設定してくれました。もちろん手動で変更も可能です。
これで、エージェントの設定は完了です。

# テスト設定
折角なので、監視ルールを設定してみます。

左側メニューで Cloud＆Enterprise Agents > Agent Settings > Test の順に選択し、`Add New Test`を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1953283/fd9847c4-de1b-925c-2886-6181f23baabb.png)

テスト設定画面が出てきました。
今回は、QiitaのWebサーバ宛のテストを登録してみます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1953283/4b207d3e-4aef-c725-5e27-8ae7dff58ee2.png)

1. Layer
   テストの種類を選択します。今回はWebサーバ宛通信なので、`Web`を選択しました。
 
1. Test Type
    同じくwebサーバ宛てのテストなので、`HTTP Server`を選択しました。

1. Test Name 
    Thousandeyes上でテストを判別するための名前です。なんでもOK。
    入力しない場合は、ターゲットURL(4)がそのまま入ります。

1. URL
    ターゲットURLを入力します。

1. Interval
    テストの間隔を選択します。Bacic Configrationでは、1分～1時間間隔まで選択可能。

1. Agents
    テストを実施するエージェントを選択します。今回作ったエージェントに加え、世界各国のエージェントも選択可能。
    今回は作ったエージェントだけを選択します。

`Create New Test`を押下しすると、テスト登録完了です。
もっと細かく設定したい場合は、「Advanced Settings」で設定可能です。
`Run Once`を押下すると、この条件でのテストを1回実施できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1953283/88b76d97-7ca6-88c0-30b8-3b7652b212c1.png)
テストの登録が完了しました！かっこいーー！！！（なんかエラー出てるけど）
問題の有り無しがパッと見たときに分かりやすいのでいいですね。


# さいごに
インターネット上のアクセス状況が視覚的に確認できるの、いいですね。
オンラインゲームのサーバ宛てのテストとか追加しておくと公式発表よりも前に障害や不具合に気づくことができるのかな。
これからいろいろ試してみようと思います。

# 参考サイト
- [「ラズベリーパイ」へのEnterprise エージェントのインストール - ThousandEyes](https://blog.thousandeyes.jp/installing-an-enterprise-agent-on-a-raspberry-pi-device)
- [ラズパイ の OS イメージを焼くときは Etcher が 便利 ＆ UI カッコいい - 験なきものを思はずは](https://azriton.github.io/2017/11/12/%E3%83%A9%E3%82%BA%E3%83%91%E3%82%A4%E3%81%AEOS%E3%82%A4%E3%83%A1%E3%83%BC%E3%82%B8%E3%82%92%E7%84%BC%E3%81%8F%E3%81%A8%E3%81%8D%E3%81%AFEtcher%E3%81%8C%E4%BE%BF%E5%88%A9%EF%BC%86UI%E3%82%AB%E3%83%83%E3%82%B3%E3%81%84%E3%81%84/)
- [Enterpriseエージェントの設定方法（インストール完了後） - ThousandEyes](https://blog.thousandeyes.jp/configuring-enterprise-agent/)