view Paper/tex/ie-monitoring-design.tex @ 1:a1e8ba02aaa8

定期
author kiyama <e185758@ie.u-ryukyu.ac.jp>
date Thu, 05 May 2022 13:31:46 +0900
parents 78fab99c6008
children 17fb6a2b46d5
line wrap: on
line source

\section{提案手法の設計}
サービスでは学科システムのシステムの監視やログの収集を行う。この監視システムの構成を図に示し。概要を以下で説明する。

\subsection{監視システム}
本実験では全ての監視システムをコンテナ上に構築しており,docker-compose.yml ファ イルから podman でコンテナを作成する形を取っている. 作成した docker-compose.yml ファイル 4.1 を載せる.


サービスの死活監視は prometheus, ログ収集は loki, それらのデータ可視化は grafana, アラート送信は alertmanager を用いて構築している. システム監視の構成を図 4.1 に示 す. exporter,alertmanager は prometheus のコンポーネントとなっており,exporter で各 サービスのメトリック情報を prometheus に対して送信している. また,prometheus の独 自のクエリ言語である promQL で設定した条件を満たした際に alertmanager に対して アラートを送信する.

使用するクエリ言語が logQL に変更しているが loki も promethrus 同様にログを収集し,アラートを送信している.
\\
\begin{figure}[htbp]
    \begin{center}
    \includegraphics[width=80mm]{fig/monitoring-system.png}
    \caption[monitoring]{構成図.}
    \label{fig:monitoring-system}
    \end{center}
\end{figure}
\\

\subsection{サービス監視}
各サービスのリソース・死活監視は promethrus を用いて行っている.
prometheus は収集したデータをブラウザで表示する機能を持っている. 図 4.2 に各 expoter サーバーから prometheus に集めた情報をブラウザを通じて表示する様子を示す. 以下のグラフは nginx に接続でき処理されたクライアント接続を意味する.

しかし,prometheus のグラフでは表示のカスタマイズや可視化したダッシュボードの登 録, ログイン認証をサポートしていない. そこでデータの可視化は grafana を用いた. 図 4.3 に grafana でのログイン画面を示す.
図 4.4 に示すように grafana を用いてダッシュボードの作成ができる. また, これらの ダッシュボードは自身でカスタムしたり grafana に登録されてあるダッシュボードをイン ポートすることで, よく使用する情報を登録することが可能である. 図 4.4 では nginx の 状態を監視しており, 一番上の文字で表示されているのが死活状況, 左下が単位時間ごと 受け入れられた通信率と処理された通信率, 右下が接続に成功, 読み込み中, 待機中, 応答 をレスポンスしている状態のグラフである.
\subsection{ログ収集}
障害が発生したサーバーがアクセス可能であればログを確認することはできるが, 何ら かの原因でアクセス出来ない場合はログを確認する手段がない. そこで各サーバーのログを収集する事でサーバーの死活状態に関わらず原因調査が可能で ある. また,grafana では logQL を用いて絞り込みが出来る為特定までにかかるコストが低 くなると考える.
提案システムでは, ログ収集には loki を用いている. loki 自体に収集したログを表示する 機能は無く,grafna と連携してログの可視化を行う. 図 4.5 が loki と grafana が連携して log を可視化している様子である.
図 4.5 loki で収集したデータを grafana で可視化.



上記は閲覧者が logQL を用いることでログの絞り込みが可能だが検索結果が保存され ない. その為一般的には, 図 4.6 のように prometheus 同様カスタムダッシュボードを使 用して可視化を行う. 図 4.6 では loki に収集されたログの単位時間あたりの総数と error の文字列が含まれるログの総数, 単位時間あたりのログの総数をグラフで表したものに なっている.
%\section{研究目的}