実運用を想定したAlibaba CloudのLogService構成を考えてみる~ログ検索編④~

f:id:sbc_ali99:20190917140009p:plain

こんにちは! エンジニアのYです。

今回は、Alibaba Cloudの【LogService】の検索編④を投稿します。
前回の記事では、LogServiceにて収集したログのダウンロードを実施しました。

今回は、ダッシュボードの作成を交えて様々なグラフ作成をご紹介していきます。

以下、目次です。

ログ検索画面までの遷移

まずは、以下の手順でログの閲覧画面まで遷移します。

  1. Alibaba Cloudのコンソール画面へログインし、【LogService】画面を開きます。
    f:id:sbc_ali99:20190724150628p:plain

  2. 確認対象のProjectをクリックします。
    ここでは、webserver-projectをクリックします。
    f:id:sbc_ali99:20190724150645p:plain

  3. Logstoreの一覧が表示されます。
    この中から確認対象のLogstoreを選択します。
    ここでは、web1-logstoreログ使用モード配下にある検索をクリックします。
    f:id:sbc_ali99:20190724151054p:plain

  4. 収集したログが表示されます。
    f:id:sbc_ali99:20190830162906p:plain

次項で、ダッシュボードの作成を実施します。

ダッシュボードの作成

グラフを作成後、ダッシュボード化します。
検索対象のログは、Logstoreweb1-logstore にて収集している全てのサーバの中の/var/log/httpd/access_logを対象とします。

以下、手順です。

横棒グラフを作成し、ダッシュボード化

横棒グラフを作成し、ダッシュボード化します。
ここでは、アクセス元の上位10をグラフ化します。

横棒グラフの作成(アクセス元上位10を横棒グラフ化)

以下、手順です。

  1. ログの検索期間をグラフ化可能な期間に設定します。
    ここでは、30日(相対)に設定します。

  2. ログの集計を実施します。
    ここでは、下記のクエリを入力後検索と分析をクリック、もしくはエンターを押下します。
    クエリが正常に発行されるとグラフ画面へ遷移します。

    * and __tag__:__path__ : /var/log/httpd/access_log | with_pack_meta | select "remote_addr" , pv, pv *1.0/sum(pv) over() as percentage from( select count(*) as pv , "remote_addr" from (select "remote_addr" from log) group by "remote_addr" order by pv desc) order by pv desc limit 10
    ※GUIを使用したクエリ発行は、こちらの記事の【ログの集計】をご参照下さい。
  3. グラフ画面後、横棒グラフを選択します。

  4. グラフが表示されます。

  5. プロパティを選択すると、グラフの調整が可能です。
    ここでは、デフォルト値のまま作成します。

  6. ダッシュボードに追加を選択します。
    f:id:sbc_ali99:20190917125527p:plain

グラフをダッシュボードへ追加

前項に引き続き、作業を実施します。

  1. ダッシュボードに追加の画面で、新規ダッシュボードを作成を選択します。
    ダッシュボード名チャート名は任意の値を設定します。 ここでは、下記の通り設定します。
    ダッシュボード名:test-dashboard
    チャート名:アクセス元上位10

  2. ダッシュボードに追加の画面で、新規ダッシュボードを作成を選択します。
    f:id:sbc_ali99:20190919142829p:plain

  3. 左ペインに作成したダッシュボード名が表示されたらクリックします。
    f:id:sbc_ali99:20190917125558p:plain

  4. ダッシュボードが表示されます。
    f:id:sbc_ali99:20190919142940p:plain

既存ダッシュボードへのグラフ追加

前項までは、新規ダッシュボードの作成方法でした。
ここでは、作成済みのダッシュボードへグラフを追加する際の手順について、記載します。

  1. 作成済みのダッシュボードにグラフを追加したい場合は、 項番6にて既存のダッシュボードに追加を選択し、ダッシュボードを選択します。
    以降の手順は、ダッシュボード作成と同様です。
    f:id:sbc_ali99:20190917125802p:plain

その他のグラフ作成およびダッシュボードへの追加

作成したダッシュボードへグラフを追加していきます。
ここでは、下記のグラフをダッシュボードへ追加します。

⦿折れ線グラフ(PV数の遷移を折れ線グラフ化)
⦿円グラフ(閲覧上位5ページを円グラフ化)
⦿ヒートマップ(アクセス元をヒートマップ化)

折れ線グラフの作成(PV数の遷移を折れ線グラフ化)

LogServiceの日付と時間の関数を使用し、PV数を日毎に表示させます。
ここでは、/var/log/httpd/access_logstatus200となっているログを日毎に集計し、折れ線グラフ化します。

以下、グラフ作成手順です。

  1. ログの検索期間をグラフ化可能な期間に設定します。
    ここでは、30日(相対)に設定します。

  2. ログの集計を実施します。
    ここでは、下記のクエリを入力後検索と分析をクリック、もしくはエンターを押下します。
    クエリが正常に発行されるとグラフ画面へ遷移します。

    * and status: 200 | select date_format(date_trunc('day',__time__), '%Y/%m/%d') as date, count(*) as PV group by date order by date
     
  3. グラフの中から折れ線グラフを選択します。

  4. プロパティタブにて必要に応じてグラフを編集します。

  5. 折れ線グラフにて、PV数の遷移を可視化することができます。

  6. ダッシュボードに追加を選択後、既存のダッシュボードに追加します。
    ※ダッシュボードの追加手順は、本記事内の既存ダッシュボードへのグラフ追加をご参照下さい。
    f:id:sbc_ali99:20190917134840p:plain

円グラフの作成(閲覧上位5ページを円グラフ化)

円グラフを作成し、ダッシュボード化します。
ここでは、閲覧頻度の多いWEBページの上位5をグラフ化します。

以下、グラフ作成手順です。

  1. ログの検索期間をグラフ化可能な期間に設定します。
    ここでは、30日(相対)に設定します。

  2. ログの検索を実施します。

    * and status: 200 | select "request_uri" , pv, pv *1.0/sum(pv) over() as percentage from( select count(*) as pv , "request_uri" from (select "request_uri" from log) group by "request_uri" order by pv desc) order by pv desc limit 5
     
  3. グラフの中から円グラフを選択します。

  4. プロパティタブにて必要に応じてグラフを編集します。

  5. 円グラフにて、閲覧上位5ページを可視化することができます。

  6. ダッシュボードに追加を選択後、既存のダッシュボードに追加します。
    ※ダッシュボードの追加手順は、本記事内の既存ダッシュボードへのグラフ追加をご参照下さい。
    f:id:sbc_ali99:20190917134859p:plain

ヒートマップの作成(アクセス元をヒートマップ化)

LogServiceのIP機能を使用し、ヒートマップを表示させます。
IP機能を使用することで、グローバルIPアドレスが属する国、地域、都市を抽出することができます。
ここでは、ヒートマップとして活用します。

以下、グラフ作成手順です。

  1. ログの検索期間をグラフ化可能な期間に設定します。
    ここでは、30日(相対)に設定します。

  2. ログの集計を実施します。
    ここでは、下記のクエリを入力後検索と分析をクリック、もしくはエンターを押下します。
    クエリが正常に発行されるとグラフ画面へ遷移します。

    * and __tag__:__path__ : /var/log/httpd/access_log | SELECT ip_to_geo( remote_addr ) AS geo, COUNT(*) as count GROUP BY geo ORDER BY count DESC LIMIT 10
     
  3. グラフの中からヒートマップを選択します。

  4. 経度/緯度は検索クエリの中で定義しているgeoを選択します。 ここでは、クエリの中のremote_addrを検索対象とします。

  5. 数値カラムcountを使用します。

  6. ヒートマップにて、アクセス元を可視化することができます。
    【ヒートマップ】【電子地図】のように経度/緯度の特定を要するものについては、
     中国・日本を拠点としたグローバルIPアドレスであれば、記載の通り、地図上に表示されていることを確認しました。
     ただし、その他の国について、いくつか試しましたが、正常に地図上に表示されない国(シンガポール、シドニー等)もあるため、
     使用の際はご注意下さい。

  7. ダッシュボードに追加を選択後、既存のダッシュボードに追加します。
    ※ダッシュボードの追加手順は前項のここでの手順は割愛します。
    f:id:sbc_ali99:20190919143130p:plain

以上でダッシュボードの作成作業が完了です。
次項でダッシュボードの編集方法をご紹介します。

ダッシュボードの編集

  1. 作成したダッシュボードを選択します。
    f:id:sbc_ali99:20190919143229p:plain

  2. グラフがダッシュボードとして追加されます。

  3. ダッシュボードを編集するために編集をクリックします。
    f:id:sbc_ali99:20190919143402p:plain

  4. 編集用のバーが表示されます。
    f:id:sbc_ali99:20190919143432p:plain

  5. グラフのクエリ等を編集する場合は、グラフ内の編集をクリックします。
    f:id:sbc_ali99:20190919143515p:plain

  6. グラフの編集画面に遷移します。
    今回は、変更しませんが、クエリやグラフの種類を修正したい場合は、こちらで修正します。 f:id:sbc_ali99:20190917125941p:plain

  7. インタラクションタブでは、グラフをクリックした際の挙動を定義します。
    今回は、無効化とします。

  8. 設定変更を反映させたい場合は、OK、設定変更を行わない場合はキャンセルをクリックします。
    今回は、設定変更を行わないため、キャンセルをクリックします。
    f:id:sbc_ali99:20190917125954p:plain

  9. 各種グラフのサイズを変更し、適切な位置に配置します。

  10. 保存をクリックし、ダッシュボードを保存します。

  11. ポップアップが表示されたらOKをクリックします。
    f:id:sbc_ali99:20190919143603p:plain     f:id:sbc_ali99:20190917130023p:plain

  12. 下記の通り、ダッシュボードが作成されました。
    f:id:sbc_ali99:20190919143649p:plain

ダッシュボードの活用

本項では、作成したダッシュボードの活用方法について、いくつかご紹介します。

グラフ操作

  1. ダッシュボード化したグラフは、時間軸を一括変更可能です。
    必要に応じて、時間軸を変更して下さい。
    f:id:sbc_ali99:20190919143759p:plain

  2. ダッシュボード内のグラフは、グラフ毎に図内に記載されているような詳細情報の表示が可能です。
    詳細については、こちらの公式ドキュメントをご参照下さい。
    f:id:sbc_ali99:20190919143808p:plain

ダッシュボードのメール添付

作成したダッシュボードについては、サブスクライブ機能を使用し、定期的にメール添付することが可能です。

以下、手順です。

  1. ダッシュボード画面にてサブスクライブをクリックします。
    f:id:sbc_ali99:20190919143903p:plain

  2. サブスクリプションの作成画面にて、サブスクリプション名送信頻度を設定します。

  3. 次へをクリックします。
    f:id:sbc_ali99:20190919143950p:plain

  4. 送信方法宛先件名を設定します。

  5. 送信をクリックします。
    f:id:sbc_ali99:20190917130135p:plain

  6. 下記のポップアップが表示されたらOKをクリックします。
    f:id:sbc_ali99:20190917130145p:plain

  7. 受信したメールには、下記の通り、ダッシュボードが表示されます。

  8. メール内のリンクをクリック後、AlibabaCloudアカウントへログインすることで、
    LogServiceのダッシュボード画面へ遷移することができます。

  9. ダウンロードボタンをクリックすることで、png形式でダッシュボードをダウンロードすることが可能です。
     
    f:id:sbc_ali99:20190919144026p:plain

まとめ

今回は、ダッシュボードの作成を実施しました。
次回は、LogServiceを使用したアラート機能について、ご紹介致します。
ありがとうございました。