SIerもそろそろ 運用をなんとかしたいので いろんなOSS使って OpsBearってツールを 作りはじめたらしい
2019/02/22 オープンソースカンファレンス2019 Tokyo/Spring
TIS株式会社 八代 光平
八代 光平
所属 TIS株式会社 (2015年入社)
仕事 インフラ・自動化・OSS
技術・興味 Ansible Docker Python Git系 スクラム開発
機械学習(勉強中) StackStorm CI/CD Selenium ISUCON 競技プログラミング Kaggle Serverless
_k8shiro ko-he- ko-he-8
名前
2/29
Agenda
IaCによる運用自動化と限界
運用×データ分析でなんとかする
まとめ + お願い
3/29
IaCによる運用自動化と限界
4/29
Infrastructure as Code
インフラ作業をコード化し実行可能にする
サーバ構築、設定変更、運用タスク ⇒ 自動化
ソフトウェア開発のプラクティスを使う
バージョン管理ツール
テスト駆動開発
レビュー・リファクタリング
作業の効率化・品質向上が期待できる
Ansible、Chef、Puppetなど
IaCとは
5/29
を使用した自動化を進めています
インフラ部隊の中で
6/29
オープンソースの構成管理ツール
RedHat が開発、有償サポートを提供
特徴
エージェントレス ▶ 顧客環境ではエージェントが入れられないことも
モジュールが豊富 ▶Windows・ネットワーク機器への対応も多い
学習コストが低い ▶ Yamlでかけるのでプログラミングっぽくない
Ansibleとは
7/29
Ansibleを運用に使う
Firewallポリシー変更 NTP同期先の変更
スケールアップ スケールアウト
自動復旧
DevOps
テスト
バージョン管理ツール
IaaS・仮想化基盤
ワークフローエンジン
自動テスト
8/29
運用 がIaCで自動化できそう
が、限界もある
例えば障害の調査・対応とか
9/29
運用×データ分析でなんとかする
障害の調査・対応とかを
取り組みのご紹介
10/29
監視データ logファイル
ある状態Aの時に 異常Bが発生した場合
行動Cをすることで解決する
監視アラート 設定ファイル変更 コマンド実行履歴
こんなことをやりたい
状態 異常 行動
分析
運用中に関する情報
障害発生
11/29
監視データ logファイル
ある状態Aの時に 異常Bが発生した場合
行動Cをすることで解決する
監視アラート 設定ファイル変更 コマンド実行履歴
やりたいこと
状態 異常 行動
分析
これを実現する
の開発を始めました
12/29
監視データは長期間保存されていない ⇒ 障害発生時の生データがない
コマンド・ファイル変更の履歴は記録されていない 障害記録はExcel・チケット・メール等形式がバラバラ
分析可能な形式での情報の収集・蓄積の仕組みを作成
既存運用環境上の監視データを分析に活用 • なるべく現在の運用環境に手を入れないで 使えるようにしたい
13/29
運用ツール
Zabbix
Fluentd plugin
Core API
Polling
運用対象
config file
command Elasticsearch
GoTTY
rsync + git
Fess
時系列データ
InfluxDB
構成情報
Neo4j
運用情報の収集・蓄積
全文検索
14/29
運用ツール
Zabbix
Fluentd plugin
Core API
Polling
運用対象
config file
command Elasticsearch
GoTTY
rsync + git
Fess
時系列データ
InfluxDB
構成情報
Neo4j
運用情報の収集・蓄積
全文検索
15/29
運用ツール
Zabbix
Fluentd plugin
Core API
Polling
運用対象
config file
command Elasticsearch
GoTTY
rsync + git
Fess
時系列データ
InfluxDB
構成情報
Neo4j
運用情報の収集・蓄積
全文検索
16/29
運用ツール
Zabbix
Fluentd plugin
Core API
Polling
運用対象
config file
command Elasticsearch
GoTTY
rsync + git
Fess
時系列データ
InfluxDB
構成情報
Neo4j
運用情報の収集・蓄積
全文検索
17/29
運用ツール
Zabbix
Fluentd plugin
Core API
Polling
運用対象
config file
command Elasticsearch
GoTTY
rsync + git
Fess
時系列データ
InfluxDB
構成情報
Neo4j
運用情報の収集・蓄積
全文検索
18/29
異常の分析をするには
異常の発生と収束
を機械的にとれるひつようがある
19/29
閾値での判定の問題点
閾値
20/29
閾値
閾値での判定の問題点
閾値の境界を取得したいわけではない
変化の開始と終了を取得したい 21/29
外れ値はいらない 変化の開始と終わりだけを取得
閾値での判定の問題点
変化点検出(Changefinder)を実行 22/29
データの周期性の考慮も必要
一定間隔で実行されるJobがある 休日には使用量が下がる
データの周期性(増減の規則)を分析
周期からずれたら異常と判定
正常時
異常時
自己回帰分析 +変化点検出により異常を検出 23/29
WebサーバのCPUの使用率が増加 APサーバのCPUの使用率も増加 DBサーバのCPUの使用率も増加
監視データ間には相関関係がある(はず)
WebサーバのCPUの使用率が増加 APサーバのCPUの使用率が増加 DBサーバのCPUの使用率も低下
正常時 異常時
AP1
Web2
相関関係をグラフ化(行列化)し正常時との差異から異常判定
24/29
DB1 AP1 DB1
Web2
25/29
障害解消のための行動を提案
26/29
学習 発生した障害の種類 障害発生付近のシステムの状態 障害収束付近のシステムへの行動
予測 障害と状態から過去の様々な事象の類似度を算出 類似度と実行確率から行動を提示
27/29
解消する確率
予測された行動
28/29
障害対応をデータ分析で補助する OpsBear開発の取り組み
サービス化・OSS化を視野に検討開発中 時期未定
協力していただける方募集 改善に向けてご意見 試験的な導入 一緒に開発してみたい方
まとめとお願い
29/29
Top Related