annotate Paper/tex/technology-overview.tex @ 1:6e6dcd18b4f6

add Paper
author kiyama <e185758@ie.u-ryukyu.ac.jp>
date Mon, 20 Nov 2023 18:43:41 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
6e6dcd18b4f6 add Paper
kiyama <e185758@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 \subsection{Prometheus}
6e6dcd18b4f6 add Paper
kiyama <e185758@ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 Prometheusは\cite{Prometheus}オープンソースのメトリクスベースのモニタリングシステムである.
6e6dcd18b4f6 add Paper
kiyama <e185758@ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 音声ファイル共有サービスを配信しているSoundCloud社によって2012年に開発されており,2015年に一般に公開されている.
6e6dcd18b4f6 add Paper
kiyama <e185758@ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 対象サービスから監視サーバーに対し情報を取得するpull型を採用しており,取得したデータは時系列データベースに保存される.特徴としてそれぞれのデータに付与されているラベルごとに情報をまとめることが出来る.また,PromQLという独自のクエリ言語を扱う事でアラート管理コンポーネントであるAlertmanagerにクエリを発行することができる.
6e6dcd18b4f6 add Paper
kiyama <e185758@ie.u-ryukyu.ac.jp>
parents:
diff changeset
5 内蔵する式ブラウザからグラフ・ダッシュボードの作成やデータ検索ができるが作成したグラフは保存することができないことや汎用のダッシュボードシステムでは無い事から一般的には可視化ツールと組み合わせて運用される.
6e6dcd18b4f6 add Paper
kiyama <e185758@ie.u-ryukyu.ac.jp>
parents:
diff changeset
6
6e6dcd18b4f6 add Paper
kiyama <e185758@ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 \subsection{PromQL}
6e6dcd18b4f6 add Paper
kiyama <e185758@ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 Prometheusの時系列データを扱うことに特化したクエリ言語である.
6e6dcd18b4f6 add Paper
kiyama <e185758@ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 exporterによって付与されるラベルを用いることで柔軟な集計が可能である.
6e6dcd18b4f6 add Paper
kiyama <e185758@ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 グラフやPrometheusの式ブラウザを表示するのに使用したり,HTTP APIを介して外部システムで利用することが出来る.
6e6dcd18b4f6 add Paper
kiyama <e185758@ie.u-ryukyu.ac.jp>
parents:
diff changeset
11
6e6dcd18b4f6 add Paper
kiyama <e185758@ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 \subsection{exporter}
6e6dcd18b4f6 add Paper
kiyama <e185758@ie.u-ryukyu.ac.jp>
parents:
diff changeset
13 監視対象のデータを収集しPrometheusからのリクエストに応じて必要なデータを整形しPrometheusにレスポンスとして返すツールである.
6e6dcd18b4f6 add Paper
kiyama <e185758@ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 Prometheusに送信するデータに対しラベルを付与することができ情報の絞り込みが楽になる.
6e6dcd18b4f6 add Paper
kiyama <e185758@ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 サーバーの情報を収集するnode\_exporterや通信のエンドポイントを監視するblackbox\_exporterなど公式が提供しているもの以外に多くのサードパーティがサービスのexporterを提供しており,自身で独自のexporterを作成することも可能である.
6e6dcd18b4f6 add Paper
kiyama <e185758@ie.u-ryukyu.ac.jp>
parents:
diff changeset
16
6e6dcd18b4f6 add Paper
kiyama <e185758@ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 \subsection{Alertmanager}
6e6dcd18b4f6 add Paper
kiyama <e185758@ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 Alertmanager\cite{alertmanager}はPrometheusのコンポーネントであり,オープンソースソフトウェアとして公開されているアラート管理ツールである.
6e6dcd18b4f6 add Paper
kiyama <e185758@ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 アラートの重複排除,グループ化などによりアラートの送信を行うことができる.
6e6dcd18b4f6 add Paper
kiyama <e185758@ie.u-ryukyu.ac.jp>
parents:
diff changeset
20
6e6dcd18b4f6 add Paper
kiyama <e185758@ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 \subsection{Loki}
6e6dcd18b4f6 add Paper
kiyama <e185758@ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 Loki\cite{loki}はPrometheusに触発されたオープンソースのログ収集ツールである.
6e6dcd18b4f6 add Paper
kiyama <e185758@ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 特徴としてPrometheusのようにログデータをラベル毎にまとめることができる.
6e6dcd18b4f6 add Paper
kiyama <e185758@ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 また,Prometheusと同様にLogQLという独自のクエリ言語を扱う事でアラート管理コンポーネントであるAlertmanagerにクエリを発行することができる.
6e6dcd18b4f6 add Paper
kiyama <e185758@ie.u-ryukyu.ac.jp>
parents:
diff changeset
25
6e6dcd18b4f6 add Paper
kiyama <e185758@ie.u-ryukyu.ac.jp>
parents:
diff changeset
26 \subsection{Promtail}
6e6dcd18b4f6 add Paper
kiyama <e185758@ie.u-ryukyu.ac.jp>
parents:
diff changeset
27 ログを収集してLokiに送信するツール.
6e6dcd18b4f6 add Paper
kiyama <e185758@ie.u-ryukyu.ac.jp>
parents:
diff changeset
28 Prometheusのexporterのようにアプリケーションのログに対しラベルを付与することができる.
6e6dcd18b4f6 add Paper
kiyama <e185758@ie.u-ryukyu.ac.jp>
parents:
diff changeset
29
6e6dcd18b4f6 add Paper
kiyama <e185758@ie.u-ryukyu.ac.jp>
parents:
diff changeset
30 \subsection{Grafana}
6e6dcd18b4f6 add Paper
kiyama <e185758@ie.u-ryukyu.ac.jp>
parents:
diff changeset
31 収集されたデータ・ログをダッシュボートを用いてブラウザから可視化可能なツールである.
6e6dcd18b4f6 add Paper
kiyama <e185758@ie.u-ryukyu.ac.jp>
parents:
diff changeset
32 自身でデータを収集をせずデータの可視化を行うためデータソースと組み合わせて使うのが一般的である.
6e6dcd18b4f6 add Paper
kiyama <e185758@ie.u-ryukyu.ac.jp>
parents:
diff changeset
33 データソースとしてPrometheusとlokiを対応しており,LogQLを用いてカスタムしたログ情報を表示することが可能である.
6e6dcd18b4f6 add Paper
kiyama <e185758@ie.u-ryukyu.ac.jp>
parents:
diff changeset
34
6e6dcd18b4f6 add Paper
kiyama <e185758@ie.u-ryukyu.ac.jp>
parents:
diff changeset
35 \subsection{Mattermost}
6e6dcd18b4f6 add Paper
kiyama <e185758@ie.u-ryukyu.ac.jp>
parents:
diff changeset
36 オープンソースのセルフホスティング式のチャットサービスである.
6e6dcd18b4f6 add Paper
kiyama <e185758@ie.u-ryukyu.ac.jp>
parents:
diff changeset
37 類似プロダクトにSlackがあり,差別点としてはサーバーから自身で構築するためチャットに保存期間の上限が無い.
6e6dcd18b4f6 add Paper
kiyama <e185758@ie.u-ryukyu.ac.jp>
parents:
diff changeset
38 また,組織や企業などの開発者向けに作成されており,様々なツールとの結合が可能できる.
6e6dcd18b4f6 add Paper
kiyama <e185758@ie.u-ryukyu.ac.jp>
parents:
diff changeset
39
6e6dcd18b4f6 add Paper
kiyama <e185758@ie.u-ryukyu.ac.jp>
parents:
diff changeset
40 \subsection{コンテナ型}
6e6dcd18b4f6 add Paper
kiyama <e185758@ie.u-ryukyu.ac.jp>
parents:
diff changeset
41 仮想化技術の一つであり,他の仮装技術との相違点はカーネルはホストOSと共用で利用する点である.
6e6dcd18b4f6 add Paper
kiyama <e185758@ie.u-ryukyu.ac.jp>
parents:
diff changeset
42 これにより他の仮想技術よりリソースが節約でき,仮想環境の構築,削除が高速でできる.
6e6dcd18b4f6 add Paper
kiyama <e185758@ie.u-ryukyu.ac.jp>
parents:
diff changeset
43
6e6dcd18b4f6 add Paper
kiyama <e185758@ie.u-ryukyu.ac.jp>
parents:
diff changeset
44 \subsection{Docker}
6e6dcd18b4f6 add Paper
kiyama <e185758@ie.u-ryukyu.ac.jp>
parents:
diff changeset
45 Docker.Inc.が開発したオープンソースのコンテナ管理ツールである.
6e6dcd18b4f6 add Paper
kiyama <e185758@ie.u-ryukyu.ac.jp>
parents:
diff changeset
46 コマンドや専用のDockerfileを用いて環境を構築することができ,また作成したイメージを登録することが出来るDocker Hubを用いることで環境を配布することもできる.
6e6dcd18b4f6 add Paper
kiyama <e185758@ie.u-ryukyu.ac.jp>
parents:
diff changeset
47
6e6dcd18b4f6 add Paper
kiyama <e185758@ie.u-ryukyu.ac.jp>
parents:
diff changeset
48 \subsection{Podman}
6e6dcd18b4f6 add Paper
kiyama <e185758@ie.u-ryukyu.ac.jp>
parents:
diff changeset
49 RedHat社が開発したdocker互換のコンテナ管理ツールである.
6e6dcd18b4f6 add Paper
kiyama <e185758@ie.u-ryukyu.ac.jp>
parents:
diff changeset
50 RHEL(Red Hat Enterprise Linux)のversion7.6以降からはdockerのサポートが切れる事からコンテナ管理ツールとして採用された.
6e6dcd18b4f6 add Paper
kiyama <e185758@ie.u-ryukyu.ac.jp>
parents:
diff changeset
51 またGolangでpodmanを操作できる関数群を提供しており,イメージやコンテナ,ネットワークなどの操作に使用できる
6e6dcd18b4f6 add Paper
kiyama <e185758@ie.u-ryukyu.ac.jp>
parents:
diff changeset
52
6e6dcd18b4f6 add Paper
kiyama <e185758@ie.u-ryukyu.ac.jp>
parents:
diff changeset
53
6e6dcd18b4f6 add Paper
kiyama <e185758@ie.u-ryukyu.ac.jp>
parents:
diff changeset
54 \subsection{ハイパーバイザー型}
6e6dcd18b4f6 add Paper
kiyama <e185758@ie.u-ryukyu.ac.jp>
parents:
diff changeset
55 仮想化技術の一つであり,ハードウェア上にハイパーバイザと呼ばれる仮想化ソフトウェアを動作させ,その上でゲストOSを運用する.
6e6dcd18b4f6 add Paper
kiyama <e185758@ie.u-ryukyu.ac.jp>
parents:
diff changeset
56 ホストOSを不要とするがコンテナ型と比べて起動速度は低速となる.
6e6dcd18b4f6 add Paper
kiyama <e185758@ie.u-ryukyu.ac.jp>
parents:
diff changeset
57
6e6dcd18b4f6 add Paper
kiyama <e185758@ie.u-ryukyu.ac.jp>
parents:
diff changeset
58 \subsection{KVM}
6e6dcd18b4f6 add Paper
kiyama <e185758@ie.u-ryukyu.ac.jp>
parents:
diff changeset
59 KVMは(Kernel-based Virtual Machine)の略でlinuxカーネル上で動作する仮想化技術であり,カーネルをハイパーバイザとして機能させる.