ブログ?

もうだめぽ

SoftAXで遊んでみる

仕事でA10 NetworksのAXシリーズを使う機会があったので仮想アプライアンス版のSoftAXで遊んでみます。
トライアル版では30日の使用制限と5Mbpsの帯域制限がありますが、軽く遊ぶ程度なら十分だと思われます。
SoftAX Virtual ADC: Software-based Application Delivery Controller

下記のページで必要な事項を入れてすこし待つとダウンロード用とライセンス発行用のアドレスが記載されたメールが届くのでアクセスしてください。

SoftAX Trial License

仮想アプライアンスVMware ESX/ESXi 4.0以降用となっているのでうまいことインストールします。
イメージを変換すればVMware Workstationなんかでも動くみたいです。

初期設定

インストール直後は下記の通り設定されていますが、環境に合わせて変更する必要があります。

IPアドレス 172.31.31.31 /24
ユーザ名 admin
パスワード a10
enableパスワード (ブランク)

初期設定に必要なコマンド類はSoftAX Installation Guide(ライセンスのメールに記載されています)を読めばわかるようになっているので、うまいことやってください。

コマンド体系はほとんどCiscoのIOSと同じで、CiscoのL3スイッチやルータを触ったことがある人は取っ付きやすいと思います。

AX system is ready now.

[type ? for help]

SoftAX>enable
Password:
SoftAX#configure terminal 
SoftAX(config)#interface management 
SoftAX(config-if:management)#ip address 192.168.100.50 /24
SoftAX(config-if:management)#ip default-gateway 192.168.100.1
SoftAX(config-if:management)#end
SoftAX#write memory 
Building configuration...
Write configuration to default startup-config
SoftAX#
SoftAX#show running-config interfaces management 
interface management
 ip address 192.168.100.50 255.255.255.0
 ip default-gateway 192.168.100.1
!

あとはライセンスのインポートをして終了です。
続きは気が向いたら書きます('A`)

OMDを使った監視サーバ構築(前編)

OMD(Open Monitoring Distribution)]を使って監視サーバを構築してみます。
Open Monitoring Distribution - Wiki - OMD

OMDってなに?

こちらは公式サイトからの引用です。

Welcome to OMD - the Open Monitoring Distribution. OMD implements a completely new concept of how to install, maintain and update a monitoring system built on Nagios.

OMD avoids the tedious work of manually compiling and integrating Nagios addons while at the same time avoiding the problems of pre-packaged installations coming with your Linux distribution, which are most times outdated and provide no regular updates.

Nagiosとそのアドオンを用いた監視システムを構築するためのディストリビューションで、2012/07現在、下記のソフトウェアで構成されます。

  • nagios
    • nagios-plugins
    • nsca
    • check_nrpe
  • Icinga
  • Shinken
  • nagvis
  • pnp4nagios
  • rrdtool/rrdcached
  • Check_MK
  • MK Livestatus
  • Multisite
  • dokuwiki
  • Thruk
  • Mod-Gearman
  • check_logfiles
  • check_oracle_health
  • check_mysql_health
  • jmx4perl
  • check_webinject
  • check_multi

OMDを使うと面倒な設定をせずに監視サーバの初期構築ができて便利です。
ソフトウェアのバージョンアップもOMDに任せることができます。

インストール方法

Debian, Ubuntu, CentOS, RedHat, Suseではレポジトリからインストールすることが可能です。
OMD Repository – ConSol* Labs

CentOS 6の場合はこんな感じで実行します。

$ sudo sh -c "wget -O - http://labs.consol.de/OMD/rh60/stable/omd.repo > /etc/yum.repos.d/omd.repo"
$ sudo yum install omd-0.54

なお、GraphvizEPELのパッケージが必要になるので適宜レポジストリを追加してインストールしてください。

サイト作成

実際に監視サーバを作成してみます。(OMDでは site とよびます)

$ sudo omd create hoge
Adding /omd/sites/hoge/tmp to /etc/fstab.
Creating temporary filesystem /omd/sites/hoge/tmp...OK
Created new site hoge with version 0.54.

  The site can be started with omd start hoge.
  The default web UI is available at http://example.com/hoge/
  The admin user for the web applications is omdadmin with password omd.
  Please do a su - hoge for administration of this site.

これで hoge ユーザが作成され、監視システム構築の準備が整いました。
今後は hoge ユーザにスイッチして作業を進めます。

OMDの使い方

基本的には作成したサイトのユーザにスイッチしてから omd コマンドで各種命令を実行します。

OMD[hoge]:~$ omd help
Usage (called as site user):

 omd help                        Show general help
 omd version    [SITE]           Show version of OMD
 omd versions                    List installed OMD versions
 omd sites                       Show list of sites
 omd update                      Update site to other version of OMD
 omd start      [SERVICE]        Start services of one or all sites
 omd stop       [SERVICE]        Stop services of site(s)
 omd restart    [SERVICE]        Restart services of site(s)
 omd reload     [SERVICE]        Reload services of site(s)
 omd status     [SERVICE]        Show status of services of site(s)
 omd config     ...              Show and set site configuration parameters
 omd diff       ([RELBASE])      Shows differences compared to the original version files
 omd umount                      Umount ramdisk volumes of site(s)

General Options:
 -V <version>                    set specific version, useful in combination with update/create
 omd COMMAND -h, --help          show available options of COMMAND
  • 特定のユーザにスイッチした場合はそのサイトだけ影響を受けます
  • rootユーザの場合、すべてのサイトのサービスをいっぺんに操作できます
    • ただし、すべてのコマンドが実行できるわけではありません(たとえばconfig, diffなどは不可)

OMDの設定変更

$ omd config

を実行することでOMD自体の設定ができます。
なお、設定を変更する際にいったんそのサイトのサービスが止まるので気をつけてください。

f:id:unyu1979:20120723105438p:plain

Basic

f:id:unyu1979:20120723105442p:plain

  • AUTOSTART

ONにするとOMDが起動する時にそのサイトも起動させることができます。

  • CORE

利用する監視システムを指定する。
Nagios, Icinga, Shinkenからお好みで。

  • CRONTAB

サイト固有のcrontabを有効にする場合ONにする。

  • TMPFS

テンポラリファイルのためにラムディスクを利用する場合ONにする。

Web GUI

f:id:unyu1979:20120723105445p:plain

Apacheをサイトごとに個別に起動させる、システムのApacheを利用する、Webサーバを利用しないの3つから選択する。

サイトのWebページにアクセスした際にデフォルトで表示させるGUIを選択する。
Nagios, Icingaなどなどお好みで。

ユーザ管理にDokuwikiを使う場合にONにする。

Addons

f:id:unyu1979:20120723105448p:plain

MySQLを使うアドオンで、サイトごとに別々のMySQLを起動させたい場合ONにする。

  • NAGVIS_URLS

NagVisとリンクさせるGUIを選択する。

  • PNP4NAGIOS

パフォーマンスデータの処理にPNP4Nagiosを利用する場合ONにする。
PNP4Nagiosは取得したデータをもとにグラフを作ってくれます。

Distributed Monitoring

f:id:unyu1979:20120723105451p:plain

  • LIVESTATUS_TCP
  • MOD_GEARMAN
  • NSCA

それぞれ利用したい場合はONにする。


これで監視サーバの構築が終わりました。
次回は実際に設定追加等をやってみます。

Vyatta,NetScreenでの拠点間VPN設定(後編)

前編に引き続き、今回はNetScreen側での設定方法。
構成は前回と同様です。

f:id:unyu1979:20120125180313j:plain

VPN設定についてはルートベースにしました。

初期設定

シリアルケーブルで接続するか、Trust側のインタフェースに接続してDHCP経由でIPアドレスを取得してtelnetで接続します。
まずuntrustインタフェースのIPアドレス設定とルーティング設定をします。
今回はtrustについてはデフォルトのまま使うので変更しません。

ns5gt-> set interface untrust ip 192.168.0.254/24
ns5gt-> set route 0.0.0.0/0 gateway 192.168.0.1

トンネルインタフェース作成

トンネルインタフェースと、ゾーンを作成します。

ns5gt-> set zone name VPN

次にトンネルインタフェースを作成します。
ゾーンは先程作成したものを指定します。

ns5gt-> set interface tunnel.1 zone VPN

トンネルインタフェースのIPをunnumberedに設定し、untrustインタフェースを割り当てます。

ns5gt-> set interface tunnel.1 ip unnumbered interface untrust

確認するとこんな感じになります。

ns5gt-> get interface 

A - Active, I - Inactive, U - Up, D - Down, R - Ready 

Interfaces in vsys Root: 
Name           IP Address         Zone        MAC            VLAN State VSD      
trust          192.168.1.1/24     Trust       0010.db85.a6a2    -   U   -  
untrust        192.168.0.254/24   Untrust     0010.db85.a6a1    -   U   -  
serial         0.0.0.0/0          Null        0010.db85.a6a6    -   D   -  
tun.1          unnumbered         VPN         untrust           -   D   -  
vlan1          0.0.0.0/0          VLAN        0010.db85.a6af    1   D   -  
null           0.0.0.0/0          Null        N/A               -   U   0 

VPN設定

PHASE 1設定。
pre shared key, proposalはvyattaで設定したものと同様に。

ns5gt-> set ike gateway vyatta-gw address 10.0.0.254 Main outgoing-interface untrust preshare presharedkey proposal pre-g2-aes128-sha

PHASE 2設定。
proposalはvyattaと同様にし、先程作成したトンネルインタフェースをバインドします。

ns5gt-> set vpn vyatta-ike gateway vyatta-gw no-replay tunnel idletime 0 proposal g2-esp-aes128-sha
ns5gt-> set vpn vyatta-ike monitor source-interface trust destination-ip 10.0.100.1 rekey
ns5gt-> set vpn vyatta-ike id 1 bind interface tunnel.1
ns5gt-> set vpn vyatta-ike proxy-id local-ip 192.168.1.0/24 remote-ip 10.0.100.0/24 ANY 

以上の設定が適用されればIPsec SAがアクティブになるはずです。

ns5gt-> get sa active 
Total active sa: 1
total configured sa: 1
HEX ID    Gateway         Port Algorithm     SPI      Life:sec kb Sta   PID vsys
00000001<      10.0.0.254  500 esp:a128/sha1 13a4ad0b  3563 unlim A/U    -1 0
00000001>      10.0.0.254  500 esp:a128/sha1 b73f1236  3563 unlim A/U    -1 0

ルーティング設定

VPN向けのルーティング設定です。
宛て先はトンネルインタフェースになります。

ns5gt-> set route 10.0.100.0/24 interface tunnel.1 

ポリシー設定

最後にお好みでポリシー設定をします。
下記は全解放にしています。 :-)

ns5gt-> set policy from trust to VPN any any any permit 
ns5gt-> set policy from VPN to trust any any any permit 
ns5gt-> save

動作確認

それぞれのルータ配下のマシンからPINGでも打って動作確認します。

ns5gt-> ping 10.0.100.1 from trust
Type escape sequence to abort

Sending 5, 100-byte ICMP Echos to 10.0.100.1, timeout is 1 seconds from trust
!!!!!
Success Rate is 100 percent (5/5), round-trip time min/avg/max=3/3/4 ms

Vyatta,NetScreenでの拠点間VPN設定(前編)

Vyatta 6.3とJuniper NetScreen 5GTを用いて拠点間VPN設定をしてみます。

Vyatta VYATTA CORE 6.3 - VC6.3-2011.07.21
Juniper NetScreen 5GT ScreenOS 5.4.0r5.0

NetScreenの機種、バージョンが古いですが現行バージョンでも基本的には同じ設定でいけるはずです。
ネットワーク構成は下記の通りとしました。

f:id:unyu1979:20120125180313j:plain

初期設定

まず、コンソール経由でVyattaへアクセスし、IPアドレス、ルーティング設定とSSHの有効化をします。

vyatta@vyatta:~$ configure  
[edit]
vyatta@vyatta# set interfaces ethernet eth0 address 10.0.0.254/24
vyatta@vyatta# set interfaces ethernet eth1 address 10.0.100.1/24
vyatta@vyatta# set protocols static route 0.0.0.0/0 next-hop 10.0.0.1
vyatta@vyatta# set service ssh
vyatta@vyatta# top
vyatta@vyatta# commit

以降はSSH経由で設定します。

VPN設定

まず外部向けのインタフェースでVPNを有効にします。

vyatta@vyatta# set vpn ipsec ipsec-interfaces interface eth0

PHASE 1設定。

vyatta@vyatta# edit vpn ipsec ike-group ns-ike proposal 1 
vyatta@vyatta# set lifetime 28800
vyatta@vyatta# set proposal 1 dh-group 2
vyatta@vyatta# set proposal 1 encryption aes128
vyatta@vyatta# set proposal 1 hash sha1
vyatta@vyatta# top

PHASE 2設定

vyatta@vyatta# edit vpn ipsec esp-group ns-esp 
vyatta@vyatta# set lifetime 3600 
vyatta@vyatta# set pfs enable 
vyatta@vyatta# set proposal 1 encryption aes128 
vyatta@vyatta# set proposal 1 hash sha1 
vyatta@vyatta# top

最後にpreshared keyなどを設定して終わり。

vyatta@vyatta# edit vpn ipsec site-to-site peer 192.168.0.254
vyatta@vyatta# set authentication mode pre-shared-secret 
vyatta@vyatta# set authentication pre-shared-secret 'presharedkey'
vyatta@vyatta# set ike-group ns-ike 
vyatta@vyatta# set local-ip 10.0.0.254
vyatta@vyatta# set tunnel 1 esp-group ns-esp 
vyatta@vyatta# set tunnel 1 local subnet 10.0.100.0/24
vyatta@vyatta# set tunnel 1 remote subnet 192.168.1.0/24
vyatta@vyatta# commit
vyatta@vyatta# save

VPN部分のコンフィグはこんな感じになります。

vyatta@vyatta# show vpn ipsec 
 esp-group ns-esp {
     lifetime 3600
     pfs enable
     proposal 1 {
         encryption aes128
         hash sha1
     }
 }
 ike-group ns-ike {
     lifetime 28800
     proposal 1 {
         dh-group 2
         encryption aes128
         hash sha1
     }
 }
 ipsec-interfaces {
     interface eth0
 }
 site-to-site {
     peer 192.168.0.254 {
         authentication {
             mode pre-shared-secret
             pre-shared-secret presharedkey
         }
         ike-group ns-ike
         local-ip 10.0.0.254
         tunnel 1 {
             esp-group ns-esp
             local {
                 subnet 10.0.100.0/24
             }
             remote {
                 subnet 192.168.1.0/24
             }
         }
     }
 }

APIで遊んでみる

さくらのクラウドのAPIが公開されているので遊んでみる。
サンプルのコードはPerlだけど、勉強のためRubyに。

アクセストークンなどはコントロールパネルの「設定」=>「APIキー管理」で取得したものを使う。

#!/usr/bin/env ruby

require 'net/https'
require 'uri'
require 'json'

access_token = "XXXXXXXXXX"
access_token_secret = "XXXXXXXXXXXXXXXXXXXXX"
uri = URI.parse("https://secure.sakura.ad.jp/cloud/api/cloud/0.2/server/")

http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

body = http.start { |http|
  req = Net::HTTP::Get.new(uri.path)
  req.basic_auth(access_token, access_token_secret)
  http.request(req).body
}

puts JSON.pretty_generate(JSON.parse(body))

実行するとこんなかんじ。

{
  "From": 0,
  "Count": 2,
  "Total": 2,
  "Servers": [
    {
      "Index": 0,
      "ID": "XXXXXXXX",
      "Name": "Fedora",
      "HostName": "localhost",
      "Description": "Fedora15",
      "CreatedAt": "2011-11-25T10:28:31+09:00",
      "Icon": {
        "ID": "XXXXXXXXXXX",
        "URL": "https://secure.sakura.ad.jp/cloud/api/cloud/0.2/icon/112300511983.png",
        "Name": "Fedora",
        "Scope": "shared"
      },
      "ServerPlan": {
        "ID": 1,
        "Name": "プラン1",
        "CPU": 1,
        "MemoryMB": 2048,
        "ServiceClass": "cloud/plan/1"
      },......

あとでちゃんとしたものを作っておこう。

NDOUtilsのインストール

NDOUtilsではNagiosのデータをデータベースに格納して管理することができます。
詳細は公式サイトを参照してください。
http://exchange.nagios.org/directory/Addons/Database-Backends/NDOUtils/details
下記はサイトからの引用です。

NDOUtils allows you to export current and historical data from one or more Nagios instances to a MySQL database. Several community addons use this as one of their data sources. NDOUtils consists of a standalone daemon, a Nagios event broker, and several helper utilities.

コンパイル、インストール

$ curl http://jaist.dl.sourceforge.net/project/nagios/ndoutils-1.x/ndoutils-1.4b9/ndoutils-1.4b9.tar.gz | tar zxv
$ cd ndoutils-1.4b9
$ ./configure

*** Configuration summary for ndoutils 1.4b9 10-27-2009 ***:

 General Options:
 -------------------------
 NDO2DB user:    nagios
 NDO2DB group:   nagios


Review the options above for accuracy.  If they look okay,
type 'make' to compile the NDO utilities.

$ make
$ sudo make install

  Hint: NDOUtils Installation against Nagios v3.x
  completed.

  If you want to install NDOUtils for Nagios v2.x
  please type  'make install-2x


  Next step should be the database initialization/upgrade
  cd into the db/ directory and either:
     ./installdb  (for a new installation) or:
     ./upgradedb  (for an existing one)

make[1]: ディレクトリ `/usr/local/src/ndoutils-1.4b9/src' から出ます

Main NDOUtils components installed

データベース作成

次にNDOUtilsで利用するデータベース、ユーザ、パスワードを設定します。(いずれもndoutilsとしました)
READMEには下記の記述があるため権限は制限しました。

2. Create a username/password that has at least the following privileges for the database:

SELECT, INSERT, UPDATE, DELETE

mysql> CREATE DATABASE ndoutils;
Query OK, 1 row affected (0.00 sec)

mysql> GRANT SELECT,INSERT,UPDATE,DELETE
    -> ON ndoutils.*
    -> TO ndoutils@localhost
    -> IDENTIFIED BY 'ndoutils';
Query OK, 0 rows affected (0.01 sec)

次にテーブルを作成します。
failedと出ていますが気にしないでおきます :-)

$ cd db
$ ./installdb -u root -p "" -h localhost -d ndoutils
DBD::mysql::db do failed: Table 'ndoutils.nagios_dbversion' doesn't exist at ./installdb line 51.
** Creating tables for version 1.4b9
     Using mysql.sql for installation...
** Updating table nagios_dbversi

モジュール、コンフィグファイルのコピー

broker moduleのコピー。

$ sudo cp src/ndomod-3x.o /usr/local/nagios/bin/ndomod.o
$ sudo cp config/ndomod.cfg-sample /usr/local/nagios/etc/ndomod.cfg
$ sudo chown nagios:nagios /usr/local/nagios/etc/ndomod.cfg

nagiosがbroker moduleを読み込むように設定。

$ sudi vi /usr/local/nagios/etc/ndomod.cfg
broker_module=/usr/local/nagios/bin/ndomod.o config_file=/usr/local/nagios/etc/ndomod.cfg 

ndo2dbのコピー。

$ sudo cp src/ndo2db-3x /usr/local/nagios/bin/ndo2db
$ sudo cp config/ndo2db.cfg-sample /usr/local/nagios/etc/ndo2db.cfg
$ sudo chown nagios:nagios /usr/local/nagios/etc/ndo2db.cfg

ndo2dbの設定を先ほど作成したデータベース情報に変更。

$ sudo vi /usr/local/nagios/etc/ndo2db.cfg
db_name=ndoutils
db_user=ndoutils
db_pass=ndoutils

ndo2dbデーモンの起動設定。

$ sudo cp daemon-init /etc/init.d/ndoutils
$ sudo chmod 755 /etc/init.d/ndoutils
$ sudo chkconfig ndoutils on

最後にndo2db,nagiosを起動して終わりです。

$ sudo service ndoutils start
$ sudo service nagios restart

動作確認

正常に動作していればnagiosのログ(/usr/local/nagios/var/nagios.log)に
こんな感じで表示されているはずです。

[1326691682] Nagios 3.3.1 starting... (PID=14465)
[1326691682] Local time is Mon Jan 16 14:28:02 JST 2012
[1326691682] LOG VERSION: 2.0
[1326691682] ndomod: NDOMOD 1.4b9 (10-27-2009) Copyright (c) 2009 Nagios Core Development Team and Community Contributors
[1326691682] ndomod: Successfully connected to data sink.  0 queued items to flush.
[1326691682] Event broker module '/usr/local/nagios/bin/ndomod.o' initialized successfully.
[1326691682] Finished daemonizing... (New PID=14469)


また、MySQLにもデータが格納されます。

mysql> SELECT * FROM ndoutils.nagios_hosts\G
*************************** 1. row ***************************
                          host_id: 2
                      instance_id: 1
                      config_type: 1
                   host_object_id: 1
                            alias: oreore.dtdns.net
                     display_name: oreore.dtdns.net
                          address: 127.0.0.1
          check_command_object_id: 13
               check_command_args: 
   eventhandler_command_object_id: 0
        eventhandler_command_args: 
notification_timeperiod_object_id: 43
       check_timeperiod_object_id: 2
       failure_prediction_options: 
                   check_interval: 1
                   retry_interval: 1
               max_check_attempts: 10
         first_notification_delay: 0
            notification_interval: 120
                   notify_on_down: 1
            notify_on_unreachable: 1
               notify_on_recovery: 1
               notify_on_flapping: 0
               notify_on_downtime: 0
                      stalk_on_up: 0
                    stalk_on_down: 0
             stalk_on_unreachable: 0
           flap_detection_enabled: 1
             flap_detection_on_up: 1
           flap_detection_on_down: 1
    flap_detection_on_unreachable: 1
               low_flap_threshold: 0
              high_flap_threshold: 0
         process_performance_data: 1
         freshness_checks_enabled: 0
              freshness_threshold: 0
           passive_checks_enabled: 1
            event_handler_enabled: 1
            active_checks_enabled: 1
        retain_status_information: 1
     retain_nonstatus_information: 1
            notifications_enabled: 1
                 obsess_over_host: 1
       failure_prediction_enabled: 1
                            notes: 
                        notes_url: 
                       action_url: 
                       icon_image: 
                   icon_image_alt: 
                       vrml_image: 
                  statusmap_image: 
                   have_2d_coords: 0
                             x_2d: -1
                             y_2d: 0
                   have_3d_coords: 0
                             x_3d: 0
                             y_3d: 0
                             z_3d: 0
1 row in set (0.00 sec)

nginx + Nagios のインストール(後編)

前編に続き、今回はNagiosのWebコンソール表示に必要な設定をしていきます。
configureスクリプトを実行した時に表示されていたように、/nagiosへのエイリアスを設定します。

これです。

 Web Interface Options:
 ------------------------
                 HTML URL:  http://localhost/nagios/
                  CGI URL:  http://localhost/nagios/cgi-bin/
 Traceroute (used by WAP):  /bin/traceroute

nginxのコンフィグに下記の通り追記します。

$ sudo vi /etc/nginx/conf.d/default.conf

server {
....
....
....
  location /nagios {
    alias /usr/local/nagios/share;
    index index.php;
    auth_basic            "Nagios Access";
    auth_basic_user_file  /usr/local/nagios/etc/htpasswd.users;
  }
}

Basic認証設定

Basic認証のパスワードファイルを作成します。
なお、ここで設定したユーザIDについてはWebコンソールでのアクセス制御に用います。

# sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
New password: 
Re-type new password: 
Adding password for user nagiosadmin

ちなみに、ディストリビューションのバージョンによってはデフォルトでCryptを使った暗号化がされるので気をつけてください。
長いパスワードを設定しても9文字目からは効果がありません。
※Fedora16ではMD5がデフォルトになっているので問題ありません

PHP関連の設定

nginxはデフォルトのままではPHPを処理してくれないので、php-fpmを使って設定してみます。
user, groupがapacheになっているのでnginxへと書き換えます。

$ sudo vi /etc/php-fpm.d/www.conf 

user = nginx
; RPM: Keep a group allowed to write in log dir.
group = nginx

次にnginxの設定も変更します。

$ sudo vi /etc/nginx/conf.d/default.conf

  location ~ ^/nagios/(.*\.php)$ {
    alias /usr/local/nagios/share/$1;
    include /etc/nginx/fastcgi.conf;
    fastcgi_pass 127.0.0.1:9000;
    auth_basic            "Nagios Access";
    auth_basic_user_file  /usr/local/nagios/etc/htpasswd.users;
  }

後はphp-fpmの起動、nginxの再起動を実施します。

$ sudo systemctl start php-fpm.service
$ sudo systemctl restart nginx.service

ブラウザで http://IPアドレス/nagios/ へアクセスするとWebコンソールが表示されるようになります。
f:id:unyu1979:20120113120818j:plain

CGI関連の設定

CGIの実行にはspawn-fcgiとfcgiwrapを用います。

まずはfcgiwrapをインストールします。

$ git clone git://github.com/gnosek/fcgiwrap.git
$ cd fcgiwrap
$ autoreconf -i
$ ./configure && make && sudo make install

続いてspawn-fcgiの設定をします。

$ sudo vi /etc/sysconfig/spawn-fcgi

FCGI_SOCKET=/var/run/fcgiwrap.socket
FCGI_PROGRAM=/usr/local/sbin/fcgiwrap
FCGI_USER=nginx
FCGI_GROUP=nginx
FCGI_EXTRA_OPTIONS="-M 0700"
OPTIONS="-u $FCGI_USER -g $FCGI_GROUP -s $FCGI_SOCKET -S $FCGI_EXTRA_OPTIONS -F 1 -P /var/run/spawn-fcgi.pid -- $FCGI_PROGRAM"

spawn-fcgiを起動して

$ sudo systemctl start spawn-fcgi.service

nginxに設定を追加して

$ sudo vi /etc/nginx/conf.d/default.conf

  location ~ ^/nagios/(.*\.cgi)$ {
    root /usr/local/nagios/sbin/;
    rewrite ^/nagios/cgi-bin/(.*)\.cgi /$1.cgi break;
    fastcgi_param AUTH_USER $remote_user;
    fastcgi_param REMOTE_USER $remote_user;    
    include /etc/nginx/fastcgi.conf;
    fastcgi_pass  unix:/var/run/fcgiwrap.socket;
    auth_basic            "Nagios Access";
    auth_basic_user_file  /usr/local/nagios/etc/htpasswd.users;
  }  

nginxを再起動して終わり。

$ sudo systemctl restart nginx.service

これでひと通りの設定が終わりました。

f:id:unyu1979:20120113124050j:plain

自動起動設定

最後にnginx, php-fpm, spawn-fcgiの自動起動設定をします。

$ sudo systemctl enable nginx.service php-fpm.service spawn-fcgi.service
$ sudo chkconfig nagios on

nagiosのみchkconfigを用いていますが、他もchkconfigで問題ありません。
native serviceではないということで結局はchkconfigが実行されます。

nginx.service is not a native service, redirecting to /sbin/chkconfig.
Executing /sbin/chkconfig nginx on

これでnginx + Nagios を用いた監視サーバの構築ができました。
今後は監視で取得したデータのグラフ化やNagios設定のカスタマイズ、監視設定等について書いていこうと思います。