Ruby on Rails (プロジェクト作成編)
Project作成
$ rails new blog
JavaScript Runtime
$ vi Gemfile gem 'therubyracer', :platform => :ruby #を外す
DB作成
$ rake db:create
Post(Model/DB/Controller/URL/View)
・Model作成/DBに反映
$ Rails generate model Post title:string content:text $ Rails g model Post title:string content:text $ rake db:migrate
・Controller作成
$ rails g controller Posts
・URL設定
vi config/routes.rb 2行目に追記 resources :posts
URL確認
$ rake routes posts GET /posts(.:format) posts#index POST /posts(.:format) posts#create new_post GET /posts/new(.:format) posts#new edit_post GET /posts/:id/edit(.:format) posts#edit post GET /posts/:id(.:format) posts#show PUT /posts/:id(.:format) posts#update DELETE /posts/:id(.:format) posts#destroy
番外編:デバッグ用コマンド
$ rails console $ rails dbconsole
readlineがないと怒られる。
# yum install readline-devel $ cd ~/.rvm/src/ruby-1.9.3-p194/ext/readline/ $ ruby extconf.rb $ make $ sudo make install
・Viewで使える記法
- コントローラー内で定義された@変数はそのまま使えます。
- <% %>のなかではrubyの命令を使える
- <%= %>は表示させるための命令(Escapeされる)
- <% # コメント %>
・Controllerにメソッド追加
- PostController
- index 一覧 -> app/views/posts/index.html.erb
- create
- new
- edit
- show
- update
- destroy
5年ぶりのRuby on Rails
5年ぶりにRoRでWebサービス作成です。さすがに5年経つと色々と便利になってますね。
環境準備
rvm(Ruby Version Manager)は複数のRuby実行環境の管理を簡単にする。
bash < <(curl -s https://rvm.beginrescueend.com/install/rvm) $ rvm install 1.9.3 $ rvm --default 1.9.3 $ rvm list
インストールしてデフォルトに設定
・gemはRubyのライブラリ管理を面倒見てくれる
・rvmのgemsetでRubyに対していくつものgemを管理できる。
$ rvm gemset create rails32 $ rvm gemset list $ rvm gemset name $ rvm use ruby-1.9.3-p194@rails32 $ rvm default ruby-1.9.3-p194@rails32
ここでは、rails3.2で使うgemsetを用意
$ gem install rails
Railsインストール
# yum install sqlite-devel $ gem install sqlite3
SQLLiteインストール
# yum install openssl-devel $ cd ~/.rvm/src/ruby-1.9.3-p194/ext/openssl/ $ ruby extconf.rb $ make $ make install
openssl用意(エラー出たので)
Railsの基本とプロジェクト作成
・MVC
Model: データに関する Veiw:見た目に関する Controller:ModelとViewをとりもつ
$ cd ~/myapp/ $ new myapp
Railsプロジェクト作成
・ファイル構成
myapp ..app ..model ..view ..controller ..assets ..config ..log ..db ..public Gemfile
・bundle関連でエラーが出た場合gemfileをいじる。
# yum install gcc-c++ $ vi Gemfile $ bundle install
gemfileの修正とインストール
$ cd myapp $ rails server
Railsサーバー起動
サーバーのポート3000にアクセスして起動確認。
scaffoldで試作
$ rails generate scaffold User name name:string email:string intro:string $ rake db:migrate $ rake routes
試しにscaffoldで定型作成
http://localhost:3000/user/
昔やった時はgemのmakeでどえらいはまった記憶があるけど今回は、2時間ちょっとで準備完了できました。
CentOS5.2でBOINCインストール
yum install libXcomposite libXdamage mkdir /usr/local/BOINC cd /usr/local/BOINC/ wget http://boincdl.ssl.berkeley.edu/dl/boinc_6.2.15_i686-pc-linux-gnu.sh sh boinc_6.2.15_i686-pc-linux-gnu.sh cd BOINC/ ./boinc ※コンソールをもうひとつ起動 ./boinc_cmd --project_attach http://www.worldcommunitygrid.org [WCGのマイプロファイルにあるBOINC アカウント・キー] ./run_client -daemon ※停止したい時 ./boinc_cmd --quit
NRPEによるディスク容量の自動監視 Windows & Linux
今までディスク容量のチェックは、Cactiでの目視確認で行っていましたが、
急激な容量増加による障害が発生したため、10分間隔の自動監視設定を行いました。
初め各サーバにお手製スクリプトを置いて、Cronで回す方法を考えましたが、
Windowsサーバも同じように監視することを考え、NagiosのアドオンであるNRPEデーモンに統一することに決めました。
NRPE概要
監視サーバのNagiosからcheck_nrpeプラグイン経由で監視対象サーバのNRPEデーモンに問い合わせを行い、
NRPEデーモンは、別途用意されているNRPEプラグインを呼び出してリソース状況を取得し返します。
[check_nrpeプラグイン]<=>[Nagiosプロセス] ※監視サーバ ↑↓ [NRPEデーモン]<=>[プラグイン]<=>[リソース] ※監視対象サーバ
※監視対象がWindowsの場合も仕組みは変わらず、Windows用の(nrpe_nt)(nrpe_nt plugins)が用意されています。
監視サーバ Nagios側の設定
既にNagiosが設定されていることを前提にNRPE部分だけになります。
NRPEの入手先
- http://www.nagios.org/download/download.php
- Step 3: Get Addons → [GO]
- ライセンス許諾ページ
- NRPE2.1.2 → [GO]
NRPEのmake
# cd /usr/local/src/ # tar xvfz tar xvfz nrpe-2.12.tar.gz # cd nrpe-2.12 # ./configure --enable-command-args ※オプション --enable-command-argsは、監視閾値をNagios側で設定できるようにする。 * * *** Configuration summary for nrpe 2.12 03-10-2008 ***: General Options: ------------------------- NRPE port: 5666 NRPE user: nagios NRPE group: nagios Nagios user: nagios Nagios group: nagios Review the options above for accuracy. If they look okay, type 'make all' to compile the NRPE daemon and client.
# make all *** Compile finished *** If the NRPE daemon and client compiled without any errors, you can continue with the installation or upgrade process. Read the PDF documentation (NRPE.pdf) for information on the next steps you should take to complete the installation or upgrade.
# cp src/check_nrpe /usr/local/nagios/libexec/ ※[check_nrpeプラグイン]をnagiosが使用できるようにコピーしておく。
Nagiosの設定ファイル編集
※監視対象サーバで、nrpe.cfgを編集した後に行う。
/usr/local/nagios/etc/objects/commands.cfgを編集追記
# check nrpe define command{ command_name check_nrpe command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ }
/usr/local/nagios/etc/objects/services.cfgを編集追記
define service { host_name adsrv.hq.ad.gala.jp service_description Disk check C: check_command check_nrpe!check_disk_C contact_groups admins use generic-service }
check_nrpe!check_disk_Cの「check_disk_C」の部分はnrpe.cfgで編集したコマンド名に合わせる
# /etc/init.d/nagios restart
設定反映後、しばらくウェブ画面なりで状況を見守る。
Windows監視対象サーバ側の設定
※動作確認済OS
- Windows XP SP3
- Windows Server2003 R2 SP2
- Windows Sotrage Server 2003 R2
NRPEデーモンとNRPEプラグインの入手
・nrpe_nt.0.8b-bin.zip
http://www.nagiosexchange.org/cgi-bin/page.cgi?g=1597.html;d=1
・nrpe_nt_plugins.zip
http://www.nagiosexchange.org/cgi-bin/page.cgi?g=Detailed%2F2131.html;d=1
配置とインストール
2個のフォルダを対象WindowsのC:直下に置く
「nrpe_nt.0.8b-bin」を「nrpe_nt」にリネーム
・コマンドプロンプト起動
# cd C:\nrpe_nt\bin # NRPE_NT -i NRPE_NT Service sucessfully installed!
NRPEデーモン設定ファイルnrpe.cfgの編集
ここで監視サーバのIPアドレスと監視したいリソースのコマンドを作成します。
・C:\nrpe_nt\binの中のnrpe.cfgをエディタで編集する
allowed_hosts=[監視サーバIPアドレス] ※上記編集
command[check_disk_C]=C:\nrpe_nt plugins\bin\diskspace_nrpe_nt.exe C: 85 90 ※最下行追記 ※コマンド名(check_disk_C)チェックしたいパーティション(C:)使用容量警告%(85)使用容量クリティカル%(90)
Linux監視対象サーバ側の設定
※監視サーバでmake済みのnrpe-2.12を各監視対象サーバへコピーしておく
・Nagiosユーザ追加
# useradd -d /usr/local/nagios nagios # passwd nagios
・ディレクトリ作成
# mkdir -p /usr/local/nagios/etc # mkdir -p /usr/local/nagios/bin # mkdir -p /usr/local/nagios/libexec
・NRPE監視デーモンコピー
# cp /uar/local/src/nrpe-2.12/src/nrpe /usr/local/nagios/bin/
・NRPE設定ファイルコピー
# cp /uar/local/src/nrpe-2.12/sample-config/nrpe.cfg /usr/local/nagios/etc/
・Nagios用プラグインをコピー
※監視サーバの/usr/local/nagios/libexec/から各監視対象サーバへコピーしておく
# cp /tmp/libexec/* /usr/local/nagios/libexec/
・NRPE起動スクリプトコピー(Redhat/CentOS) debian/suse別途ファイルあり
# cp /uar/local/src/nrpe-2.12/init-script /etc/rc.d/init.d/nrpe # chmod 755 /etc/init.d/nrpe
・サーバ起動時設定※CentOSの場合
# cd /etc/rc.d/rc3.d # ln -s ../init.d/nrpe S90nrpe # ln -s ../init.d/nrpe K90nrpe
・ディレクトリオーナー設定
# chown nagios /usr/local/nagios/* -R
NRPEデーモン設定ファイルnrpe.cfgの編集
Windowsの場合と基本同じです。
ここで監視サーバのIPアドレスと監視したいリソースのコマンドを作成します。
・/usr/local/nagios/etc/nrpe.cfgを編集
allowed_hosts=[監視サーバIPアドレス] ※上記編集
command[check_hda1]=/usr/local/nagios/libexec/check_disk -w 15% -c 10% -p /dev/hda1 ※最下行追記 ※コマンド名(check_hda1)チェックしたいパーティション(/dev/hda1)残り容量警告%(15)残り容量クリティカル%(10) ※Windowsの場合と違い、使用容量%ではなく、残り容量%であることに注意。
補足
※NRPEのプラグインでは他にも、CPU/メモリ/ロードアベレージ/プロセス状態/メールキューなど色々設定できます。
※参考にした本
Nagios 2.0オープンソースではじめるシステム&ネットワーク監視
- 作者: 佐藤省吾
- 出版社/メーカー: 毎日コミュニケーションズ
- 発売日: 2006/08/28
- メディア: 単行本(ソフトカバー)
- 購入: 1人 クリック: 157回
- この商品を含むブログ (21件) を見る
今回はまった箇所
WindowsのNRPTデーモンnrpe_nt.0.7f-binでは、Windows server 2003にて次のエラーが起き値の取得に失敗しました。
http://www.nagiosexchange.org/cgi-bin/page.cgi?g=2153.html;d=1
NRPE_NT: Error: Exception in handle_connection-packet_Send: -1073741819
そのため、nrpe_nt.0.8b-bin.zipを使用しています。
Blue Screen Trap (BugCheck, STOP: 0x000000F4 (0x0000000000000003
突然のブルースクリーン後に再起動がかかるサーバが3台も。いずれも同じ構成。
Server: HP PROLIANT DL360 G5 433527-291
Smart アレイE200 コントローラ
OS: windows server 2003 R2 SP2 STD x64 edition
こんなログが出ていて、
Blue Screen Trap (BugCheck, STOP: 0x000000F4 (0x0000000000000003, 0xFFFFFADF9AE73040, 0xFFFFFADF9AE732A8, 0xFFFFF800013C0FE0)) Operating System Critical
検索するとHPのフォーラムに同じ悩みを持つ、未解決な人達が居た。
http://forums11.itrc.hp.com/service/forums/questionanswer.do?threadId=1284410
11月6日から今日にかけて5回、いずれも同じ構成の64bitマシン3台で同じ現象が発生。
インストール作業は夏頃だったから、ソフトのアップデートが原因かハードの故障か。
だが、ハードの故障はCDブートからのチェックでは何も異常が出ず。
とりあえず、全てのファームウェアとMSのアップデートを更新して様子見かな。
他にも遭遇してる人がいたら状況を教えてください。
Google Chrome の 0xc0000005 エラー
Symatenc Endpoint Protection 11 が入っていると Google Chromeを起動できないようです。
起動すると、次のようなエラーが表示されます。
アプリケーションを正しく初期化できませんでした (0xc0000005)。 [OK] をクリックしてアプリケーションを終了してください。
これは、SEPの「SysPlant.sys」ドライバが、アプリケーション制御をしているためです。
次の手順でレジストリを編集することで、「SysPlant.sys」のロードを無効にすることが可能です。
レジストリ編集前はバックアップを取っておくことをお勧めします。
スタート → ファイル名を指定して実行 → 「regedit」実行 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SysPlant Start:0→4 PC再起動
SysPlant.sysの詳細については、こちらが参考になります。
http://service1.symantec.com/support/inter/entsecurityjapanesekb.nsf/jp_docid/20070930154541949?OpenDocument&dtype=corp
これを無効にすると、アプリケーションの制御や周辺機器の制御ができなくなるため、会社のポリシーに違反するかもしれません。
編集される方は、システム管理者の方に確認されることをお勧めします。