監視ツール · 3 min read · Nov 06, 2025

AlmaLinux 9にLibreNMS監視ツールをインストールする方法

LibreNMSは、SNMP、ARP、OSPF、BGPなどの複数のプロトコルによる自動検出をサポートする監視ツールです。オペレーティングシステムを監視するには、Linux、Windows、BSDなどのほとんどのOSで利用可能なSNMPプロトコルを使用できます。

SNMPプロトコルには、コミュニティパスワードのみで保護されているv1およびv2の3つのバージョンと、認証と暗号化のためのパスワードをサポートするv3があります。本番環境では、v2およびv1よりも安全なSNMPプロトコルv3の使用が推奨されます。

このガイドでは、AlmaLinux 9サーバーにLibreNMS監視ツールをインストールする方法を示します。LibreNMSは、PHP-FPM、Nginxウェブサーバー、およびMariaDBデータベースで実行します。

前提条件

このガイドを完了するには、以下が必要です:

  • AlmaLinux 9サーバー - このデモでは、ホスト名がalmalinux9のサーバーを使用します。
  • sudo/root権限を持つ非rootユーザー。

依存関係のインストール

まず、EPELおよびRemiリポジトリをシステムに追加します。次に、LibreNMSのパッケージ依存関係をインストールします。

次のdnfコマンドを実行して、EPELリポジトリとPHP Remiリポジトリをシステムに追加します。

sudo dnf install -y epel-release  
sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-9.rpm

依存関係の一部はEPELリポジトリにあるため、EPELをシステムに追加する必要があります。

epelリポジトリを追加

PHP Remiリポジトリは、PHP-FPMパッケージのインストールに使用されます。

remiリポジトリを追加

次に、以下のコマンドを実行して、PHPのデフォルトリポジトリモジュールをリセットします。次に、LibreNMSに必要なPHPバージョン8.1のためにPHP Remiリポジトリを有効にします。

sudo dnf module reset php  
sudo dnf module enable php:remi-8.1

php 8.1 remiリポジトリを有効にする

次に、以下のdnfコマンドを実行して、LibreNMSのパッケージ依存関係をインストールします。これには、PHP-FPM、Nginxウェブサーバー、MariaDBサーバー、いくつかのPython3パッケージ、およびrrdtool、unzip、ImageMagick、git、fpingなどのシステムユーティリティが含まれます。

sudo dnf install -y bash-completion cronie fping git ImageMagick mariadb-server mtr net-snmp net-snmp-utils nginx nmap php-fpm php-cli php-common php-curl php-gd php-gmp php-json php-mbstring php-process php-snmp php-xml php-zip php-mysqlnd python3 python3-PyMySQL python3-redis python3-memcached python3-pip python3-systemd rrdtool unzip

インストールが完了したら、次のステップに進みます。

依存関係をインストール

システムユーザーの作成

このセクションでは、LibreNMSを実行するために使用される新しいシステムユーザーlibrenmsを作成します。

以下のコマンドを実行して、新しいユーザーlibrenmsを作成します。

sudo useradd librenms -d /opt/librenms -M -r -s "$(which bash)"

詳細なオプション:

  • -d /opt/librenms: 新しいユーザーのホームディレクトリを/opt/librenmsに指定します。
  • -M: 新しいユーザーのためにホームディレクトリを作成しません。
  • -r: 新しいユーザーをシステムユーザーとして定義します。
  • -s “$(which bash)”: 新しいユーザーのシェルをbashに指定します。

PHP-FPMの設定

次のセクションでは、LibreNMSのためにPHP-FPMを設定します。システムの適切なタイムゾーンを設定し、LibreNMSで使用される特定のPHP-FPMプールを追加します。

まず、以下のコマンドを実行して、サーバーのタイムゾーンを設定します。

sudo timedatectl set-timezone Europe/Stockholm  
sudo ln -s /usr/share/zoneinfo/Europe/Stockholm /etc/localtime

php-fpmソケットの設定

次に、以下のnanoエディタを使用してファイル/etc/php.iniを開きます。

sudo nano /etc/php.ini

date.timezoneパラメータのコメントを外し、次のように適切なタイムゾーンに値を変更します。

date.timezone=Europe/Stockholm

完了したら、ファイルを保存して終了します。

次に、以下のコマンドを実行して、デフォルトのPHP-FPMプール設定を/etc/php-fpm.d/librenms.confにコピーし、nanoエディタを使用して開きます。

sudo cp /etc/php-fpm.d/www.conf /etc/php-fpm.d/librenms.conf  
sudo nano /etc/php-fpm.d/librenms.conf

PHP-FPMプール名をwwwからlibrenmsに変更します。

[librenms]

デフォルトのユーザーとグループをlibrenmsに変更します。

user = librenms  
group = librenms

新しいPHP-FPMプールのデフォルトソケットファイルを/run/php-fpm/librenms.sockに変更します。

listen = /run/php-fpm/librenms.sock

完了したら、ファイルを保存してエディタを終了します。

次に、以下のコマンドを実行してPHP-FPMサービスを開始し、有効にします。

sudo systemctl start php-fpm  
sudo systemctl enable php-fpm

次に、以下のコマンドを使用してPHP-FPMサービスを確認し、サービスが実行中であることを確認します。

sudo systemctl status php-fpm

実行中の場合、ターミナルに次の出力が表示されます:

php-fpmの開始確認

さらに、以下のコマンドを使用してLibreNMSのためのPHP-FPMソケットファイルを確認することもできます。

ss -pl | grep php-fpm

構成が成功していれば、PHP-FPMソケットファイル/run/php-fpm/librenms.sockが利用可能であることがわかります。

MariaDBサーバーの設定

PHP-FPMの設定が完了したら、MariaDBサーバーの設定を行います。MariaDBサーバーに追加の設定を加え、mariadb-secure-installationユーティリティを使用してMariaDBを保護します。

以下のnanoエディタを使用して、デフォルトのMariaDBサーバー設定/etc/my.cnf.d/mariadb-server.cnfを開きます。

sudo nano /etc/my.cnf.d/mariadb-server.cnf

[mysqld]‘セクションの下に次の設定を挿入します。

innodb_file_per_table=1  
lower_case_table_names=0

完了したら、ファイルを保存してエディタを終了します。

次に、以下のコマンドを実行してMariaDBサービスを開始し、有効にします。

sudo systemctl start mariadb  
sudo systemctl enable mariadb

次に、以下のコマンドを実行してMariaDBサーバーのインストールを保護します。

sudo mariadb-secure-installation

以下の設定について質問されます:

  • MariaDBのrootユーザーの認証方法をunix_socketに変更します。nを入力していいえを選択します。
  • MariaDBのrootパスワードを設定します。yを入力して確認し、新しいMariaDBのrootパスワードを入力して繰り返します。
  • MariaDBのrootユーザーのリモートログインを無効にします。yを入力して確認します。
  • MariaDBからデフォルトデータベースtestを削除します。yを入力して確認します。
  • MariaDBから匿名ユーザーを削除します。yを入力して確認します。
  • 最後に、変更を適用するためにテーブル権限を再読み込みするためにyを再度入力します。

LibreNMS用のMariaDBデータベースとユーザーの作成

MariaDBサーバーの設定が完了したら、次にLibreNMSで使用される新しいデータベースとユーザーを作成します。

以下のコマンドを使用してMariaDBサーバーにログインします。

sudo mariadb -u root -p

以下のクエリを実行して、LibreNMS用の新しいデータベースとユーザーを作成します。このデモでは、パスワードlibrenmspasswordを持つ新しいデータベースとユーザーlibrenmsを作成します。また、LibreNMSデータベースのデフォルト文字がutf8mb4であることを確認する必要があります。

CREATE DATABASE librenms CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;  
CREATE USER 'librenms'@'localhost' IDENTIFIED BY 'librenmspassword';  
GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost';  
FLUSH PRIVILEGES;

データベースとユーザーを作成

次に、以下のクエリを実行して新しいユーザーlibrenmsの権限を確認し、exitと入力してMariaDBから退出します。

SHOW GRANTS FOR 'librenms'@'localhost';  
exit

表示された出力は、ユーザーlibrenmsがデータベースlibrenmsにアクセスできることを示しています。

データベースへのユーザー権限を確認

LibreNMSのダウンロードとインストール

このセクションでは、LibreNMSのソースコードをダウンロードし、適切な所有権と権限を設定し、ソースコードに含まれるcomposer_wrapperスクリプトを介してPHP依存関係をインストールします。

以下のgitコマンドを実行して、LibreNMSのソースコードを/opt/librenmsディレクトリにダウンロードします。

git clone https://github.com/librenms/librenms.git /opt/librenms

次に、/opt/librenmsディレクトリの所有権をユーザーlibrenmsに変更し、権限を771に変更します。

sudo chown -R librenms:librenms /opt/librenms  
sudo chmod 771 /opt/librenms

librenmsをダウンロード

その後、以下のコマンドを実行してアクセス制御リストを設定し、いくつかのLibreNMSディレクトリの読み取り、書き込み、実行権限を確保します。

sudo setfacl -d -m g::rwx /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache/ /opt/librenms/storage/  
sudo setfacl -R -m g::rwx /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache/ /opt/librenms/storage/

次に、以下のコマンドを使用してlibrenmsユーザーとしてログインします。ディレクトリは/opt/librenmsにいるはずです。

su - librenms  
pwd

以下のコマンドを実行して、LibreNMSのPHP依存関係をインストールします。インストールが完了したら、exitと入力してlibrenmsユーザーからログアウトします。

./scripts/composer_wrapper.php install --no-dev  
exit

librenms依存関係をインストール

SELinuxの設定

AlmaLinux 9サーバーでSELinuxが有効で強制モードの場合、LibreNMSのために設定する必要があります。このセクションでは、policycoreutils-python-utilsパッケージをインストールして、LibreNMSのためにSELinuxを設定します。

以下のコマンドを実行して、policycoreutils-python-utilsパッケージをインストールします。

sudo dnf install -y policycoreutils-python-utils

次に、以下のコマンドを実行して、LibreNMSソースコードのラベリングを設定し、ウェブサーバーがメールを送信できるようにし、メモリアドレスを必要とするプログラムを実行できるようにします。

semanage fcontext -a -t httpd_sys_content_t '/opt/librenms/html(/.*)?'  
semanage fcontext -a -t httpd_sys_rw_content_t '/opt/librenms/(rrd|storage)(/.*)?'  
semanage fcontext -a -t httpd_log_t "/opt/librenms/logs(/.*)?"  
semanage fcontext -a -t bin_t '/opt/librenms/librenms-service.py'  
restorecon -RFvv /opt/librenms  
setsebool -P httpd_can_sendmail=1  
setsebool -P httpd_execmem 1  
chcon -t httpd_sys_rw_content_t /opt/librenms/.env

次に、以下のnanoエディタコマンドを使用して新しいファイルhttp_fping.ttを作成します。

sudo nano http_fping.tt

ファイルに次の設定を挿入します。これにより、SELinux経由で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 };

ファイルを保存してエディタを終了します。

最後に、以下のコマンドを実行してhttp_fping.ttファイルをコンパイルし、SELinuxに追加します。

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

Firewalldの設定

SELinuxの設定が完了したら、HTTPおよびHTTPSプロトコルを開くためにfirewalldを設定します。

以下のfirewall-cmdコマンドを実行してHTTPおよびHTTPSポートを開き、次にfirewalldを再読み込みして変更を適用します。

sudo firewall-cmd --add-service={http,https} --permanent  
sudo firewall-cmd --reload

次に、以下のコマンドを使用してfirewalldルールのリストを確認します。成功した場合、ルールリストにHTTPおよびHTTPSプロトコルの両方が表示されるはずです。

sudo firewall-cmd --list-all

firewalldの設定

SNMPサービスの設定

SNMPまたはSimple Network Management Protocolは、モデム、スイッチ、ルーターなどのネットワークデバイスによって最も広く使用されるプロトコルです。このセクションでは、ネットワーキングデバイスを監視するために使用されるLibreNMSインストールでsnmpdサービスを設定します。

デフォルトのSNMP設定を/etc/snmp/snmpd.confにコピーし、以下のnanoエディタコマンドを使用して開きます。

sudo cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf  
sudo nano /etc/snmp/snmpd.conf

デフォルトのSNMPパスワードRANDOMSTRINGGOESHEREを新しいパスワードに変更します。

# Change RANDOMSTRINGGOESHERE to your preferred SNMP community string  
com2sec readonly  default        RANDOMSTRINGGOESHERE

完了したら、ファイルを保存してエディタを閉じます。

次に、LinuxおよびUNIX OSを検出するためのLibreNMSエージェントツールのバイナリファイルをダウンロードし、実行可能にします。

sudo curl -o /usr/bin/distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro  
sudo chmod +x /usr/bin/distro

snmpdの設定

次に、以下のコマンドを使用してsnmpdサービスを開始し、有効にします。

sudo systemctl start snmpd  
sudo systemctl enable snmpd

最後に、以下のsystemctlコマンドを使用してsnmpdサービスを確認します。

sudo systemctl status snmpd

snmpdサービスが実行中の場合、出力は’ active (running) ‘のようになります。

snmpdの確認

LibreNMSの追加設定

次のセクションは、LibreNMSの追加設定です。以下の設定を行います:

  • LibreNMSのバイナリコマンド’lnms’とそのbash_completionを設定します。
  • LibreNMSポーリングのためにcronを設定します。
  • systemdタイマーを介してLibreNMSスケジューラを設定します。
  • LibreNMSログのためにlogrotateを設定します。

まず、LibreNMSコマンドラインlnmsのシンボリックリンクを/usr/bin/lnmsに作成します。次に、lnmsコマンドのbash補完を/etc/bash_completion.d/ディレクトリにコピーします。

sudo ln -s /opt/librenms/lnms /usr/bin/lnms  
sudo cp /opt/librenms/misc/lnms-completion.bash /etc/bash_completion.d/

次に、librenmsユーザーとしてログインし、lnmsコマンドを実行し、TABを押してlnmsコマンドの利用可能なパラメータのリストを取得します。

su - librenms  
lnms TAB

ターミナルにこのような出力が表示されます。

lnmsコマンドの補完

次に、以下のコマンドを実行してLibreNMSのcron設定を/etc/cron.d/librenmsにコピーします。

cp /opt/librenms/dist/librenms.cron /etc/cron.d/librenms

次に、以下のコマンドを使用してLibreNMSのlogrotate設定をコピーします。

sudo cp /opt/librenms/misc/librenms.logrotate /etc/logrotate.d/librenms

その後、LibreNMSスケジューラサービスとタイマーを/etc/systemd/system/ディレクトリにコピーし、systemdマネージャーを再読み込みして変更を適用します。

sudo cp /opt/librenms/dist/librenms-scheduler.service /opt/librenms/dist/librenms-scheduler.timer /etc/systemd/system/  
sudo systemctl daemon-reload

最後に、LibreNMSスケジューラサービスを開始し、有効にします。

sudo systemctl enable librenms-scheduler.timer  
sudo systemctl start librenms-scheduler.timer

LibreNMSの追加設定

Nginxの設定

すべての設定が完了したので、LibreNMSのためにNginxサーバーブロックを設定します。

新しいNginxサーバーブロック設定/etc/nginx/conf.d/librenms.confを以下のnanoエディタコマンドを使用して作成します。

sudo nano /etc/nginx/conf.d/librenms.conf

次の設定を挿入し、server_nameオプションのドメイン名を変更してください。

server {  
    listen      80;  
    server_name librenms.howtoforge.local;  
    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 ~ [^/]\.php(/|$) {  
        fastcgi_pass unix:/run/php-fpm/librenms.sock;  
        fastcgi_split_path_info ^(.+\.php)(/.+)$;  
        include fastcgi.conf;  
    }  
  
    location ~ /\.(?!well-known).* {  
        deny all;  
    }  
}

ファイルを保存してエディタを終了します。

次に、以下のコマンドを実行してNginxの設定を確認します。成功した場合、出力は’ test is successful - syntax is ok ‘のようになります。

sudo nginx -t

次に、以下のコマンドを使用してNginxサービスを開始し、有効にします。

sudo systemctl start nginx  
sudo systemctl enable nginx

nginxの設定

次に、以下のコマンドを入力してNginxサービスの状態を確認し、サービスが実行中であることを確認します。

sudo systemctl status nginx

成功した場合、次の出力が表示されます:

nginxの確認

ウェブブラウザを介したLibreNMSのインストール

Nginxサーバーブロック設定を作成した後、ウェブブラウザからLibreNMSのインストールを開始する準備が整いました。

ウェブブラウザを起動し、LibreNMSインストールのドメイン名にアクセスします。すなわち:http://librenms.howtoforge.local。

最初のページで、LibreNMSは現在の環境をチェックして確認します。前提条件チェックに合格したことを確認し、続行するにはデータベースアイコンをクリックします。

librenmsシステムチェック

次に、作成したデータベースの詳細を入力し、Check Credentialsをクリックします。

データベースの設定

次に、Build DatabaseをクリックしてLibreNMSデータベースを移行します。

データベースを構築

次に、keyアイコンをクリックして管理ユーザーとLibreNMSのパスワードを設定します。管理ユーザー、パスワード、メールの詳細を入力し、Add Userをクリックします。

管理ユーザーの設定

次に、Finish InstallをクリックしてLibreNMSのインストールを完了します。

インストールの完了

LibreNMSのインストールが完了すると、LibreNMSのログインページにリダイレクトされます。管理ユーザーとパスワードを入力し、Loginをクリックします。

librenmsログインページ

成功した場合、LibreNMSダッシュボードがこのように表示されます。必要に応じてLibreNMSダッシュボードを作成および配置できます。

librenmsダッシュボード

最後に、validate.phpスクリプトを使用して、適切なLibreNMS構成があることを確認できます。以下のコマンドを実行してlibrenmsユーザーとしてログインし、validate.phpスクリプトを実行します。

su - librenms  
./validate.php

適切なLibreNMS構成がある場合、すべてが次のようにOKステータスになります:

LibreNMSインストールの検証

結論

おめでとうございます。AlmaLinux 9にLibreNMS監視ツールを正常にインストールしました。MariaDBデータベースサーバーとNginxウェブサーバーでLibreNMSをインストールおよび構成しました。また、LibreNMSのためにSELinuxとfirewalldを構成しました。

さらに、LibreNMSのドキュメントを訪れて、新しいホストやデバイスを追加して監視してください。

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。