sidetech

インフラエンジニアの寄り道メモ。

サシー?サーシー?サッシー?さしあたってSASEな製品Catoをトライ!

元?インフラエンジニアと言い始めてから5か月…。
現在、DX推進の営業技術屋としてお仕事しておりますが、DXにも色々ありまして、当初はIoT系を色々やっておりましたが、気が付いたら・・・インフラ界隈のお仕事も結構やっております…(^^;AzureがどうとかOffice365がどうとかブログで書いている時点で何しているの?という感じではありますが。こんなことやっている間にWVD設計進めろよ・・・という感じではあるのですが、DXだけじゃなくハイブリッドなインフラ屋としての活動もして行く感じっすね。

さて、昨年頃からガートナーさんあたりがサシーがどうのという事で、ちらっと耳にはしていたのですが、SASEとは「Secure Access Service Edge」といって、簡単に言うと、クラウド時代のオールインワンな詰め合わせ・・・なのでちょっとSASEで意味先行しすぎちゃうと意味わからなくなるかもですが、一時ファイアウォールでも統合型~やら次世代~とかありましたね。その次なる世界です。今時にいうと統合系では第3世代ぐらい?(ちょっとわからないけど)。
んで、なんでSASEなんかというと「DXやるのにインフラ(セキュリティも含む)が色々複雑で足手まといなんだよっ」というのが、今までのインフラという事みたいですね。ハイブリッドクラウドも含めて。端的に言うとですが。

こんなコロナやらテレワークやらで、インターネットが主戦場で、結局ミーティング品質悪ぃしぃ・・・意味不明な遅さや重さに悩まされるし?どれが悪いのか複雑だからわかりづらいし?自宅環境なんて何それ?だし。5Gは来ないし?BYODなんてかっこいいこと言ってセキュリティ度返しだし?コントロール大変だし?社員信用できなくて疑心暗鬼だし?もっとスマートにやれないのかよっ・・・という所でSD-WANから先のソリューションの位置づけなのかな、回線屋もネットワーク屋もセキュリティ屋もDX屋も情シス?もハッピーになれそうな?エコシステムなソリューションがSASEってところでしょうか(ザックリですが)。

そういった中でのSASEという言葉がガートナーさんで提唱された頃に、「あ、それ作ってました~」というのがCato Networksさんぽいっすね。他調べ切れてませんけど。
バックボーンはMPLS品質のワールドワイドに展開されて、各PoPというポイントに繋げば、整備されたアウトバーンを決めた速度で使い放題という製品。このPoPへのエッジからの接続から、各クラウドとの接続、網内から各クラウドサービスへの接続を、最寄のPoPから最短ルートで出口へ案内してくれるという。昔で言うとIP-VPNとかで色々がばって接続していたのが、もっとフレキシブルに短時間で開通させられて、更にセキュリティもやれちゃうってことですね。構築のリードタイムはかなーり早くなるという。
専用線引き込むのに結構苦労したりするんですけど、インターネット回線でPoPに繋げればOKなので、ラスト1マイルの品質を気にする必要はありますが、そこはSD-WANがカバーという事なのでしょう。
インターネットは速度制限こそ殆ど無いのですが荒れ道ですからね・・・私もインターネットの品質管理・品質監視には結構研究してトライしてきました。改善も色々手を尽くしましたけど、尽くせないこともありました。5Gなんかもそうですが、制限速度がない世界は結局輻輳を起こしてふんずまって渋滞して、出直し率(再送)が上がってスループットが安定しないんすよね。ラストワンマイルだけが頑張ったって、目的地までが綺麗な道なだけとは限らない。時間帯によって変わるし。そこに要らん攻撃もあるしね・・・。綺麗な整備された道から荒れ道の区間を最小限にすれば結構効果あるかもね。てことで、あれこれ散らかっていたものをスマートに統合しちゃってDXしようZE・・・。

てことで、今は以下の様な感じです。

f:id:hunter1014:20210201231910p:plain

自宅(笑)とAzureを結んでいる様に見えるでしょ。
まだ、ルーティングの設計までは終わってないんだけど、なんとかデプロイしてオンラインまでは持っていきました。5時間弱程度でしょうか。ちょっと予習しつつトライしつつだったもんで。慣れればもう少しタイムアップするかな?

てことで、私のAzureとCatoの評価期間の問題もあるので、以下の私が想定したPoCをサクッとやっつけていくっ。まだやりながら設計しただけなので、ちょっとこまい所決めていないけど、大体これぐらいで大半の事はOKなはず。

f:id:hunter1014:20210201232222p:plain

シナリオは、色々沢山立てたのですが・・・出来ないと恥ずかしいので、出来たものからアップしていきますね。
【今現在やったもの】
Ubiquity ER-XでIPSec IKEv2でPoPにVPN張る
・AzureにvSocketを構築してCatoとつなぐ

【今後やること】
・いろいろなルーティング系の設定
・Azureに検証サーバーを建てて、遅延確認・ファイルコピー速度テストなどなど
・リモートアクセス
・セキュリティな制御
・WVDとのデザイン考察
 
ちょっと、Edge機器を借りようと思ったら出払っていると言われたので、兎に角クラウドにvSocketなポイントを建てていくしかないんだけどね。あと余力があればawsも試してみようかな。

細かくはキャプチャしたり手順は載せるつもりは無いのですが、大体の流れ~とか、ポイントになる部分とか、こんな感じーっていうのは伝わるように書いていきたいと思いまする。
肌感としては、ハイブリッドインフラにドップリでお疲れな方々に理解しやすいのかも?。クラウド特有の癖とロックインに対してどのようなアレンジで、どう向き合えるかがカギな気がします。

さて、がんばってキャプりますw

仕様を少し読んでAzure virtual WANに接続挑戦(成功?)

今日の今日ですが・・・ハッとおもったページを参考に組み直したら・・・

f:id:hunter1014:20210120095528p:plain

繋がったっぽいですね。接続済みなのにグレーの(?)が出ています。
これは、恐らくAzure virtual WAN HUBのAPIあたりに状態通知をしていないからではないかなと勝手に推測しております。

f:id:hunter1014:20210120121006p:plain

方肺状態ですけどね。ちゃんとupしましたね。

f:id:hunter1014:20210120095659p:plain


EdgeRouterの方でのvpnステータスは、
$show vpn log
$show vpn ipsec sa
$show vpn ipsec status
$show vpn ipsec state
ここら辺のコマンドを打ちながら状態を確認。

Azure側のステータスはちょっと遅い反応でした。最初はEdgeRouterはupしているのにAzure側は未接続が続きましたので・・・。

さて、ここまできましたが、どうやらRouteTablesに着手しないと駄目なようです。

斜め読みしかしていませんが、以前のRouteTablesの仕様と変わったんだとか。なので、Azure virtual WAN以前のRouteTablesが仕様対応していないらしく、入れ替えが必要なんだよと、どこかのブログで読みました。

てことで、VPNトンネルが張れただけなので、まだ成功とはいえないですね。
BGPもやっていないし、方肺ですからね。ほんとに触り検証レベルですが。

 

簡単にEdgeRouter側のConfigを晒すと

#set vpn ipsec esp-group FOO1 compression disable
#set vpn ipsec esp-group FOO1 lifetime 3600
#set vpn ipsec esp-group FOO1 mode tunnel
#set vpn ipsec esp-group FOO1 pfs disable
#set vpn ipsec esp-group FOO1 proposal 1 encryption aes256
#set vpn ipsec esp-group FOO1 proposal 1 hash sha1

#set vpn ipsec ike-group FOO1 ikev2-reauth no
#set vpn ipsec ike-group FOO1 key-exchange ikev2
#set vpn ipsec ike-group FOO1 lifetime 28800
#set vpn ipsec ike-group FOO1 proposal 1 dh-group 2
#set vpn ipsec ike-group FOO1 proposal 1 encryption aes256
#set vpn ipsec ike-group FOO1 proposal 1 hash sha1

よくあるパラメータで行けました。
下手に弄ってしまったのがよくなかった・・・。

#set vpn ipsec site-to-site peer XXX.XXX.XXX.XXX connection-type respond
ちなみに私の環境はダブルRouterなので、イニシエーターモードではなく、レスポンスモードです(昔はメインモード・アグレッシブモードって言わなかったっけ?)。


ということで、「お試し程度であれば」IKEv2が組めるVPNルーターであればなんとかなる・・・という感じですかね。
本設は、しっかりサポートされたパートナー(ベンダー)機器で行ってください。

恐らくはRe-keyのタイミングでトンネルが落ちるんじゃないかなぁとw

 

私は、設計する場合の考慮点(仕様・制限)の確認のために仮組を試みて楽しんでいるだけですので・・・。

仕様を読まずにAzure virtual WANに挑戦(失敗w)

まぁあわよくば・・・程度だったんでイイんですよ。大体の操作感は掴めた。それで良しとしますw

f:id:hunter1014:20210120002346p:plain

いつぐらいにローンチしたのか分からないのですが、Azure virtual WANなるものがあったので、いつもの「くらう道」を読みながら、少しUIとかパラメータとか手順が違ったけど、だいたいのノリで作ってみましたが、「サイト間VPN構成」というのが、すんげーシンプルな記述しか入っていないんですよ。ブランチIPSec接続自動化ということらしいのですが。
何かヒントがないかなーと・・・

ここらへんをみつつ、合わせにいってみたんですが・・・

f:id:hunter1014:20210120002937p:plain

撃沈でございました。こちらはそんなに粘ってません。。。(^^;
Meraki MXで張れるならいけそーなんですけどね。

どちらにしてもAzureWANって何よ?って思って触りたかっただけなので、ちょっと他のタスクもあるんで、ひとまず置いときます。

 

ただ、AzureHUBは中々面白いですね。グローバル拠点・リージョンもこれで橋渡しできますねぇ。バックボーンもつようなるしね。vNET-Peeringにも限界があったので、サクッと行ける手段でやっちまっていました。もっと前からあればよかったのになぁ。

しかし、GatewaySubnetがあるvNETにはジョイン出来ないっていうのがまたツライ仕様だこと・・・。

 

あと、Azure virtual WANに興味を持ったのはSD-WANの手法をどうするのかなという所です。
例えば、ExpressRouteを使わずに帯域も稼いで可用性も担保とか考えるとSD-WANじゃんって思うのですが、そこでSilver-PeakとかVelocloudとかなら出来そうだなぁ・・・と思っていました。マーケットプレイスに仮想アプライアンスあるしね。
でもこれってば、AzureWANのHUBにつなげられちゃうわけでしょ。それも自動構成で。ブランチIPSec接続パートナーに何社か出ていますけど。

でもSD-WANのハンドリングは出来ても、例えば帯域品質改善機能とかはどうなっちゃうんだろ。やっぱその場合は、仮想アプライアンスの方が良いのかな。
PaloaltoもSD-WANとかいうオプションがPAN-OS9ぐらいから出てきているぽいんだけど、どうやらPanoramaが必要そうだし?PRISMAってのが良くわかっていないけど。
あとPaloでSD-WAN調べると、Cloudgenixな方面に行っちゃうんだよね…。

あれ、AzureWANの話からSD-WANな話になっていますね。。。

あ、書きながら、情報見つけた。もうちょっとだけ粘りますかね・・・。

なんかフェーズ1のDH_GROUP間違えた気がする・・・(^^;

フェーズ1でコケていたのでもうちょっと粘ってみる。

まぁ、こんな日もあります。失敗も晒していくっ!

追記)その後軽く粘って・・・IPSecVPNとりあえず?接続成功しました。。。(^^;

AzureにEdgeRouterXでS2S-VPNやっていく。

編集出来る時にドカッとアップする下手なブロガーです・・・(^^;
気分屋ということで。。。

さて、気分が乗っているときに書いてしまいましょう。
本主題は、似たような検索をすれば他の方の例が上がっていると思うのですが、少しだけ注意ポイントがあったのと、自分でもナンデ?という部分もあったので、作業メモとしてという感じです。

 

au光のBL172HVで苦労している同志 ⇒ 色んなブログに対処法あるので割愛


・AzureのvNETデザインは1つ前の記事読んで。


・Ubiquiti EdgeRouterXでVPN(L2TP)は

・Ubiquiti EdgeRouterXでL2TPでスマフォは成功したけどPCがダメな人(本記事には全く関係ないけどw)。


・ちらっと参考にしたブログ

・ちょっと読んで「ふんふんふーん、だいたいおーけー(絵しか見てない)」と思った記事。


てことで、やっていきましょう。
以下構成図です。
f:id:hunter1014:20210117224750p:plain


まずは「Azureお久しぶりっ!」だったので・・・。

f:id:hunter1014:20210117230136p:plain

素直にヘルプ見ます(^-^。

あーやっぱり久々にやると忘れていますね。そんなことしたっけ?って思いました。
おまけになんかSKU増えているし・・・。SKUの内訳もなんだったか忘れちゃったのでおさらいしておきました。

・まずはバーチャルネットワークゲートウェイから。

f:id:hunter1014:20210117230737p:plain

・サクッと設定投入。

f:id:hunter1014:20210117231322p:plain


・作成には多少時間掛かります(20分かかった)。

f:id:hunter1014:20210117231632p:plain

・こげん具合で出来上がります。
  これでAzure側に(仮想の)VPNルーターを作った感じです。

f:id:hunter1014:20210117231903p:plain

・ローカルネットワークゲートウェイを作成します。
Site-to-Site(S2)の対地となる自宅の環境設定を投入する感じです。

f:id:hunter1014:20210117232500p:plain


・以下のような感じですね。プロファイルとかオブジェクト作成みたいな感じです。

f:id:hunter1014:20210117232609p:plain


・さて、ここまできたら、「vNET10_0_GW」で「接続」から「追加」です。

f:id:hunter1014:20210117233212p:plain


・今まで、事前に仮想ネットワークゲートウェイとローカルネットワークゲートウェイを作成してきているので、それを選ぶだけですね。ここで「共有キー」きめてください。あと、私はIKEプロトコルはIKEv2にしました。

f:id:hunter1014:20210117233007p:plain

・これでVPNトンネルの情報まで出来上がりました。Azure側はこれで準備完了です。
 コマンド要らずパラメータほとんど無い状態でVPN作るのは不思議な感覚です。
 で、構成のダウンロードをしましょう。

f:id:hunter1014:20210117233712p:plain

・なななんとUbiquitiのEdgeRouterの構成がそのまま頂けそうです。私が使っているOSバージョンとは違いますが、恐らく問題ないです。今回はBGPではなくVTIで。
本当は他社の構成情報を読み取るつもりでしたが、これは楽出来ましたね。

f:id:hunter1014:20210117234000p:plain

・さてEdgeRouterXのほうの手当てをしていきます。
 GUIでと行きたいところですが、構成情報をCLIで投入していきます。

f:id:hunter1014:20210117234817p:plain

画像で張り付けてゴメンやけど、オレンジの部分は「A.A.A.A」のアドレスが書かれていた部分です。ただ、残念ながらBL172HV環境のダブルNAT環境で、DMZ機能で外部からくる全パケットをEdgeRouterXに充てているだけです。てことで、オレンジでマスクした部分はローカルアドレスに書き換えます。こうしないとEdgeRouterが、「A.A.A.A」なんてアドレスは知らんとWarningだして怒ります。
あと、au光のGIPも動的なので、本来であればDDNSとかで気を使うべきなんでしょうけど、まぁほとんどIPが変わらないらしいので、ちょっと歪な設定ですが。
本来の筋でいうと、EdgeRouter側はアグレッシブモードにするべきなんでしょうね(やりかた知らんけど)。そもそもAzure側のローカルネットワークゲートウェイの時にIP指定しちゃっているしね。これFQDNにすると本来は良いんでしょうね。
ちなみにこのEdgeRouterXのCLIコマンドと癖は一部なんとなく癖の理解は出来るのですが、一部の文法や作法の理解はせずに行っております。FOO0ってなんじゃろって感じです(^^;

・上手くトンネル張れたようです。接続済みになりましたね。

f:id:hunter1014:20210117235542p:plain

・EdgeRouter側からの確認でもトンネルがUPになっていますね。

f:id:hunter1014:20210117235753p:plain

・ルート情報も大丈夫そうです。

f:id:hunter1014:20210118000008p:plain


ということで、S2S-VPN出来ました。まだAzure側に何もないのでpingすら出来ないですが・・・。

これで衝動買いしたEdgeRouterXですが、1つの仕事をこなし始めることが出来ます。
なんだかんだで、半日は掛かっていますけど、ハマっていないのが怖いぐらいです。
実はルーティング上手くいかなかったりして・・・。(^^;
今年、なにかとFWとかRouterを扱うと何かしら問題抱えるもので・・・(苦笑

何が嬉しいかといえば、高いVPNルーターを買わずに安価にS2Sが行えたことですね。
ちょっとau光の曲者ルーターが難敵になるのではと思ったのですが。EdgeRouterもv2.0.9のバグを今の所踏んでいないようです。
ちょっとIPv6のケアを後回しにしちゃっているので、今後の課題ですが、現在Azure側でやりたいことがモリモリなので、そっちを先にやっつけます。
Azure無料期間をしゃぶりつくさねば!

ご参考にする方がいるかわかりませんが、ぜひ、テレワーク中の仕事で行き詰まっていて気分転換したい時にでもお試しくださいませ!



 

 

 

Azureと戯れる準備。

久々にAzureに触ってみます。何か月ぶりだろう…約6か月ぶりですかね・・・。

Azureとかawsとかとっつきにくかった方々や、アプリケーションサーバー立てた後、どうしようと悩まれる方、結局VPN張りたいんだよという方。目的はないけどもやってみたけどイマイチ何しようか立ち止まってしまう方・・・
そんな方達(?)向けになるのかわかりませんが・・・

残念ながら『10分でアプリが使えるぐらいクラウドは簡単』をかるーく覆す程、クラウドの作法に振り回される将来が待ち受けており、私も「あーしておけばよかった」とか「もう後戻りできない」とか「何度も反復できない要素ですぐ忘れてしまう」等など、触る方々の苦しみは少しは分かっております。そして、この手にはよくある、「理解はしていないけど手順に沿って頑張る」事をやっても、その先に手を出そうとすると仕様が合わずに行き詰まったり・・・。そして、そんな中、クラウドの仕様変更やUIの変更に振り回され、何が何だかとなっていく(私もですが)。そんな苦労の入り口に立たれている方々へ、なるべく手戻りをなるべく減らしながらも失敗しても致命傷を負わせずにAzureと戯れる方法があればなぁ・・・と思う次第です。

ちなみにAzureに関しては、私はAzureの心の師匠として

「くらう道」のうしがみさんの記事を大変参考にしております。企業系のAzureブログもちらっとは見ますが、古いネタだったり、ちょっとそれじゃないというのが多く、うしがみさんのAzureネタがなければMicrosoftの日本語として読みにくいナレッジを自己MicrosoftDocumentsUnZIPをフル回転させながら読解していかねばならず、この読解でかなり疲弊します・・・。うしがみさんが居なかったら日本のAzureエンジニアは入口に立たずにawsに行くでしょう(笑)。もっとAzureのナレッジが増えると良いのだけども…。

さて、前置きが長くなりましたが、Azureと上手に戯れるには、分かっていてもわかっていなくても、以下の要素の準備をしておけば、ある程度汎用性が保てます。

・最初からvNETは2つ用意する
・vNETのCIDRはケチらず「/16」で作っておこう

一つは、「SubnetGateway」を使うvNET
もう一つは、「RouteTables」を使うvNET
もちろん、目的や拡張性が分かっている方々は絞って狙うvNETでよいかと思います。
でも、恐らくは目的の為の設計に専念してしまい拡張性考慮がされなかったりしていると思います。そんな部分にもあらかた拡張性の都合を残すには「使用予定がないvNETも作る」のが実は後々自分の退路を確保できます。
なんでかというと・・・

例えばの例ですが、恐らくこの想定を初めからするのは不可能でしょう。
(以下MSのナレッジから画像拝借)
接続アーキテクチャ図
高可用性

まず・・この接続図までは「ふんふんなるほど・・・」でよいかと思うんです。
PaaSを活かすのにこういったデザインがあるんだと。

しかしですね・・・

f:id:hunter1014:20210117205058p:plain

f:id:hunter1014:20210117205204p:plain

ここで、ExpressRouteを使う場合は・・・という例で、それまでの構成では組めない絵に突然押し付けられるんです。後出し仕様に感じるかもですね。。。これがクラウドインフラに関わる方々の恐怖です。私も「Azure virtual WAN」とかやったことないので、どうやるんだか・・・(^^;awsでも「AWS Transit Gateway」なるものが後から登場し困らせてくれました。

わたくし、SQL-MIとExpressRouteどちらも使うケースに遭遇し「突然終了のお知らせ」を突き付けられました。この後の設計変更を苦労したのは言うまでもありません。
最初からどこかで注意書きがあればよいのですが、大抵はやろうとした時です。
なので、「vNETを二つ用意する」だけでも超えられない仕様はあるにはあります。
ただ、上記の図のようにAzureのインフラではピアリングデザインが当たり前のように使われる事に注意しなければならないんです。あとからあれこれサーバーレスをやりたいと思ったときに気をつけねばなりません。
そして、「RouteTables」ですが、SQLマネージドインスタンスや、3rdパーティ製の仮想ルーターなどは「RouteTalbes」を使います。「RouteTables」を使った方がよい場面と使わない方がよい場面もあり、これらの状況を鑑みると、vNETは最初から2つあった方が振り回しやすいのではないかなと思った次第です。

えーと、ここまで何言っているのか分からなくてもとりあえずvNETは2つ作っておくと幸せですよという話です。グローバルも意識されている方は、こんなブログを参考にはしていないと思いますので・・・(笑)

 

まぁ話は長くなりましたが、サクサクとやっつけましょう。

f:id:hunter1014:20210117211238p:plain

私はMicrosoft365の契約があるので、そこから「portal.azure.com」へアプローチして、ここにきています。開始すると、クレジットカードが人質になりますので無料の範囲を超えそうな場合とかちゃんとアラート設定とかも考えたり、その前にAzureカリキュレーターで予備計算してから登録してくださいませ。

f:id:hunter1014:20210117211509p:plain

最初のTOP画面はUIがコロコロ変わるので、同じ画面じゃないかもですが、とりあえず「VirtualMachine」じゃなくて、「仮想ネットワーク」に行きましょう。
awsではよくデフォルトの[172.31.0.0/16」をそのまま使われているケースがよくあるなぁと思ってましたが、Azureでも10.0.0.0/16を使わせる感じの流れだったかな?
オンプレや個人宅でいうと192.168.0.0/24とか192.168.1.0/24をそのまま使っていくパターンと変わりませんが、オンプレだって、そのルーターがいなかったらサーバーを立ててもどこにも行けないネットワークになってしまうわけですから、ちゃんとネットワークから作ってあげましょう。

f:id:hunter1014:20210117211951p:plain

はい、私は上記のような感じで起こしました。

f:id:hunter1014:20210117212025p:plain

「vNET_10_0」のCIDRは「10.0.0.0/16」とし、「GatewaySubnet」と他2つのサブネットを作っておきました。作っただけです。何に使うか考えてません(笑)
ルーターでSubnetバンバンつくるというたら、そりゃちょっとだけ大変ですがAzureでは簡単ですね。「GatewaySubnet」はawsでは出てこない作法のある特殊なSubnetです。作法上必要であると理解すればOKです。

f:id:hunter1014:20210117212344p:plain

そしてもう一つ、「10.1.0.0/16のCIDR」のvNETを作っても/24のサブネットをとりあえず2つ作っています。使い道は決まっていない。
名前の付け方は人それぞれだと思います。わたくし目的用途向けにSubnetの名前を付けていたことがあるのですが(たとえばSystem-Subnet、Management-Subnet、App-Subnetなど)、どっちつかずなサーバが居る時に困ったんですよねぇ。
Azureではリソースグループでまとめる方法もあるので、Subnetに意味をあまり持たせない方がいいのかなと思ってきた次第です。

と、言うことで、vNETを2つ準備するだけなのに、長い眠くなる説明に終始してしまいました。でもここを乗り越えればあとは好きに(お金が許す限る)色々なサービスを立てまくるだけです。
過去記事でも似たこと書いていました。

今回は経験談を踏まえての説明ということで、大目に見てくださいませ。

Azure初心者向け?初級向け?になっているのかわかりませんが・・・(汗)
難しいですよね・・・クラウドの仕様や作法をやる前にすべて把握するのは。
勉強している速度よりも機能追加の方が早いと思います・・・(悲)

さて、次はAzureとEdgeRouterXとでS2S(Site-to-Site)VPNをします。
世間にネタが落ちてはいますが、私も載せておこうと思った次第です・・・。

ただOfficeアプリが欲しかっただけ。。。

うーん。気持ちに余裕が無い時程、余計な事をする私です。

ちょっと今抱えている案件というかお仕事…ちょっと経験分野から外れているんで、ひたすら文字を読み込んで理解を早くして結果に持っていかねば・・・てなかんじなんですが・・・。

さてはて、色々とあれやこれやとIT環境を整備するのに、会社に依存している部分と、個人で頑張っちゃう部分があると思うのですが、今回はちょっとした要素が重なり・・・結局どこまで行くんだ・・・というような話です。

 

はじまりは単純です。

↓ちょっとパワポで資料というかラフな資料起こししたいな。

↓会社のVDI入りながらやるのは資料データの往来がめんどいんだよな。

↓まぁOfficeぐらい個人で買っといてもいいな。娘には買ってやってるし。

↓そーいやSharePointって企業版にしかなかったり単体のサブスク高いんだよな…。

↓そーいや個人でAzureってどーするんだっけかな…。

↓そーいやOffice365とMicrosoft365って何が違うんだっけかな…。

↓そーいや今の価格っていくら位で割引ってどうなんかな…。

なんて思いながらネットサーフィンしてたんすよ。

Azureは個人でもまぁMicrosoftアカウントがあればなんとかなるって思っていたけど、SharePointの勉強って個人でどうやるんだろ・・・とかね。

 

Microsoft365 Personal 1年で1万2千かぁ…。1か月1000円。タバコ2個ね・・・。
まぁAccessとかPublisherとかあんまし興味ないけど、永続ライセンスとどうするか悩む。
と、いつもの悩みにぶつかっていたら「Microsoft365Apps」なるものがある。
法人向けとはなっているものの、Personalと内容が一緒のような・・・?!

まぁ一応調べてみるか・・・。

ほええーそうなんだぁ。どちらも個人でも法人でも買えちゃうのね。

んで、Skype含むかどうかと、インストール制限ぐらいか。5台もインストールできれば十分だけどね・・・。

じゃぁMicrosoft365Appsで良いか…最安値ってどこかなって探しつつ。

でもさ、Officeが欲しいだけでMicrosoft365 Business Standardを買っちゃう人ってちょっとヤバいよね。オンラインコード版とかって出ているけど…。

流石にSharePoint Onlineはあまぞんさんでは売ってないっぽい。

一応、念のため、探しておくか・・・あ、買えそうね。540円ユーザ/月。

んー?
Office365 E3は2170円
Microsoft365Personalは1284円(ぐらい)

Microsoft365Appsは900円

Microsoft365BusinessStandardが1360円

Microsoft365BusinessPremiumが2180円

 

今回、Microsoft365Appsと将来的にSharePointに手を出したとして1440円か。
年間割引とかとパートナーで安く卸しているところを探してもうちょっと安くできたとしてもだ。。。

Microsoft365AppsはOfficeアプリのみなんだよね。Personalの企業向けみたいなものだし。

え?ちょっとまてよ・・・

SharePoint onlineの単体購入よりもMicrosoft365BusinessBasicの方が充実しているのってどゆこと?!そしてこちらも540円。

 

ははーん。これは・・・お一人様組織を作れと言いたいんだな?

ExchangeもTEAMSもお一人様にはどうでもよかったけど、よくよく考えたら1か月1400円で、これだけ色々な機能が使えると考えれば、ゲームに課金するより安いやね。

更には「Linkedin」よりも全然有効に使えるっしょ。あんなリクルーターの巣窟。。。

 

ついでに私には【sidetech.jp】というドメインもある。

これは「Microsoft365BusinessStandard」にしろというんだな・・・。

https://www.onamae-office.com/

丁度、ドメインのメンテナンスもしていたしな。クリックだけでズンズン行けちゃうぜ。

申し込みして30分ぐらいかな…。

f:id:hunter1014:20200924210306p:plain

じゃーん!

 

f:id:hunter1014:20200924210445p:plain

ライセンスも1つ!

・・・。

おかしいな・・・この管理画面に私は来たかったんでしょうか…。

えーと、これは管理者ユーザーだしなぁ・・・ちゃんとライセンスを割り当てるのはユーザー作成したいね・・・そうするとドメインのセットアップか・・・。

f:id:hunter1014:20200924210659p:plain

おっし、社内とかADDSとかLocalDNSとか、なーんも気にしなくていいからここまで速いぜ。

あ、念のためにAzureADも見ておこう。

f:id:hunter1014:20200924210827p:plain

うっひぃ。一人組織なんだけど・・・くそーとりあえずデフォでいいわ。

あ、Azureにもこのまま遷移できたよね。

 

f:id:hunter1014:20200924210943p:plain

おぉぉ。200ドル無料試用でサブスク組めるぜ!

 

f:id:hunter1014:20200924211118p:plain

お、なんじゃこりゃ。Microsoftさん、わかってらっしゃる!。パスワードは長くしてロック早めか2要素だの多要素だと組めばいいの。とりあえずMicrosoft Authenticatorに連携掛けて・・・おしおし。

えーと、sidetech.jpでのユーザーを作ったんで、それでアカウント切り替えして・・・(*´Д`)ハァハァ。

あーでも元々Office365ProPlusとか使っていたんで、アカウントチェンジするだけなんだよね・・・。

Outlookからメール送受信できるか確認して…デキター!!

パワポも開いた!アカウントもばっちし!

 

で、パワポで何したかったのか…(゜-゜)。

なんかそれよりも、ADFSとかADDSとかなんたらSyncとか何も考えなくてイイのって、なんてラクチンなんだ・・・。あーでもADコネクトがどんな動きするのかやってみたいなぁ・・・それにはADDS建てないとなぁ…。ADFSなくなったらstsどうするんだろーとか全然わかっていないけど、また調べ物増えた。。。orz

あとはUIというか表現が色々変わっているSharePointのチェックもしないとなぁ。
TEAMSやOneDriveとの連携とか色々やりたいねぇ。

あー。Azure IoTもやりたいのよねぇ。これ本業の方面なんで、こっちが先かなぁ・・・。ぶっちゃけ環境壊しても問題ないからこれは良いねぇ。

 

と、Officeを使うまでの道のりが遠い様で遠く無い様でよくわからんですが、個人でこんだけ楽しめちゃうのはスゴイワ。Officeアプリが使いたかっただけなんだけどね。

最近ちょっとセキュリティ絡みというかOT系というかそっちの方の文献ばっかり読んでいて、ルーターCLIが恋しくなったりしていたんで良い刺激になったかな。

来週はOracle Cloudに入り込まねばなので、週末にでもまた構築します。

WindowsでPrometheus&Grafanaのまとめ。

出だしは、Azure Insightだったのに終わりはPrometheus?

いあ・・・結局の主役はGrafanaかな?

f:id:hunter1014:20190925164553p:plain

 

そんなこんなで手抜きな記事を連投したので、まとまりも何にもない状況なのですが、タイトルの通り、少しまとめます。

f:id:hunter1014:20190924235441p:plain

画像はAzure Insightからです。図を描かなくて助かる(笑)

ちょっとGrafanaにツッコミですが、「stats.grafana.org」にアクセスしに行っちゃっているのは何なんすかね。何見られているんでしょう?

 

図式でもわかる通り、クライアントはGrafanaを見て、GrafanaはPrometheusとAzure Monitorを見に行く構成を今回は構築しました。

で、Prometheusでは、以下のExporterを使いました。

blackbox_exporter(https://github.com/prometheus/blackbox_exporter)

snmp_exporter(https://github.com/prometheus/snmp_exporter)

・wmi_exporter(https://github.com/martinlindhe/wmi_exporter)

どれもWindows Server 2019 datacenterにぶっこみました。

・Prometheus(https://prometheus.io/download/)

インストールはwmi_exporterだけmsi形式のインストールを使いました。

WIndowsamd64形式を選んでインストールしています。

インストールというか、自由に配置して、exeを起動しているだけですね…。

おそらく、一番難しくないPrometheus&Grafanaでしょう・・・ね。ノーマルなら。

 

 PrometheusのymlなConfigは以下のようにしました。

f:id:hunter1014:20190925000645p:plain

すべて「file_sd_configs」でノードの追加対応をしています。file_sd_configにしておくと、その先のファイルを修正するだけで、どんどん反映されていくのは知っていましたが、Windowsでも同様に機能しました。

 

f:id:hunter1014:20190925154752p:plain

ファイルの中はこんな感じです。ラベルを関係した変数として持っていけるので、こんな感じで仕上げてみました。

 

blackbox_exporterでのICMPチェックの機能は私にとってちょっとどうやって信用していいのかわからない値が返ってくるので、他人様が作っているping_exporterを使ってみたいと思っている所。

(追記)なんと正しい記述方法を見つけて試してみたらいい感じになった(^^;

blog.sidetech.jp

 

snmp_exporterはWindowsでも動きました・・・が、snmp generatorのwindows版がないので、どこかLinux系でMIB食わせて生成させる必要ありです。

どちらにせよ、snmpsnmpが得意な監視ソフトに任せたほうが良いような。

 

wmi_exporterもなんのひねりもなくやってますが、wmiを活用するにはWindows側で頑張る必要があるので、そこはちゃんとみておかないとかな。

 

Grafanaは、結局の所、式を書く方法が何が正解なのか結構色々調べてやらないといけなかったり、他人様のダッシュボードを見ながら研究したりしないといけないので、思い通りに動かすのはちょっと大変ですね。

それとアラートの機能で、テンプレート変数が活用できないオチがありまして。。。

これは、Prometheus Alertを引っ張るプラグインが良さそうな気がしますが、まだ試していません。

 

PrometheusのConfigのとおり、結構なscrapeタイミングで取得を繰り返すとどうなるか。

14~18ノード程度ではありますが、dataフォルダをみたら2.92GBでした。

9/18から動かしているから・・・今日が25日。1週間で3GBってぐらいですかね。

後々、この対処も考えないといけないです。

PrometheusのRemote Stotageというファンクションを使うことになるはずなんですが…さてAzure Storageにどうやって持っていくかな。そもそもAzureストレージをマウントしちゃえばいいかな?

データの太り方がまあ予測しきれていないので、もうちょっと時間が必要ですね。

それと、1回だけグラフ表示が1~2分程度出来ないタイミングがありました。これが先人の方々がいう突然の処理影響ですかね・・・。

 

あと、課題としてはwmiで引っ張った値とAzure Monitorで引っ張った同系の値の乖離をどうするかなとか。単位は同じなのになぁ。何か計算式が足りないんだろうな。活きたデータにするのがとにかく大変ですね。

 

Grafanaを使っていて思うのは、Summaryとなるレポート用画面と、Currentの監視用画面と、Statisticsとなる解析用画面は分けたほうがいいな・・・と感じるところです。いっぺんに・・・は画面が足りません。テンプレート変数の考え方は面白いけど、それによってどうやって画面配置と上記3つの課題を克服するか・・・これが悩みになりますね。

構築後や改変後の動きにはAzure Insightが使えます。プロセス毎に動きが見えて良きかなです。プロセス毎のトラフィックを拾えていたので、アプリケーション毎のトラフィックを見ることが出来ますね。総ネットワーク帯域中、どのアプリケーションがどのくらいの帯域を使っているのか、Grafanaで表現できたら面白そうだなぁ。

 

てことで、Azure InsightとPrometheusアラートの勉強に戻ります。

wmi_exporterを使ってGrafanaで管理してみる

ついに・・・詰んだようです。(-_-;)

どっちにしてもナンセンスな取り組みなんですが、Azure Insightのデータを活用できないか調査もしていないんですが、prometheusのwmi_exporterでWMIの値をゲットしちゃえってことで、とにかく手っ取り早いだろと思ったんで、はじめてみました。

Azure Monitorではメモリとかディスク使用量はわからんっす。
なので、wmi_exporterエージェントをWindows Serverに仕込んでもう、WMIに直に教えてもらう。そーいう話です。

f:id:hunter1014:20190924032946p:plain

そして~他人様が作ったダッシュボードを利用して変数を変更しただけで、WMIの値はゲットっす。しかし、見てもヨクワカラン値のグラフが多いですな。。。

まぁ、とりあえずメモリ使用率とディスク使用率が欲しいためだけにwmi_exporterに手軽く手を出しただけですので、まぁ細かいことは置いときましょう。

取り合えず、人様のダッシュボードを使っただけなので、他にもまだ取得できると思います。

 

で、メモリとディスクの使用率が気になるということは・・・しきい値アラートの設定ですよね(勝手な流れ的ですが)。

そして、アラート設定を仕掛けてみた所・・・

f:id:hunter1014:20190924033442p:plain

(;゚Д゚)えっ?!?!?!

Grafanaさん!、テンプレート変数はサポートしていない・・・?っておっしゃっています?!

 

えーと・・・せっかく・・・テンプレート変数面白いなぁ~って思ってきたところで叩き落とす?!?!(;´∀`)

 

とりあえず、テストでアラート飛ばしてみたけど・・・確かメトリック名もバリューもNullっぽい。まぁどのインスタンスからエラーなのか判らなくてもいいならアラートは飛ばせる・・・(汗)

 

一応、テンプレート変数を使わない方法で、アラート飛ばしてみたら、問題はなかった・・・。

f:id:hunter1014:20190924034234p:plain

いあ、こんなグラフ付けられたアラート見てもねぇ・・・。(;^_^A

 

このせいで、先人の開拓者はPrometheusでアラート管理やってるん?!

てっきりGrafanaのAlert対応が最近なせいかと思ってた・・・orz

 

グラフ表示とアラート連動させたかったのにな…。

海外のGrafanaのAlertについてのコミュニティのスレッド見ても荒れてます(^^;

 

うーん、当初の監視と運用の悩みがここにも出てきてしまいました。

どうしましょ( ゚ ρ ゚ )

PrometheusでBlackbox expoterを使ってノード遅延をGrafanaで感じよく?

Grafanaが出てきた時点である程度想像がついたと思いますが、今回はPrometheusを使って監視環境を作っていきます。

まぁ、PrometheusやGrafanaは、特段私があれこれ言うよりも先人の方々のブログのほうが面白いかもです。何故なら今回は愚痴ぽい内容だからです(^^;

f:id:hunter1014:20190921004456p:plain

とりあえずの完成形を載せますが・・・まだチューニングしきれていないというか、気持ち悪くて納得していないというか・・・。

今回はヨーロッパ各サイトをAzure西ヨーロッパリージョンから監視していくよという内容です。

Azure西ヨーロッパにサーバーをこしらえているので、そこからの遅延を見てみたく、Azure上にWindows Serverインスタンスを起こして、PrometheusとBlackbox Expoterを仕掛けて、そのデータをGrafanaで見るという流れです。

しかし・・・Windows Serverでやってしまったからかな・・・?!

 

なーんか変。

 

オランダ向けと、ドイツ向けのICMPの遅延の値がどーにもしっくりと一致しないのです。それ以外のサイトはなんだかんだで許容範囲内にあるかなぁ・・・という感じです。

ドイツ向けも本来は17ms付近なはずなんですが、2msってなんなんでしょ。

あと、Blackbox_expoterでプローブの取得値をどうとるのかがよくわからず、

f:id:hunter1014:20190921011002p:plain

こんな感じで取り出ししていますが、

f:id:hunter1014:20190921011044p:plain

これも近似値でとれるんですよ。うーん、どっちが正解なんでしょう?

 

でも、どっちで取っても、異常値は異常値なんですよ・・・orz

 

Sclapeのタイミングを5s,10s,15s,20sとやってみたけど、特段大きく変わらず。
あ、でも15s以降のほうがロスト率は下がるかな?

いっそのことN/Aだったり0msとか割り切れればいいんだけど、中途半端に応答してきているんです。これがICMPの厄介な所なんでしょうか…。

結局、ICMP部分で使えるのはステータス情報だけかな・・・?(^^;

やっぱりインターネット越えなんでSmokePingが恋しくなりますね。

 

何処かのPrometheus使いの会社さんが、SmokePingは移行しきれていないようだったので、もしかしたら・・・このBlackboxの挙動に悩まされたからなのかな?

うーん、でもまだLinux系で試していないので、Windowsでの作法がよくないだけかもしれない?

 

ダッシュボード集にあるpingなちゃらとかを色々眺めてみましたが、式がよくわからんのも多く、とにかく何やるにしても苦労しますね・・・。なんでこれ流行っているんだろう(?-?;

 

監視も分析も同時にできればいいのになぁと思いながらも試行錯誤をしていますが、

監視をする画面と分析する画面は別々の方がいいかな?

まだGrafanaのプラグインに手を出していない事もあり、まだ未知な部分ばかりですが、とにかく時間食いまくるなぁ・・・。

ちゃんと教本を読まないとだけかな?(^^;

 

追記>やり方変えたっす!

(直リンクやGoogleでここにいきなり来た方は以下のリンクをどうぞ)

blog.sidetech.jp

GrafanaでAzure Monitorを見てみる

あんまり例がないようなので?

f:id:hunter1014:20190918231634p:plain

Azure MonitorのデータをGrafanaで直接見ることが出来ます。

Azureの管理画面で見ればええやんってのもありますが、自分が欲しい時間帯のメトリックだけを表示させたい・・・とかには標準品では役不足です。

 

いやいや、Grafanaって何?っていう人は・・・

grafana.com

で、少し調べてくださいませ。カックイイ感じのグラフをグリグリやれるヤツです。

 

てことで、最近流行り?のGrafanaで何処までできるのか、ちょっと試してみた系です。まだ凝ったことまでは出来ないです・・・勉強時間が足りない・・・。

私が試している環境は”Grafana v6.3.5(67bad72)"で、Windows Serverにインストールしているものになります。

 

Azure Monitorとどのように連携するのかは・・・

qiita.com

こちらを読んでいただければ、なんとなくできます。

 

Grafanaは、ダッシュボードという公式の物とコミュニティの物を使ってある程度、グラフの汎用品を利用することが可能です。もちろん1から頑張ることも可能です。

https://grafana.com/grafana/dashboards

この中からAzureに使えそうなのをピックアップするんですが、これがまた結構な確率でそのまま動かない(苦笑)。

ただ、Grafana学習の最短距離は、数々の有志が作成したダッシュボードを解析することが理解の近道のような気がします。

 

て・・・事で・・・完成しました。

f:id:hunter1014:20190918232809p:plain

なんとなくシュッと出来たかな?まだ細かい単位的な部分は怪しい所もあります。

世間のサンプルだと、中々”Variables"の設定をしてという参考例が少ないと思うので、そこも少し紹介します。GrafanaはVariablesを駆使出来ないともったいないですよね。

でも中々自分が思うサンプルがなくて苦労する部分でもありますね…(^^;

 

今回は、Variablesを利用して、リソースグループの選択と、リソースネーム(vm)の選択ができるようにしました。内部ではネームスペースは固定にしています。

f:id:hunter1014:20190918233549p:plain

ネームスペースは”Microsoft.Compute/virtualMachines"を使っています。
ネームスペースで何のメトリックが取れるかは・・・

docs.microsoft.com

こちらでご確認ください。

ただーし・・・

f:id:hunter1014:20190918233914p:plain

私の努力不足なのか、拾えそうなのは上記の通り。
おそらくリソースグループを軸にしてしまっているからかな?!?!
ちょっとまだよくわかっていないです。Grafanaがどこまでできるのか、もっとできる子なはずです。

 

f:id:hunter1014:20190918234044p:plain

てことで、Variablesの設定内容です。これね・・・この画面だけじゃ詳しい設定内容が分からないんですよね・・・。

一応、参考で載せます。正解かどうかの保証はしません!

f:id:hunter1014:20190918234612p:plain

取得値が間違っていなければPreviewに欲しい情報が表示されるので、ここを見ながらセッティングする感じですね。あと先にVariables済みじゃないと式が使えなくなるので、順番も大事みたいです。

f:id:hunter1014:20190918234751p:plain

f:id:hunter1014:20190918234802p:plain

こんな感じで今回は設定しました。

しかしこの方法では弱点が1つあるっす。後ほど説明します。

まずはどうしてこいうしたかですが・・・参考にしていたダッシュボードのデータを見ていたからかもしれませんが・・・

f:id:hunter1014:20190918234927p:plain

クエリーにAzure Monitorを選ぶと、上記のような項目が最初からセットされるんですよ。。。なので必然と・・・こうなった・・・という感じです。

 

しかし、ネームスペースの条件を変更すると・・・

f:id:hunter1014:20190918235158p:plain

AzureVMのネットワークインターフェースってバインド型?なので、VMと紐づけて・・・という表現がちょっとスグに思いつかなかった。。。orz

 

他にもpublicIPAddressというのもあって、これはDDoSのパラメータとかも取れるようで面白そうなんですけど・・・VMマッピングするにはVariablesで計算式を考えないといけないんで・・・f:id:hunter1014:20190918235333p:plain

今回はパス!!


てことで「Microsoft.Compute / virtualMachines」のメトリックだけいけそうなやつをまとめた感じですが・・・

https://docs.microsoft.com/en-us/azure/azure-monitor/platform/metrics-supported#microsoftcomputevirtualmachines

 

ぱっと見は良いんですが…
コレジャナイ感半端ないです・・・Orz

これなら、まだAzure インサイトで見たほうがいいかな…。

この取得したデータからはディスクのI/Oに対する危機感は持てますが、例えばディスク使用量が分からんす。ネットワークもピンと来にくい。最近のMiBとかGiB表現も好きじゃないですが、Bytesじゃグッと来ないですね。困った(^^;

 

Grafanaで困るのは、取得データの単位をどうするべという所と、CurrentなのかMaxなのかMinなのかAveなのかを取得時と表示時に考えなければならないです。

取得方法によっては、計算式を使って加工ができます・・・がAzure Monitorでの連携取得の場合、どこに計算を落とすのかがちょっとピンとこなかったです。

もっと他にとれるデータがあればいいんですけど。。。

Azure インサイトのデータが欲しいですね。そうすれば、Prometheusのwmi_exporterとか使わずに済むんですが。Agentがすでに4つぐらいぶち込んでいるので突っ込みたくないなぁ・・・もうちょっとお勉強が必要そうです。

 

Azureで次世代の監視(インサイト)

ご無沙汰のこんちゃーす。すっかりブロガーと言うことを忘れておりました。

久々の投稿になります。

f:id:hunter1014:20190916210218p:plain

今年、実は3度目の海外出張です。カナダ(トロント)、韓国、そして今回ベルギーです。
今回は滞在期間が長く、9月はほぼベルギーに居ます。

仕事はだいぶバーチャルな仕事をしているはずなのですが、やはり現地側にいたほうがクイックに対応できる部分もあり、時差もしかりでベルギーに滞在しています。

旅の報告はまた次回として、今回は「Azure Insight」です。

 

カナダに居た時も便利だなぁとおもっていたんですが、今回も「Azureインサイト」によって通信不良といいますか、不具合をキャッチ出来たんで、ちょっとご紹介。

監視というと、死活監視とSNMP監視、ほかにアプリケーション監視にログ監視・・・・色々ありますね。

最近ではクラウド系監視なんて言葉が出てきたり、SRE(Site Reliability Engineering)なんて言葉が出てきたりで、運用の在り方うんぬんの流れも変わっていている模様。まぁそんな小難しいのは他人に任せて・・・と。

 

先日、とあるお方に愚痴をこぼしたんですよ。そしたら、その中での答えに”死活監視”と”性能監視”は分けるべきだよと。そのトーリなんですけどね。

で、今回はおそらく性能監視的な方向性の一部の話になるかと思います。

性能監視のうんぬんかんぬんも奥が深いので、今回の記事では割愛。

 

今回はですね、フローの監視に近いのかな?でもアプリケーション寄り。

Azureには、とりあえず監視という項目に

インサイト

「警告」

「メトリック」

「診断設定」

「アドバイザーのレコメンデーション」

「ログ」

「接続モニター」

というのがあり、更にトラブルシューティング向けになっていますが、

「リソース正常性」

「ブート診断」

「Performance Diagnostics」

てのがあります。今回は「インサイト」にフォーカスします。

 

今までの監視で、サーバーからプリンター出力しようとした場合のログってどこから取れますか?どの様に取りますか?

おそらく、監視対象にはならないと思います。必要な時にパケットキャプチャしたり、netstatで見たりはするかもですね。

そしておそらく、1度でも正常に処理できていれば後は気にしないフローになりますよね。

まぁ、どこまで気にするかにもよるかもしれませんが、実体験としてリフト&シフトの際にはこれ、結構役立つのではと思った次第です。

 

さて、以下は実際にあったケースですが、参考例としてみてくださいね。

f:id:hunter1014:20190916212331p:plain

サーバーはターミナルサーバーです。28のクライアントから接続があり、1つだけ赤の点線がでています。タイムレンジは最新から30分という状況です。Port443で何か通信ミスが出ている様子です。

 

f:id:hunter1014:20190916212549p:plain

Port443をドリルダウンすると、4つ通信エラーが出ているのが確認できました。うーん、これだけだと、何故かが分かりずらいですね。1つ選択してみた所、ソースプロセルがWINWORDがFailedしているという情報が出てきました。

WORDでautodiscoverとなると、勘が良い人だとここでもう答えが出るようですが、

ここで、ソースプロセスを探してみましょう。

 

f:id:hunter1014:20190916213355p:plain

サーバーに55プロセスが動いているということで、こちらをドリルダウンしてみます。

どうやらMicrosoft Officeプロセスに通信エラーが出ているように見えます。

この時点で、どのプロセスからというのが直ぐに分かるのが良いところですね。

 

f:id:hunter1014:20190916213545p:plain

そして、Microoft Officeを展開してみると、なんとEXCELも通信エラーの対象になっていました。

 

プロセスで確認出来るってのがすごいすね。で、そのプロセスのユーザーネームが表示されています。今回はログインの方法が少しアレンジされており、そこを修正しないとエラーが出ることが分かっていたのですが、まさか可視出来るとは。

 

こんなかんじで、プリンターの何処が繋がらないとかのチェックやら、リフト&シフト時にありがちなのですが、修正プログラムの宛先が、何故かまだオンプレミスを指しているとかあるので、インフラ屋はプログラマの通信先のミス経路(修正漏れ)についてお知らせすることが出来ます。

 

様々なトラフィックをBandwith(帯域)で見るだけでなく、アプリケーション可視化で見れてドリルダウンできるようなグラフだと良いんでしょうけど、中々骨折れますよね。キャプチャにはいれていないですが、各プロセスが必要としたネットワークトラフィックもグラフで一応表示されます。ちょっとピンときにくいグラフだったので割愛しました。

 

実際に、この後に閾値の設定やらとファンクションはあるんですけど、そろそろ自己学習的なものって出てこないですかね。

正しいか正しくないかを教え込むのは大変そうですが。

一応、これまでもフロー解析というのはあるにはありました。しかし扱いやすいかは( ^ω^)・・・。

あとは、このインサイトを設定した同士のフローとか相関がどのように見えていくようになるかに期待でしょうか。

正直、いっくらPrometheusとかでデータを取りまくっても、どうやってそのデータを生かせばよいのかというストラクチャを構築するのは途方もない作業です。

というか、今回の様な表現はちょっと出来ないすね。

ただ、インサイトのパフォーマンスグラフはちょっと物足りないですよね。組み合わせ自由度があるようでないようで。まぁそこはデータは取ってあるからあとは煮るなり焼くなりしろってことなんでしょうけど。

 

まあWindowsならではな部分ではありますが、クラウド的な監視だなと感じた次第です。

てことで久々の投稿はこの辺で。

 

ネットワーク屋でもIoTの勉強(番外)-想定外?編

IoTトイレ・・・実際にリアルに動かしてみると、色々な課題点が見えてきますね。

すみません、次の記事が書けていなくて。画面キャプチャーが増えると大変になるのと、社内教育への再利用も考えているので中々(^^;

 

f:id:hunter1014:20180413202440p:plain

若干ミテクレを変えていますが、かなり発展途上中です。スマフォ用ちゃんと考えなくちゃ( ^ω^)・・・。

んで、実環境テストに移してから見えてきた課題点や問題点もチラホラ出てきました。

 

・上記の画像より

空室時間と経過時間を見る限り、19時台にトイレの利用があったはずなのに、記録されていません。

データを見たら、「空室フラグ」が2連続になっていました。

よくよく見ると、「満室フラグ」も2連続がありました…。

私の想定した仕様ではイレギュラーです。うーん。

空室(ドアオープン)が2連続になってしまう理由は直ぐに想像ついたのですが、使用中(ドアクローズ)が2連続はレアケースの想像範囲になります。

何が言いたいかというと・・・

用を済ませた方が、データ送信が終わる前に行動を起こした場合です。

現在、WiFiの接続に何十秒か必要なので、それが条件によって調子悪いのか・・・な。

このWiFi接続の不具合は2.4.0-rc2にどうやらあるようなので、やはり2.4.1にあげる方法を考える必要が出てきました。

他にもバグかもしれないというのもあるか。

ドアを閉めたけどすぐにドアを開けられてしまうと、リードスイッチの情報がオープンの情報として通信してしまうので、これが一つ悪さをしている気がします。

ドアの開閉の時間とWiFiの接続時間の改善はしないといけないですね・・・。

あとは、リードスイッチとマグネットの位置関係がナーバス過ぎるか・・・ですかね。

2連続、同じフラグ情報だったらどうするか・・・という処理を入れておかないと駄目かなぁ…。もう少し発生条件が絞り込めないと駄目っすね。。。

ここら辺はモノづくりな方々は当たり前の苦労なんでしょうね・・・m(_ _)m

 

あとは、今回は、リードスイッチの1か0かを毎回記録しているので、利用時間の割り出しのSQL文がどうしたらいいのか悩んでいるぐらいですかね…(汗)。

SQL初心者にはかなり厳しい構文になりそうです。

時間別集計も構文考えるのに結構苦労しましたが・・・これが沢山のデバイスが繋がってくるとなると…もっと表現を考えねばならないので、色々なSQL文を考えないとですね(涙)。

 

しかしやってみて面白いのは、そもそも使用中によく遭遇するから状況を知りたいと思ったんですが、そんなに時間帯での利用がないんすね。。。
人によっては20分以上籠られている方も居たのが分かったので、占有時間の問題かな?とか思ったんですが、そーすると、MIN/AVE/MAXな利用時間が調べたくなってきますよね。

でもそれを調べても、結局籠る方は籠ると思うんです。何時使用可になるのか・・・。
でもでもそこから先は「誰が」というような符号も増えてしまいそうでプライバシー的に踏み込めないですよね。

AIに?学習させるにしても誰がとかの情報が無いと厳しいだろうし・・・

時間帯的な利用時間のアベレージを出せばよいのかな?遠からず、ある程度時間傾向がでるルーティン族が多ければですが・・・。

 

あとは・・・予兆検知?!
予兆検知だと、モーションセンサーと収音マイク?が必要?!

水が流れる音とかパンツ履いてる音とか・・・(こわっ)

で、インジゲーターには「もうすぐ」とか表示されたり・・・(激汗)。

 

今後これにAI的要素を加えるとしたら・・・なんでしょうね。
気温・天気・湿度?条件付与とか・・・シーズン的な?とかですかね。

打合せ・会議とかのスケジュール情報とか?

それにより混みそうな予兆とか?

 

トイレIoTは奥が深いですね…ヘンタイになりそうです(汗)。

って、私何処までこれ踏み込んでいくんだろう・・・悩みの大半はSQL構文なんですけどぉ(涙)。

想定外の脱線内容になりましたのでここら辺で(笑)

なんとか完成?

なんとか・・・自作なIoTトイレ「スマートトイレ?」は予定の形まで出来ました・・・(手作り感がヤバイ)。

順序立てて記事書きたいのですが、あそこまで書いた以上完成させねばと・・・四苦八苦しておりました。

結局SQLの構文が大変だった・・・というか分かってない(^^;

f:id:hunter1014:20180410201341p:plain

まぁ勢いで作った割には動いている方じゃないかと。

いろいろ嵌らずに、ここまでのクオリティで良ければ1~2日分の時間で行けそうですが、土曜からチョイチョイ初めて、火曜にはここまで出来てるんだから、そら世の中色々早く生まれてくるわけっすね。

 

ただ、ここからのアレンジが大変かな・・・。

久々にPHPに触れて・・・まず色々忘れていたのと、SQLも複雑なのを書いた記憶がなく、書いていた記憶も約18年前・・・(^^;

HTMLも約18年前の知識をフル活用

今時も分からなければCSSも分からないんでシンプルなページしか作れないという。

 

でもよくわかった。色々あるけどキモはSQL(汗)

次の記事は纏めたら投稿しますm(_ _)m

参考にしたサイトが多すぎて、どれが助けになったのか・・・まとめねば・・・。
とりあえず初級編は突破出来ました報告ということで。

ネットワーク屋でもIoTの勉強(2)-環境準備編

今回は土日でやっつけている範囲がボチボチ多いので…ブログもかなり細切れです。

ということで、買い物準備は終わったので、環境準備です。

買い物が終わるとね・・・ちょっと寂しいですが、ここからが上り坂!

まずは・・・

Arduino - Donate :ここからArduino Softwareを入手して・・・(私は1.8.5)

esp_dev_arduino_ide – スイッチサイエンス でESP8266対応して・・・

で、ここでなのですが、ESP8266 Community のバージョンが2.4.1が出ているんですが、コンパイルエラーが出るので、2.4.0-rc2を私は使いました。

 

で、とりあえず、この段階で「Lチカ」をやっておきましょう。

とはいってもですね、

ESP-DOOR – スイッチサイエンス

上記の「動作確認用簡易サンプルスケッチ」をやればおkです。

サンプルスケッチに出てくる

>int LED = 4;
>int reed_sw = 5;

ですが、I/Oのピン番号を指しています。

で、Door Sensorは出来合いモノです。埋め込まれたLEDと最初からついているリードスイッチはすでにピンを消費しています。

なので、色々検索すると「ESP8266」や「ESP-WROOM-02」というのを使った例がでてくるのですが、それらともちょっと違う実装済みな部分があることに注意です。

コピペでやってみた系の方々でハマる最初のポイントになりますので・・・。

読み替え技術を備えるチャンスでもありますw

ということで、上記のintパラメータを見ながら

 

>pinMode(LED,OUTPUT);

これはI/OのpinモードをOUTPUT(出力)にセットしてます。LEDを光らせたいのでOUTPUTです。LEDは4番ピン配置なので、4番ピンをアウトプットに設定の意ですね。

 

>digitalRead(reed_sw)

これは、デジタルモードでリード(読み出し)するってことで、I/Oの5番の状態を0か1かを知りたいという命令ですね。

 

>digitalWrite(LED,HIGH);

>digitalWrite(LED,LOW); 

これは、HIGHがオンでLOWがオフで、I/Oの4番ポートにデジタル的出力をかますコマンドです。ここが皆さん大好きなLチカの部分になってきます。

 

今回のESP Door Sensorを使う場合は、他のプログラムのコピペをやる際でも、読み替えが必要な部分となるのでお気を付けください。

これわすれちゃうと、LEDが光らないとか言い出しますからね。

 

さらに実用サンプルスケッチも入手できますが、このサンプルではAzure IoT Hubと仲良くできません。

ESP.deepSleep(0, WAKE_RF_DEFAULT);

使いたいのはこれぐらいですかね。

大まかな流れは同じなのですが、HTTPでアクセスする部分が想定と違うのですが、この実用サンプルをベースにするよりはAzure IoT Hubをやられた方のサンプルスケッチをベースにした方が今回はラクチンでしたので、抽出するポイントだけ書きました。

 

さて、本丸?ですが・・・

こちらの記事で、私が伝えたいことはほぼ完ぺきですw

こちらの記事の「デバイスの設定」の所に「AzureIoTHubライブラリー」てのがありますので、記事通りにやっていただければ・・・(汗)

 

Azureの部分の説明もしっかりされているので出る幕はないんですけどね・・・。

このライブラリーがあるお陰で、私はだいぶ想定よりも楽出来ました♪

 

環境準備といいながら、この記事でコンプリートなんだけどな・・・。

どこをアレンジしたかは次回に。

ネットワーク屋でもIoTの勉強(1)-部材調達編

ということで”トイレIoT勉強”の続きです。

さて、組めても組めなくてもモノを買うときって何故か楽しいですよね。買って満足的な。人生でどれだけそーいう事があったことやら。ダイエットアイテムを買ってダイエット取り組み決意した感じと似ていますね。

まぁまぁまぁ。今回は主役であり、わき役でもあるので多くを(自分に)望みすぎないで行きましょう。
てことで「部材調達編」です。

欲求を叶えるために必要なモノを探していけばいいですね。
ここで大事なのは「割り切り」と「工夫」です。

Arduinoを収める箱が売っていないかを探しても見つからず途方にくれたり、「3Dプリンターで作る」とか大きく出たりしなくてよいです。カッコつけは後から考えましょう。でも今は昔よりも強い味方がいます。アイデア次第で目的と違った使い方が出来ますからね。既製品好きやブランド志向の人にはキツイかもね・・・。

想定してるのは、トイレのドアで、使用されていないときは、ドアが開く環境のものですね。もしもドアが閉まってしまうタイプだと、もういっちょ人感センサー的なのが必要になりそうです。

f:id:hunter1014:20180408172628p:plain

まずはArduinoなヤツからです。とにかく通信手段付きで、半田も使わずに苦労せずに実現できるものを探したらですね・・・さすがswitch scienceさん。

 

[スイッチサイエンス] ESPr® Door Sensor

[スイッチサイエンス] ESPr® Door Sensor

 

 狙ったでしょ?というような商品を開発販売していました。
長細い赤い部分が、リードスイッチになっているところで、磁石でスイッチが入る仕組みです。

さらなる狙いが消費を抑えてバッテリーでもロングランできるようにというのが狙いのようですが、その部分の考え方は私は今回は別の部分で使おうと思います。

しかし・・・このリードスイッチ付きのものは・・・ほかに何に応用できるかな。

[スイッチサイエンス] FTDI USBシリアル変換アダプター Rev.2

[スイッチサイエンス] FTDI USBシリアル変換アダプター Rev.2

 

さらにUSBシリアル通信させるアダプターも今回は購入です。プログラムを書き込むのに必要になるんで。

 

あとは、マグネットを買わねばーなのですが・・・

f:id:hunter1014:20180408173924p:plain

 まぁ磁石なら、なんでもいいんでしょうけど・・・ある程度の成形品で安いやつをね。最初から両面テープついているし。リードスイッチだけ位置をずらさねばならんかもしれないしと。すこし入荷に時間が掛った気がしますが・・・ま、ここは好みで。

 

f:id:hunter1014:20180408174028p:plain

あとは、100円均一の力を借ります。ヘアピンの入れ物とか画鋲の箱とか、何気ないケースが電子工作では使えたりします。電源も5Vが欲しいUSBと同じでよいという考えで、アダプタも昔よりも悩まなくなりましたね。MicroUSBもとりあえずだし。

ヘアピンの中身は娘か会社の女子にでもあげちゃってください・・・。

 

で、全部でいくらぐらいかな・・・(金額はかわるかもしれないので注意)。

[SWITCHSCIENCE]ESPr® Door Sensor ¥2,700
[SWITCHSCIENCE]FTDI USBシリアル変換アダプター Rev.2 ¥1,080
[SODIAL]ホワイトドア窓コンタクト磁気リードスイッチセンサー ¥249
[DAISO]USB充電ACアダプタ アンドロイドスマートフォン ¥200
[DAISO]USB-MicroB スマートフォン用急速充電専用ケーブル50cm ¥100
[DAISO]Hair Pin アメリカンピン約40g(ケース用として) ¥100
[DAISO]しっかり晴れてきれいにはがせる両面テープSサイズ8枚入り ¥100
合計 ¥4,529

 こんな感じですね。

2か所目からは大体¥3450ぐらいと思っておけばいいですね。

USB-MicroBが50cmしかないので、これはDAISOではなく、長くて安いのを別途調達した方がよいですね。

3mで500円とかあるんですね。ネットで何でもそろう時代ってすごいわぁ。

 

全体感でいうとDoor SensorなArduinoが一番お高いですね。ESP-WROOM-02が使いたいだけなので、もう少し安くできるかもですが、ハンダを一切しないでという条件からそれてしまいます。

両面テープも3Mのやつにした方がよいと思いますが、まずはということで。

 

これで20か所設置するようなことになっても大した金額にはならんで済みます。

問題はWiFi環境という意味で・・・トイレに電波が届いているかが最大の課題になりそうです。。。(汗)

 

とりあえず、どんな感じで動いたかだけ…。

f:id:hunter1014:20180408185019g:plain

LED点滅時はWiFiコネクションを頑張っています。

2秒のLED点灯はAzure IoT Hubにデータを送ってます。

今の所、リードスイッチがONになる時とOFFになる時に、WiFiに接続してAzure IoT Hubにデータを送った後、DEEP SLEEPさせてます。
DEEP SKEEPからの回復条件がリードスイッチの挙動で、その時に改めてWiFiの接続を行ってます。

プログラムの作りが甘いので、WiFiのコネクションが上手くいかないとずっと繰り返し施行するようになっています(^^;

Azure IoT Hubへの送信ですが、どうやら2秒程度待ってあげないと、データの送信が終わる前にDEEP SLEEPモードに入ってしまうような状況だったので、2秒間LEDを付けて、データ送信している風を演じていますw

 

ここまで動かすのに、2名から3名程度のブログ記事を参考にして、プログラムをミックスさせて動かしました。なのでパクリだけでAzure IoTとやり取りできました(汗

プログラムソース公開をためらう程、パクリなので悩んでいます(^^;

 

次回からいよいよ

・ESP8266の参考とパクリ改変ポイント

・Azure IoT Hubの参考文献ととりあえずやっちゃえの部分

・Azure Analyticsの参考ととりあえず動かしちゃえの部分

・Azure AnalyticsからとりまBLOBにJSONで格納の部分

ここまで、基本的に参考サイトのコピペになりそうなので、ちょっと悩みます(^^;