Amazon CloudWatch で EC2 インスタンスのプロセス監視を行う
Amazon EC2 で作成したサーバは無料で Amazon CloudWatch を利用したサーバの死活監視ができます。
標準で CPU の使用率やネットワークのトラフィック等、基本的な監視を行うことができますが、カスタムメトリクスを使用すればプロセス監視も行えるので、設定しておくにこしたことはないです。
料金も 10 メトリクス、10 アラーム、100 万 API リクエストまで無料なので、多くの場合無料の範囲内で使用できるはずです。Amazon Linux 64bit での手順は以下です。
1. YUM で AWS のモニタリングツールをインストール
Amazon Linuxだと、Amazon の YUM レポジトリに登録されているので、YUM コマンドで簡単にインストール可能です。root で実行します。
# yum install aws-apitools-mon
2. Credential ファイルを作成する
テンプレートとして用意されている Credential ファイルをコピーし、必要な情報を記入します。
アクセスキー、シークレットキーは Amazon Web Services のアカウント画面(My Account→Security Credentials)に記載されています。(https://portal.aws.amazon.com/gp/aws/securityCredentials)
# cp /opt/aws/credential-file-path.template /opt/aws/credential # vi /opt/aws/credential AWSAccessKeyId=<Write your AWS access ID> AWSSecretKey=<Write your AWS secret key> chmod 600 /opt/aws/credential
3. 監視スクリプトを作成する
プロセス数を送信するシェルスクリプトを作成します。JVM のインストールが必要です。各種パスは環境に応じて変更してください。サンプルとして、Apache と MySQL のプロセス数を監視する方法を以下に載せます。
# vi /root/cloudwatch/cloudwatch.sh #!/bin/sh export JAVA_HOME=/usr/lib/jvm/jre export PATH=$PATH:$JAVA_HOME/bin export EC2_REGION=ap-northeast-1 export AWS_CLOUDWATCH_HOME=/opt/aws/apitools/mon export PATH=$PATH:$AWS_CLOUDWATCH_HOME/bin export AWS_CREDENTIAL_FILE=/opt/aws/credential #Apacheのプロセス数監視 mon-put-data --metric-name NumberOfProcesses --namespace Processes --dimensions 'Processes=httpd' --value `ps -e|grep httpd|wc -l` #MySQLのプロセス数監視 mon-put-data --metric-name NumberOfProcesses --namespace Processes --dimensions 'Processes=mysqld' --value `ps -e|grep mysqld$|wc -l`
4. 作成したスクリプトを crontab に登録します
本例では 5 分ごとにスクリプトを実行し、CloudWatch に値を登録します。
# crontab -u root -e */5 * * * * /root/cloudwatch/cloudwatch.sh 1> /dev/null
5. 成功したか確認する
下記コマンドで成功したかどうか確認できます。結果が反映されるまで時間がかかることがあるようです。
# mon-get-stats MyWatch --namespace Processes --dimensions 'Processes=httpd' --statistics Average --headers
6. 稼働状況を確認する
AWS Management Console で送信されたアラートを Web 上から確認できます。
Amazon Linux に R をインストールする
Amazon EC2 上の Amazon Linux (2012.03 64bit) に R 2.15.0 をインストールする方法をメモ。
1. Yum レポジトリに CentOS-Base を追加。
Amazon Linux 標準のレポジトリ (amzn-main, amzn-updates) には、R のインストールに必要な tk-devel xdg-utils パッケージが登録されていないため、CentOS のレポジトリを追加します。
root で 以下ファイルを作成。
# vi /etc/yum.repos.d/CentOS-Base.repo [base] name=CentOS-6 - Base mirrorlist=http://mirrorlist.centos.org/?release=6&arch=x86_64&repo=os enabled=0 gpgcheck=1 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6
2. CentOS-Base レポジトリから、tk-devel xdg-utils パッケージをダウンロード。
root で以下コマンドを実行。
# yum install --enablerepo=base tk-devel xdg-utils
CentOS 6.2 に R と RStudio Server をインストールする
RStudio Server は Linux サーバにインストールした R を Web ブラウザから Web アプリケーションとして操作でき、大変便利なのですが、インストール方法について触れたブログ記事がほとんどないので、インストールしたついでに書きました。
余談ですが、2010年5月に Tsukuba.R で RWebUI というソフトウェアを提案して開発しませんでしたが、コンセプト的には全く同じ物です。RStudio Server と同様なソフトウェアでは R-Node も有名です。
1. Yum のレポジトリに EPEL を追加する。
EPEL をインストール済みの場合は、省略可能です。以下、全て root でコマンドを実行します。
# rpm -ihv http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-7.noarch.rpm
3. 必要なパッケージをインストールする。
互換バージョンの OpenSSL と Fortran をインストールします。
# yum install openssl098e compat-libgfortran-41
4. RStudio Server をインストールする
下記 URL から最新版の RPM をダウンロードし、インストールします。最新のバージョンは、Download RStudio Server で確認できます。
32-bit
# rpm -ihv http://download2.rstudio.org/rstudio-server-0.96.228-i686.rpm
64-bit
# rpm -ihv http://download2.rstudio.org/rstudio-server-0.96.228-x86_64.rpm
5. RStudio Server を起動する
インストールできているか確認
# rstudio-server verify-installation
RStudio Server を起動
# rstudio-server start
システム起動時に自動起動するには、chkconfig コマンドで設定します。
# chkconfig rstudio-server on # chkconfig --list rstudio-server rstudio-server 0:off 1:off 2:on 3:on 4:on 5:on 6:off
6. ブラウザからアクセス
Web ブラウザから、http://<サーバのIPアドレス>:8787/ にアクセスします。
つながらない場合は、setup コマンドで表示される、ファイヤウォールの設定画面で、TCP ポート 8787 をオープンにする、またはファイヤウォールを無効化します。
Amazon EC2 等の場合は、管理コンソール(AWS Management Console 等)で、TCP 8787 ポートが解放されていることを確認します。
補足
Apache 経由で TCP 80 番ポートでアクセスするには、バーチャルホストと mod_proxy で TCP 8787 番ポートにリバースプロキシを構成すればいいですね。具体的には、httpd.conf に以下のように設定します。
<VirtualHost *:80> ServerName rstudio.xxx.com <Proxy *> Allow from localhost </Proxy> ProxyPass / http://localhost:8787/ ProxyPassReverse / http://localhost:8787/ </VirtualHost>
更に、digest 認証をかける場合は、digest 認証と mod_proxy を併用する場合は、以下のように設定します。
<VirtualHost *:80> ServerName rstudio.xxx.com <Proxy *> Allow from localhost AuthType Digest AuthName "Private Page" AuthDigestDomain / AuthUserFile /etc/httpd/conf/.htdigest_rstudio Require valid-user </Proxy> ProxyPass / http://localhost:8787/ ProxyPassReverse / http://localhost:8787/ </VirtualHost>
感想
インストールは、想像していたより簡単でした。コード補完機能なども具備されており、大変便利です。また、複数のロケーションで分析作業を行う際にも有用ですね。
R の「作業スペースを保存しますか?」のダイアログを表示させなくする方法
Windows 版 RGui を終了させようとすると、「作業スペースを保存しますか?」というダイアログが表示されます。
これを表示させないようにするには、「--no-save」オプションをつけて起動させれば良いです。
デスクトップのショートカットアイコンを右クリックし、プロパティ画面の「リンク先」の末尾に「--no-save」を付け加えるだけです。
seekR の検索対象サイトに slideshare を追加しました
slideshare は Flash だから検索に引っかからないとずっと思い込んでたけど、よく見るとページ下部にテキストが載っていて、スライド内の文章も Google 検索にヒットする、ということで、slideshare を 統計分析環境 R 専門検索エンジン seekR の検索対象に加えました。
今回検索対象に追加した URL は以下です。R に関する日本語のスライドをアップしている、という条件で抽出しました。
http://www.slideshare.net/abicky/
http://www.slideshare.net/akiaki5516/
http://www.slideshare.net/AntiBayesian/
http://www.slideshare.net/bob3/
http://www.slideshare.net/dichika/
http://www.slideshare.net/gepuro/
http://www.slideshare.net/hamadakoichi/
http://www.slideshare.net/holidayworking/
http://www.slideshare.net/horihorio/
http://www.slideshare.net/isseing333/
http://www.slideshare.net/itoyan110/
http://www.slideshare.net/kohta/
http://www.slideshare.net/KojiKosugi/
http://www.slideshare.net/kos59125/
http://www.slideshare.net/langstat/
http://www.slideshare.net/m884/
http://www.slideshare.net/mangantempy/
http://www.slideshare.net/manozo/
http://www.slideshare.net/MasayukiIsobe/
http://www.slideshare.net/mickey24/
http://www.slideshare.net/mozk_/
http://www.slideshare.net/Nikoriks/
http://www.slideshare.net/oshiro40/
http://www.slideshare.net/SachikoHirata/
http://www.slideshare.net/sakaue/
http://www.slideshare.net/sesejun/
http://www.slideshare.net/sfchaos/
http://www.slideshare.net/sleipnir002/
http://www.slideshare.net/syou6162/
http://www.slideshare.net/TakashiYamane1/
http://www.slideshare.net/takemikami/
http://www.slideshare.net/teramonagi/
http://www.slideshare.net/tmr_kohei/
http://www.slideshare.net/tor_ozaki/
http://www.slideshare.net/wakuteka/
http://www.slideshare.net/wdkz/
http://www.slideshare.net/yag_ays/
http://www.slideshare.net/yatsuta/
http://www.slideshare.net/ybenjo/
http://www.slideshare.net/yokkuns/
・seekR 統計分析プログラミング言語 R のための検索エンジン
もし、検索対象に入っていないスライド作成者がいましたら連絡ください。すぐ追加します。