運用を開発しよう自己紹介
三角 正樹（みすみ まさき）

twitter:@micchan_jp

運用に携わって15年・ホスティングのサーバ構築・運用
・MSPのサービス企画、運用設計、システム構築、運用
・MSP会社立ち上げ（1500ノードの監視・運用）・株式会社フィックスポイント立ち上げ（運用自動化ツール）

運用って？
サービスイン後のもろもろ
企画

要件
定義

設計

開発

試験

運用

導入、保守、障害対応、定常運用などなど

種々雑多な
運用業務
構成管理
問題管理
上層部からのインシデント
作業依頼
管理

上層部からの作業依頼
定常業務

報告書作成
メール通知
エスカレーション

メール通知
プロビジョニング
ログ収集
上層部からのアカウントのエスカレーション
作業依頼
プロビジョニング
追加削除変更
ドキュメント更障害一次対応プロビジョニング
バックアップ
ログ収集 ドキュメント
新障害一次対応更新
障害一次対応ドキュメント更新

夜間の電話連絡

ログ収集

運用業務
維持業務
・障害一次対応・アラート通知受け・確認
・ログ収集
・メール通知・エスカレーション
・定常運用
・バックアップ
・リストア
・SSL証明書更新
・ユーザの追加、変更、削除
・構成管理情報の取得
・ドキュメントの更新
・セキュリティアップデート

改善業務・サービス改善・パフォーマンス改善
・業務改善
・予防保守

運用マンの憂鬱どうやって解決するか？
人が足りてないので人を増やしましょう！

どうやって解決するか？
運用をシステム的に出来るように開発して効率化しよう！

DevOps
最近では、DevとOpsが協力しながら、ビジネスのために継続的に成果を出すDevOpsが人気

ITPro 7ジャンルのツール活用し、開発と運用の協力を強化より

DevOps
Ops

Dev

デプロイ プロビジョニング トラブルシューティング オペレーション アドミニストレーション メンテナンス
デプロイ
ツール

環境構築
ツール

バージョン管理
ツール

監視
ツール

構成管理
ツール

問題管理
ツール

ログ管理
ツール

CI
ツール

前頁の図のツールの連携範囲

こちら側の連携はまだまだ・・・・KompiraKompira
サーバー監視Nagios,Zabbix, ・・・

構成管理
Chef,
Puppet, ・・・
変更管理
Subversion, ・・・インシデント管理
作業記録管理
ジョブ管理

連連
携 携連
記 記携
述 述記
述・・・

連携処理基盤

レポート作成ログ管理

問題管理
Redmine,Trac,・・・
資産管理
GLPI, ・・・

ナレッジベース
KBPublisher,Wiki, ・・・

Kompiraバーチャルオペレータ
サーバー監視Nagios, Zabbix, ・・・

構成管理
Chef,
Puppet, ・・・
変更管理
Subversion, ・・・

インシデント管理
作業記録管理
ジョブ管理

連連
携 携連
記 記携
述 述記
述・・・

連携処理基盤

レポート作成ログ管理

問題管理
Redmine,Trac,・・・
資産管理
GLPI, ・・・

ナレッジベース
KBPublisher,Wiki, ・・・

Kompira構成
自動化の流れジョブ

クライアントPC

ジョブフロー

Kompiraサーバ
アラート送信連携するOSSや商用運用ツール

監視ツール
plugin機器監視対象機器

コマンド指示受付／
実行結果送信

１．自動化用のジョブ、ジョブフローをKompiraサーバにて作成
２．既定のトリガーにてジョブやジョブフローが実行
３．Kompiraジョブマネージャへコマンド
指示４．Kompiraジョブマネージャから対象機器にリモートコマンド実行
５．実行結果をジョブマネージャからKompiraサーバに結果送信

Kompira
ジョブマネージャ

リモートコマンド実行による障害対応等の自動化

動作環境
アーキテクチャ
X86/64bit
オペレーティングシステム
Linux CentOS 6.0以上
Pythonバージョン
Python 2.6系

ジョブフロー例# URL確認する[./URLチェック: URL=ENV.url, BODY=ENV.body, incident=incident]-> { case |'OK': [../インシデント出力: '問題ないのでクローズします', incident]-> [incident.update: status='CLOSED'] -> exit()'NG': [./アラートメール送信: ENV, incident] }-> [../インシデント出力: 'Apacheプロセスの生存確認を行います', incident]-> { apache=9 | # フラグの初期化[__host__ = ENV.host, __user__ = ENV.user, __password__ = ENV.password]-> ['ps auxw | grep httpd | grep -v grep'] => [apache=$STATUS]-> { case '${apache} ${tomcat} ${db}' |‘1 0 0’: [../インシデント出力: ‘Apache存在しない', incident]-> [./復旧シナリオ/シナリオ1: from='start httpd', ENV=ENV, incident=incident]}-> [./URLチェック: URL=ENV.url, BODY=ENV.body, RETRY=10, incident=incident]-> { case |'OK': [./リカバリメール送信: ENV, incident] -> return()‘NG’: [../インシデント出力: ‘リカバリを確認できません', incident]-> [./エスカレーションフロー: ENV] }2013/6/6

Kompiraプラットフォーム

15

運用を開発する課題
運用の事はわかりません

プログラミングわかりません

開発の人

2013/6/6

運用の人

Kompiraプラットフォーム

16

運用を開発する課題
１９７０年代、メインフレームの時代に、それまで一つの体制だった開発と運用を分けた事に始まる運用マンの悲哀。もはや40年解決できなかった積年の課題に。

DevOpsも出てきて、そろそろ積年の課題を解決する時期では？
運用を開発する事で、解決していきましょう！

2013/6/6

Kompiraプラットフォーム

17

事例（障害通知の自動化）
性能情報取得、アラート通知
・仮想サーバーの監視・ネットワーク機器の監視・障害予兆検知・各種閾値監視・ポートのUP/DOWN検知
・応答監視（ping/http/tcp等）

お客様環境

②

取得したアラート情報を基に自動コントロール

クラウド型IPテレフォニーサービス

・ シナリオによる自動処理
・ メール・電話・FAXによる通知
・ 電話での自動音声入力により処理を分岐

・ 電話での音声アラート通知
・ 電話でのIVRにより処理を実施③

アラート情報を通知

コール

インターネット / VPN

①

⑤

⑥

復旧・情報取得処理を自動実行

System Answer G2にて、④

実行結果をメールにて連絡

公衆網[kompira]障害復旧のご報告
kompira@forschooner.net
送信日時：2012/00/00 00:00
宛先：support@himawari.com

BIZTELから担当者に自動で電話連絡

株式会社himawari様
ご担当者各位

お客様環境をこちらはKOMPIRA監視センター
障害復旧のご報告です。

金比羅太郎です。

対応内容：[2012-00-00 10:27:59] 障害復旧フローを開始します[2012-00-00 10:27:59] URL(http://192.168.0.0/)を確認 します[2012-00-00 10:28:00] 確認できませんでした[2012-00-00 10:28:00] Apacheの生存確認を行います[2012-00-00 10:28:00] apacheが生存していない[2012-00-00 10:28:01] 復旧シナリオ1を開始します[2012-00-00 10:28:01] 6. Apache起動します[2012-00-00 10:28:01] プロセス(httpd)の起動確認を行い ます[2012-00-00 10:28:02] 起動を確認しました[2012-00-00 10:28:02] URL(http://192.168.0,0/)を確認 します[2012-00-00 10:28:02] 確認できました[2012-00-00 10:28:02] お客様へリカバリメール送信します

1分間隔で性能監視

インシデントID: 20
検知日時: 2012-00-00 00:00:00
復旧日時: None
対象機器: testweb
障害時間: 00:00:00.000000
状況: URLが確認できない
現在値: URLが取得できました

携帯電話

以上、ご報告申し上げます。

障害発生

KOMPIRA監視センター
tel: 0123-45-6789

運用担当者

一般電話

ユーザー
≪自動音声≫
ウェブサーバに障害が発生しています。自動復旧処理を実行する場合は「1」を、他の担当者にエスカレーションする場合は「2」を押してください。

事例（構成情報管理）
定期的に行う必要のある構成情報の収集作業を自動化する。セキュリティ情報、資産管理情報と連携させることで、安定的な運用を実現できる。

手順書

対象機器へ1台ずつログインして情報取得

構成管理
ツール

Report事例（運用の統合管理）

インフラエンジニア
2名で24時間365日のサービス提供①

株式会社アイダック CROMCA②
AWSのインスタンス作成④

初期レシピ適用

Chefインストール③⑦⑥

実行結果をメールや電話にて連絡障害自動対応SIPサービス

インターネット / VPN

Knifeにて初期レシピ適用

Nagios

⑤

障害監視

障害発生

運用担当者

AWS