Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Ops x meet up v18.12 クラウドサービス運用の裏側

Ops x meet up v18.12 発表資料

  • Login to see the comments

  • Be the first to like this

Ops x meet up v18.12 クラウドサービス運用の裏側

  1. 1. クラウドサービス運用の裏側 2018.12.21(Fri) OSS運用管理勉強会 OpsX Meet Up v18.12 @nid777 新居田晃史 Akifumi Niida ※本内容はすべて個人的な見解であり、所属する会社や組織を代表するものではありません
  2. 2. 自己紹介 • 新居田 晃史(にいだ あきふみ) • 所属 • JBアドバンスト・テクノロジー株式会社 • 先進技術研究所 • 日本最速ITエンジニア(※週刊BCN編集部調べ) • フルマラソン 2:29:56 • コミュニティ活動 • OSS運用管理勉強会 • JAWS-UG横浜支部 Twitter @nid777 Facebook Akifumi Niida
  3. 3. JB Cloud Qanat Universe ビジネス成長に必要 なサービスを 仕立て&提供する Qanat Universe 全体概要 高速 大量 柔軟 Qanat Agent 社内システム デバイス IoT 機械学習 深層学習 OCR SIer A SIer B クラウ ドサー ビス API データ サービス つなぐ 安心 確実 自在 APIカタログ サービスカタ ログ データカタロ グ AIサービス パートナーサービス デバイスAPI パートナーAPI 公開API オリジナルサービス プライベート データ 外部データ 有償無償データ プライベートAPI 監視サービス PrintPro WebReport デジピタ クラウ ドサー ビス クラウ ドサー ビス クラウ ドサー ビス クラウ ドサー ビス
  4. 4. 運用のつらみ •障害が起きるたびにやることが増える •システムが拡大するたびにやることが増える •人は増えない
  5. 5. 頼れるものには頼ろう •クラウドサービス •OSS •自動化
  6. 6. クラウドを利用するということ メリット • すぐにリソースを調達可能 • 面倒な事をクラウドサービス事業者に任せられる • APIが提供されていて自動化が容易 注意点 • クラウドサービス事業者のサービスレベルに準拠 • 「SLA 100% = 100%落ちない」ではない • リソースが増減する
  7. 7. OSSで構築の自動化 クラウド環境 仮想マシン アプリケーション
  8. 8. 監視の自動化 • インスタンスの自動監視 • AMIにzabbix-agentを入れておく • インスタンス起動時に自分の役割をタグから取得し、zabbix-agentの メタデータに設定 • Zabbixのディスカバリ自動登録の起動でメタデータから必要なテンプ レートを設定して監視ホストとして登録 • コンテナの自動監視 • zabbixのdockerプラグインを使用 • コンテナが起動すると、ZabbixのLLD(ローレベルディスカバリ)で コンテナを検知し、コンテナをホストしている監視対象にアイテムと して追加される
  9. 9. LLD(ローレベルディスカバリ) Zabbixに登録するホスト単位では固定できないような監視アイテムを 動的に追加できる機能 /dev/sda1 /dev/sda2 /dev/sdb1 ディスカバリアイテム アイテム一覧 {“data”: [ { “{#PART_NAME}”: “/dev/sda1”, “{#PART_SIZE}”: “30GB”}, { “{#PART_NAME}”: “/dev/sda2”, “{#PART_SIZE}”: “16GB”}, { “{#PART_NAME}”: “/dev/sdb1”, “{#PART_SIZE}”: “512GB”}, ]} 監視アイテム自動生成 ディスカバリルール ・ディスカバリキー ・アイテムのプロトタイプ ・トリガーのプロトタイプ ・グラフのプロトタイプ
  10. 10. • Fluentd (転送状態を監視) • タグ毎の転送数 • タグ毎(タグは可変) • キューの長さ • キューサイズ • リトライカウント • emqttd (転送状態を監視) • メッセージ数(送信/受信/ドロップ) • パケット数 • クライアント数 • セッション数 • トピック数 • Elasticsearch • シャードの状態 • タスクの状態 • ドキュメント数 • ノードの状態(ノードは可変) • JVMレベルで詳細なメトリクスを取得 ミドルウェアの監視
  11. 11. Fluentdの監視の例 • 公式のガイドがあります https://docs.fluentd.org/v1.0/categories/monitoring Prometheus だと plugin があるのでとても便利 Grafanaで良い感じにグラフ化してくれる
  12. 12. 「ZABBIX」でやりたい
  13. 13. 1. ディスカバリの設定(Zabbixでテンプレートを作成) 2. プラグイン(タグ毎)一覧のステータスを取得 PLUGINS=$(curl -s ${fluentd_host}:24220/api/plugins.json) 3. 一覧を良い感じに整形 items=`echo $PLUGINS | jq '.plugins | map(select(.retry_count !=null)) | map({"{#PLUGIN_ID}": .plugin_id, "{#PLUGIN_CATEGORY}": .plugin_category, "{#PLUGIN_TYPE}": .type})'` 4. ZabbixのLLDに登録するデータにする discovery_item="{"data":${items}}" 5. Zabbix_senderで登録 zabbix_sender -z 127.0.0.1 -s $FLUENTD -k fluentd.queue.discovery -o "$discovery_item" 6. データの整形と登録 以下のスクリプトをITEM="retry_count buffer_queue_length buffer_total_queued_size"で繰り返し echo $PLUGINS | jq -r ".plugins |map(select(.${ITEM} !=null))[] | ["${FLUENTD} fluentd.queue.get.[" + .plugin_category + "." + .type + "." + .plugin_id + ".${ITEM}]", .${ITEM}] |@tsv" | zabbix_sender -z 127.0.0.1 -i - Fluentdの監視(Zabbix編) //実際はAPIで取れるデータ+flowcounterで転送数を取得
  14. 14. アイテム自動作成結果
  15. 15. グラフ化 キューの長さ リトライカウント
  16. 16. でも結局Grafanaで見てます アラートとアクションはZABBIX 可視化はGrafana
  17. 17. まとめ • 全てのメトリクスを取得し、状態を正しく知る(昔も今も変わらない) • 自動化するために時間を作る • クラウドサービスやOSSの機能に任せっきりにならない 今できることをコツコツやりましょう

×