ふくてん#2 powershellとossで作るお手軽モニタリング環境

Post on 16-Apr-2017

386 Views

Category:

Engineering

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Powershell と OSS で作る お手軽モニタリング環境

やっぱりグラフがいいよね

@yukiusagi20522016 年 4 月 15 日 ふくてん#2

自己紹介• 3年前 ネットワーク系 + IA サーバー系    インフラエンジニア• いま  地場企業の社内システム部門にて、     Excel ・ PowerPoint 職人。   (日々の雑用との戦い + ちょっぴり企画 )      • 楽しみ 勉強会参加• Twitter   @yukiusagi2052ブログ 雪うさぎの道具箱

今日のお話• Powershell との出会い• OSS の紹介• 全体的な仕組み• 適用シーン• 使い方

Powershell との出会い• GUI ツールで戦う日々• AD アカウント管理• Exchange ユーザー管理• ログの集計・レポートデータの抽出

• IT じゃないーーい!

• 最近の MS 管理ツールは、 Powershell スクリプトを生成しているだけ

OSS (ログ集約)• 定番ログ収集ツール• Plugin で対象を拡張できる素敵な子です• ブラウザーから設定できる fluentd-ui が付いて、ますます便利に

REST API

Azure Storage

AzureEvent Hubs

めっちゃ  Plugin有〼HTTPPost

syslog

JSON

主に Linux 環境

Application

tail -f

OSS (データストア)InfluxDB は、高負荷の書込みとクエリを処理するためにゼロから構築された時系列データベースです。 DevOps 向けモニタリング、アプリケーション・メトリクス、IoT センサデータ、リアルタイム分析など、膨大なタイムスタンプ付データを格納するストアとして使うために、 InfluxDB はあります。ただし今後は、高可用性・スケールアウトな構成は、 Enterprise 版(有償、 closed source )のみで提供予定(クラスタリング機能は、 v0.12 で OSS 開発を打止め)

OSS (可視化ツール)• Grafana は、データ探索、ダッシュボードの作成、その共有をするための強力かつエレガントな方法を提供します。

今回の環境 x86_64• td-agent 0.12.12• Influxdb 0.10.3• grafana 2.6.0• centos6 (Linux 2.6.32)• virtualbox 5.0.16 $PSVersionTable  CLRVersion 2.0.50727.5485  BuildVersion 6.1.7601.17514  PSVersion 2.0  WSManStackVersion 2.0  PSCompatibleVersions {1.0, 2.0}

全体的な仕組み

データPowershell

VM(Linux    )

ダッシュボードを チェック!

定期的(タスク・スケジューラー)

イベント発生時(イベントログ)

起動・停止時(グループ・ポリシー)

こんな場面に• ときどきパフォーマンス悪化。 原因箇所はサーバー? ネットワーク? 取り急ぎ傾向が知りたい。⇒ まずはデータ収集• 常時カウントが必要なイベント ウィルス検知、アカウントロック• パソコンの稼働率はどうなってるの?  起動・停止の長期的な情報収集

データの送り方◆Fluentd in_http の仕様に合わせて『 post』  Invoke-RestMethod `   -Uri ‘http://server:9880/influxdb.net' `   -Method POST `   -Body 'json={“location":“tokyo",“latency":50,”lossrate”:0.1}‘

◆コマンドレット結果を JSON に変換するには  ConvertTo-Json -Compress

Tag

データ( JSON )

ひと工夫• 素の Windows 7/WS2008R2 でも使いたい→  Powershell 2.0 環境前提• グループポリシーで、組み込みたい→  Module にしない• 使い易く(ちょびっと)→  コマンドレット実行結果( PSObject )を、  パイプで受け取れるように

使い方function Do-Ping{ 計測の処理・・ New-Object PSObject -Property @{ location = $LocationString latency = $LatencyMilliSecond lossrate = $LossRate }}

Do-Ping | write-fluentd –server 'http://server:9880/' ` -tag 'influxdb.net' ` -text 'location'

良かったら ...• 試してみたり、他によい利用シーンがあれば、教えていただけると嬉しいです。

https://github.com/yukiusagi2052/write-fluentd/

top related