Fluentd、ElasticSearch、Kibana4によるログ分析環境の構築

現在、ログを収集し分析するシステムを構築しようとした場合に、オープンソースの組み合わせですぐに始められる構成としてはじめに思いつくのは Fluentd + ElasticSearch + Kibana の構成です。
Web上の記事や書籍も充実していますし、日本にもユーザーが多そうなので割と安心して利用できる環境でもあると思われます。

この記事では、Fluendによりログ収集しElasticSearchに保存し、それをKibana 4で分析する環境の構築手順について調べた内容をまとめてみました。

今回試したのは以下のように、Apacheのアクセスログをtailして、Fluentdで収集しElasticSearchに保存、Kibanaでログの検索、分析を行うシンプルなシステム構成です

fluentd-elasticsearch-kibana-system

Apacheのログを収集するサーバーおよびElasticSearch、KibanaをインストールするサーバーともにOSはUbuntu 14.04 (Trusty)を利用します。

ここでは、構築を解説して、Kibana 4そのものの使い方についてはまた別途まとめたいと思います。
“Fluentd、ElasticSearch、Kibana4によるログ分析環境の構築” の続きを読む

Zabbix 2.4 JavaゲートウェイでJMX監視 インストール手順

Zabbix 2.4でJVMの監視を設定してみたメモです

JMXの監視をZabbixに統合するにはZabbix Java gatewayを利用します

公式ドキュメントでは、インストール手順について「5 Java gateway」に、JMXによるJavaアプリケーションの監視設定について「14 JMX monitoring」に記述されています

Java gatewayは2.0から導入された機能で、JMXをネイティブに監視することが可能です。
監視対象のJavaのアプリケーションとしてTomcatを用意してJMXを設定し、ZabbixのHostsに追加するところまでまとめてみます

以下のように、Zabbixサーバーおよびフロントエンドがインストール済みの環境にJavaゲートウェイを追加するように構成してみます
Zabbixサーバー、フロントエンドとエージェントのインストールと設定方法については前回の記事「Zabbix 2.4 サーバー/エージェントをUbuntu 14.04にインストール」を参照ください
zabbix_java_gateway
“Zabbix 2.4 JavaゲートウェイでJMX監視 インストール手順” の続きを読む

Zabbix 2.4 サーバー/エージェントをUbuntu 14.04にインストール

Zabbix 2.4 サーバーをUbuntu 14.04にインストールし、Zabbixエージェントを利用したリソース監視設定までを確認してみた手順をメモしてみました。

3 Installation from packages [Zabbix Documentation 2.4]」に沿ってパッケージインストールしてみます。(2015.8.14現在、2.4の公式ドキュメントはまだ翻訳中の様で英語のみです)

今回、試したシステム構成は以下の様な構成で、シンプルにZabbixサーバーを構築し、監視対象のホストを1つ追加します。

zabbix_system_configuration
“Zabbix 2.4 サーバー/エージェントをUbuntu 14.04にインストール” の続きを読む

Apache 2.4系をUbuntu 14.04にソースコードからインストールする手順

Apacheをソースからインストールする手順を改めて確認してみたのでまとめてみました。

ところで、改めてソースコードからApacheをインストールするメリットを考えてみると

  • パッケージインストールすると使わないstableモジュールも含まれてしまうので、不要なモジュールを削除して軽くしたい
  • パッケージシステム(UbuntuなのでAPT)でインストールできないバージョン(特に最新版)をインストールしたい

の2点くらいが思いつきます。

前者については、そこまでシビアな環境の場合、現在ならNginx使うなどの代替手段や他の構成を考えたほうが良いかもしれません。しかし慣れているApacheで軽快に動作する環境を構築したいという場合もまだ多そうではあります。

後者については、現在(2015/8/9)のUbuntu 14.04だと、APTのデフォルトリポジトリからインストールすると2.4.7がインストールされます。

$ apachectl -v
Server version: Apache/2.4.7 (Ubuntu)
Server built:   Jul 24 2015 17:25:11

確かに安定版最新の2.4.16よりはだいぶ古いです。
PPAを探せばさらに新しいバージョンもAPTでインストールできそうですが、公式の安定版に追随するならソースからビルド・インストールするの方が運用は楽な気がします。

では、以下インストール手順のまとめです。
“Apache 2.4系をUbuntu 14.04にソースコードからインストールする手順” の続きを読む

PPAパッケージを利用してRuby 2.2をUbuntu 14.04にインストールする

UbuntuにRubyの新しいバージョンをインストールする場合は、ソースからインストールする他にPPAパッケージが利用できます。
Ruby 2.2.0 packages for Ubuntu
PPAはPersonal Package Archiveの名前の通り非公式の有志が提供するパッケージ集です。

手動でインストール

apt-add-repositoryコマンドを実行するためにsoftware-properties-commonをインストール
[bash gutter=”false”]
$ sudo apt-get install software-properties-common
[/bash]
インストールとバージョンの確認は以下の通り
[bash gutter=”false”]
$ sudo apt-add-repository ppa:brightbox/ruby-ng
$ sudo apt-get update
$ sudo apt-get install ruby2.2

$ ruby2.2 -v
ruby 2.2.2p95 (2015-04-13 revision 50295) [x86_64-linux-gnu]
[/bash]

Chef Cookbook

Chef SupermarketにはrubyのCookbookがいくつか公開されている(RubyのCookbookを検索)が、PPAパッケージのインストールはruby-ngを利用する
“PPAパッケージを利用してRuby 2.2をUbuntu 14.04にインストールする” の続きを読む

MongoDBをChefでインストール

MongoDBをChef Supermarketに公開されているCookbookを利用してKnife soloでインストールする手順のまとめです

公開されているCookbookは、mongodbとmongodb3などがり、2.x系はmongodb、3.x系はmongodb3でインストールできます

以下、手順
確認は、Ubuntu 14.04で行っています

対象サーバーへのアクセス設定

対象サーバーのホスト名を登録
[text title=”/etc/hosts”]
54.33.11.22 mongodb
[/text]
ssh ubuntu@mongodbでsshできるように、公開キーを対象サーバーに登録しておく
[bash gutter=”false”]
$ cat ~/.ssh/id_rsa.pub | ssh ubuntu@mongodb -i ~/.ssh/server.pem ‘cat >> ~/.ssh/authorized_keys’
[/bash]
さらに、Chef実行時にユーザー名も省略できるように.ssh/configにUserを指定しておくと便利
[text title=”.ssh/config”]
Host mongoldb
User ubuntu
[/text]
“MongoDBをChefでインストール” の続きを読む

FuelPHPアプリをCapistrano3でデプロイ – Capistrano環境構築編

前回の記事「FuelPHPアプリをCapistrano3でデプロイ – Chef環境構築編」で準備した環境に、Capistrano3でFuelPHPをデプロイする手順をまとめる

FuelPHPは、Coreをsubmoduleのままにしている場合は、git submoduleに対応させる必要がある
ComposerによるPHPパッケージの追加はCapistrano::Composerプラグインを利用する

公式のREADMEに従ってプロジェクトを作した後に、FuelPHP固有の設定を追加していく

ssh-keyをbitbucketに登録

PCからの直接デプロイする場合は、すでにリポジトリにローカルの公開キーを登録済みと思われるが、登録していない場合は、
ssh-keyを生成してbitbucketに登録」あたりを参考に、公開キーをBitbucketに登録しておく

Capistranoのインストール

まずは、プロジェクト用ディレクトリを作成

$ mkdir fuelphp-cap

Gemfileを作成

# Gemfile
source 'https://rubygems.org'

gem 'capistrano', '~>; 3.4.0'

bundle installを実行
PCからの実行を考えるとローカルインストールしておきたいので--pathをつけている

$ bundle install --path vendor/bundle

“FuelPHPアプリをCapistrano3でデプロイ – Capistrano環境構築編” の続きを読む

FuelPHPアプリをCapistrano3でデプロイ – Chef環境構築編

Ubuntu 14.04上にFuelPHPアプリをCapistrano3でデプロイする環境をChefでセットアップした手順のまとめ

MySQLは、DB専用サーバーを立てることを前提に、WebアプリケーションサーバーとしてApache + mod_phpな環境をChefで構築していく
また、Capistranoに合わせたApacheの設定もChefで記述する

Chefの実行およびCapistoranoによるデプロイは、踏み台を使わずPC Macからすべて実行可能な環境を作る

Chef開発環境セットアップ

Chef DevKITのインストール

Chefは、現在開発キットが提供されておりRuby gemでのインストールは不要になっている
Chef Development KITのサイトに行くとプラットフォームごとのインストーラーを入手できる
https://downloads.chef.io/chef-dk/
開発キットには、chefおよび以下の周辺ツールがオールインワンで含まれている

  • Berkshelf 3.0
  • Test Kitchen
  • Foodcritic

Knife soloのインストール

PCからChefを実行するためにはKnife soloが必要になる
ChefDKのgemに追加する

$ /opt/chefdk/embedded/bin/gem install knife-solo

“FuelPHPアプリをCapistrano3でデプロイ – Chef環境構築編” の続きを読む

Office 365 カスタムドメインを追加しRoute 53に各種レコードを設定する

Office 365にカスタムドメインを追加して、AWS Route 53にDNS設定を追加する手順をまとめてみました

Office 365へのドメインの追加については、公式ドキュメント「Office 365 にユーザーとドメインを追加する」に記載されています

メモは、ドメインを取得後、Route 53のHosted Zoneを作成し、ドメインの移管は済んでいるところからになります
お名前.comで取得したドメインの移管については、前回の記事「お名前.comで取得したドメインをRoute 53に移管」を参考にしてください

ドメイン周りの設定に若干苦労したので、そこを中心に説明しています
説明で追加するドメインは、適当に取得した”trial365.xyz”というドメインを使っています

  1. [Office 365 管理者センター]を開き、左のメニューより[ドメイン]を開く
  2. [ドメインの追加]をクリックすると[手順1 ドメインの確認]が始まる

  3. [ドメインと DNS について理解しておくべきこと]で[始めましょう]をクリック

  4. [どのドメインを使用しますか?] テキストボックスにドメインを入力して [次へ]をクリック

  5. [独自の trial365.xyz を表示するためにこの TXT レコードを追加します] のページでは、TXTレコードをDNSサーバーに追加することを要求されます

Office365_AddCustomDomain_ConfirmOwnDomainTXTRecord
“Office 365 カスタムドメインを追加しRoute 53に各種レコードを設定する” の続きを読む

お名前.comで取得したドメインをRoute 53に移管

AWSのDNSサービス Route 53を使ってみたので、お名前.comで取得したドメインをRoute 53に移管する手順をメモしてみました

Route 53にてHosted Zoneを作成
Route53_CreateHostedZone

Type = NSがネームサーバー名になります
Route53_CreatedHostedZone

お名前.comにログインし、[ドメイン設定]タブを開き、メニューから[ネームサーバーの変更]を開きます
[他のネームサーバーを使用]タブを開きます(以下の画面)。
OnamaeDotCom_ChangeNameServers

Type = NSのValueに表示されているネームサーバー名を入力します
OnamaeDotCom_SetNameServers

確認して[設定する]をクリック
OnamaeDotCom_ConfirmChangeNameServers

移管の設定が開始され、少し待つと完了します

詳細な説明: お名前.comからAmazon Route 53へドメインを移管する