CentOS 7にApacheをインストールする方法
CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。
Icinga2は強力なモニタリングシステムであり、マスタークライアントモデルで使用すると、NRPEベースのモニタリングチェックの必要性を置き換えることができます。マスタークライアントモデルは、さまざまな理由でより安全です。また、チェックを1つのサーバーで変更して他のサーバーに伝達できるようにすることで、より分散した監視が可能になります。また、変更を一元的に管理する場所も提供します。
例:4つの異なる負荷分散Webサーバーがあるとします。ロードスパイクが発生することがわかっている場合(セールなど、多くのアクティビティが予想されるもの)、CPU使用率が高くなるとシステム管理者に警告するレベルを上げることができます。NRPEチェックを使用している場合は、各サーバーにアクセスして、それぞれの/etc/nrpe.d/common_commands.cfg
ドキュメントを変更する必要があります。マスタークライアントモデルでは、/etc/icinga2/repository.d/hosts/
フォルダー内のホスト定義を変更してから、Icingaをリロードします。チェックは各サーバーに伝達され、自動的に取得されます。また、/etc/icinga2/repository.d/services/
ファイルを変更することで非常に簡単にチェックを追加でき、クライアントサーバーにプラグインが存在する限り、チェックは自動的に伝播されて認識されます。
icinga2master.example.com
。icinga2client.example.com
。このガイドの一部は、上記のインストール手順を反映していますが、これはサーバーマシンではなくクライアントマシンで実行する必要があります。
「ICINGA」リポジトリをクライアントシステムに追加して、Icingaパッケージをインストールします。
sudo cat > /etc/yum.repos.d/ICINGA-release.repo << 'EOF'
[icinga-stable-release]
name=ICINGA (stable release for epel)
baseurl=http://packages.icinga.org/epel/$releasever/release/
enabled=1
gpgcheck=1
gpgkey=http://packages.icinga.org/icinga.key
EOF
必要なパッケージをインストールします。
# CentOS 6
sudo yum -y install icinga2 mysql-server mysql icinga2-ido-mysql nagios-plugins-disk nagios-plugins-load nagios-plugins-procs nagios-plugins-ssh nagios-plugins-users nagios-plugins-swap nagios-plugins-ping icingacli
# CentOS 7
sudo yum -y install icinga2 mariadb-server mysql icinga2-ido-mysql nagios-plugins-disk nagios-plugins-load nagios-plugins-procs nagios-plugins-ssh nagios-plugins-users nagios-plugins-swap nagios-plugins-ping icingacli
CentOS 7はMySQLではなくMariaDBを使用するため、必要なパッケージは少し異なります。サービスを開始し、起動時に開始するように設定します。
sudo chkconfig icinga2 on
sudo service icinga2 start
MySQLサービスを起動時に開始するように設定し、今すぐ開始して、セキュリティを確保できるようにします。
# CentOS 6
sudo chkconfig mysqld on
sudo service mysqld start
#CentOS 7
sudo systemctl enable mariadb.service
sudo systemctl start mariadb.service
MySQL / MariaDBインストールを保護します。CentOS 6と7はどちらも同じコマンドを使用します。
sudo mysql_secure_installation
プロセス中に、次の質問に答えます。
Enter current password for root (enter for none): Enter
Set root password? [Y/n]: Y
New password: $newRootPassword
Re-enter new password: $newRootPassword
Remove anonymous users? [Y/n]: Y
Disallow root login remotely? [Y/n]: Y
Remove test database and access to it? [Y/n]: Y
Reload privilege tables now? [Y/n]: Y
$newRootPassword
何度か必要になるのでメモしてください。リセットするのは面倒です。
icinga
ユーザー名を作成し、スキーマをデータベースにインポートする必要があります。これは、CentOS 6と7の両方で同じ方法で行われます。
sudo mysql -u root -p
>CREATE DATABASE icinga;
>GRANT SELECT, INSERT, UPDATE, DELETE, DROP, CREATE VIEW, INDEX, EXECUTE ON icinga.* TO 'icinga'@'localhost' IDENTIFIED BY '$someIcingaPassword';
>exit
次に、作成したデータベースにスキーマをインポートします。
sudo mysql -u root -p icinga < /usr/share/icinga2-ido-mysql/schema/mysql.sql
上記$newRootPassword
のmysql_secure_installation
コマンドで使用したMySQL / MariaDBパスワードを入力する必要があります。作成したばかりのパスワードではなく、$someIcingaPassword
後で使用します。
ido
(データベース)モジュールを有効にします。
sudo icinga2 feature enable ido-mysql
/etc/icinga2/features-enabled/ido-mysql.conf
データベース情報を追加するには、ファイルを編集する必要があります。これは、次のコマンドで実行できます。
sudo vi /etc/icinga2/features-enabled/ido-mysql.conf
そのファイルで、コメントアウトされている行を見つけます(で始まる//
)。
//user = "icinga"
//password = "icinga"
//host = "localhost"
//database = "icinga"
...作成したユーザー/パスワードを使用して編集します。
user = "icinga"
password = "$someIcingaPassword"
host = "localhost"
database = "icinga"
最初の2つのスラッシュを削除して、行のコメントを外してください。
次に、サービスを再起動して変更を反映します。
sudo service icinga2 restart
クライアントサーバーと、構成済みのIcinga2マスター間の接続を追加する必要があります。CentOS 7のFirewalldを使用するか、CentOS 6または7のIPTablesを使用する必要があります。
# CentOS 6
sudo vi /etc/sysconfig/iptables
...
-A INPUT -p tcp -m state --state NEW -m tcp --dport 5665 -j ACCEPT
...
#Icinga2 Master
-A OUTPUT -p tcp -m state --state NEW -m tcp --dport 5665 -j ACCEPT
sudo iptables restart
# CentOS 7
sudo firewall-cmd --add-port=5665/tcp --permanent
sudo firewall-cmd --reload
次に、hostsファイルを編集して、マスターをローカルドメイン名として追加します。
sudo vi /etc/hosts
...
$masterIP icinga2master icinga2master.example.com
この手順は、Icinga2マスターで実行する必要があります。これをマスターとして初期化し、クライアントが通信に使用する証明書署名リクエストを生成する必要があります。
sudo icinga2 node wizard
これにより、ノードウィザードが実行され、いくつかの質問が表示されます。画面は次のようになり、あなたが与える答えが一覧表示されます。
Welcome to the Icinga 2 Setup Wizard!
We'll guide you through all required configuration details.
Please specify if this is a satellite setup ('n' installs a master setup) [Y/n]: n
Starting the Master setup routine...
Please specify the common name (CN) [icinga2-master1.localdomain]: icinga2master.example.com
Checking for existing certificates for common name 'icinga2master.example.com'...
Certificates not yet generated. Running 'api setup' now.
information/cli: Generating new CA.
information/base: Writing private key to '/var/lib/icinga2/ca/ca.key'.
information/base: Writing X509 certificate to '/var/lib/icinga2/ca/ca.crt'.
information/cli: Generating new CSR in '/etc/icinga2/pki/icinga2master.example.com.csr'.
information/base: Writing private key to '/etc/icinga2/pki/icinga2master.example.com.key'.
information/base: Writing certificate signing request to '/etc/icinga2/pki/icinga2master.example.com.csr'.
information/cli: Signing CSR with CA and writing certificate to '/etc/icinga2/pki/icinga2master.example.com.crt'.
information/cli: Copying CA certificate to '/etc/icinga2/pki/ca.crt'.
Generating master configuration for Icinga 2.
information/cli: Adding new ApiUser 'root' in '/etc/icinga2/conf.d/api-users.conf'.
information/cli: Enabling the 'api' feature.
Enabling feature api. Make sure to restart Icinga 2 for these changes to take effect.
information/cli: Dumping config items to file '/etc/icinga2/zones.conf'.
information/cli: Created backup file '/etc/icinga2/zones.conf.orig'.
Please specify the API bind host/port (optional):
Bind Host []: <hit enter>
Bind Port []: <hit enter>
information/cli: Created backup file '/etc/icinga2/features-available/api.conf.orig'.
information/cli: Updating constants.conf.
information/cli: Created backup file '/etc/icinga2/constants.conf.orig'.
information/cli: Updating constants file '/etc/icinga2/constants.conf'.
information/cli: Updating constants file '/etc/icinga2/constants.conf'.
information/cli: Updating constants file '/etc/icinga2/constants.conf'.
Done.
Now restart your Icinga 2 daemon to finish the installation!
次に、Icinga2を再起動して変更を反映します。
sudo service icinga2 restart
これでマスターになりました。これを使用して、証明書署名リクエスト文字列を生成できます。
sudo icinga2 pki ticket --cn icinga2client.example.com
あなたはいくつかの文字列を取得します$pkiString
。クライアントで必要になるので、その文字列をコピーします。
ノードウィザードを実行して証明書を生成し、マスターに接続します。
sudo icinga2 node wizard
上記と同様のページが表示されます。このページは、回答を含めて以下に表示されています。
Welcome to the Icinga 2 Setup Wizard!
We'll guide you through all required configuration details.
Please specify if this is a satellite setup ('n' installs a master setup) [Y/n]: Y
Starting the Node setup routine...
Please specify the common name (CN) [icinga2client.example.com]:
Please specify the master endpoint(s) this node should connect to:
Master Common Name (CN from your master setup): icinga2master.example.com
Do you want to establish a connection to the master from this node? [Y/n]: Y
Please fill out the master connection information:
Master endpoint host (Your master's IP address or FQDN): icinga2master.example.com
Master endpoint port [5665]: 5665
Add more master endpoints? [y/N]: N
Please specify the master connection for CSR auto-signing (defaults to master endpoint host):
Host [icinga2master.example.com]: icinga2master.example.com
Port [5665]: 5665
information/cli: Created backup file '/etc/icinga2/pki/icinga2client.example.com.key.orig'.
information/cli: Created backup file '/etc/icinga2/pki/icinga2client.example.com.crt.orig'.
information/base: Writing private key to '/etc/icinga2/pki/icinga2client.example.com.key'.
information/base: Writing X509 certificate to '/etc/icinga2/pki/icinga2client.example.com.crt'.
information/cli: Fetching public certificate from master (icinga2master.example.com, 5665):
Certificate information:
Subject: CN = icinga2master.example.com
Issuer: CN = Icinga CA
Valid From: Jan 10 21:08:37 2017 GMT
Valid Until: Jan 7 21:08:37 2032 GMT
Fingerprint: FE 72 AB F3 18 A5 12 E0 0C 5D 94 8B 96 C4 57 3B 00 5C E0 04
Is this information correct? [y/N]: Y
information/cli: Received trusted master certificate.
Please specify the request ticket generated on your Icinga 2 master.
(Hint: # icinga2 pki ticket --cn 'icinga2client.example.com'): $pkiString
information/cli: Requesting certificate with ticket '$pkiString'.
warning/cli: Backup file '/etc/icinga2/pki/icinga2client.example.com.crt.orig' already exists. Skipping backup.
information/cli: Writing signed certificate to file '/etc/icinga2/pki/icinga2client.example.com.crt'.
information/cli: Writing CA certificate to file '/etc/icinga2/pki/ca.crt'.
Please specify the API bind host/port (optional):
Bind Host []: <enter key>
Bind Port []: <enter key>
Accept config from master? [y/N]: Y
Accept commands from master? [y/N]: Y
information/cli: Disabling the Notification feature.
Disabling feature notification. Make sure to restart Icinga 2 for these changes to take effect.
information/cli: Enabling the Apilistener feature.
warning/cli: Feature 'api' already enabled.
information/cli: Created backup file '/etc/icinga2/features-available/api.conf.orig'.
information/cli: Generating local zones.conf.
information/cli: Dumping config items to file '/etc/icinga2/zones.conf'.
information/cli: Created backup file '/etc/icinga2/zones.conf.orig'.
information/cli: Updating constants.conf.
information/cli: Created backup file '/etc/icinga2/constants.conf.orig'.
information/cli: Updating constants file '/etc/icinga2/constants.conf'.
information/cli: Updating constants file '/etc/icinga2/constants.conf'.
Done.
Now restart your Icinga 2 daemon to finish the installation!
先に進み、Icinga2を再起動して変更を有効にします。
sudo icinga2 restart
これはすでに行われている可能性がありますが、コマンドとAPI機能が有効になっていることを確認する必要があります。
sudo icinga2 feature enable command
sudo icinga2 feature enable api
有効になっていない場合は、「機能が有効」と表示されるため、Icinga2デーモンを再起動する必要があります。ただし、最初に、/etc/icinga2
ディレクトリ内のファイルの所有権を変更する必要があります。ノードウィザードを実行した後、一部のファイルのアクセス権が正しくないためです。すべての所有者とグループをに設定する必要がありicinga
ます。次のコマンドを使用して、アクセス許可を変更します。
sudo chown -R icinga:icinga /etc/icinga2/
これで、Icinga2デーモンを再起動できます。
sudo service icinga2 restart
クライアント構成では、いくつかの異なるファイルを編集する必要があります。
/etc/icinga2/zones.conf
:エンドポイント(サーバー)とそれらを含むゾーンが含まれます。これは、サーバーが分割される方法です。クライアント名がサーバー名と一致していることを確認してください。/etc/icinga2/icinga2.conf
:マスターからのコマンドと構成を受け入れているため、コマンド定義の重複を避けるために、このファイルを少し編集する必要があります。最初に、zones.conf
ファイルを変更してサーバーとそのゾーンを定義し、すべてのサーバーに固有ではなく(ディスクチェックなど)、すべてのサーバーに共通のコマンド定義用の「グローバル」ゾーンを作成します。 。
sudo vi /etc/icinga2/zones.conf
object Zone clientZone {
endpoints = [ "icinga2master.example.com" ]
}
object Zone "global-templates" { # Add global templates zone
global = true
}
object Endpoint NodeName {
host = "$icinga2clientIP"
}
object Zone ZoneName {
endpoints = [ NodeName ]
parent = clientZone
}
現時点では、ゾーンごとに2つのノードしか存在できないことを知っておくことが重要です。ゾーンはいくつでも作成できますが、ゾーンごとに3つ以上のノードがある場合、Icinga2サービスが正しく機能しない可能性があります。ゾーンclientZone
にすでに2つのノードがある場合を除き、これはクライアントでは問題になりません。その場合、別のゾーン名を作成する必要があります。
次に、/etc/icinga2/icinga2.conf
ファイルに変更を加えます。その行をコメント化する必要がありinclude_recursive "conf.d"
ます。
sudo vi /etc/icinga2/icinga2.conf
...
//include_recursive "conf.d"
...
構成を検証して、すべてが正しくフォーマットされていることを確認します。
sudo icinga2 daemon -C
権限の問題が発生した場合は、アイテムがによって所有されていることが原因である可能性がありますroot:root
。icinga:icinga
解決するためにChown 。
sudo chown -R icinga:icinga /etc/icinga2/
設定には他にも問題があります。通常、sudo icinga2 daemon -C
コマンドの出力から提供される情報は、それらを追跡するのに十分なほど詳細になります。発生するすべての潜在的な問題に対処することは、このガイドの範囲外です。
検証が成功した場合は、先に進んでサービスをリロードします。
sudo service icinga2 restart
icinga
コマンドを実行できるようにするには、ユーザーにsudo権限を付与する必要があります。これらのsudo権限は、特定のプラグインディレクトリに制限されます。これは単にファイルの最後に置くことができます。
sudo vi /etc/sudoers
...
Defaults:icinga !requiretty
icinga ALL=(ALL) NOPASSWD: /usr/lib64/nagios/plugins/
これで、クライアントの構成が正式に完了しました。これ以上変更する必要はありません。サービスチェックはマスターで構成され、クライアントに伝達されます。ただし、必要に応じて追加のプラグインをインストールする必要があります。プラグインは、python、perl、BASH、PHP、およびその他のスクリプト言語を使用して作成することもできます。
クライアントを接続できるように構成するには、マスターに戻る必要があります。実行する必要があるいくつかの手順があります。
repository.d
。ホスト構成が/etc/icinga2/repository.d/hosts/icinga2client.example.com.conf
ファイルに入力されます。
sudo vi /etc/icinga2/repository.d/hosts/icinga2client.example.com.conf
object Host "icinga2client.example.com" {
import "satellite-host"
address = "$icinga2clientIP"
vars.os = "Linux"
}
sudo chown icinga:icinga /etc/icinga2/repository.d/hosts/icinga2client.example.com.conf
これでホストはクライアント構成に存在しますが、ゾーンに配置する必要があります。このゾーンは/etc/icinga2/repository.d/zones
フォルダ内にあり、追跡しやすくするためにゾーン名と同じ名前になります。
sudo vi /etc/icinga2/repository.d/zones/clientZone.conf
object Zone "clientZone" {
endpoints = [ "icinga2client.example.com" ]
parent = "icinga2master.example.com"
}
次に、global-templates
ゾーンを追加する必要があります。
sudo vi /etc/icinga2/repository.d/zones/global-templates.conf
object Zone "global-templates" {
global = true
}
最後に、クライアントエンドポイントを追加して、実行時に「clientZone」エンドポイント配列にデータが入力されるようにします。
sudo vi /etc/icinga2/repository.d/endpoints/icinga2client.example.com.conf
#Change values to match the host you're adding
object Endpoint "icinga2client.example.com" {
host = "$icinga2clientIP"
}
権限の問題がないことを確認するには、先に進んで所有者/グループを再度変更してください。
sudo chown -R icinga:icinga /etc/icinga2
構成の変更を確認して、問題が発生していないことを確認します。
sudo icinga2 daemon -C
検証が成功した場合は、リロードを続行してください。
sudo service icinga2 restart
Icinga2 Webサイトにアクセスすると、サーバーにアクセスできるようになります。
「コマンドが見つかりません」または「定義されていないチェック」に関するエラーが発生する場合があります。これがグローバルテンプレートゾーンの出番です。構成を/etc/icinga2/conf.d/
ファイルにコピーして、ファイルに配置する必要があり/etc/icinga2/zones.d/global-templates/
ます。たとえば、「check_software」コマンドを作成するには、次の操作を行う必要があります。
sudo mkdir /etc/icinga2/zones.d/global-templates
sudo vi /etc/icinga2/zones.d/global-templates/commands.conf
object CheckCommand "check_software" {
import "plugin-check-command"
command = [ "/usr/bin/sudo", PluginDir + "/software_service_check.sh" ]
}
software_service_check.sh
ファイルが内に存在する必要があります/usr/lib64/nagios/plugins
上のフォルダのクライアント。
次に、サービスチェックを/etc/icinga2/repository.d/hosts/services.conf
ファイルに追加します。
sudo vi /etc/icinga2/repository.d/hosts/services/services.conf
apply Service "Check Software Service" {
import "mail-service"
check_command = "check_software" # This check command is the same name as the one you defined in global-templates/commands.conf
assign where host.vars.client_endpoint # This will apply to every client server. If you need it to be more restrictive, you should look into custom variables
}
権限を再度変更する必要があります。
sudo chown -R icinga:icinga /etc/icinga2
次に、構成を再確認します。
sudo icinga2 daemon -C
最後に、成功した場合は、再読み込みします。
sudo service icinga2 restart
おめでとう!これで、マスタークライアントモデルでIcinga2を使用しており、安全でないNRPEチェックを使用する必要がなくなりました。
CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。
CentOS 7にSeafileサーバーをインストールする方法。Seafile(コミュニティバージョン)は、ownCloudに似た無料のオープンソースファイル同期および共有ソリューションです。
CentOS 7にGraylogサーバーをインストールし、ログ管理を行う方法を学びます。
CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。
FreeBSD 11.1におけるBlacklistdのインストール方法について詳しく解説します。この方法を通じて、強力なセキュリティ対策を実装できます。
サーバーマネージャーを使用して、Windows Serverの管理が向上します。セキュリティリスクを軽減し、効率的な管理を実現します。
CentOS 7にSeafileサーバーをインストールする方法。Seafile(コミュニティバージョン)は、ownCloudに似た無料のオープンソースファイル同期および共有ソリューションです。
Snortは無料のネットワーク侵入検知システムです。最新の方法で、SnortをDebianにインストールし、設定する手順を紹介します。ネットワークのセキュリティを強化しましょう。
CentOS 7にGraylogサーバーをインストールし、ログ管理を行う方法を学びます。
WindowsサーバーでWebサイトを実行している場合、電子メールも受信できるようにするためにhMailServerを使用する方法を解説します。
FiveMサーバーをUbuntu 19.04にインストールするための詳細なガイド。必要条件からインストール、起動、トラブルシューティングまで、すべてのステップを含みます。
Debian 10にWebDAVをデプロイする方法を学び、WsgiDAVとSSL証明書で安全な接続を実現しましょう。
ヘルスケアにおけるAIは、過去数十年から大きな飛躍を遂げました。したがって、ヘルスケアにおけるAIの未来は、日々成長を続けています。