annotate Paper/tex/technology-overview.tex @ 2:17fb6a2b46d5

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