翻訳API Microsoft Translator 導入について

APIの機能よりもなによりも、前段のユーザー登録的なものが面倒だったので備忘録。

Microsoft TranslatorはWindows Azure Marketplaceで提供されている数々のアプリケーションの一つなのだが、
APIとして利用するためにはアクセストークンが必要。
アクセストークンはクライアントIDとクライアントシークレットを以って取得する。
クライアントIDとクライアントシークレットは、開発者としてWindows Azure Marketplaceにアプリケーションを登録することで利用可能となる。

以下、おおまかな手順
————————————————————
前段としてWindows Live IDでサインインしておく

1.Windows Live ID の作成(既にあるならそれでもOK)
[code]https://signup.live.com/signup.aspx?lic=1[/code]

2.サインイン
[code]https://login.live.com/login.srf[/code]

————————————————————
Windows Azure Marketplaceでの手順

3.Windows Azure Marketplaceにアクセスすると登録画面が表示されるので登録を完了する。
[code]https://datamarket.azure.com/[/code]

登録画面

4.Microsoft Translatorのページにアクセスし、右手の月額0円サインアップをクリックして完了させる。
[code]https://datamarket.azure.com/dataset/1899a118-d202-492c-aa16-ba21c33c06cb[/code]

サインアップ

5.APIを利用するために擬似的にアプリケーションを登録する。
[code]https://datamarket.azure.com/developer/applications[/code]
ここで登録するクライアントIDとクライアントシークレットをあとで利用する。

アプリケーション登録

クライアントID:任意
名前:適当
顧客の秘密:デフォルトのまま(クライアントシークレット)
リダイレクトURL:適当

6.アクセストークンの取得
所定のURLにクライアントIDやクライアントシークレットなどをPOST送信する。

7.翻訳
所定のURLに翻訳文字列をGET送信する。
このとき、Bearer認証のためのhttpヘッダを送信するが、
そこでアクセストークンが利用される。

※6,7のサンプルコードは以下参照
[code]http://msdn.microsoft.com/en-us/library/ff512417[/code]

================= 追記 ======================

How will I know when I reach my monthly usage limit?
http://msdn.microsoft.com/en-us/library/hh847649.aspx

[code]the API will return a “Quota Exceeded” message.[/code]
また、
[code]You can check your usage limit in your account in the My Account/My Data on Windows Azure Marketplace.[/code]
とある

My Account/My DataのURLは以下
[code]https://datamarket.azure.com/account/datasets[/code]

CentOS5.8 MRTGとSNMPのインストール・設定

CentOS5.8 MRTGとSNMPのインストール・設定

まずMRTG(Multi Router Traffic Grapher)利用に当たり必要なSNMP(Simple Network Management Protocol)のインストール&設定

■SNMPのインストール
必要パッケージ
net-snmp
net-snmp-libs
net-snmp-utils
net-snmp-devel

既にインストールされているか確認
[code]yum list installed | grep snmp[/code]

結果、インストール net-snmp-devel がなかったのでインストール
[code]yum -y install net-snmp-devel[/code]

■SNMPの設定
[code]vi /etc/snmp/snmpd.conf[/code]

ネットワーク範囲とコミュニティ名
com2sec [セキュリティ名] [アクセス許可範囲] [コミュニティ名]

今回はサーバ自身以外はアクセスしないので
アクセス許可範囲は localhost
(コミュニティ名はアクセスに利用するのでホントは予測されにくい文字列がベター)

[code]#com2sec notConfigUser  default       public
com2sec local       localhost        public[/code]

アクセスグループ
group [グループ名] [セキュリティモデルの指定(v1, v2c, usm)] [セキュリティ名]
グループ名は適当。セキュリティモデルはSNMPのバージョン1.2.3を指すようだがよくわからんので全部記述。
セキュリティ名はcom2secで記述したもの。
[code]#group   notConfigGroup v2c           notConfigUser
group   local_group     v1           local
group   local_group     v2c          local
group   local_group     usm          local[/code]

情報閲覧範囲の指定(view)
view [ビュー名] [タイプ(included, exclude)] [MIBのオブジェクトID]
(MIBはSNMPで公開する情報の集合でツリー構造のオブジェクト:詳細不明)
ビュー名は適当。タイプはinclude(指定した範囲)としてMIBのOIDは.1を記述。
1(.iso)以下の全情報にアクセスできることになる。
[code]#view    systemview    included   .1.3.6.1.2.1.1
#view    systemview    included   .1.3.6.1.2.1.25.1.1
view    all_view       included   .1[/code]

アクセス許可のための設定
access [グループ名] [Context] [セキュリティモデル名] [認証設定] [Contextマッチの方法] [読み(get)] [書き(set)] [通知(trap)]
グループ名はgroupで記述したもの。Contextは空欄(詳細不明)。セキュリティモデル名はany(全て)。認証設定はnoauth(認証なし)。Contextマッチの方法はexact(厳密に一致?)。読み・書き・通知の内読みにview名を記述。
[code]#access  notConfigGroup “” any noauth exact systemview none none
access local_group “” any noauth exact all_view none none[/code]

httpdのプロセス監視のための設定
[code]#proc mountd
proc httpd[/code]

ディスク容量監視のための設定
[code]#disk / 10000
disk /[/code]

CPU監視(load average)のための設定
load [1分間の平均] [5分間の平均] [15分間の平均]
設定した数値を超えるとエラー扱いとなる
[code]#load 12 14 14
load 12 14 14[/code]

※load averageはrun queueに入っているジョブの数。使用率ではない。でも数値が多ければジョブがたくさん発生していることになるから、結果付加が高いと考えられる。
uptimeコマンドでも取得できる。
load average: 0.13, 0.21, 0.22
左から1分、5分、15分間の平均ジョブ数。

■自動起動設定
[code]chkconfig snmpd on[/code]

■SNMPの起動
[code]/etc/rc.d/init.d/snmpd start[/code]

■SNMPから各種値を取得してみる
httpdのプロセス
[code]snmpwalk -v 1 localhost -c public .1.3.6.1.4.1.2021.2[/code]
DISK
[code]snmpwalk -v 1 localhost -c public .1.3.6.1.4.1.2021.9[/code]
load average
[code]snmpwalk -v 1 localhost -c public .1.3.6.1.4.1.2021.10[/code]
総空きメモリ(実空きメモリ+スワップ空き容量)。キロバイト単位
[code]snmpwalk -v 1 localhost -c public .1.3.6.1.4.1.2021.4.11[/code]

※snmpwalkがエラーになるなら設定を見直す。

■MRTGのインストール
[code]yum install -y mrtg[/code]

■MRTGの設定ファイル作成
[code]cd /etc/mrtg/[/code]

既存バックアップ
[code]mv mrtg.cfg mrtg.cfg.bak[/code]

作成
[community名]@[ホスト]
[code]cfgmaker –output /etc/mrtg/mrtg.cfg public@localhost[/code]

■MRTGの設定
[code]vi mrtg.cfg[/code]
[code]
# WorkDir: /home/http/mrtg
WorkDir: /var/www/mrtg

# Options[_]: growright, bits
Options[_]: growright, bits

#以下追加
Language:eucjp
#(日本語を使う場合)

#
#  CPU Load Avarage
#

Target[load]: .1.3.6.1.4.1.2021.10.1.5.1&.1.3.6.1.4.1.2021.10.1.5.2:public@localhost:
ThreshMaxI[load]: 50
MaxBytes[load]: 10000
Title[load]: CPU Load Average
PageTop[load]: <H1> Load Average on xxServer </H1>
Options[load]: gauge,absolute,nopercent,noinfo,
YLegend[load]: CPU Load Average
YTicsFactor[load]: 0.01
Factor[load]: 0.01
ShortLegend[load]: pt.
Legend1[load]: 1 Minite Average
Legend2[load]: 5 Minite Average
LegendI[load]: 1 Minute
LegendO[load]: 5 Minute

#
# Available Memory “real” and “swap”
#

Target[mem]: .1.3.6.1.4.1.2021.4.6.0&.1.3.6.1.4.1.2021.4.4.0:public@localhost:
MaxBytes1[mem]: 1035168
MaxBytes2[mem]: 2031608
Title[mem]: Available Memory “real” and “swap”
PageTop[mem]: <H1>Available Memory “real” and “swap” on xxServer </H1>
Options[mem]: gauge, growright, noinfo
YLegend[mem]: Available Memory
ShortLegend[mem]: Bytes
kilo[mem]: 1024
kMG[mem]: k,M,G,T,P
LegendI[mem]: real
LegendO[mem]: swap
Legend1[mem]: Available(real)[MBytes]
Legend2[mem]: Available(swap)[MBytes]

# 物理メモリ
# snmpwalk -v 1 localhost -c public .1.3.6.1.4.1.2021.4.5
# SWAP
# snmpwalk -v 1 localhost -c public .1.3.6.1.4.1.2021.4.3
# で値調査

#
# Number Of httpd process
#

Target[httpd]: .1.3.6.1.4.1.2021.2.1.5.1&.1.3.6.1.4.1.2021.2.1.4.1:public@localhost:
ThreshMaxI[httpd]: 50
MaxBytes[httpd]: 150
Title[httpd]: Number of httpd
PageTop[httpd]: <H1> Number of httpd on xxServer</H1>
YLegend[httpd]: Number of httpd
ShortLegend[httpd]: httpd
LegendI[httpd]: running httpd process
LegendO[httpd]: running httpd process

#
# Disk Usage
#

Target[df]: .1.3.6.1.4.1.2021.9.1.9.1&.1.3.6.1.4.1.2021.9.1.9.1:public@localhost:
ThreshMaxI[df]: 80
MaxBytes[df]: 100
Title[df]: Disk Usage “/”
PageTop[df]: <H1>Disk Usage “/” on xxServer </H1>
Options[df]: gauge
YLegend[df]: Disk Usage
ShortLegend[df]: %
Legend1[df]:/
LegendI[df]:/

#
# Rate of CPU use
#
Target[cpu_use]: .1.3.6.1.4.1.2021.11.50.0&.1.3.6.1.4.1.2021.11.52.0:public@localhost:
MaxBytes[cpu_use]: 100
Options[cpu_use]: growright, noinfo, nopercent
YLegend[cpu_use]: CPU usage(%)
ShortLegend[cpu_use]: (%)
LegendI[cpu_use]: User
LegendO[cpu_use]: System
Legend1[cpu_use]: CPU use(User)
Legend2[cpu_use]: CPU use(System)
Title[cpu_use]: Rate of CPU use
PageTop[cpu_use]: <H1>Rate of CPU use</H1>[/code]

■MRTG実行
[code]LANG=C LC_ALL=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg –lock-file /var/lock/mrtg/mrtg_l –confcache-file /var/lib/mrtg/mrtg.ok[/code]
(2回目まではWARNINGがでるので3回実行して確認)

■index.html 作成
[code]indexmaker /etc/mrtg/mrtg.cfg > /var/www/mrtg/index.html[/code]

■Apache設定
[code]/etc/httpd/conf.d/mrtg.conf[/code]
を任意編集。
Apache再起動。
/var/www/mrtg/index.html
へアクセスしてグラフ群が表示されればOK