Mercurial > hg > Papers > 2022 > kiyama-thesis
changeset 9:02f2d4de7599 default tip
add delete command
author | kiyama <e185758@ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 17 Feb 2022 17:23:48 +0900 |
parents | 694f3a6e2219 |
children | |
files | mindmap.xmind paper/.DS_Store paper/figs/alert-delete.png paper/ie-thesis.sty paper/text/Jabstract.tex paper/text/experiment.aux paper/text/experiment.tex paper/text/introduction.aux paper/text/introduction.tex paper/text/mattermost.aux paper/text/mattermost.tex paper/text/reference.aux paper/text/summary.aux paper/text/summary.tex paper/text/system.aux paper/text/system.tex paper/text/technology.aux paper/text/technology.tex paper/thesis.dvi paper/thesis.pdf paper/thesis.tex |
diffstat | 21 files changed, 130 insertions(+), 120 deletions(-) [+] |
line wrap: on
line diff
--- a/paper/ie-thesis.sty Sun Jan 30 22:14:44 2022 +0900 +++ b/paper/ie-thesis.sty Thu Feb 17 17:23:48 2022 +0900 @@ -50,7 +50,7 @@ %\begingroup \renewcommand{\arraystretch}{1.5} \begin{tabular}{c} - \textbf{\Large \number\year 年度 卒業論文}\\ + \textbf{\Large 2021 年度 卒業論文}\\ \textbf{\Large Bachelor's Thesis}\\ \end{tabular}\\ \vspace{2zw}
--- a/paper/text/Jabstract.tex Sun Jan 30 22:14:44 2022 +0900 +++ b/paper/text/Jabstract.tex Thu Feb 17 17:23:48 2022 +0900 @@ -3,4 +3,5 @@ その為,アラートの送信を制御するアラートルールは組織全体で調整しながら運用する方針をとる. その際,通常のアラートルール編集方法では,作業者は編集後に作業をまとめる必要や第三者はその作業手順を探さないといけない問題があり属人化する恐れがある.\\ そこで本研究では安定した運用のための学科システムに監視ツール及びログ収集サービスの実装の検討をする.\\ -また運用していく中でアラートルールの属人化を防ぐ為のmattermostのスラッシュコマンドを用いた変更方法の提案をする. \ No newline at end of file +また学科で使用しているチャットツールからアラートルールを編集する事で他者に情報が伝わり易くなると考えた. +その為,属人化を防ぐ為のmattermostのスラッシュコマンドを用いた変更方法の提案をする. \ No newline at end of file
--- a/paper/text/experiment.aux Sun Jan 30 22:14:44 2022 +0900 +++ b/paper/text/experiment.aux Thu Feb 17 17:23:48 2022 +0900 @@ -1,32 +1,32 @@ \relax -\@writefile{toc}{\contentsline {chapter}{\numberline {第4章}監視環境}{10}\protected@file@percent } +\@writefile{toc}{\contentsline {chapter}{\numberline {第4章}監視環境}{9}\protected@file@percent } \@writefile{lof}{\addvspace {10\jsc@mpt }} \@writefile{lot}{\addvspace {10\jsc@mpt }} -\@writefile{toc}{\contentsline {section}{\numberline {4.1}検証環境}{10}\protected@file@percent } -\newlabel{src:docker-compose}{{4.1}{10}} -\@writefile{lol}{\contentsline {lstlisting}{\numberline {4.1}監視環境のdocker-compose.yml}{10}\protected@file@percent } -\@writefile{lof}{\contentsline {figure}{\numberline {4.1}{\ignorespaces monitoring-system}}{12}\protected@file@percent } -\newlabel{fig:monitoring-system}{{4.1}{12}} -\@writefile{toc}{\contentsline {section}{\numberline {4.2}システム監視}{12}\protected@file@percent } -\@writefile{lof}{\contentsline {figure}{\numberline {4.2}{\ignorespaces monitoring-system}}{13}\protected@file@percent } -\newlabel{fig:prometheus-expr}{{4.2}{13}} -\@writefile{lof}{\contentsline {figure}{\numberline {4.3}{\ignorespaces grafana-login}}{14}\protected@file@percent } -\newlabel{fig:grafana-login}{{4.3}{14}} -\@writefile{lof}{\contentsline {figure}{\numberline {4.4}{\ignorespaces grafana-prometheus}}{14}\protected@file@percent } -\newlabel{fig:grafana-prometheus}{{4.4}{14}} -\@writefile{toc}{\contentsline {section}{\numberline {4.3}ログ収集}{15}\protected@file@percent } -\@writefile{lof}{\contentsline {figure}{\numberline {4.5}{\ignorespaces loki-grafana}}{15}\protected@file@percent } -\newlabel{fig:loki-grafana}{{4.5}{15}} +\@writefile{toc}{\contentsline {section}{\numberline {4.1}検証環境}{9}\protected@file@percent } +\newlabel{src:docker-compose}{{4.1}{9}} +\@writefile{lol}{\contentsline {lstlisting}{\numberline {4.1}監視環境のdocker-compose.yml}{9}\protected@file@percent } +\@writefile{lof}{\contentsline {figure}{\numberline {4.1}{\ignorespaces monitoring-system}}{11}\protected@file@percent } +\newlabel{fig:monitoring-system}{{4.1}{11}} +\@writefile{toc}{\contentsline {section}{\numberline {4.2}システム監視}{11}\protected@file@percent } +\@writefile{lof}{\contentsline {figure}{\numberline {4.2}{\ignorespaces monitoring-system}}{12}\protected@file@percent } +\newlabel{fig:prometheus-expr}{{4.2}{12}} +\@writefile{lof}{\contentsline {figure}{\numberline {4.3}{\ignorespaces grafana-login}}{13}\protected@file@percent } +\newlabel{fig:grafana-login}{{4.3}{13}} +\@writefile{lof}{\contentsline {figure}{\numberline {4.4}{\ignorespaces grafana-prometheus}}{13}\protected@file@percent } +\newlabel{fig:grafana-prometheus}{{4.4}{13}} +\@writefile{toc}{\contentsline {section}{\numberline {4.3}ログ収集}{14}\protected@file@percent } +\@writefile{lof}{\contentsline {figure}{\numberline {4.5}{\ignorespaces loki-grafana}}{14}\protected@file@percent } +\newlabel{fig:loki-grafana}{{4.5}{14}} \citation{grafana} -\@writefile{lof}{\contentsline {figure}{\numberline {4.6}{\ignorespaces loki-dashboard}}{16}\protected@file@percent } -\newlabel{fig:loki-dashboard}{{4.6}{16}} -\@writefile{toc}{\contentsline {section}{\numberline {4.4}アラート送信}{16}\protected@file@percent } -\newlabel{src:loki-alert}{{4.2}{17}} -\@writefile{lol}{\contentsline {lstlisting}{\numberline {4.2}lokiのアラートルールファイル}{17}\protected@file@percent } -\@writefile{lof}{\contentsline {figure}{\numberline {4.7}{\ignorespaces mattermostにalertが送信される様子}}{17}\protected@file@percent } -\newlabel{fig:mattermost-alert}{{4.7}{17}} +\@writefile{lof}{\contentsline {figure}{\numberline {4.6}{\ignorespaces loki-dashboard}}{15}\protected@file@percent } +\newlabel{fig:loki-dashboard}{{4.6}{15}} +\@writefile{toc}{\contentsline {section}{\numberline {4.4}アラート送信}{15}\protected@file@percent } +\newlabel{src:loki-alert}{{4.2}{16}} +\@writefile{lol}{\contentsline {lstlisting}{\numberline {4.2}lokiのアラートルールファイル}{16}\protected@file@percent } +\@writefile{lof}{\contentsline {figure}{\numberline {4.7}{\ignorespaces mattermostにalertが送信される様子}}{16}\protected@file@percent } +\newlabel{fig:mattermost-alert}{{4.7}{16}} \@setckpt{./text/experiment}{ -\setcounter{page}{18} +\setcounter{page}{17} \setcounter{equation}{0} \setcounter{enumi}{0} \setcounter{enumii}{0}
--- a/paper/text/experiment.tex Sun Jan 30 22:14:44 2022 +0900 +++ b/paper/text/experiment.tex Thu Feb 17 17:23:48 2022 +0900 @@ -8,7 +8,7 @@ \lstinputlisting[label=src:docker-compose, caption=監視環境のdocker-compose.yml]{src/docker-compose.yml} サービスの死活監視はprometheus,ログ収集はloki,それらのデータ可視化はgrafana,アラート送信はalertmanagerを用いて構築している. -システム監視の構成図を\ref{fig:monitoring-system}に示す. +システム監視の構成を図\ref{fig:monitoring-system}に示す. exporter,alertmanagerはprometheusのコンポーネントとなっており,exporterで各サービスのメトリック情報をprometheusに対して送信している. また,prometheusの独自のクエリ言語であるpromQLで設定した条件を満たした際にalertmanagerに対してアラートを送信する.\\ 使用するクエリ言語がlogQLに変更しているがlokiもpromethrus同様にログを収集し,アラートを送信している. @@ -97,7 +97,7 @@ システムのリソース状態や死活状態,ログ情報は安定してシステムを運用する上で把握しておくべき情報である. しかし,人間が24時間365日稼働しているシステムを監視し続けるのは現実的ではない. その為指定したログが出力されたりサービスが停止した際に管理者に通知する仕組みが必要でありそれがアラート機能である.\\ -また,prometheus,loki共に設定ファイルにalertmanagerのurlを記入することで連携が可能である. +また,prometheus,loki共に設定ファイルにalertmanagerのURLを記入することで連携が可能である. またアラートルールのファイル形式についてgrafanaの公式サイトは「Loki alerting rules are exactly the same, except they use LogQL for their expressions. 」\cite{grafana} と明言しており,使用するQLを除いてアラートルールの記述方法は変わらない事からここではlokiのアラートルールのみを紹介する.\\ ソースコード\ref{src:loki-alert}がlokiのアラートルールファイルである.このコードの7行目がアラートを制御する部分であり5分周期でログの有無を確認しログが生成されていたらalertmanagerにクエリを送信するようなコードになっている.
--- a/paper/text/introduction.aux Sun Jan 30 22:14:44 2022 +0900 +++ b/paper/text/introduction.aux Thu Feb 17 17:23:48 2022 +0900 @@ -3,9 +3,8 @@ \@writefile{lof}{\addvspace {10\jsc@mpt }} \@writefile{lot}{\addvspace {10\jsc@mpt }} \@writefile{toc}{\contentsline {section}{\numberline {1.1}学科システム}{1}\protected@file@percent } -\@writefile{toc}{\contentsline {section}{\numberline {1.2}論文の構成}{1}\protected@file@percent } \@setckpt{./text/introduction}{ -\setcounter{page}{3} +\setcounter{page}{2} \setcounter{equation}{0} \setcounter{enumi}{0} \setcounter{enumii}{0} @@ -15,7 +14,7 @@ \setcounter{mpfootnote}{0} \setcounter{part}{0} \setcounter{chapter}{1} -\setcounter{section}{2} +\setcounter{section}{1} \setcounter{subsection}{0} \setcounter{subsubsection}{0} \setcounter{paragraph}{0}
--- a/paper/text/introduction.tex Sun Jan 30 22:14:44 2022 +0900 +++ b/paper/text/introduction.tex Thu Feb 17 17:23:48 2022 +0900 @@ -1,23 +1,7 @@ \chapter{システムの運用における監視} \section{学科システム} -サービスを保守運用していく中でシステム障害は発生するものである.その障害がソフトウェアや機器の問題であったり外部からの攻撃などが原因である場合など挙げられるがいずれにせよ,サービスの安定運用を考えていく上でシステムの不調を早期に発見することが必要となってくる.知能情報コースでは,五年に一度システムを更新しており,現在のシステムでは監視ツール及びログ可視化のシステムが組まれていない.その為,サーバーに入ってサービスの状態を確認したり,実際にトラブルが起きるまでシステム障害に気づくことができない.\\ +サービスを保守運用していく中でシステム障害は発生するものである.その障害がソフトウェアや機器の問題であったり外部からの攻撃などが原因である場合など挙げられるがいずれにせよ,サービスの安定運用を考えていく上でシステムの不調を早期に発見することが必要となってくる.知能情報コースでは,5年に一度システムを更新しており,現在のシステムでは監視ツール及びログ可視化のシステムが組まれていない.その為,サーバーに入ってサービスの状態を確認したり,実際にトラブルが起きるまでシステム障害に気づくことができない.\\ また,通常の監視システムは管理者がサーバーにログインし,CLI上でアラートルールを編集する必要があり,作業ログを纏めたり第三者はそれを探す手間がかかる.\\ そのため本研究ではシステム障害の早期発見を目的とした監視システムと障害発生時の対応を柔軟にするためにログ収集の提案をする. -また,アラートルールの属人化を防ぐ為のmattermostのslash commandを用いた変更方法の提案をする. - -\section{論文の構成} -本論文は以下の章で構成される. - -第1章では,本研究の研究背景及び目的を述べる. - -第2章では,本研究で必要な技術概念を述べる. - -第3章では,現システムの状況と問題点について述べる. - -第4章では,監視システムの構築方法について述べる. - -第5章では,mattermostのスラッシュコマンドを用いたアラートルールの変更方法について述べる. - -第6章では,本論文のまとめと今後の展望について述べる. - +また,アラートルールの属人化を防ぐ為のmattermostのスラッシュコマンドを用いた変更方法の提案をする.
--- a/paper/text/mattermost.aux Sun Jan 30 22:14:44 2022 +0900 +++ b/paper/text/mattermost.aux Thu Feb 17 17:23:48 2022 +0900 @@ -1,19 +1,21 @@ \relax -\@writefile{toc}{\contentsline {chapter}{\numberline {第5章}mattermostからのアラートルール変更}{18}\protected@file@percent } +\@writefile{toc}{\contentsline {chapter}{\numberline {第5章}mattermostからのアラートルール変更}{17}\protected@file@percent } \@writefile{lof}{\addvspace {10\jsc@mpt }} \@writefile{lot}{\addvspace {10\jsc@mpt }} -\@writefile{toc}{\contentsline {section}{\numberline {5.1}構成}{18}\protected@file@percent } -\@writefile{lof}{\contentsline {figure}{\numberline {5.1}{\ignorespaces mattermostからアラートを編集}}{18}\protected@file@percent } -\newlabel{fig:mattermost-slash}{{5.1}{18}} -\@writefile{toc}{\contentsline {section}{\numberline {5.2}コマンド一覧}{19}\protected@file@percent } -\@writefile{lof}{\contentsline {figure}{\numberline {5.2}{\ignorespaces mattermostからアラートを追加する様子}}{19}\protected@file@percent } -\newlabel{fig:alert-add}{{5.2}{19}} -\@writefile{lof}{\contentsline {figure}{\numberline {5.3}{\ignorespaces mattermostからアラート名を表示する様子}}{19}\protected@file@percent } -\newlabel{fig:alert-list}{{5.3}{19}} -\@writefile{lof}{\contentsline {figure}{\numberline {5.4}{\ignorespaces mattermostからアラート全体を表示する様子}}{20}\protected@file@percent } -\newlabel{fig:alert-list-all}{{5.4}{20}} -\@writefile{lof}{\contentsline {figure}{\numberline {5.5}{\ignorespaces mattermostから特定のアラートルールを表示する様子}}{20}\protected@file@percent } -\newlabel{fig:alert-list-ins}{{5.5}{20}} +\@writefile{toc}{\contentsline {section}{\numberline {5.1}構成}{17}\protected@file@percent } +\@writefile{lof}{\contentsline {figure}{\numberline {5.1}{\ignorespaces mattermostからアラートを編集}}{17}\protected@file@percent } +\newlabel{fig:mattermost-slash}{{5.1}{17}} +\@writefile{toc}{\contentsline {section}{\numberline {5.2}コマンド一覧}{18}\protected@file@percent } +\@writefile{lof}{\contentsline {figure}{\numberline {5.2}{\ignorespaces mattermostからアラートを追加する様子}}{18}\protected@file@percent } +\newlabel{fig:alert-add}{{5.2}{18}} +\@writefile{lof}{\contentsline {figure}{\numberline {5.3}{\ignorespaces mattermostからアラート名を表示する様子}}{18}\protected@file@percent } +\newlabel{fig:alert-list}{{5.3}{18}} +\@writefile{lof}{\contentsline {figure}{\numberline {5.4}{\ignorespaces mattermostからアラート全体を表示する様子}}{19}\protected@file@percent } +\newlabel{fig:alert-list-all}{{5.4}{19}} +\@writefile{lof}{\contentsline {figure}{\numberline {5.5}{\ignorespaces mattermostから特定のアラートルールを表示する様子}}{19}\protected@file@percent } +\newlabel{fig:alert-list-ins}{{5.5}{19}} +\@writefile{lof}{\contentsline {figure}{\numberline {5.6}{\ignorespaces mattermostから特定のアラートルールを削除する様子}}{20}\protected@file@percent } +\newlabel{fig:alert-delete}{{5.6}{20}} \@setckpt{./text/mattermost}{ \setcounter{page}{21} \setcounter{equation}{0} @@ -30,7 +32,7 @@ \setcounter{subsubsection}{0} \setcounter{paragraph}{0} \setcounter{subparagraph}{0} -\setcounter{figure}{5} +\setcounter{figure}{6} \setcounter{table}{0} \setcounter{parentequation}{0} \setcounter{lstnumber}{10}
--- a/paper/text/mattermost.tex Sun Jan 30 22:14:44 2022 +0900 +++ b/paper/text/mattermost.tex Thu Feb 17 17:23:48 2022 +0900 @@ -2,7 +2,7 @@ 本章では,監視システム運用の際に発生するアラートルールの属人化を防ぐためのスラッシュコマンドを用いたアラートルールの編集方法を提案する. \section{構成} -監視システムと同一のサーバーにAPIサーバーを立てmattermostから送信されたget,postリクエストに対し処理を行う。 +監視システムと同一のサーバーにAPIサーバーを立てmattermostから送信されたGET,POSTリクエストに対し処理を行う。 図\ref{fig:mattermost-slash}に構成図を示す. \\ \begin{figure}[htbp] @@ -42,7 +42,7 @@ \end{center} \end{figure} -アラートルールの詳細が見たい場合は図\ref{fig:alert-list-all}のようにlistの後ろにallコマンドを入力することで確認することが出来る. +アラートルール全体の詳細が見たい場合は図\ref{fig:alert-list-all}のようにlistの後ろにallコマンドを入力することで確認することが出来る. \begin{figure}[htbp] \begin{center} @@ -60,4 +60,14 @@ \caption[mattermostから特定のアラートルールを表示する様子]{mattermostから特定のアラートルールを表示する様子.} \label{fig:alert-list-ins} \end{center} +\end{figure} + +また,アラートルールを削除したい場合は図\ref{fig:alert-delete}のようにdeleteコマンドを打つ事によってアラートルールが削除される. + +\begin{figure}[htbp] + \begin{center} + \includegraphics[width=100mm]{figs/alert-delete.png} + \caption[mattermostから特定のアラートルールを削除する様子]{mattermostから特定のアラートルールを削除する様子.} + \label{fig:alert-delete} + \end{center} \end{figure} \ No newline at end of file
--- a/paper/text/reference.aux Sun Jan 30 22:14:44 2022 +0900 +++ b/paper/text/reference.aux Thu Feb 17 17:23:48 2022 +0900 @@ -7,9 +7,9 @@ \bibcite{Brian Brazil}{6} \bibcite{Mike Julian}{7} \bibcite{155719A_diss}{8} -\@writefile{toc}{\contentsline {chapter}{参考文献}{23}\protected@file@percent } +\@writefile{toc}{\contentsline {chapter}{参考文献}{24}\protected@file@percent } \@setckpt{./text/reference}{ -\setcounter{page}{24} +\setcounter{page}{25} \setcounter{equation}{0} \setcounter{enumi}{0} \setcounter{enumii}{0} @@ -20,7 +20,7 @@ \setcounter{part}{0} \setcounter{chapter}{6} \setcounter{section}{2} -\setcounter{subsection}{1} +\setcounter{subsection}{3} \setcounter{subsubsection}{0} \setcounter{paragraph}{0} \setcounter{subparagraph}{0}
--- a/paper/text/summary.aux Sun Jan 30 22:14:44 2022 +0900 +++ b/paper/text/summary.aux Thu Feb 17 17:23:48 2022 +0900 @@ -5,8 +5,10 @@ \@writefile{toc}{\contentsline {section}{\numberline {6.1}総括}{21}\protected@file@percent } \@writefile{toc}{\contentsline {section}{\numberline {6.2}今後の課題}{21}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {6.2.1}監視システムの運用}{21}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {6.2.2}監視対象の追加}{22}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {6.2.3}監視システムの冗長化}{22}\protected@file@percent } \@setckpt{./text/summary}{ -\setcounter{page}{22} +\setcounter{page}{23} \setcounter{equation}{0} \setcounter{enumi}{0} \setcounter{enumii}{0} @@ -17,7 +19,7 @@ \setcounter{part}{0} \setcounter{chapter}{6} \setcounter{section}{2} -\setcounter{subsection}{1} +\setcounter{subsection}{3} \setcounter{subsubsection}{0} \setcounter{paragraph}{0} \setcounter{subparagraph}{0}
--- a/paper/text/summary.tex Sun Jan 30 22:14:44 2022 +0900 +++ b/paper/text/summary.tex Thu Feb 17 17:23:48 2022 +0900 @@ -13,3 +13,13 @@ 本研究ではコンテナによる構築を行い実際に学科のシステムを監視できたが構築場所がVM上のみとなった. 本番環境で動作させるにはクラウドサーバーとオンプレの両方で構築し冗長性を保つ必要がある.\\ また収集した情報は監視サーバー上にのみある.その為定期的にディスクサーバーにデータを送信し監視サーバーでは容量が膨らまないようローテーションする必要がある. + +\subsection{監視対象の追加} +現在死活監視,ログ収集の対象となるサービスを限定しており,学科で動作しているサービス全てを網羅できていない. +すべてのサービスの状況を監視システムが提供するダッシューボードやグラフを用いて確認できないと意味がない. +その為学科で稼働しているサービスを監視対象に加えることが必要である. +またその際にexporterが存在しなかったり有料であったりする場合があるのでそれらの開発も必要となる. + +\subsection{監視システムの冗長化} +一般的に監視システムを構築する際は冗長化構成を作成しどちらのサーバーがダウンしても監視し続けられる体制を整える. +しかし本研究ではオンプレミスでのみ構築している.その為クラウドにセカンダリを構築することで冗長化を図る必要がある. \ No newline at end of file
--- a/paper/text/system.aux Sun Jan 30 22:14:44 2022 +0900 +++ b/paper/text/system.aux Thu Feb 17 17:23:48 2022 +0900 @@ -1,11 +1,11 @@ \relax -\@writefile{toc}{\contentsline {chapter}{\numberline {第3章}現在の学科システム}{8}\protected@file@percent } +\@writefile{toc}{\contentsline {chapter}{\numberline {第3章}現在の学科システム}{7}\protected@file@percent } \@writefile{lof}{\addvspace {10\jsc@mpt }} \@writefile{lot}{\addvspace {10\jsc@mpt }} -\@writefile{toc}{\contentsline {section}{\numberline {3.1}問題点}{8}\protected@file@percent } -\@writefile{toc}{\contentsline {section}{\numberline {3.2}監視システムを運用する上での課題}{8}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {3.1}問題点}{7}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {3.2}監視システムを運用する上での課題}{7}\protected@file@percent } \@setckpt{./text/system}{ -\setcounter{page}{10} +\setcounter{page}{9} \setcounter{equation}{0} \setcounter{enumi}{0} \setcounter{enumii}{0}
--- a/paper/text/system.tex Sun Jan 30 22:14:44 2022 +0900 +++ b/paper/text/system.tex Thu Feb 17 17:23:48 2022 +0900 @@ -3,9 +3,9 @@ \section{問題点} 現在学科システムにはシステム監視、ログ収集、アラート送信などの異常検知の機能が無く,システム障害や攻撃の早期発見・事後対応が困難である. -実際に2021/08月にはレンタルサーバーと基幹サーバーで障害が発生した.その際に利用者からサーバー上で動作しているサービスが使用出来ないという報告を受けて障害に気づいた.また,該当サーバーが物理故障しており,原因調査の為ログを確認したかったがサーバーにアクセス出来なかった為調査開始に時間がかかった. +実際に2021年8月にはレンタルサーバーと基幹サーバーで障害が発生した.その際に利用者からサーバー上で動作しているサービスが使用出来ないという報告を受けて障害に気づいた.また,該当サーバーが物理故障しており,原因調査の為ログを確認したかったがサーバーにアクセス出来なかった為調査開始に時間がかかった. -また,10月から11月にかけては学科で運用しているgitlabが脆弱性を突かれ攻撃された.実際に攻撃を受ける前に総当たり攻撃が失敗していたりユーザーに対して警告メールが送信されていたが攻撃に使用されているのに気づいたのは報告を受けてからだった. +また,10月から11月にかけては学科で運用しているGitlabが脆弱性を突かれ攻撃された.実際に攻撃を受ける前に総当たり攻撃が失敗していたりユーザーに対して警告メールが送信されていたが攻撃に使用されているのに気づいたのは報告を受けてからだった. 本研究では,障害の早期発見や事後対応を円滑に進める為に監視システムの提案を行う. @@ -15,4 +15,6 @@ しかし通常では一人がサーバーにアクセスしてCLI上での変更が必要となる. 上記の方法では第三者に編集内容を伝える方法としてログなどにまとめるしか無く,また第三者はログを自分で探す必要がある. -その為学科で使用しているチャットサービスであるmattermostからアラートルールを変更する事で属人化を防ぐ. \ No newline at end of file +その為学科で使用しているチャットサービスであるmattermostからアラートルールを変更する事で属人化を防ぐ.\\ +上記の方法だとアラートルールを共有する形で編集できる為,作業ログをまとめる必要や第三者がそれらのログを探す手間が省ける. +これにより上述した問題点を改善することが出来,属人化するリスクを抑えることが出来ると考える \ No newline at end of file
--- a/paper/text/technology.aux Sun Jan 30 22:14:44 2022 +0900 +++ b/paper/text/technology.aux Thu Feb 17 17:23:48 2022 +0900 @@ -1,27 +1,27 @@ \relax \citation{Prometheus} -\@writefile{toc}{\contentsline {chapter}{\numberline {第2章}技術概要}{3}\protected@file@percent } +\@writefile{toc}{\contentsline {chapter}{\numberline {第2章}技術概要}{2}\protected@file@percent } \@writefile{lof}{\addvspace {10\jsc@mpt }} \@writefile{lot}{\addvspace {10\jsc@mpt }} -\@writefile{toc}{\contentsline {section}{\numberline {2.1}prometheus}{3}\protected@file@percent } -\@writefile{toc}{\contentsline {section}{\numberline {2.2}PromQL}{3}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {2.1}Prometheus}{2}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {2.2}PromQL}{2}\protected@file@percent } \citation{alertmanager} \citation{loki} -\@writefile{toc}{\contentsline {section}{\numberline {2.3}exporter}{4}\protected@file@percent } -\@writefile{toc}{\contentsline {section}{\numberline {2.4}alertmanager}{4}\protected@file@percent } -\@writefile{toc}{\contentsline {section}{\numberline {2.5}loki}{4}\protected@file@percent } -\@writefile{toc}{\contentsline {section}{\numberline {2.6}promtail}{4}\protected@file@percent } -\@writefile{toc}{\contentsline {section}{\numberline {2.7}grafana}{4}\protected@file@percent } -\@writefile{toc}{\contentsline {section}{\numberline {2.8}mattermost}{5}\protected@file@percent } -\@writefile{toc}{\contentsline {section}{\numberline {2.9}コンテナ型}{5}\protected@file@percent } -\@writefile{lof}{\contentsline {figure}{\numberline {2.1}{\ignorespaces container}}{6}\protected@file@percent } -\newlabel{fig:container}{{2.1}{6}} -\@writefile{toc}{\contentsline {section}{\numberline {2.10}docker}{6}\protected@file@percent } -\@writefile{toc}{\contentsline {section}{\numberline {2.11}podman}{6}\protected@file@percent } -\@writefile{toc}{\contentsline {section}{\numberline {2.12}ハイパーバイザ}{7}\protected@file@percent } -\@writefile{toc}{\contentsline {section}{\numberline {2.13}kvm}{7}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {2.3}exporter}{3}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {2.4}Alertmanager}{3}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {2.5}Loki}{3}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {2.6}Promtail}{3}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {2.7}Grafana}{3}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {2.8}Mattermost}{4}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {2.9}コンテナ型}{4}\protected@file@percent } +\@writefile{lof}{\contentsline {figure}{\numberline {2.1}{\ignorespaces container}}{5}\protected@file@percent } +\newlabel{fig:container}{{2.1}{5}} +\@writefile{toc}{\contentsline {section}{\numberline {2.10}Docker}{5}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {2.11}Podman}{5}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {2.12}ハイパーバイザー型}{5}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {2.13}KVM}{6}\protected@file@percent } \@setckpt{./text/technology}{ -\setcounter{page}{8} +\setcounter{page}{7} \setcounter{equation}{0} \setcounter{enumi}{0} \setcounter{enumii}{0}
--- a/paper/text/technology.tex Sun Jan 30 22:14:44 2022 +0900 +++ b/paper/text/technology.tex Thu Feb 17 17:23:48 2022 +0900 @@ -1,43 +1,43 @@ \chapter{技術概要} -\section{prometheus} -prometheusは\cite{Prometheus}オープンソースのメトリクスベースのモニタリングシステムである. +\section{Prometheus} +Prometheusは\cite{Prometheus}オープンソースのメトリクスベースのモニタリングシステムである. 音声ファイル共有サービスを配信しているSoundCloud社によって2012年に開発されており,2015年に一般に公開されている.\\ -対象サービスから監視サーバーに対し情報を取得するpull型を採用しており,取得したデータは時系列データベースに保存される.特徴としてそれぞれのデータに付与されているラベルごとに情報をまとめることが出来る.また、promQLという独自のクエリ言語を扱う事でアラート管理コンポーネントであるalertmanagerにクエリを発行することができる. +対象サービスから監視サーバーに対し情報を取得するpull型を採用しており,取得したデータは時系列データベースに保存される.特徴としてそれぞれのデータに付与されているラベルごとに情報をまとめることが出来る.また、PromQLという独自のクエリ言語を扱う事でアラート管理コンポーネントであるAlertmanagerにクエリを発行することができる. 内蔵する式ブラウザからグラフ・ダッシュボードの作成やデータ検索ができるが作成したグラフは保存することができないことや汎用のダッシュボードシステムでは無い事から 一般的には可視化ツールと組み合わせて運用される. \section{PromQL} -prometheusの時系列データを扱うことに特化したクエリ言語である. +Prometheusの時系列データを扱うことに特化したクエリ言語である. exporterによって付与されるラベルを用いることで柔軟な集計が可能である。\\ -グラフやprometheusの式ブラウザを表示するのに使用したり,HTTP APIを介して外部システムで利用することが出来る. +グラフやPrometheusの式ブラウザを表示するのに使用したり,HTTP APIを介して外部システムで利用することが出来る. \section{exporter} -監視対象のデータを収集しprometheusからのリクエストに応じて必要なデータを整形しprometheusにレスポンスとして返すツールである. -prometheusに送信するデータに対しラベルを付与することができ情報の絞り込みが楽になる.\\ +監視対象のデータを収集しPrometheusからのリクエストに応じて必要なデータを整形しPrometheusにレスポンスとして返すツールである. +Prometheusに送信するデータに対しラベルを付与することができ情報の絞り込みが楽になる.\\ サーバーの情報を収集するnode\_exporterや通信のエンドポイントを監視するblackbox\_exporterなど公式が提供しているもの以外に多くのサードパーティがサービスのexporterを提供しており,自身で独自のexporterを作成することも可能である. -\section{alertmanager} -alertmanager\cite{alertmanager}はprometheusのコンポーネントであり,オープンソースソフトウェアとして公開されているアラート管理ツールである.\\ +\section{Alertmanager} +Alertmanager\cite{alertmanager}はPrometheusのコンポーネントであり,オープンソースソフトウェアとして公開されているアラート管理ツールである.\\ アラートの重複排除、グループ化などによりアラートの送信を行うことができる. -\section{loki} -loki\cite{loki}はprometheusに触発されたオープンソースのログ収集ツールである.\\ -特徴としてprometheusのようにログデータをラベル毎にまとめることができる.\\ -また,prometheusと同様にlogQLという独自のクエリ言語を扱う事でアラート管理コンポーネントであるalertmanagerにクエリを発行することができる. +\section{Loki} +Loki\cite{loki}はPrometheusに触発されたオープンソースのログ収集ツールである.\\ +特徴としてPrometheusのようにログデータをラベル毎にまとめることができる.\\ +また,Prometheusと同様にLogQLという独自のクエリ言語を扱う事でアラート管理コンポーネントであるAlertmanagerにクエリを発行することができる. -\section{promtail} -ログを収集してlokiに送信するツール.\\ +\section{Promtail} +ログを収集してLokiに送信するツール.\\ Prometheusのexporterのようにアプリケーションのログに対しラベルを付与することができる. -\section{grafana} +\section{Grafana} 収集されたデータ・ログをダッシュボートを用いてブラウザから可視化可能なツールである.\\ 自身でデータを収集をせずデータの可視化を行うためデータソースと組み合わせて使うのが一般的である. -データソースとしてprometheusとlokiを対応しており,logQLを用いてカスタムしたログ情報を表示することが可能である.\\ +データソースとしてPrometheusとlokiを対応しており,LogQLを用いてカスタムしたログ情報を表示することが可能である.\\ -\section{mattermost} +\section{Mattermost} オープンソースのセルフホスティング式のチャットサービスである.\\ -類似プロダクトにslackがあり,差別点としてはサーバーから自身で構築するためチャットに保存期間の上限が無い. +類似プロダクトにSlackがあり,差別点としてはサーバーから自身で構築するためチャットに保存期間の上限が無い. また,組織や企業などの開発者向けに作成されており、様々なツールとの結合が可能できる. \section{コンテナ型} @@ -48,25 +48,25 @@ \begin{figure}[htbp] \begin{center} - \includegraphics[width=80mm]{figs/container.png} + \includegraphics[width=50mm]{figs/container.png} \caption[container]{コンテナ仮想化型の図.} \label{fig:container} \end{center} \end{figure} -\section{docker} +\section{Docker} Docker.Inc.が開発したオープンソースのコンテナ管理ツールである. コマンドや専用のDockerfileを用いて環境を構築することができ、また作成したイメージを登録することが出来るDocker Hubを用いることで環境を配布することもできる. -\section{podman} +\section{Podman} RedHat社が開発したdocker互換のコンテナ管理ツールである. RHEL(Red Hat Enterprise Linux)のversion7.6以降からはdockerのサポートが切れる事からコンテナ管理ツールとして採用された. -\section{ハイパーバイザ} +\section{ハイパーバイザー型} 仮想化技術の一つであり,ハードウェア上にハイパーバイザと呼ばれる仮想化ソフトウェアを動作させ,その上でゲストOSを運用する. ホストOSを不要とするがコンテナ型と比べて起動速度は低速となる. -\section{kvm} +\section{KVM} KVMは(Kernel-based Virtual Machine)の略でlinuxカーネル上で動作する仮想化技術であり,カーネルをハイパーバイザとして機能させる. \ No newline at end of file
--- a/paper/thesis.tex Sun Jan 30 22:14:44 2022 +0900 +++ b/paper/thesis.tex Thu Feb 17 17:23:48 2022 +0900 @@ -7,7 +7,7 @@ \renewcommand{\lstlistlistingname}{ソースコード目次} -\jtitle{障害対応のための学科システムへの監視の検証} +\jtitle{障害対応のための学科システムへの監視の提案} \title{Verification of monitoring to Information Departments systems for failure response} \affiliation{琉球大学工学部工学科知能情報コース} @@ -86,7 +86,7 @@ 最後に,有意義な時間を共に過ごした知能情報コースの学友,並びに物心両面で支えてくれた家族に深く感謝致します. \begin{flushright} -2021年 2月 \\木山 瑞基 +2022年 2月 \\木山 瑞基 \end{flushright} % reference