SlideShare a Scribd company logo
第5回 SqlServer2017勉強会
SqlServer2017 on Linux環境 における
モニタリング
開催日:2018/4/21
主催:JSSUG(Japan Sql Server Users Group)
自己紹介
 名前:飯嶋健憲
 経歴:
1.Sierとしてドキュメントを書いたりお客さんと打ち合わせしたりドキュメントを書い
たりしてたまにC#のコードを書いてました
2.自社でWebサービスをやっている企業に転職してずっとC#のコード書いてました
3.色々あってインフラを見る人になりました ←イマここ
というわけで、基本アプリの人です
普段Sqlserver関連でやってること
 パフォーマンスモニタのメトリクスをPowershellで収集
 集めたものをMackerelにいれる
 パフォーマンストラブルが起きるたびに↑とにらめっこする
 データベースをチューニングしたり、クエリを見直したり、アプリの動き自体を
修正したり、、
自社では割と多くのホストを扱っているので、可能ならlinuxに移行したい、、
しかし、Sqlserver2017 on linux ではパフォーマンスモニタが使えない!
ネタ元
 SQLCAT(SQL Server Customer Advisory Team)で作ったモニタリングツール
(セット)があります(https://github.com/Microsoft/mssql-monitoring)
 https://blogs.msdn.microsoft.com/sqlcat/2017/07/03/how-the-sqlcat-customer-
lab-is-monitoring-sql-on-linux/
にやり方がまとまっているのでそれをもとに色々調べてみました、という内容です
このツールの背景(簡単な訳)
 sqlserverがlinuxで動くようになったけど、パフォーマンスモニタ―はwindows依
存なので動かない
 パフォーマンスモニタが無いのでパフォーマンスをvisualizeできない
 色々調べたけど結局は「これやっとけばOK」みたいなのは無い(結局ユースケー
スにより何を選択すべきかは色々)のであくまで一例だけど、こうすれば一応で
きるよ!という紹介
構成
必要なもの
 Sqlserver2017 on linux
 collectd on docker
 InfluxDB on docker
 Grafana on docker
collectdで収集したパフォーマンスデータをInfluxDBに入れて、Grafanaでvisualizeす
る、という流れ
InfluxDB
Grafana
サーバ2
:8086
構成
:25826
:3000
SqlServer 2017
on linux
collectd
サーバ1
:1433
collectd(https://collectd.org/)
 システムやアプリケーションの測定データを定期的に収集して、いろいろな形式
で保存するデーモン(サービス)
 Cで書かれているので動作が軽量&portabilityに優れる
 100以上のプラグインが提供されている
influxDB(https://www.influxdata.com/)
 時系列DB、GOで実装された単体のバイナリ
 http(s)形式のAPIでデータの入出力ができる( InfluxQL というSQLライクなクエリ
言語も使用可能)
 Continuous Query機能で、事前に定義したクエリを定期的に実行して保存してお
くことができる(マテリアライズドビューのような機能らしい)
 Retention Policyを使用して、データセットごとにデータの保持期間や分解能を決
めておくことができる
 エンプラ系のサービスやSaaS型のマネージドサービスもある
Grafana(https://grafana.com/)
 色々なデータソースに対してブラウザでかっこよくダッシュボード表示するサー
ビス
 エンプラ系のサービスやSaaS型のマネージドサービスもある
作ってみる
 時間があったら構築してみる
無ければhttp://210.129.53.224:3000/
キモはcollectd
データを受け取って
表示する何か
SqlServer 2017
on linux
collectd
サーバ1
:1433
Collectdで動いてるもの
 dbiプラグイン
→DBに接続して指定したクエリを投げて結果を取得するプラグイン
 networkプラグイン
→収集した情報をリモートサーバのcollectdに送る、またはリモートサーバのcollectdから
受け取るプラグイン
 cpu,df,load,memory,disk,interface,uptime,swap,processesプラグイン
→それぞれの名前から想起される、システムの各情報を収集するプラグイン
networkプラグインの設定
 収集した情報をinfluxDBがあるhostの25826ポートに送る設定
 influxDB自体にcollectdからのパケットを受け取る機能があるため、このプラグイン
でinfluxDBにデータを渡すことができる
 influxDBを使わない場合にはnetworkプラグイン以外のプラグインを使う or CSVプラ
グインで出力して色々がんばる? or 自分でプラグインをつくる
dbiプラグインの設定
 ドライバはFreeTDSを使用、Unix/Linuxで使用されるSybase/SqlServer対応のドライバらし
い
 実行しているのはsys.dm_os_performance_counters とsys.dm_os_wait_stats に対して
SELECTを実行した結果を出力
(詳しくはhttps://blogs.msdn.microsoft.com/sqlcat/2017/07/03/how-the-sqlcat-customer-lab-is-
monitoring-sql-on-linux/
またはhttps://blogs.msdn.microsoft.com/dfurman/2015/04/02/collecting-performance-counter-
values-from-a-sql-azure-database/
azureではパフォーマンスモニタが使えないのでこれを使うらしい?)
まとめと感想
 collectd+influxDB+Grafanaでブラウザで表示可能なパフォーマンスモニタリング
環境ができた
 なにか追加でやりたいことなどあればcollectdの設定ファイル(collectd.conf)を
見れば大体わかりそう
 実際にモニタリングやるならMackerelとかのSaaS使うと思うので実は今回調べた
ことはあまり使わなそう
 正直一番の収穫は
https://blogs.msdn.microsoft.com/dfurman/2015/04/02/collecting-performance-
counter-values-from-a-sql-azure-database/
 にある、PerfMonの代わりに使えるクエリが分かったこと(このクエリの中身つ
いてはまた後程、、、)

More Related Content

PPTX
React.js + Reduxで作るSPA
PDF
LocalStack
PDF
AWS Lambdaで作るクローラー/スクレイピング
PDF
Crawler Commons
PDF
SQLによるDynamoDBの操作
PDF
本当のClosure Compilerをお見せしますよ。
PDF
Isomorphic web development with scala and scala.js
PDF
Node.jsとAWS入門(Elastic Beanstalk & AWS SDK for Node.js)
React.js + Reduxで作るSPA
LocalStack
AWS Lambdaで作るクローラー/スクレイピング
Crawler Commons
SQLによるDynamoDBの操作
本当のClosure Compilerをお見せしますよ。
Isomorphic web development with scala and scala.js
Node.jsとAWS入門(Elastic Beanstalk & AWS SDK for Node.js)

What's hot (20)

PDF
Sflt17 meteorではじめる最速ウェブアプリ開発
PDF
Single Command Deployのための gradle-aws-plugin講座
PDF
Alibaba Cloud Serverless
PDF
ReactをRailsとどっぷり使ってみた話と、フロントエンド×AWSのこれから
PPTX
AWS CLIでEC2の利用料金を節約する
PDF
The Internal of Serverless Plugins
PDF
レガシーなアプリにWeb apiを実装してなみだ目になったのでちょっといろいろ教えてください
PPTX
Serverless frameworkを使ってみた話 at #nseg #90
PDF
Serverless frameworkでお手軽lambda運用 at #nseg #93
PDF
One Time Binding & Digest Loop
PPTX
Node.jsで使えるファイルDB"NeDB"のススメ
PDF
第11回rest勉強会 リファクタリング(クライアント編)
PDF
第10回rest勉強会 リファクタリング(サーバ編)編
PDF
Service worker が拓く mobile web の新しいかたち
PDF
20140930 anything as_code
PPTX
2016/12/17 ASP.NET フロントエンドタスク入門
PDF
松本克彦 ピグにおけるリアルタイムランキングの導入
PDF
React Redux Redux-Saga + サーバサイドレンダリング
PDF
Closure CompilerのES6対応 あるいはES6時代のAltJS生存戦略
PDF
第12回rest勉強会 これまでの補足・展望編
Sflt17 meteorではじめる最速ウェブアプリ開発
Single Command Deployのための gradle-aws-plugin講座
Alibaba Cloud Serverless
ReactをRailsとどっぷり使ってみた話と、フロントエンド×AWSのこれから
AWS CLIでEC2の利用料金を節約する
The Internal of Serverless Plugins
レガシーなアプリにWeb apiを実装してなみだ目になったのでちょっといろいろ教えてください
Serverless frameworkを使ってみた話 at #nseg #90
Serverless frameworkでお手軽lambda運用 at #nseg #93
One Time Binding & Digest Loop
Node.jsで使えるファイルDB"NeDB"のススメ
第11回rest勉強会 リファクタリング(クライアント編)
第10回rest勉強会 リファクタリング(サーバ編)編
Service worker が拓く mobile web の新しいかたち
20140930 anything as_code
2016/12/17 ASP.NET フロントエンドタスク入門
松本克彦 ピグにおけるリアルタイムランキングの導入
React Redux Redux-Saga + サーバサイドレンダリング
Closure CompilerのES6対応 あるいはES6時代のAltJS生存戦略
第12回rest勉強会 これまでの補足・展望編
Ad

Similar to 第5回Sql server2017勉強会資料 (20)

PDF
Eight meets AWS
PDF
AWSクラウドデザインパターン(CDP) - 概要編 -
PDF
サーバーレスのアーキテクチャパターンとそれぞれの実装・テストの勘所
PDF
AWS Summit New York 2017 Keynote Recap
PDF
[AWS Start-up ゼミ] よくある課題を一気に解説!〜御社の技術レベルがアップする 2017 夏期講習〜
PDF
物理ネットワーク受け入れテストの自動化を考える
PDF
Reco choku tech night #09 -reinvent2018報告会-
PDF
RespClient - Minimal Redis Client for PowerShell
PDF
Webサイト制作の環境構築(for Windows)
PDF
AngularJS+TypeScriptを試してみた。
PDF
弊社IoT事例とAlexaSkil開発レシピ
PDF
第7回rest勉強会 バリデーション編
PDF
デブサミ2013【15-D-4】Opsから挑むDevOps
PDF
ElasticSearch勉強会 第6回
PPTX
社内システムの移行に役立った“時間節約”方法~PowerShellとExcelを上手に使おう
PDF
テスト駆動で行うネットワーク自動化のすすめ
PDF
X pages day発表_20141118 final
PDF
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
PDF
Building Scalable Application on the Cloud
PPTX
Lv1から始めるWebサービスのインフラ構築
Eight meets AWS
AWSクラウドデザインパターン(CDP) - 概要編 -
サーバーレスのアーキテクチャパターンとそれぞれの実装・テストの勘所
AWS Summit New York 2017 Keynote Recap
[AWS Start-up ゼミ] よくある課題を一気に解説!〜御社の技術レベルがアップする 2017 夏期講習〜
物理ネットワーク受け入れテストの自動化を考える
Reco choku tech night #09 -reinvent2018報告会-
RespClient - Minimal Redis Client for PowerShell
Webサイト制作の環境構築(for Windows)
AngularJS+TypeScriptを試してみた。
弊社IoT事例とAlexaSkil開発レシピ
第7回rest勉強会 バリデーション編
デブサミ2013【15-D-4】Opsから挑むDevOps
ElasticSearch勉強会 第6回
社内システムの移行に役立った“時間節約”方法~PowerShellとExcelを上手に使おう
テスト駆動で行うネットワーク自動化のすすめ
X pages day発表_20141118 final
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
Building Scalable Application on the Cloud
Lv1から始めるWebサービスのインフラ構築
Ad

第5回Sql server2017勉強会資料