IDCFクラウドに、PandoraFMSを用意する

最新版は [こちら](http://qiita.com/hogehogehugahuga/items/e0c21d0ca25b742e86c3) です。
# 概要

IDCFクラウドさんの仮想環境に、オープンソース版も存在する監視サーバ PandoraFMS (http://pandorafms.org/) をインストールします。

- OSは、構築の簡易さを考慮し、IDCF提供のUbuntu最新版を利用する
- PandoraFMSも、構築の簡易さを考慮し、Articaリポジトリを利用する
- PnadoraFMSを利用する仮想マシンは、IDCFが推している「Mackerel」に対抗する為、低コストプラン（=500円サーバプラン）を利用する
    - オンプレミスの監視サーバの方が、カスタマイズによる発展性は高い。
    - それを体感してもらうため、なるべく敷居が低くPandoraFMSを使える環境を作れる、を目標としている。

## 何が出来るようになるのか

以下の環境がそろいます

- PandoraFMSの最新のサーバ使えるようになります
- 以下の通信を許可します。
    - SSH
    - HTTP

利用を続ける場合は、セキュリティ対策を別途実施してください。

- OSを最新の状態に保つ
- ログインできるアカウントの管理をする
    - デフォルトパスワードの変更
    - SSHで鍵認証の強制
- JVN等を定期的に参照し、脆弱性情報に気を配り、必要に応じて対応する

# 状況開始
## OSの準備

IDCFクラウドが用意している「お勧めのテンプレート」の Ubuntu Server 14.04 TLS 64-bit を利用します。

|項目|選択値|
|:-:|:-:|
|マシンタイプ|light.S1(1CPU, 1GB RAM)|
|イメージ|UBUNTU: Ubuntu Server 14.04 LTS 64-bit(構築時点で最新)|
|ボリューム|ルートディスク:15GB, データディスク:なし|
|SSH Key|任意で利用|
|仮想マシン台数|1|
|ネットワークインターフェース|デフォルト|
|マシン名|任意|
|グループ名|任意|

これで 500円のUbuntuサーバ が用意できます。

- コンソールアクセスをすると、rootでログインできます。
    - rootパスワードは、メールにて配布されます。必要に応じて変更してください。

## 外部からのSSH接続設定

ローカルコンソールは使い勝手が悪いので、インターネット向けにSSH接続を許可します。

- この際、rootログインはホスト作成時に指定した鍵が必須になります。
    - 必要に応じてsshd_configの調整をしてください。

まずは、仮想ルータの設定をします。

### ファイアウォール

|用途|ソースCIDR|タイプ|ポートレンジ|
|:-:|:-:|:-:|:-:|
|SSHアクセス|ANY|SSH|22|
|HTTPアクセス|ANY|HTTP|80|


### ポートフォワード

|用途|パブリックポート|プライベートポート|仮想マシン|
|:-:|:-:|:-:|:-:|
|SSH転送|SSH|22|今回作成した仮想マシン名|
|HTTP転送|HTTP|80|今回作成した仮想マシン名|

インターネット経由で接続しましょう

- 鍵が必須なので、ホスト作成時に選択した鍵を利用して接続しましょう。
- これでコンソールにコピーや貼り付けができます。
- HTTPは今の時点では接続できません。PandoraFMSと一緒にapache2が入るまで待ちましょう。

## Articaのプライベート リポジトリを使い、PandoraFMSを入れる

Ubuntu 14でArticaリポジトリを使う場合は、debian squeezeの物を使えばよいようだ。
PandoraFMSを入れた後、MySQLも入れておきます。

```console
# vi /etc/apt/sources.list
deb http://firefly.artica.es/debian/squeeze /
(上記を追加)
# apt-get update
# apt-get install pandorafms-console pandorafms-server pandorafms-agent-unix
...大量のパッケージがインストールされる
# apt-get install mysql-server
...MySQL "root" userのパスワードを入れる
```

これで使えるようになっているようだ。

## PandoraFMSの初期設定

初期設定画面が使えるように、公開ディレクトリにリンクをする

- DocumentRoot的には /var/www/html となっているが、apt-getで入れたPandoraFMSのデータは /var/www/pandora_console に配置される。

```console
[root@:~]# cd /var/www/
[root@:/var/www]# ls
html  pandora_console
[root@:/var/www]# cd html/
[root@:/var/www/html]# ln -s ../pandora_console .
[root@:/var/www/html]# ls -lh
total 12K
-rw-r--r-- 1 root root 12K Jul 14 15:50 index.html
lrwxrwxrwx 1 root root  18 Jul 14 16:12 pandora_console -> ../pandora_console
[root@:/var/www/html]#
```

上記が出来たら、WEBアクセスを行う

- http://YOUR_SERVER_ADDRESS/pandora_console/install.php

以下の点の修正以外は、デフォルトで大丈夫

- "ENVIRONMENT AND DATABASE SETUP"
    - "DB Password for this user"
        - 先程MySQLを入れたときに入力した、MySQL "root" Userのパスワードを入れる
    - "Full path to HTTP publication directory"
        - これは /var/www/html/pandora_console 辺りにするのが良い
- "CREATING DATABASE AND DEFAULT CONFIGURATION FILE"
    - "Established...generated:"
        - PandoraのDBパスワードになるので、記録を残しておく (後で、/etc/pandora/pandora_server.configに書く)

インストール完了後、install.php 若しくは リネームされたinstall_old.php を削除して、PandoraServereを起動する。自動起動の設定はされている。

```console
[root@:]# rm /var/www/pandora_console/install_old.php
[root@:]# vi /etc/pandora/pandora_server.config
dbpass <<インストール時に表示されていたパスワードを記載>>
[root@:]# /etc/init.d/pandora_server start

Pandora FMS Server 6.0SP3 Build 160627 Copyright (c) 2004-2015 ArticaST
This program is OpenSource, licensed under the terms of GPL License version 2.
You can download latest versions and documentation at http://www.pandorafms.org

 [*] Backgrounding Pandora FMS Server process.

Pandora Server is now running with PID 12831
[root@:]# /etc/init.d/tentacle_serverd start
Tentacle Server is now running with PID 12887
[root@:]# /etc/init.d/pandora_agent_daemon start
Pandora FMS Agent is now running with PID 12907
[root@:]#
```

## PandoraFMSへWEBアクセス

設定が終わったので、PandoraFMSのコンソールへアクセスする

- http://SERVER-ADDRESS/pandora_console/index.php
    - デフォルトは、ユーザ:admin, パスワード:pandora です。
    - ログイン後、パスワードは変更することが推奨されています。

最初に"Pandora FMS instance identification wizard"が起動します。

- "Language code for Pandora"で"日本語"を選択する
- 日本語になった"タイムゾーン設定"で、アジア/Tokyo を選択

これで利用できるようになりました。

- 自分自身のdefault設定の監視が入っています。
    - ディスクが、使用率監視ではなくて "% of free space in this volume"(空き容量率)なので、普通は微妙かも。
    - ここら辺の調整は、どのように監視したいか、次第なので好きにいじろう。もう監視サーバは稼働したのだから自由にやろう。

## 警告の調整

PandoraFMSコンソールを見ると、何個かの警告が出ていると思います。
これらの修正を行います。

- `php.ini`に対して、以下の警告が出ている
    - `MAX_INPUT_TIME`の推奨値は`-1`である
    - `MAX_EXECUTION_TIME`の推奨値は`0`(無制限)である
    - `UPLOAD_MAX_FILESIZE`の推奨値は`800M 又はそれ以上`である
    - `MEMORY_LIMIT`の推奨値は`500M又はそれ以上`である
    - disable_function変数に`system()`又は`exec()`関数が含まれている
        - 尚、php.iniは二か所に存在している
            - /etc/php5/apache2/php.ini
            - /etc/php5/cli/php.ini
- 両方のファイルを設定変更したら`apacheプロセス`を再起動せよ

これの対応をする

```console
# vi /etc/php5/cli/php.ini
# vi /etc/php5/apache2/php.ini
# /etc/init.d/apache2 restart
 * Restarting web server apache2                                         [ OK ]
# 
```

上記でおおよそ使える状況になる。

以上。

# トラブルシュート

## ssh/httpアクセスが出来ない

- 仮想ルータの設定が出来ているかを再確認する
    - ファイアウォールの設定はしたが、ポートフォワードを忘れた、等
- 対象サービスは起動しているかを確認する
    - /etc/init.d/ssh status などで稼働状況を確認
- HTTPであれば、/var/log/apache2/*.log を確認する
    - アクセスはできているが、コンテンツやApache側の問題である場合は、access.logやerror.logに何らかの記録が残ることが多い
- アクセス元から順を追って、確認していこう

## 初回のinstall.phpを進めていくと、エラーになる

大半がDBの設定に起因するものです

- DBパスワード、入れていますか
- そもそも、MySQL入れていますよね？

## go-cve-dictionary のfetch中に、vulsをインストールできない

light.S1ではメモリが足りない、ようです。
go-cve-dictionaryのfetchが終わるのを待ってみましょう。


以上です。