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
テスト環境:
このチュートリアルでは、新しくインストールしたLibreNMSネットワーク監視ツールをUbuntuまたはCentOS Linuxにインストールする方法を学びます(同じ手順は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.次に、librenmsというシステムユーザーを作成します。useraddコマンドを使用します。-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.次に、次のようにしてLibreNMSをcomposerコマンドでインストールします。
------------ 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サーバーを使用する前に、インストールをセキュアにする必要があります。バイナリパッケージに含まれているセキュリティスクリプトを実行します。これにより、ルートパスワードの設定、匿名ユーザーの削除、リモートからのルートログインの無効化、テストデータベースの削除が求められます。
以下のコマンドを使用してスクリプトを実行し、すべての質問に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. このステップでは、librenmsのためのNginxサーバーブロックを構成してWeb UIにアクセスできるようにします。以下に示すように、そのための.conf
ファイルを作成します。
$ sudo vim /etc/nginx/conf.d/librenms.conf [On Debian/Ubuntu] # vi /etc/nginx/conf.d/librenms.conf [On CentOS/RHEL]
次のconfigを追加し、必要に応じて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に必要なcontextsを構成します。
------------ 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

19.次に、システムにシェルスクリプトをダウンロードします。これによりOSおよび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に記録され、ログローテーション構成ファイルを使用してこれらのログを自動ローテートする必要があります。
# 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
このアドレスをローカルマシンで使用するには、ライブ配信前にローカルドメインの解決やテスト目的のために、hostsファイル(/etc/hosts
)を使用してローカルDNSを設定する必要があります。
192.168.43.31 tecmint.lan 192.168.43.31 librenms.tecmint.lan

23. 次のスクリーンショットに示すように、インストール歓迎ページが表示されます。続行するには次のステージをクリックしてください。

24. 次に、LibreNMSデータベースの設定(データベースホスト、ポート、ユーザー名、ユーザーパスワード)を入力し、次のステージをクリックして続行してください。

25. ウェブインストーラーは今、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はさまざまなネットワークハードウェアをサポートするフル機能のネットワーク監視システムです。わかりやすいインストールガイドとなっていれば幸いです。ご質問がある場合は、以下のフィードバックフォームからお問い合わせください。
Source:
https://www.tecmint.com/install-librenms-monitoring-on-ubuntu-centos/