view paper/text/experiment.tex @ 4:c48aa8767fe6

add experiment
author kiyama <e185758@ie.u-ryukyu.ac.jp>
date Tue, 25 Jan 2022 14:53:34 +0900
parents fb2a7144cd88
children ff6f870063b5
line wrap: on
line source

\chapter{提案手法}
本研究では,システム障害の早期発見のために学科システムに監視システムの構築方法とその際に発生するアラートルールの属人化を防ぐためのスラッシュコマンドを用いたアラートルールの編集方法を提案する.

\section{検証環境}
本実験では全ての監視システムをコンテナ上に構築しており,docker-compose.ymlファイルからpodmanでコンテナを作成する形を取っている.
作成したdocker-compose.ymlファイルを載せる.
\lstinputlisting[label=src:Queue.h, caption=docker-compose.yml]{src/docker-compose.yml}

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


\begin{figure}[htbp]
  \begin{center}
   \includegraphics[width=130mm]{figs/monitoring-system.png}
   \caption[monitoring-system]{構成図.}
   \label{fig:monitoring-system}
   \end{center}
\end{figure}

\section{システム監視}
各サービスのリソース・死活監視はpromethrusを用いて行っている.\\
図\ref{fig:prometheus-expr}に各expoterサーバーからprometheusに集めた情報をブラウザを通じて表示する様子を示す.

\newpage

\begin{figure}[htbp]
  \begin{center}
   \includegraphics[width=130mm]{figs/prometheus-expr.png}
   \caption[monitoring-system]{promethrusでのグラフを用いたデータの可視化.}
   \label{fig:prometheus-expr}
   \end{center}
\end{figure}

しかし,prometheusのグラフでは表示のカスタマイズや可視化したダッシュボードの登録,ログイン認証をサポートしていない.
そこでデータの可視化はgrafanaを用いた.
図\ref{fig:grafana-login}にgrafanaでのログイン画面を示す.\\
図\ref{fig:grafana-login}に示すようにgrafanaを用いてダッシュボードの作成ができる.
また,これらのダッシュボードはカスタムすることが出来よく使用する情報を登録することが可能である.

\begin{figure}[htbp]
  \begin{center}
   \includegraphics[width=130mm]{figs/grafana-login.png}
   \caption[grafana-login]{grafanaでのlogin画面.}
   \label{fig:grafana-login}
   \end{center}
\end{figure}

\newpage

\section{ログ収集}
ログ収集はlokiを用いて



\section{アラート送信}
prometheus,lokiは設定ファイルにalertmanagerのurlを記入することで連携が可能。
alertmanagerからmattermostに対しアラートを送信する際はmattermostのwebhook機能を用いて送信している。
以下がアラート送信の様子である。

\section{mattermostからのalert変更}
スラッシュコマンドの一覧
実際にアラートルールが設定される様子。