AzureのリソースマネージャーではNATは構成できません。てか、構成する必要がないです。

はじめに

くどうです。

以前、クラシック(ASM)でNATを構成したことを書きました。

AzureでNAT設置パターンを考える。構築編、これでルートテーブルも大丈夫かもよ。

ではリソースマネージャー側で作成はできるのか? 結論として、NATは構成できません。 なぜなら、デフォルトルートを設定できるがルーティングしません。 でもね、NATは必要ないのです。なんとなく説明を書いていきます。

NATの検証構成

検証で作成した環境です。

・仮想ネットワークをひとつ作成します ・サブネットはFrontendとBackendに分け作成します ・FrontendはグローバルIPが付与される→外部からアクセスできます ・BackendはグローバルIPが付与されません→外部からアクセスできません ・NATはFrontendに配置します ・クライアントはBackendに配置します ・外部からクライアントにアクセスするため踏台をFrontendに配置します ・ルーティングテーブルBackendへ設定します。

NATの設定

NAT自身の設定は省きます。 Backendルーティングテーブルを設定します。 ・0.0.0.0/0をPrefixとして設定します ・NAT(10.1.0.4)をNextHopとして設定します

この設定でNATまでパケットが飛んで来ればルートテーブルが正しく動作していることを示します。 結果、tcpdumpで眺めていてもパケットがNATまで到達しませんでした(´゚ω゚)・*;’.、ブッファァ ルーティングテーブルの設定は正しいのか確認するため以下の追加検証を行いました。

Backend2を作成し、ルーティングテーブルを行ってみる。 ・Backend2を作成します ・Backendにルーティングテーブルを作成します ・Backend(10.1.2.0/24)をPrefixとして設定します ・NAT(10.1.0.4)をNextHopとして設定します

結果、パケットはNATまで到着しました。

0.0.0.0/0が良くないのかと思いましたが、192.xxx.xxx.xxxや172.xxx.xxx.xxxでもパケットが到達しませんでした。 つまり、仮想ネットワークで指定したIPアドレスのレンジのみルーティングするということです。

PowerShell でユーザー定義のルート (UDR) を作成する https://azure.microsoft.com/ja-jp/documentation/articles/virtual-network-create-udr-arm-ps/

実はルーティングの部分に関してはデフォルトゲートウェイのことは一切書かれていない…

でも、Azureって実はNATは必要ないのです。仮想マシンにグローバルIPが付与されていようが、されていまいがインターネットへ通信は行えます。 これって実は便利なことで、NATを作成する必要もないため、お金もかからないし手間も省けるんですよ。

ただ問題はあります。Azureからインターネット側へ出ていくときのIPが不明なことです。 IPが固定でない限りは問題ないと思います。

おわりに

AzureのリソースマネージャーではNATは必要ないです。というか作成できませんでした。 NATが無くてもインターネット側へ通信が行えるのでWindowsUpdateなども問題なく行えます。 ただし、出ていくときのIPが固定じゃないかもしれないので要注意です。 通常、使う範囲では問題ないかと思います。

ではでは

[…]

Diagnosticsのログフォーマットが変わってた。だから・・・注意してね。

はじめに

くどうです。

ちょっと、Azureで仮想マシンのDiagnosticsのログ眺めてたら気づいたのでメモ。 今のところLinuxのログについてのみです。

フォーマット比較

LinuxCpuVer2v0だけです。それしか見れなかった。

古い方 新しい方

何が変わったか ・カラムDeploymentIdが増えてる ・RowKeyのフォーマットが変わった

何時変わったのか わかりません(w

これによって何が影響するのか ・独自にログを参照し、監視など行っている場合見れなくなる可能性がある

おわりに

実は本家のポータルからLinux系(CentOS、Redhat、Debian、Ubuntuなどなど)のグラフも表示されないし、アラートも飛ばなくなってるヽ(`Д´)ノ ウワァァァン たぶん監視できる項目とか増やしアップデートを行ったために整合性取れなくなってるんだと思うけど、Azureのアラートは便利なので早く直ること期待。 やっぱZabbixとかで独自に監視している人が多いのかなぁ

ではでは

Azureのアラートって簡単にPagerDutyと連携できるんです。そっからSlackとも連携できるんです。ついでにSNS/MMSでも飛んできます。

はじめに

くどうです。 Azureではアラートの設定がポータルから設定が簡単に行えます。 しかもWebhook対応してるんです。

そこで、webhookで対応可能なPagerDutyを使って連携、さらにSlackとも連携させていきたいと思います。 そんでSNS/MMSにも飛んできます。

事前準備

PagerDutyのアカウントは取得しておいてください。 Azureで仮想マシン(Win)をデプロイしておいてください。 SlackはアカウントとChannelを作成しておりてください。

PagerDutyの設定

Servicesの画面にいきます。

Integration Type で Microsoft Azure Alerts(bata)を選択します。 Nameは適当につけます。 [Add Service]にて追加します。

webhookのURLを取得します。

Integration Settingsの Integration URL をコピーします。

以上でPagerDuty側の設定は完了です。

Azureでアラート設定

例としてCPUが5分間50%以上でアラートは上がるように設定します。

以上で設定完了です。 簡単でしょ。

アラート試験

負荷ツールを使ってCPUに負荷をかけます。 https://blogs.msdn.microsoft.com/vijaysk/2012/10/26/tools-to-simulate-cpu-memory-disk-load/

しばらく待ちます。

Incidents に上がってきます。

これでアラートが飛んでくることが確認できました。 次にSlackとも連携してみます。

Slackの設定

チャンネルを選択します。

メニューを開き「Apps&Custom Integrations」を開きます。

PagerDutyを検索します。

「Configure」を選択します。

[…]