Nagiosの設定は、まだ記載できていません。近日中に公開予定ですので、少しお待ちください。
経緯
Nagiosを利用したサーバー監視の初歩を学べる機会があったため、その際の備忘録として記載しています。
そのため、細かい手順など間違っている可能性もあります。
構築環境
開発環境名 | バージョン |
---|---|
Linux | Ubuntu,22.04LTS |
Apache | Apache/2.4.52 (Ubuntu) |
MySQL | 8.0.30-0 |
PHP | PHP 8.1.2 |
Nagios |
として構築を行う。
サーバー環境は、AWSで作る。
AWSの構築&設定
-
AWSコンソールにログインする。
アカウントを持ってない方を作成を!
EC2インスタンスを起動させます。(東京リージョンで作成します。)
EC2は下記の設定で作成することにしました。(無料利用枠で使えます。)設定名 設定内容 名前 web-server OS Ubuntu,22.04LTS AMI IDだと ami-03f4fa076d2981b45 インスタンス t2.micro キーペア(RSA作成) web-server.pem VPC default セキュリティグループ名 web-server 説明 web-server's setting セキュリティグループルール ssh(22),http(80)を許可 ストレージ 1x8GiB gp2ルートvol. 以上の設定が完了したら、インスタンスを起動させる。
-
インスタンスのパブリックIPを確認して、ssh接続を行う。
パブリックIPは、新スタンスの詳細の中に記載があります。
先ほど、作成し、ダウンロードしたkeyの権限を変更します。(標準では、変更しないとssh接続ができません。)$ chmod web-server.pem $ ssh -i [Keyペアのパス] ubuntu@[インスタンスのパブリックIP]
とりあえず、タイムゾーンがUTCなので、日本時間に変更しておく
$ sudo su # root権限に $ timedatectl set-timezone Asia/Tokyo # TimeZoneをJSTに変更
Apacheのインストール
これが公式サイト
-
Apacheインストール
$ sudo apt install apache2 # 本体のインストール $ apachectl -v #バージョン確認
バージョンが表示されればインストール問題なくされている。
-
Apacheの自動起動設定を有効にする
サーバーを立ち上げた際に、Apacheのプロセスが自動起動する様な設定を行う。$ sudo systemctl enable apache2.service # 自動起動を設定 $ sudo systemctl status apache2 # 起動状況を確認
状況確認のActiveのステータスが、active(running)になっていれば問題なく起動できている。
また、http://[EC2のパブリックIP]/
に接続すると、Apache2 Default Pageが表示される。 -
VirtualHostの設定を行う
VirtualHostは、1つのサーバーで複数のドメインを運用する機能である。
今回は1つのドメインを想定しているが、今後の使用の可能性を考えて、念の為設定しておく。
ホスト専用のディレクトリを作成し、その中にhtmlファイルなどを置く構造にしたいと思う。そのため、ホスト1つに対して、1つのディレクトリを持つようにする。
まずは、ディレクトリ作成。$ mkdir /var/www/html/sample-page1 #sample-page1というディレクトリを作る
作成した、ディレクトリ内でindex.htmlファイルを作成する。
これが、webサイトにアクセスした際に、初めに表示されるページになる。
$ sudo vi /var/www/html/sample-page1/index.html
index.html<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> </head> <body> <h1>こちらは、サンプルページ1です。</h1> </body> </html>
-
VirtualHostの設定ファイルの作成
作成したファイルとhost名を紐付ける作業が必要となる。それを行うため、設定ファイルを新規で作成する。
作成は、/etc/apache2/sites-available/
に行うのが一般的らしい。
ちょっと気になったので、/etc/httpd/conf.d
をよくみるが、パスが違う。なぜ?と思い調べることに、httpdはApache2と同じです。使用するOSによって異なります。たとえば、RHEL 6.2ではhttpdと呼ばれ、buntではApache2と呼ばれます。
とのことらしい。OSによって呼び方が違うぽい。解決、設定を進める。
/etc/apache2/sites-available/
のディレクトリに移動し、vhost.conf
というファイルを作成する。(.confなら名前はなんでもOK!日本語はだめよ。)
vi vhost.conf
で作成vhost.conf<VirtualHost *:80> DocumentRoot /var/www/html/sample-page1 ServerName sample-page1.local </VirtualHost>
DocumentRootには、先ほど作成したディレクトリのフルパスを設定。
SeverNameには、好きなものを設定してください。上記の場合http://sample-page1.local
と検索すると、index.htmlが表示されるサイトになります。 -
作成した設定ファイルのシンボリックリンクを作成する。
シンボリックリンクを作成しないとうまく機能しなかった。$ a2ensite /etc/apache2/sites-available/vhost.conf
成功すると、再起動してね。と言われるので、言われた通り再起動。
$ systemctl reload apache2
-
IPアドレスとドメインを紐づける。(クライアントのHostファイルで解決する。)
本来で、あれば、作成したドメインの情報に基づいて行うのだが、今回は試験的な環境ということで、クライアントのhostsファイルに追加して、接続する方法をとる。
本来の方法で、やるなら。AWSだったら、route53を使うことでできる。
こちらは、無料枠の設定がなく、使ったら課金されるので注意が必要だ! -
クライアントPCのhostファイルに情報を追記
クライアントのPC(ssh接続を行なっているPC)のHostsファイルに下記の情報を追加します。
設定ファイルは下記の場所にある。(筆者はMac環境のため、Windowsのパスはネットで調べた情報です。)Windows: C:\windows\system32\drivers\etc\hosts Mac: /private/etc/hosts
上記ファイル内に次の情報を追記
[EC2のパブリックIP] sample-page1.local
ファイルの変更を保存後、http://sample-page1.local に接続すると、「こちらは、サンプルページ1です。」が表示されれ正常に動作しています。
これで、Apacheの設定は一通り完了!
MySQLのインストール
これがMySQLの公式サイト
-
MySQLのインストール
$ sudo apt-get install mysql-server # 本体のインストール $ mysql --version #バージョン確認
バージョンが表示されればインストール問題なくされている。
-
MySQLの自動起動設定を有効にする
$ sudo systemctl enable mysql # 自動起動を設定 $ sudo systemctl status mysql # 起動状況を確認
状況確認のActiveのステータスが、active(running)になっていれば問題なく起動できている。
-
データベースを作成する
下記コマンドで、rootユーザーでMySQLにログイン$ sudo mysql -u root
今回はテスト環境なので、ユーザーの追加は行わないことにした。
とりあえず、この後導入する、PHPの導入確認などのため仮のデータベースを作成しておく。(内容は適当です笑)> CREATE DATABASE customer; > USE customer > CREATE TABLE company (number INT , name VARCHAR(50)); > INSERT INTO company VALUES(1,"Sample Taro");
データが追加されたか、確認する。
mysql> select * from company; +--------+-------------+ | number | name | +--------+-------------+ | 1 | Sample Taro | +--------+-------------+ 1 row in set (0.00 sec)
しっかり、データがあるから問題なさそう。
これで、MySQLの設定は完了!
PHPのインストール
これがPHPの公式サイト
-
PHPのインストール
$ sudo apt install php libapache2-mod-php # 本体のインストール $ php -v #バージョン確認
バージョンが表示されればインストール問題なくされている。
-
PHPの情報をブラウザから見れる様にする
/var/www/html/sample-page1/
に移動し、下記の内容のPHPファイルを作成する。
sudo vi phpinfo.php
phpinfo.php<?php phpinfo(); ?>
作成し、保存し。次のページにアクセスする。http://sample-page1.local/phpinfo.php
正常に設定ができて入れば、phpの設定情報が表示される。
これによって、LAMP環境の構築が完了となる。
お疲れ様です!
次は、Nagiosの設定を行う。
Nagiosの設定は、まだ記載できていません。近日中に公開予定ですので、少しお待ちください。