このガイドでは、Debian 9リリースに最新バージョンのObserviumネットワーク監視ソフトウェア(Community Edition)をインストールして構成し、構内のネットワーク機器を監視する方法を説明します。
Observiumは、強力で柔軟な無料のオープンソース自動検出ネットワーク監視ソフトウェアで、主にPHPプログラミング言語で記述され、LinuxのApache / Nginx Webサーバー、PHP、MySQL / MariaDBデータベース管理システム(LAMPまたはLEMPスタックとも呼ばれます)にデプロイされます。 Ovserviumは、SNMPプロトコルを使用して、ネットワークホスト、サーバー、ルーター、スイッチ、およびその他のネットワークデバイスの状態を照会し、Linux、Windows、Cisco、HP、FreeBSD、Juniper、Brocadeなどの多数のネットワークハードウェアおよびオペレーティングシステムをサポートします。デル、およびその他の重要なネットワークデバイスベンダー。アプリケーションを管理するプロセスは、シンプルで直感的なWebベースのインターフェイスを介して簡単に実行できます。
- ベアメタルサーバーマシンまたは仮想プライベートサーバーへのDebian9の最小限のインストール
- ローカルまたはリモートアカウントのsudoroot権限、またはrootアカウントへの直接アクセス
- システムネットワークインターフェースカードの1つに設定された静的IPアドレス
- Webサービス用に構成された適切なDNSレコードを持つ、展開に応じてプライベートまたはパブリックのドメイン名。有効なドメイン名または登録済みのドメイン名がない場合は、インストールを実行して、サーバーのIPアドレスを介してWebサイトにアクセスできます
- Observiumの電子メール通知を使用する場合は、IMAPおよびSMTPサービスへのリモートアクセスを備えた実行中のメールサーバーを構内で適切に構成する必要があります。同じタスクで、GmailやYahoo!などの公開メールサービスを使用することもできます。メール。
Apache、PHP、およびMySQLをインストールします
独自のサーバーのソースからObserviumのインストールと構成を開始する前に、まず、システムがアプリケーションのコンパイルとインストールに関するすべてのソフトウェア要件を満たしていることを確認してください。最初のステップでは、次のコマンドを発行して、システムリポジトリとソフトウェアパッケージを更新します。
apt update
apt upgrade
次に、次のコマンドを実行して、コマンドラインからシステムをさらに管理するために使用されるいくつかの必要なユーティリティをインストールします。
apt install wget bash-completion curl
システムが完全に更新され、サーバーを管理するために必要なユーティリティがインストールされたら、次のコマンドを実行してシステムの名前を設定します。それに応じてホスト名変数を置き換えます。
hostnamectl set-hostname www.mynet.com
次のコマンドを発行して、マシンのホスト名とhostsファイルを確認します。
hostnamectl
cat /etc/hostname
hostname –s
hostname –f
最後に、カーネルの更新とホスト名の変更を適切に適用するために、Debianサーバーを再起動します。
systemctl reboot
Observiumは、PHPサーバー側プログラミング言語で記述されたWebベースのネットワーク監視プラットフォームです。アプリケーションのPHPファイルスクリプトを実行するには、Apache HTTPサーバーなどのWebサーバーと、PHP処理ゲートウェイをシステムにインストールして操作可能にする必要があります。アプリケーションを正しく実行するために必要なすべてのPHPモジュールとともに、Apache WebサーバーとPHPインタープリターをインストールするには、サーバーコンソールで次のコマンドを発行します。
apt install apache2 libapache2-mod-php7.0 php7.0 php7.0-gd php7.0-opcache php7.0-json php7.0-mbstring php7.0-mcrypt php-pear php7.0-cli php7.0-snmp
インストールされているすべてのPHPモジュールがシステムで有効になっているかどうかを確認するには、次のコマンドを発行します
php –m
また、SNMPプロトコルを介してネットワークデバイスを照会および監視し、他のネットワークパラメータを検出および挿入し、システムリソースグラフを表示するために、Observiumに必要な次のユーティリティをインストールしてください。
apt install fping rrdtool graphviz ipmitool snmp whois mtr-tiny imagemagick python-mysqldb
ApacheとPHPをインストールした後、root権限で次のコマンドを発行して、Webサーバーが稼働し、ポート80でネットワーク接続をリッスンしているかどうかをテストします。
netstat –tlpn
netstatの場合 ネットワークユーティリティはデフォルトではDebianシステムにインストールされていません。次のコマンドを実行して、インストールしてください。
apt install net-tools
netstatコマンドの出力を調べると、Apache Webサーバーがポート80で着信ネットワーク接続をリッスンしていることがわかります。同じタスクで、 ssを使用することもできます。 コマンド。デフォルトでは、Debian9に自動的にインストールされます。
ss- tulpn
システムでUFWファイアウォールアプリケーションなどのファイアウォールを有効にしている場合は、次のコマンドを発行して、HTTPトラフィックがファイアウォールを通過できるようにする新しいルールを追加する必要があります。
ufw allow WWW
または
ufw allow 80/tcp
iptablesを使用している場合 Debianサーバーでファイアウォールルールを管理するための生のルール。次のルールを追加して、ファイアウォールでポート80および22(SSH用)のインバウンドトラフィックを許可し、他のネットワーク管理者がオンラインアプリケーションを閲覧できるようにします。
apt-get install -y iptables-persistent
iptables -I INPUT -p tcp --destination-port 80 -j ACCEPT
iptables -I INPUT -p tcp --destination-port 22 -j ACCEPT
netfilter-persistent save
systemctl restart netfilter-persistent
systemctl status netfilter-persistent
systemctl enable netfilter-persistent.service
次に、次のコマンドを発行して、アプリケーションが正しく実行されるために必要な次のApacheモジュールを有効にして適用します。
a2enmod rewrite
systemctl restart apache2
最後に、次の図に示すように、HTTPプロトコルを介してDebianマシンのIPアドレス、ドメイン名、またはサーバーFQDNにアクセスして、ApacheWebサーバーのデフォルトのWebページをクライアントのブラウザーに表示できるかどうかをテストします。マシンのIPアドレスがわからない場合は、 ifconfigを実行してください またはipa サーバーのIPアドレスを明らかにするコマンド。
http://your_domain.tld
HTTPSプロトコルを介してObserviumWeb管理ダッシュボードをインストールしてアクセスするには(クライアントのトラフィックを保護します)、次のコマンドを発行してApacheWebサーバーのSSLモジュールとSSLサイト構成ファイルを有効にします。
a2enmod ssl
a2ensite default-ssl.conf
次に、テキストエディタでApacheのデフォルトSSLサイト構成ファイルを開き、 DocumentRoot の後に次のコード行を追加して、URL書き換えルールを有効にします。 以下のサンプルに示すように、ディレクティブ:
nano /etc/apache2/sites-enabled/default-ssl.conf
SSLサイト構成ファイルの抜粋:
<Directory /var/www/html>
Options +FollowSymlinks
AllowOverride All
Require all granted
</Directory>
また、 VirtualHostに変更を加えます 次のような行:
<VirtualHost *:443>
SSL Apacheファイルを閉じて、 /etc/apache2/sites-enabled/000-default.confを開きます。 編集用のファイルを作成し、SSL構成ファイルと同じURL書き換えルールを追加します。 DocumentRootの後に次のコード行を挿入します ステートメント:
<Directory /var/www/html>
Options +FollowSymlinks
AllowOverride All
Require all granted
</Directory>
最後に、Apacheデーモンを再起動して、これまでに構成されたすべてのルールを適用し、HTTPプロトコルを介してドメインにアクセスします。インストール時にApacheによって自動的に発行された自己署名証明書のペアを使用しているため、ブラウザによって信頼されていない証明書であるため、ブラウザにエラー警告が表示されます。
systemctl restart apache2
https://yourdomain.tld
次の画像に示すように、信頼できない証明書を受け入れ、引き続きApacheのデフォルトのウェブページにリダイレクトするには、警告を受け入れます。
UFWファイアウォールアプリケーションがHTTPSポートへの着信ネットワーク接続をブロックする場合は、次のコマンドを発行して、HTTPSトラフィックがファイアウォールを通過できるようにする新しいルールを追加する必要があります。
ufw allow ‘WWW Full’
または
ufw allow 443/tcp
iptablesの場合 は、Debianシステムをネットワークレベルで保護するためにインストールされるデフォルトのファイアウォールアプリケーションです。次のルールを追加して、訪問者がドメイン名を閲覧できるように、ファイアウォールでポート443のインバウンドトラフィックを許可します。
iptables -I INPUT -p tcp --destination-port 443 -j ACCEPT
netfilter-persistent save
systemctl restart netfilter-persistent
systemctl status netfilter-persistent
次のステップでは、次のPHP変数が有効になり、PHPのタイムゾーンが有効になるように、PHPのデフォルト構成ファイルにさらに変更を加える必要があります。 設定は正しく構成されており、システムの地理的な場所と一致しています。 /etc/php/7.0/apache2/php.iniを開きます 編集用のファイルを作成し、次の行が次のように設定されていることを確認します。また、最初に、PHP構成ファイルのバックアップを作成します。
cp /etc/php/7.0/apache2/php.ini{,.backup}
nano /etc/php/7.0/apache2/php.ini
php.ini で次の変数を検索、編集、変更します 構成ファイル:
file_uploads = On
default_charset = UTF-8
error_reporting = E_ALL & ~E_NOTICE
date.timezone = Europe/London
date.timezoneを置き換えます 次のリンクhttp://php.net/manual/en/timezones.php
でPHPドキュメントによって提供されるタイムゾーンのリストを参照することにより、サーバーの地理的な場所に応じて可変PHP7で使用可能なOPCacheプラグインを介してWebサイトページの読み込み速度を上げたい場合は、PHPインタープリター構成ファイルの下部の [opcache]の下に次のOPCache設定を追加します。 以下に詳述するステートメント:
nano /etc/php/7.0/apache2/php.ini
[opcache]
opcache.enable=1
opcache.enable_cli=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1
php.iniを閉じます 構成ファイルを作成し、PHP構成ファイルの終わりを確認して、以下のコマンドを発行してOPCache変数が正しく追加されているかどうかを確認します。
grep opcache /etc/php/7.0/apache2/php.ini
上記で説明したすべての変更を行ったら、apacheデーモンを再起動して、次のコマンドを発行して新しい変更を適用します。
systemctl restart apache2
最後に、次のコマンドを実行してPHP情報ファイルを作成し、次の画像に示すように、次のURLのブラウザーからPHP情報スクリプトファイルにアクセスして、PHPタイムゾーンが正しく構成されているかどうかを確認します。 日付まで下にスクロールします PHPのタイムゾーン構成を確認するための設定。
echo '<?php phpinfo(); ?>'| tee /var/www/html/info.php
https://domain.tld/info.php
Observium Webアプリケーションは、ユーザー、セッション、連絡先、ネットワークデバイス、IPアドレス、ネットワークインターフェイス、その他のデータなどのさまざまな構成をRDBMSデータベースに保存します。このガイドでは、MariaDBデータベースをバックエンドとして使用するようにObserviumアプリケーションを構成します。次のコマンドを発行して、MariaDBデータベースとMySQLデータベースへのアクセスに必要なPHPモジュールをインストールします。
apt install mariadb-server php7.0-mysql mariadb-client
MariaDBをインストールしたら、 netstatを実行して確認します デーモンが実行されていて、ローカルホスト、ポート3306で接続をリッスンしている場合はコマンド。
netstat –tlpn | grep mysql
次に、MySQLコンソールにログインし、次のコマンドを発行してMariaDBルートアカウントを保護します。
mysql -h localhost
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 10.1.26-MariaDB-0+deb9u1 Debian 9.1
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
MariaDB [mysql]> update user set plugin='' where user='root';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
MariaDB [mysql]> flush privileges;
Query OK, 0 rows affected (0.00 sec)
MariaDB [mysql]> exit
Bye
次のステップでは、スクリプト mysql_secure_installationを実行してMariaDBを保護します Debianストレッチリポジトリからのインストールパッケージによって提供されます。スクリプトの実行中に、MariaDBデータベースを保護するために設計された一連の質問が表示されます。たとえば、MySQLルートパスワードの変更、匿名ユーザーの削除、リモートルートログインの無効化、テストデータベースの削除などです。次のコマンドを発行してスクリプトを実行し、MySQLデーモンを完全に保護するために尋ねられたすべての質問にyesと入力していることを確認します。次のスクリプト出力の抜粋をガイドとして使用してください。
mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY! In order to log into MariaDB to secure it, we'll need the current password for the root user. If you've just installed MariaDB, and you haven't set the root password yet, the password will be blank, so you should just press enter here. Enter current password for root (enter for none): OK, successfully used password, moving on... Setting the root password ensures that nobody can log into the MariaDB root user without the proper authorisation. You already have a root password set, so you can safely answer 'n'. Change the root password? [Y/n] y New password: Re-enter new password: Password updated successfully! Reloading privilege tables.. ... Success! By default, a MariaDB installation has an anonymous user, allowing anyone to log into MariaDB without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment. Remove anonymous users? [Y/n] y ... Success! Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network. Disallow root login remotely? [Y/n] y ... Success! By default, MariaDB comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment. Remove test database and access to it? [Y/n] y - Dropping test database... ... Success! - Removing privileges on test database... ... Success! Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? [Y/n] y ... Success! Cleaning up... All done! If you've completed all of the above steps, your MariaDB installation should now be secure. Thanks for using MariaDB!
MariaDBのセキュリティをテストするには、rootパスワードなしでコンソールからデータベースにログインしてみてください。以下のコマンドの抜粋に示すように、rootアカウントにパスワードが指定されていない場合は、データベースへのアクセスを拒否する必要があります。
mysql -h localhost -u root
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
パスワードが指定されている場合は、次のサンプルのコマンドに示すように、ログインプロセスがMySQLコンソールに付与されている必要があります。
mysql -h localhost -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 15
Server version: 10.1.26-MariaDB-0+deb9u1 Debian 9.1
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> exit
Bye
次に、MariaDBデータベースコンソールにログインし、次のコマンドを発行して、Observiumアプリケーションのデータベースと、アプリケーションデータベースの管理に使用されるパスワードを持つユーザーを作成します。それに応じて、データベース名、ユーザー、およびパスワードを置き換えます。
mysql –u root -p
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 10.1.26-MariaDB-0+deb9u1 Debian 9.1
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> create database observium_db;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> grant all privileges on observium_db.* to 'observium_user'@'localhost' identified by 'password1234';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> exit
Bye
これまでに行ったすべての変更を適用するには、MySQLデーモンとApacheデーモンを再起動し、次のコマンドを発行してデーモンが実行されているかどうかを確認します。
systemctl restart mysql apache2
systemctl status mysql apache2
Observiumネットワーク監視プラットフォームをインストールする
アプリケーションをインストールするためのすべてのシステム要件が満たされたら、www.observium.orgのObservium公式ページにアクセスし、次のコマンドを発行して最新のgzip圧縮アーカイブを取得します。
wget http://www.observium.org/observium-community-latest.tar.gz
gzipアーカイブのダウンロードが完了したら、Observiumアーカイブファイルを現在の作業ディレクトリに抽出し、次のコマンドを発行して抽出したファイルを一覧表示します。また、Apache Webサーバーによってwebrootパスにインストールされたデフォルトのindex.htmlファイルを削除し、以前に作成したinfo.phpファイルも削除します。
tar xfz observium-community-latest.tar.gz
ls
rm /var/www/html/index.html
rm /var/www/html/info.php
Observiumのインストールファイルは、 observium /の現在の作業ディレクトリにあります。 ディレクトリ。 lsを発行します このディレクトリファイルを一覧表示するコマンド。抽出したディレクトリのすべてのコンテンツを1つ上のレベルのWebサーバードキュメントルートパスにコピーします( / var / www / ディレクトリ)次のコマンドを発行します。また、隠しファイルをインストールディレクトリにコピーし、ログを作成してください。 およびrrd この場所のディレクトリ。
cp -rf observium/* /var/www/
cp observium/.scrutinizer.yml /var/www/
mkdir /var/www/logs
mkdir /var/www/rrd
ls -al /var/www/
次に、次のコマンドを実行して、ApacheランタイムユーザーにWebルートパスとアプリケーションの rrdへの完全な書き込み権限を付与します。 およびログ ディレクトリ。 lsを使用する / var / www /html/およびrrdとlogsディレクトリにあるアプリケーションのインストール済みファイルの権限を一覧表示するコマンド。
chown -R www-data:www-data /var/www/rrd/
chown -R www-data:www-data /var/www/logs/
chown -R www-data:www-data /var/www/html/
ls -al /var/www/html/
次の手順では、次のコマンドを発行して、Observiumのデフォルトのテンプレート構成ファイルに基づいて新しいアプリケーション構成ファイルを作成します。
cd /var/www/
cp config.php.default config.php
次に、Observium構成ファイルの編集を開始し、それに応じて次のMySQL接続変数を置き換えます。
nano /var/www/ config.php
config.phpの上に 次のファイルの抜粋に示すように、ファイル、検索、および独自の設定に従ってMySQLデータベースの名前とクレデンシャルを更新します。
$config['db_extension'] = 'mysqli';
$config['db_host'] = 'localhost';
$config['db_user'] = 'observium_user';
$config['db_pass'] = 'password1234';
$config['db_name'] = 'observium_db';
次に、config.phpファイルを保存して閉じ、 Discover.php を実行して、ObserviumMySQLデータベーススキーマをインポートします。 –uを使用したスクリプト 次のスクリーンショットに示すようにフラグを立てます。 PHPスクリプトは/var/www/ディレクトリにあります。
/var/www/discovery.php –u
次に、 adduser.php を実行して、最高の特権レベル(10)を持つ最初のObservium管理者アカウントを追加します。 / var /www/ディレクトリにあるスクリプト。 Observium管理者アカウントの強力なパスワードを選択してください。
/var/www/adduser.php observium_admin strongpass123 10
Observium Web管理パネルにログインするには、ブラウザを開き、HTTPSプロトコルを介してサーバーのIPアドレスまたはドメイン名またはサーバーFQDNをナビゲートします。上記の手順で管理者アカウント用に構成されたユーザー名とパスワードを使用して、Observiumダッシュボードにログインします。
https://yourdomain.tld
管理者の資格情報を使用してアプリケーションにログインした後、次のスクリーンショットに示すように、/ settings / URLに移動するか、[グローバル設定]-> [編集]メニューをクリックして、アプリケーション設定をさらに調整します。 Webインターフェイスを介して構成されたObserviumパラメーターは、アプリケーション構成ファイルにハードコーディングすることもできます: /var/www/config.php
SNMPプロトコルを介してネットワークデバイスを監視するには、下の画像に示すように、左上のメニューを押して、ポップアップメニューから[デバイスの追加]を選択します。コマンドラインから新しいデバイスを追加することもできます。
/var/www/add_device.php hostname_or_IP SNMP_community_string v2c
最後に、訪問者がサーバーとクライアントのブラウザ間のトラフィックを暗号化するHTTPSプロトコルを介してObserviumインターフェースを安全に閲覧できるようにするには、サーバーの端末に戻って .htaccessを編集します。 以下のコマンドを発行して、Webサイトのドキュメントルートパスにあるファイル。
nano /var/www/html/.htaccess
RewriteEngine on の後に、.htaccessファイルに次のルールを追加します ドメイントラフィックをHTTPSに自動的にリダイレクトするために。
.htaccess ファイルの抜粋:
# Redirect to HTTPS>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L]
HTTPS行にリダイレクトした後に次の行を追加して、ApacheHTTPサーバーのWebドキュメントリストを無効にすることもできます。
Options -Indexes
ファイルの下部で、次の構成例を使用してネイティブPHPサーバー設定を変更できます。独自のサーバーリソースと構成に一致するようにPHP設定を変更します。
# Modify PHP settings
php_value session.use_trans_sid 0
php_value register_globals 1
アプリケーションが新しいネットワークデバイスを自動的に検出してデータベースに追加し、5分ごとにステータスを確認して更新するには、Apacheランタイムユーザー権限で実行される次のcrontabジョブを追加します。
crontab –u www-data –e
crontab ファイルの抜粋:
# Run a complete discovery of all devices once every 6 hours
33 */6 * * * /var/www/discovery.php -h all >> /dev/null 2>&1
# Run automated discovery of newly added devices every 5 minutes
*/5 * * * * /var/www/discovery.php -h new >> /dev/null 2>&1
# Run multithreaded poller wrapper every 5 minutes
*/5 * * * * /var/www/poller-wrapper.py 4 >> /dev/null 2>&1
それで全部です! Debian 9にObserviumネットワーク監視アプリケーションを正常にインストールして設定しました。ただし、Apache HTTPサーバーは自己署名証明書を使用してサーバーと訪問者のブラウザ間のトラフィックを暗号化するため、警告メッセージが常に生成され、訪問者のブラウザに表示されます。この警告は、新しいブラウザまたはIPアドレスを介してWebアプリケーションにアクセスするネットワーク管理者にとっては煩わしいものになる可能性があります。この場合、信頼できる認証局によって発行された証明書を購入するか、Let’sEncryptCAから無料の証明書ペアを入手する必要があります。
Observiumアプリケーションに関するその他のカスタム構成については、次のアドレスのドキュメントページにアクセスしてください:http://docs.observium.org/