LibreNMS - Linux 用の多機能ネットワーク監視ツール
LibreNMS は、SNMP プロトコルを使用するオープンソースの強力で機能豊富な自動検出 PHP ベースのネットワーク監視システムです。 Linux、FreeBSD などの幅広いオペレーティング システムだけでなく、Cisco、Juniper、Brocade、Foundry、HP などのネットワーク デバイスもサポートしています。
LibreNMS の機能:
- CDP、FDP、LLDP、OSPF、BGP、SNMP、ARP のプロトコルを使用してネットワーク全体を自動検出します。
- カスタマイズ可能なダッシュボードを備えたモバイル対応の Web UI を備えています。
- Unix エージェントをサポートします。
- ネットワークに合わせて拡張する水平スケーリングをサポートします。
- 非常に柔軟でカスタマイズ可能な警告システムをサポートします。電子メール、IRC、Slack などを通じて通知を送信します。
- システムからデータを管理、グラフ化、取得するための API をサポートします。
- トラフィック課金システムを提供します。
- コア機能を提供する Android および iOS アプリもサポートします。
- NfSen、collectd、SmokePing、RANCID、および Oxidized との統合をサポートします。
- MySQL、HTTP、LDAP、Radius、Active Directory などの複数の認証方法をサポートします。
- 自動更新やその他の多くの機能が可能です。
Linux システムにLibreNMS をインストールする前に、オンライン デモを試すことができます。
Demo URL: https://demo.librenms.org/
Username: demo
Password: demo
テスト環境:
- LEMP スタックを備えた Ubuntu 16.04
- CentOS 7 と LEMP スタック
このチュートリアルでは、 新しくインストールされたUbuntu または CentOS Linux にLibreNMS ネットワーク監視ツールをインストールする方法を学びます(同じ手順はでも機能します) >Debian およびRHEL ベースのディストリビューション)。
注: この記事のすべての手順は、root ユーザーとして実行する必要があります。そうでない場合は、sudo コマンドを使用して root を取得してください。ユーザー権限。
ステップ 1: 必要なパッケージをインストールする
1. まず、図に示すように、デフォルトのパッケージ マネージャーを使用して、必要なパッケージをすべてインストールします。
Ubuntu/Debian の場合
sudo apt install composer fping git graphviz imagemagick mariadb-client mariadb-server mtr-tiny nginx-full nmap php7.0-cli php7.0-curl php7.0-fpm php7.0-gd php7.0-mcrypt php7.0-mysql php7.0-snmp php7.0-xml php7.0-zip python-memcache python-mysqldb rrdtool snmp snmpd whois
CentOS/RHEL の場合
yum install epel-release
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
yum install composer cronie fping git ImageMagick jwhois mariadb mariadb-server mtr MySQL-python net-snmp net-snmp-utils nginx nmap php72w php72w-cli php72w-common php72w-curl php72w-fpm php72w-gd php72w-mysql php72w-process php72w-snmp php72w-xml php72w-zip python-memcached rrdtool
2. すべてのパッケージ、nginx、php-fpm、mariadb、および snmp< がインストールされたら、 サービスが開始され、起動時に自動開始されるように有効になります (これは通常、Ubuntu の場合です)。それ以外の場合は、以下のコマンドを実行してサービスを開始し、有効にすることができます。
------------ On Debian/Ubuntu ------------
sudo systemctl nginx start php7.0-fpm mysql snmp
sudo systemctl enable nginx php7.0-fpm mysql snmp
------------ On CentOS/RHEL ------------
systemctl nginx start php-fpm mariadb snmpd
systemctl enable nginx php-fpm mariadb snmpd
ステップ 2: LibreNMS 監視ツールをインストールする
3. 次に、useradd コマンドを使用して、librenms というシステム ユーザーを作成します。 -M
フラグはユーザーのホーム ディレクトリの作成を無効にし、-r
フラグはシステム アカウントの作成を有効にします。次に、librenms ユーザーをグループ www-data (Ubuntu の場合) または nginx ( の場合) に追加します。 CentOS) は次のとおりです。
------------ On Debian/Ubuntu ------------
sudo useradd librenms -d /opt/librenms -M -r
sudo usermod -a -G librenms www-data
------------ On CentOS/RHEL ------------
useradd librenms -d /opt/librenms -M -r
usermod -a -G librenms nginx
4. 次に、示されているように、composer コマンドを使用して LibreNMS をインストールします。
------------ On Debian/Ubuntu ------------
cd /opt
sudo composer create-project --no-dev --keep-vcs librenms/librenms librenms dev-master
------------ On CentOS/RHEL ------------
cd /opt
composer create-project --no-dev --keep-vcs librenms/librenms librenms dev-master
ステップ 3: LibreNMS データベースを作成する
5. MariaDB サーバーの使用を開始する前に、インストールを保護し、バイナリ パッケージで提供されているセキュリティ スクリプトを実行する必要があります。 root パスワードの設定、匿名ユーザーの削除、リモートでの root ログインの無効化、テスト データベースの削除を求められます。
以下のコマンドを発行してスクリプトを起動し、すべての質問に yes/y
で答えることができます。
sudo mysql_secure_installation [On Debian/Ubuntu]
mysql_secure_installation [On CentOS/RHEL]
6. 次に、MariaDB データベースにログインして、LibreNMS 用のデータベースを作成します (本番環境では強力で安全なパスワードを使用することを忘れないでください)。
sudo mysql -u root -p
MariaDB [(none)]> CREATE DATABASE librenms CHARACTER SET utf8 COLLATE utf8_unicode_ci;
MariaDB [(none)]> CREATE USER 'librenms'@'localhost' IDENTIFIED BY '=@!#@%$libre';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> exit
7. その後、MySQL 厳密モードを今のところ無効にします (MySQL 厳密モードとの互換性はまだ追加されていません)。
sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf [On Debian/Ubuntu]
vi /etc/my.cnf [On CentOS/RHEL]
[mysqld]
セクション内に追加してください。
innodb_file_per_table=1
sql-mode=""
lower_case_table_names=0
次に、データベース サーバーを再起動して、変更を有効にします。
sudo systemctl restart mysql [On Debian/Ubuntu]
systemctl restart mariadb [On CentOS/RHEL]
ステップ 4: PHP-FPM の構成と開始
8. 次に、php.ini
の date.timezone を現在のタイム ゾーンに設定します (例: 「Africa/Kampala」)。次のスクリーンショットに示すようにです。
------------ On Debian/Ubuntu ------------
sudo vim /etc/php/7.0/fpm/php.ini
sudo vim /etc/php/7.0/cli/php.ini
------------ On CentOS/RHEL ------------
vi /etc/php.ini
9. 次に、Ubuntu で mcrypt PHP モジュールを有効にし、示されているように php-fpm を再起動します。
------------ On Debian/Ubuntu ------------
sudo phpenmod mcrypt
sudo systemctl restart php7.0-fpm
10. CentOS/RHEL では、php-fpm 設定ファイルに次の変更を加える必要があります。
vi /etc/php-fpm.d/www.conf
次の変更を加えます。
;user = apache
user = nginx
group = apache ; keep group as apache
;listen = 127.0.0.1:9000
listen = /var/run/php-fpm/php7.2-fpm.sock
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
11. 図に示すように、php-fpm サービスを再起動します。
systemctl restart php-fpm
ステップ 5: LibreNMS 用に Nginx を構成する
12. このステップでは、Web UI にアクセスするために、librenms の Nginx サーバー ブロックを構成する必要があります。次に示すように、.conf
ファイルを作成します。
sudo vim /etc/nginx/conf.d/librenms.conf [On Debian/Ubuntu]
vi /etc/nginx/conf.d/librenms.conf [On CentOS/RHEL]
次の構成を追加し、必要に応じてserver_name
を編集します。
server {
listen 80;
server_name librenms.example.com;
root /opt/librenms/html;
index index.php;
charset utf-8;
gzip on;
gzip_types text/css application/javascript text/javascript application/x-javascript image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location /api/v0 {
try_files $uri $uri/ /api_v0.php?$query_string;
}
location ~ \.php {
include fastcgi.conf;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
13. 次に、ファイルを保存して終了します。また、デフォルトのサーバーブロック構成を削除し、Nginx サーバーを再起動します。
------------ On Debian/Ubuntu ------------
sudo rm /etc/nginx/sites-enabled/default
sudo systemctl restart nginx
------------ On CentOS/RHEL ------------
systemctl restart nginx
注: CentOS/RHEL では、デフォルト サイト セクションを無効にする必要があります。あなたがホストしている唯一のサイト。 /etc/nginx/nginx.conf ファイルからサーバー セクションを削除します。
14. また、CentOS/RHEL では、SELinux のポリシー ツールをインストールし、 > 次のコマンドを使用して、LibreNMS に必要なコンテキストを取得します。
------------ On CentOS/RHEL ------------
yum install policycoreutils-python
semanage fcontext -a -t httpd_sys_content_t '/opt/librenms/logs(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/opt/librenms/logs(/.*)?'
restorecon -RFvv /opt/librenms/logs/
semanage fcontext -a -t httpd_sys_content_t '/opt/librenms/rrd(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/opt/librenms/rrd(/.*)?'
restorecon -RFvv /opt/librenms/rrd/
setsebool -P httpd_can_sendmail=1
setsebool -P httpd_execmem 1
15. 次の内容のファイル http_fping.tt
を作成して、fping を許可します。
module http_fping 1.0;
require {
type httpd_t;
class capability net_raw;
class rawip_socket { getopt create setopt write read };
}
#============= httpd_t ==============
allow httpd_t self:capability net_raw;
allow httpd_t self:rawip_socket { getopt create setopt write read };
16. 次に、次のコマンドを実行します。
------------ On CentOS/RHEL ------------
checkmodule -M -m -o http_fping.mod http_fping.tt
semodule_package -o http_fping.pp -m http_fping.mod
semodule -i http_fping.pp
17. CentOS/RHEL でファイアウォールを使用している場合は、ファイアウォールを介した HTTP/HTTPS アクセスを有効にします。
------------ On CentOS/RHEL ------------
firewall-cmd --zone public --add-service http
firewall-cmd --permanent --zone public --add-service http
firewall-cmd --zone public --add-service https
firewall-cmd --permanent --zone public --add-service https
ステップ 6: LibreNMS 用に SNMPD を構成する
18. 次のように、サンプル SNMP 設定を使用して設定ファイルを作成し、編集用に開きます。
------------ On Debian/Ubuntu ------------
sudo cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf
sudo vim /etc/snmp/snmpd.conf
------------ On CentOS/RHEL ------------
cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf
vi /etc/snmp/snmpd.conf
文字列 RANDOMSTRINGGOESHERE
を見つけて、スクリーンショットに示すように独自のコミュニティ文字列に変更します。
19. 次に、システムにシェル スクリプトをダウンロードします。これは、どの OS を検出するのに役立ちます。Linux の場合は、使用している Linux ディストリビューションを検出します。
------------ On Debian/Ubuntu ------------
sudo curl -o /usr/bin/distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro
sudo chmod +x /usr/bin/distro
sudo systemctl restart snmpd
------------ On CentOS/RHEL ------------
curl -o /usr/bin/distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro
chmod +x /usr/bin/distro
systemctl restart snmpd
ステップ 7: Cron の作成と Logrotate の構成
20. 次に、以下のコマンドを実行して、LibreNMS の cron ジョブをセットアップします。
cp /opt/librenms/librenms.nonroot.cron /etc/cron.d/librenms
21. 次に、すべての LibreNMS ログは /opt/librenms/logs に記録されます。これらのログが自動ローテーションされるように構成する必要がある場合があります。 、次のように、提供されている logrotate 構成ファイルを使用します。
cp /opt/librenms/misc/librenms.logrotate /etc/logrotate.d/librenms
次に、LibreNMS インストールのルート ディレクトリとログ ファイルに適切な権限を設定します。
------------ On Debian/Ubuntu ------------
sudo chown -R librenms:librenms /opt/librenms
sudo setfacl -d -m g::rwx /opt/librenms/rrd /opt/librenms/logs
sudo setfacl -R -m g::rwx /opt/librenms/rrd /opt/librenms/logs
------------ On CentOS/RHEL ------------
chown -R librenms:librenms /opt/librenms
setfacl -d -m g::rwx /opt/librenms/rrd /opt/librenms/logs
setfacl -R -m g::rwx /opt/librenms/rrd /opt/librenms/logs
ステップ 8: LibreNMS Web インストーラーにアクセスする
22. 次に、次の URL を使用して Web インストーラーにアクセスし、画面上の指示に従います。
http://librenms.tecmint.lan/install.php
このアドレスをローカル マシンで機能させるには、ローカル ドメインの解決またはテストの目的で、ホスト ファイル (/etc/hosts
) を使用してローカル DNS をセットアップしてから運用する必要があります。
192.168.43.31 tecmint.lan
192.168.43.31 librenms.tecmint.lan
23. 次のスクリーンショットに示すように、インストールへのようこそページが表示されます。次のステージ をクリックして続行します。
24. 次に、LibreNMS データベースの設定 (データベース ホスト、ポート、ユーザー名、ユーザー パスワード) を入力し、[次のステージ] をクリックして続行します。
25. Web インストーラーは MySQL データベースのインポートを開始します。これにはしばらく時間がかかります。プロセスは特定の時点で一時停止しようとすることに注意してください。再試行をクリックするだけでインポート プロセスを続行できます。
26. データベースのインポートが完了すると、以下のスクリーンショットに示すように、「データベースは最新です! 」というメッセージが表示されます。次に、[ユーザーの追加に移動] をクリックして続行します。
27. 次に、LibreNMS ユーザーを追加し、ユーザー名、パスワード、電子メールを指定して、ユーザーの追加 をクリックして変更を有効にします。
28. 次に、設定の生成をクリックして、システムのLibreNMS設定を作成します。
29. 前のスクリーンショットに示すように、構成が生成されたら、それをコピーして、インストールのルート ディレクトリの /opt/librenms/config.php というファイルに保存します。 です。
vi /opt/librenms/config.php
<?php
## Have a look in defaults.inc.php for examples of settings you can set here. DO NOT EDIT defaults.inc.php!
### Database config
$config['db_host'] = 'localhost';
$config['db_port'] = '3306';
$config['db_user'] = 'librenms';
$config['db_pass'] = '=@!#@%$libre';
$config['db_name'] = 'librenms';
$config['db_socket'] = '';
// This is the user LibreNMS will run as
//Please ensure this user is created and has the correct permissions to your install
$config['user'] = 'librenms';
### Locations - it is recommended to keep the default
#$config['install_dir'] = "/opt/librenms";
### This should *only* be set if you want to *force* a particular hostname/port
### It will prevent the web interface being usable form any other hostname
#$config['base_url'] = "http://librenms.company.com";
### Enable this to use rrdcached. Be sure rrd_dir is within the rrdcached dir
### and that your web server has permission to talk to rrdcached.
#$config['rrdcached'] = "unix:/var/run/rrdcached.sock";
### Default community
$config['snmp']['community'] = array("public");
### Authentication Model
$config['auth_mechanism'] = "mysql"; # default, other options: ldap, http-auth
#$config['http_auth_guest'] = "guest"; # remember to configure this user if you use http-auth
### List of RFC1918 networks to allow scanning-based discovery
#$config['nets'][] = "10.0.0.0/8";
#$config['nets'][] = "172.16.0.0/12";
#$config['nets'][] = "192.168.0.0/16";
Update configuration
#$config['update_channel'] = 'release'; # uncomment to follow the monthly release channel
#$config['update'] = 0; # uncomment to completely disable updates
30. ファイルを保存して閉じます。次に、Web インストーラーに戻り、[インストールを完了] をクリックしてインストール プロセスを続行します。
31. これで LibreNMS のインストールが完了しました。「インストールを検証し、問題があれば修正してください」をクリックすると、ログイン ページが表示されます。
32. 次に、ユーザー認証情報を入力して検証ページにアクセスします。
33. インストール検証プロセスから、LibreNMS は 2 つの問題を発見しました。1 つはデバイスが追加されていないこと (これは現時点では警告です)、2 つ目は以下のスクリーンショットに示すように、手動で追加された構成ファイル (/opt/librenms/config.php) に適切な権限が設定されていません。
次に、次のコマンドを実行して、構成ファイルに正しい権限を設定します。
sudo chown -R librenms:librenms /opt/librenms/config.php
34. デバイスを追加するには、http://librenms.tecmint.lan/addhost にアクセスします。デバイスを追加した後、ホームページに移動してさまざまなダッシュボードを追加できます。
それでおしまい!インストールとセットアップなどの詳細情報は、https://docs.librenms.org/ の LibreNMS ドキュメントで参照できます。
LibreNMS は、さまざまなネットワーク ハードウェアをサポートする完全な機能を備えたネットワーク監視システムです。これが分かりやすいインストール ガイドであったことを願っております。ご質問がある場合は、以下のフィードバック フォームからお問い合わせください。