カテゴリー別アーカイブ: Windows Azure

[Ubuntu]monitでmysqlプロセス監視

Windows AzureのUbuntuでmysqlが度々落ちるので、monitで監視してみます。

$ sudo apt-get install monit
$ sudo vi /etc/monit/monitrc

以下を追加

set mailserver localhost
set alert abc@gmail.com

メール送信がちゃんと設定されている必要があります。

$ sudo service monit restart
$ sudo vi /etc/monit/monitrc

管理画面のhttpdの設定

set httpd port 2812 and
    allow username:password
    allow @monit
    allow @users readonly

username:passwordがBASIC認証のログイン情報。
本当はアクセス元の制限をかけたいところだけど、固定IPじゃないので、、、

Windows Azureのポータルで、エンドポイントに2818を追加して、

$ sudo service monit restart

http://xxxxx.yyyyy.com:2818

で管理画面へアクセスできます。

監視対象の追加は、面倒なのでサンプルをそのまま使います。

$ sudo ln /etc/monit/monitrc.d/mysql /etc/monit/conf.d/
$ sudo service monit restart
$ sudo monit -vI

でテストができます。

再起動の設定をしたいところだったけど、時間切れでここまで!

[Ubuntu]apt-get updateで404 Not Found

Windows Azure上のmysqlが時々落ちるので、monitを入れてプロセス監視しようと思ったら、以下のエラーがでてはまる。

$ sudo apt-get install monit
Reading package lists... Done
Building dependency tree      
Reading state information... Done
The following NEW packages will be installed:
  monit
0 upgraded, 1 newly installed, 0 to remove and 90 not upgraded.
Need to get 281 kB of archives.
After this operation, 758 kB of additional disk space will be used.
WARNING: The following packages cannot be authenticated!
  monit
Install these packages without verification [y/N]? y
Err http://azure.archive.ubuntu.com/ubuntu/ raring/universe monit amd64 1:5.5-6
  404  Not Found
Failed to fetch http://azure.archive.ubuntu.com/ubuntu/pool/universe/m/monit/monit_5.5-6_amd64.deb  404  Not Found
E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?

Ubuntu 13.04のサポート切れで、パッケージのファイルの置き場所が old-releases.ubuntu.com に変わったからでした。

バックアップを取って、

$ sudo cp /etc/apt/sources.list /etc/apt/sources.list_bak

サーバーを書き換え

$ sudo sed -i -e 's|//.*ubuntu.com/|//old-releases.ubuntu.com/|' /etc/apt/sources.list
$ sudo apt-get upgrade

成功!!

Azure Machine Learningを使うまでメモ(その1)

仮想マシンの作成

(1)Microsoft Azure のポータルにログインする。

Azure__Microsoft_のクラウド_プラットフォーム

ご自分のWindows Liveアカウントでログインしてください。

(2)仮想マシンの作成

仮想マシン_-_Microsoft_Azure_と_aomo_heteml_-_sftp___akihiro0117_ssh26_heteml_jp_2222_-_FileZilla

今回は一番簡単に安くということで、Ubuntu Server 14.10 / 基本 A0 にしました。

Microsoft_Azure

作成が完了するまでは、20分くらいかかります。

仮想マシン_-_Microsoft_Azure

仮想マシンのダッシュボードを開いて、状態が「実行中」になるのを待ちます。

仮想マシン_-_Microsoft_Azure

(3)正常に作成できたか確認する。

作成が完了したら、SSHでログインしてみます。

ホスト名は、ダッシュボードで確認できます。

as_—_azureuser_mltest01____—_ssh_—_80×49

無事ログイン出来ました。

 Pythonの環境を整備する

(1)Python Azure クライアント ライブラリをインストールする

以下は、仮想マシンのSSHコンソール上での操作です。

Pythonは最初からインストールされているはずなので、Python Azure クライアント ライブラリをインストールします。

curl https://bootstrap.pypa.io/get-pip.py | sudo python

sudo pip install azure

(2)エンドポイントを作成する

仮想マシン_-_Microsoft_Azure

仮想マシン_-_Microsoft_Azure

仮想マシン_-_Microsoft_Azure

(3)ApacheとDjangoのインストール

以下は、仮想マシンのSSHコンソール上での操作です。

$ sudo apt-get install python-setuptools

$ sudo easy_install django

$ sudo apt-get install apache2 libapache2-mod-wsgi

 

 

「Python Django hello world アプリケーション」チュートリアルで Azure アプリケーションを作成する

http://azure.microsoft.com/ja-jp/documentation/articles/virtual-machines-python-django-web-app-linux/

(1)Django プロジェクトを作成します。

$ cd /var/www
$ sudo django-admin.py startproject helloworld

(2)表示処理用のコードを作成します。

$ sudo vi helloworld/helloworld/views.py

以下のコードを入力します。

from django.http import HttpResponse
def hello(request):
html = "<html><body>Hello World!</body></html>"
return HttpResponse(html)

(3)URLのルーティングを修正します。

$ sudo vi helloworld/helloworld/urls.py

以下のコードを入力します。

from django.conf.urls import patterns, include, url
from helloworld.views import hello

urlpatterns = patterns('',
 (r'^$',hello),
)

(3)Apacheの設定をします。

sudo vi /etc/apache2/sites-available/helloworld.conf

以下を入力します。

<VirtualHost *:80>
ServerName yourVmUrl
</VirtualHost>
WSGIScriptAlias / /var/www/helloworld/helloworld/wsgi.py
WSGIPythonPath /var/www/helloworld

(4)サイトを有効にします。

$ sudo a2ensite helloworld

(5) Apache を再起動します。

$ sudo service apache2 reload

(6)動作を確認する。

ブラウザで、http://xxxxxx.cloudapp.net (xxxxは環境に合わせて変更)を見ると、

Hello World!!

が表示される。

 

 

作業を中断する場合は、インスタンスを停止しておきましょう。

無駄に課金されてしまいます。

 

(続く)