Category Archives: インフラ環境

クラウドストレージを使ってLinuxサーバ上のデータを安価に保管する方法

This entry was posted in インフラ環境, 技術ナレッジ and tagged on by .

クラウドストレージである「Amazon S3」を使って、Linuxサーバ上のデータを安価に保管する事ができます。

以下のような用途で、便利に活用できるかと思います。

  • オンプレミス環境やVPSなどのサーバ上にあるデータのバックアップ先
  • サーバ間のデータ受け渡し用ストレージ
  • DR/BCP対策(リモートストレージへのデータバックアップ)

Continue reading

Zabbix2.2 の Web監視を使って定期的なWebシナリオ監視を設定

This entry was posted in インフラ環境, 監視, 製品紹介 and tagged , on by .

Zabbixには「Web監視」(ウェブ監視)という機能があり、Webサイトの稼働を様々な視点で定期的にチェックできます。

システム監視を行う際に、エンドユーザー視点でWebサイトが機能している事を監視できる便利な機能です。

zabbix-webwatch

Web監視の機能

以下のような機能があり、すべてWebブラウザから設定できます。

  • 指定したWebページの応答コードを監視できる
  • 指定したWebページに表示される文字列を監視できる
  • 複数のWebページをステップとしてまとめて、一つのシナリオとして監視できる
  • シナリオを実行するユーザーエージェントの指定ができる
  • 監視するWebページに対して、GETやPOSTでの変数設定ができる

一覧のWeb操作をシナリオとして定義設定して監視できますので、Webシナリオ監視的な感じで利用できます。

シナリオ例

当社のラボサイトをWeb監視を使って監視してみます。ログイン認証機能がありますので、一連のログイン処理を監視する事とします。

labsite-login-form

次のようなシナリオでWeb監視を設定する事にします。

  1. ログインフォームを表示(表示される文字列をチェック)
  2. 認証URLにログインアカウントとパスワードを送信
  3. 正常にログインできた事を確認(ログイン先URLに表示される文字列をチェック)
  4. 認証が必要なページの表示確認(文字列をチェック)
  5. ログアウト処理
  6. ログアウトしている事を確認(文字列をチェック)

このシナリオを例えば5分間隔で繰り返し実行する事によって、サイトの正常性を定期的に監視できる事になります。

設定の流れは以下のようになります。

1.Web監視の設定画面を表示

まず、「設定」ー「ホスト」画面から、Web監視を設定したいホストの「ウェブ」リンクをクリックします。

zabbix-host-web

上の赤丸の箇所です。リンク先の「ウェブ監視の設定」画面で「シナリオの作成」ボタンを押下します。

zabbix-scenario-buttom

すると、以下の「ウェブ監視の設定」画面が表示されます。

zabbix-webmonitor-form

2.シナリオ設定

表示画面で「シナリオ」タブと「ステップ」タブがありますが、まずは「シナリオ」タブで必要事項を設定する事にします。

「更新間隔」で監視を行う間隔、「エージェント」でユーザーエージェントの指定ができます。

3.ステップ設定

次に「ステップ」タブを表示します。「追加」リンクをクリックします。

zabbix-step-add

ステップの設定フォームは以下のような感じです。

zabbix-step-form

必要な分だけ、ステップを追加する事が出来ます。6個のステップを追加した際は以下のような表示になります。

zabbix-step-all

設定が終わったら、「保存」ボタンを押下します。

4.監視状態の確認

Web監視のステータスは「監視データ」ー「ウェブ」画面から確認できます。

zabbix-webmonitor-status

シナリオ名のリンク(上画像の赤丸)をクリックすると、ウェブ監視のステータス画面が開き、シナリオ実行結果としての各種データを確認できます。

zabbix-webmonitor-6step

Web監視が機能しており、監視対象サイト(弊社ラボサイト)が正常に稼働している事が確認できます。

以上、Zabbix 2.2 の Web監視を用いた設定例となります。便利な機能ですので、ぜひご利用をご検討されてはいかがでしょうか。

サーバーの構成状態をコードで管理できる自動化ツール「Chef」のご紹介

This entry was posted in インフラ環境, 技術ナレッジ, 製品紹介 and tagged on by .

ファンブライト山下です。

最近、サーバーの構成状態を管理できるツール「Chef」を使い始めています。

やりたかった事が一通り出来るようになりましたので、Chef の概要説明を含めたご紹介です。

Chef とは?

「DevOps」や「自動化」、「仮想化」、「クラウド」などのキーワードの中で注目されているツールで、特にIT会社で利用されるシーンが増えています。

「Chef」をうまく使うと、サーバーの「あるべき」構成状態をプログラムで管理できるようになります。

例えば、以下のような事が実現できます。

  • 新規でサーバーを構築する際に、手順書化されるような作業を自動化できる
  • 既存のサーバー構成の変更作業を自動化できる
  • 既存のサーバー管理をChefで行う事によって、構成情報を管理できる

具体的には、以下のような作業を、プログラムで定義し、実行する事ができます。

  • OSのアカウントやグループを作成する
  • ディレクトリを作成する
  • パッケージをインストールする
  • 設定ファイルを配置する
  • サービスの起動設定をする

上記載はあくまで一例です。実際には、さらに色々な事が出来ます。結構便利です。

chef-solo_201403

ちなみに、「Chef」という名称は、料理人(シェフ)を表現しています。Chef の仕組みでは、料理本の「Cookbook」や、料理レシピにあたる「Recipes」等の名称があります。親しみやすい名称ですので、頭も整理しやすくなります。

Chef の利用例

今回用意した Chef 利用環境は以下のような感じです。構築対象OSはCentOSです。

chef-summary_201403

基本的に、右側(青色)の「Chef作業端末」から作業を行います。

ただし、作業前に、左側(ピンク色)の「Chef 管理対象ノード」で、基本的なCentOSのインストールを行っておきます。あとは、「Chef作業端末」から自動認証でSSHログインできるように設定を行っておきます。

あとは、「Chef作業端末」で「レシピ」や「テンプレート」などのファイルを用意します。

この「レシピ」というのはRubyのコードです。サーバーにインストールしたいrpmパッケージを定義したり、配置したい設定ファイルを指定したり、起動させたいサーバーや停止したいサーバーを定義したりします。
たとえば以下のコードです。そんなに難しいものではないと思います。

package "nginx" do
  action :install
end

service "nginx" do
  supports :status => true, :restart => true, :reload => true
  action [ :enable, :start ]
end

template "nginx.conf" do
  path "/etc/nginx/nginx.conf"
  source "nginx.conf.erb"
  owner "root"
  group "root"
  mode 0644
  notifies :reload, 'service[nginx]'
end

このRubyコードでは、Nginx(Webサーバー)をインストールし、起動設定を行い、設定ファイルを配置して Nginxを再起動します。

このRubyコード以外に、Nagix 設定ファイルのテンプレートを用意します。例えば以下のようなファイル(nginx.conf.erb)を指定の場所に配置しておきます。

user  nginx;
worker_processes  1;
error_log  /var/log/nginx/error.log;
pid        /var/run/nginx.pid;

events {
  worker_connections  1024;
}

http {
  include       /etc/nginx/mime.types;
  default_type  application/octet-stream;

  server {
    listen       <%= node['nginx']['port'] %>;
    server_name  localhost;
    location / {
      root  /usr/share/nginx/html;
      index index.html index.htm;
    }
  }
}

このテンプレートファイルを元に、Chef実行時に、Nginx設定ファイルとして対象ノードに配布されます。

あとは、Chef管理対象ノードを定義したJSONファイルを用意します。以下のようなファイルです。

{
  "nginx": {
    "port" : 80
  },

  "run_list":[
    "recipe[nginx]"
  ]
}

このJSONファイルで、レシピ「nginx」を指定しています。また、ポート番号「80」を指定していますが、この値が先ほどの「Nagix設定ファイルのテンプレート」で書かれている以下の場所に埋め込まれます。

<%= node['nginx']['port'] %>

これらのファイルを用意した後に、Chef(knife solo)を実行すると、コードに従ってインフラの設定が行われるわけです。人が手順書を見ながら実施するような作業が自動的に実施できるわけです。

実行コマンドは以下になります。

$ knife solo cook (対象ノード)

また、Chefの導入メリットは自動化だけではありません。「Chefでレシピを何度実行してもレシピのとおりに実行される」=「サーバーの構成状態をレシピ通りに管理できる」という事が実現できます。

ただし、このメリットは、構成情報の管理方法を今までのやり方から変更するなどの業務プロセス改革が伴うと考えられます。既存のやり方に大きな課題認識がある場合に、メリットと感じられると思われます。

以上が、Chef を使ったサーバー構築自動化の概要となります。私自身もこれからChefを使いこなせるように取り組んでいく事になりますが、とても面白いツールです。

多くのサーバーを構築し管理するITサービスプロパイダーやアプリ開発会社などで、有効なツールだと思います。ぜひ、ご利用を検討されると良いかと思います。

システム監視ツール「Zabbix」のご紹介と対応サービス

This entry was posted in インフラ環境, お仕事, 監視 and tagged , on by .

システム基盤のクラウド導入が進む現在では、今まで以上に迅速な対応が求められています。
また、DevOpsを実践する上でも、迅速なシステム監視、状況分析が必要になっています。

Zabbixは、クラウド時代、DevOps時代に適した監視ツールです。 Continue reading