監視ツール · 10 min read · Nov 30, 2025
Rocky Linux 8にNetdata監視ツールをインストールし、サービスを監視する方法

Netdataは、Linuxベースのオペレーティングシステム用のオープンソースの監視システムです。美しく詳細なダッシュボードを使用して、リアルタイムのパフォーマンスと監視を提供します。サーバー、CPU、メモリ使用量、システムプロセス、ディスク使用量、IPv4およびIPv6ネットワーク、システムファイアウォール、Nginx、MySQL、MongoDB、Redis、ElasticSearch、PostgreSQL、PHP-FPMなどのアプリケーションを監視するための数百のツールを提供します。他の監視ツール(Prometheus、Graphite、Kafka、Grafanaなど)と統合されています。
このチュートリアルでは、Rocky Linux 8サーバー上でNetdataツールを使用してさまざまなサービスをインストールし、監視する方法を学びます。LEMPスタックとDockerエンジンのメトリクスを追跡するためにNetdataを使用します。
前提条件
- Rocky Linux 8を実行しているサーバー。
- sudo権限を持つ非rootユーザー。
- サーバーを指す完全修飾ドメイン名(FQDN)
netdata.example.com。 - 通知を受け取るためのSlackアカウントとワークスペース。
- Amazon SESやMailgunなどのメールサービスを持つSMTPアカウント。
- SELinuxを無効にします。
ステップ1 - ファイアウォールの設定
最初のステップはファイアウォールを設定することです。Rocky LinuxはFirewalldファイアウォールを使用します。ファイアウォールの状態を確認します。
$ sudo firewall-cmd --state
runningファイアウォールは異なるゾーンで動作し、パブリックゾーンがデフォルトで使用されます。ファイアウォールでアクティブなすべてのサービスとポートをリストします。
$ sudo firewall-cmd --permanent --list-services次の出力が表示されるはずです。
cockpit dhcpv6-client sshHTTPおよびHTTPSポートを許可します。
$ sudo firewall-cmd --permanent --add-service=http
$ sudo firewall-cmd --permanent --add-service=httpsファイアウォールの状態を再確認します。
$ sudo firewall-cmd --permanent --list-services同様の出力が表示されるはずです。
cockpit dhcpv6-client http https ssh変更を有効にするためにファイアウォールを再読み込みします。
$ sudo firewall-cmd --reloadステップ2 - NetDataのインストール
Netdataは、任意のLinuxディストリビューションで動作するインストーラスクリプトを提供します。次のコマンドを実行してインストーラスクリプトをダウンロードして実行します。
$ bash <(curl -Ss https://my-netdata.io/kickstart.sh)sudo権限を有効にするためにsudoパスワードを求められます。Netdataリポジトリを追加し、サーバーにインストールすることを確認するためにYを入力します。
Netdataインストーラーは自動的にサービスを有効にし、開始します。サービスの状態を確認します。
$ sudo systemctl status netdata
? netdata.service - リアルタイムパフォーマンス監視
Loaded: loaded (/usr/lib/systemd/system/netdata.service; enabled; vendor preset: disabled)
Active: active (running) since Mon 2022-04-11 12:09:12 UTC; 13s ago
Main PID: 19443 (netdata)
Tasks: 32 (limit: 11412)
Memory: 52.0M
CGroup: /system.slice/netdata.service
??19443 /usr/sbin/netdata -P /var/run/netdata/netdata.pid -D
??19448 /usr/sbin/netdata --special-spawn-server
??19937 /usr/libexec/netdata/plugins.d/apps.plugin 1
??19944 /usr/libexec/netdata/plugins.d/go.d.plugin 1
Apr 11 12:09:12 netdata systemd[1]: Started Real time performance monitoring.
.......サービスが開始されていない場合や有効になっていない場合は、次のコマンドを使用して有効にできます。
$ sudo systemctl enable netdata --now次のコマンドを実行して、オープンポートとそれを使用しているプロセスを確認します。
$ sudo ss -plnt次のような出力が得られるはずです。Netdataはダッシュボード用にポート19999を使用し、他のアプリケーションから統計を受信するためにポート8125を使用します。
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 127.0.0.1:8125 0.0.0.0:* users:(("netdata",pid=22496,fd=29))
LISTEN 0 128 0.0.0.0:19999 0.0.0.0:* users:(("netdata",pid=22496,fd=6))
......
LISTEN 0 128 [::1]:8125 [::]:* users:(("netdata",pid=22496,fd=28))
LISTEN 0 128 [::]:19999 [::]:* users:(("netdata",pid=22496,fd=7))ステップ3 - SSLのインストール
Let’s Encryptを使用してSSL証明書をインストールするには、Certbotツールをインストールする必要があります。
まず、EPELリポジトリをダウンロードしてインストールする必要があります。
$ sudo dnf install epel-release次のコマンドを実行してCertbotをインストールします。
$ sudo dnf install certbotSSL証明書を生成します。
$ sudo certbot certonly --standalone --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d netdata.example.com上記のコマンドは、サーバーの/etc/letsencrypt/live/netdata.example.comディレクトリに証明書をダウンロードします。
Diffie-Hellmanグループ証明書を生成します。
$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048Let’s Encryptの自動更新用にチャレンジウェブルートディレクトリを作成します。
$ sudo mkdir -p /var/lib/letsencryptSSLを更新するためのCronジョブを作成します。これは毎日実行され、証明書を確認し、必要に応じて更新します。そのために、最初にファイル/etc/cron.daily/certbot-renewを作成し、編集のために開きます。
$ sudo nano /etc/cron.daily/certbot-renew次のコードを貼り付けます。
#!/bin/sh
certbot renew --cert-name netdata.example.com --webroot -w /var/lib/letsencrypt/ --post-hook "systemctl reload nginx"ファイルを保存するには、Ctrl + Xを押し、プロンプトが表示されたらYを入力します。
タスクファイルの権限を変更して実行可能にします。
$ sudo chmod +x /etc/cron.daily/certbot-renewステップ4 - Nginxのインストールと設定
最新のNginxをインストールします。ファイル/etc/yum.repos.d/nginx.repoを作成し、編集のために開きます。
$ sudo nano /etc/yum.repos.d/nginx.repo次の行を貼り付けます。
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=trueファイルを保存するには、Ctrl + Xを押し、プロンプトが表示されたらYを入力します。
NginxとHTTPDツールをインストールします。
$ sudo dnf install nginx httpd-toolsインストールを確認します。
$ nginx -v
nginx version: nginx/1.20.2Nginxサービスを有効にし、開始します。
$ sudo systemctl enable nginx --nowファイル/etc/nginx/conf.d/netdata.confを作成し、編集のために開きます。
$ sudo nano /etc/nginx/conf.d/netdata.conf次のコードを貼り付けます。
# Define netdata upstream
upstream netdata {
server 127.0.0.1:19999;
keepalive 64;
}
# Redirect all non-encrypted to encrypted
server {
listen 80;
listen [::]:80;
server_name netdata.example.com;
return 301 https://netdata.example.com$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name netdata.example.com;
ssl_certificate /etc/letsencrypt/live/netdata.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/netdata.example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/netdata.example.com/chain.pem;
ssl_session_timeout 1d;
ssl_session_cache shared:MozSSL:10m;
ssl_session_tickets off;
ssl_prefer_server_ciphers off;
ssl_stapling on;
ssl_stapling_verify on;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
resolver 1.1.1.1 1.0.0.1 [2606:4700:4700::1111] [2606:4700:4700::1001] 8.8.8.8 8.8.4.4 [2001:4860:4860::8888] [2001:4860:4860::8844] valid=60s;
resolver_timeout 2s;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
access_log /var/log/nginx/netdata.example.com.access.log main;
error_log /var/log/nginx/netdata.example.com.error.log;
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_pass http://netdata;
proxy_http_version 1.1;
proxy_pass_request_headers on;
proxy_set_header Connection "keep-alive";
proxy_store off;
auth_basic "NetData Private Area";
auth_basic_user_file /etc/nginx/.htpasswd;
}
}完了したら、Ctrl + Xを押してファイルを保存し、プロンプトが表示されたらYを入力します。
ファイル/etc/nginx/nginx.confを編集のために開きます。
$ sudo nano /etc/nginx/nginx.conf次の行をinclude /etc/nginx/conf.d/*.conf;の前に追加します。
server_names_hash_bucket_size 64;ファイルを保存するには、Ctrl + Xを押し、プロンプトが表示されたらYを入力します。
次のコマンドを実行して、HTTP認証を有効にするためのパスワードファイルを生成します。
$ sudo htpasswd -c /etc/nginx/.htpasswd netadmin
New password:
Re-type new password:
Adding password for user netadminNginx設定ファイルの構文を確認します。
$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful新しい設定を有効にするためにNginxサービスを再起動します。
$ sudo systemctl restart nginxステップ5 - Netdataダッシュボードにアクセスして使用する
https://netdata.example.comのURLを介してNetdataにアクセスできるはずです。初めてアクセスすると、HTTP認証の詳細を求められます。

次のダッシュボードが表示されます。

Remember my choiceのチェックボックスをオンにし、ポップアップを閉じるためにLater, stay at the agent dashboardボタンをクリックします。
ダッシュボードのPlayボタンを使用して、監視を一時停止、停止、開始できます。

右側のサイドバーからオプションをクリックすることで、さまざまなダッシュボードにアクセスできます。UTCボタンをクリックし、正しいタイムゾーンを選択して変更します。

ステップ6 - NetDataの設定
Netdataは、主な設定を/etc/netdata/netdata.confファイルに保存します。ブラウザでhttps://netdata.example.com/netdata.confにアクセスすることで、これらの設定を表示できます。

ファイルは、[global]、[web]、[registry]などのさまざまなセクションに分かれています。デフォルトの設定で開始するのに十分です。Netdataは、2種類のプラグインを使用してデータを収集します。
- internalプラグインはC言語で書かれ、
netdataデーモン内でスレッドとして実行されます。 - externalプラグインは、Python、Goなどのさまざまな言語で書かれ、
netdataデーモンによって長期間実行される独立したプロセスとして生成されます。これらはpipesを使用してNetdataデーモンと通信します。
NetDataメモリ使用量の設定
NetDataのRAM使用量は、記録されたチャートデータを失う前に保持したい時間に基づいて決まります。
- 3600秒または1時間のチャートデータ保持は15MBのRAMを使用します。
- 7200秒または2時間のチャートデータ保持は30MBのRAMを使用します。
- 14400秒または4時間のチャートデータ保持は60MBのRAMを使用します。
チャートデータ保持時間を倍にするたびに、RAMの要件も倍になります。これらのRAM要件は、ストックダッシュボードで使用されているチャートの数に基づいています。より多くのチャートやアプリケーションを追加すると、これらの推定値が変わります。
Netdata設定ファイルを開きます。
$ sudo nano /etc/netdata/netdata.conf[global]セクションの下にhistory = 14400の行を入力します。
[global]
..
history = 14400
..ファイルを保存するには、Ctrl + Xを押し、プロンプトが表示されたらYを入力します。
テレメトリをオフにする
デフォルトでは、Netdataは製品分析プラットフォームであるPosthogを使用して匿名の使用情報を収集します。Netdataデーモンが起動または停止するたびに、Netdataは匿名統計スクリプトを使用して次のシステム情報を収集し、自身に送信します。
- Netdataバージョン
- OS名、バージョン、id、id_like
- カーネル名、バージョン、アーキテクチャ
- 仮想化技術
- コンテナ化技術
- Netdataクライアントの障害に関する追加情報。
幸いなことに、これをオプトアウトすることができます。Netdataディレクトリに.opt-out-from-anonymous-statisticsという空のファイルを作成します。
$ sudo touch /etc/netdata/.opt-out-from-anonymous-statistics変更を有効にするためにNetdataを再起動します。
$ sudo systemctl restart netdata長期保存
デフォルトでは、NetdataはシステムのRAMとディスクを使用して履歴データを保存します。デフォルトのNetdataプロセスは、1秒あたり約2000メトリクスを収集します。これは、デフォルトの設定がRAMとディスクに約2日分のメトリクスを保存することを意味します。
より多くのメトリクスを保存するには、次の2つのオプションがあります。
- Netdataを構成して、より多くのRAMとディスクスペースを使用する
- メトリクスを外部データベースにアーカイブする
このチュートリアルでは、最初のオプションのみを説明します。2番目のオプションについては、Netdataの公式ドキュメントを参照してください。
Netdataを構成して、より多くのRAMとディスクスペースを使用する
ファイル/etc/netdata/netdata.confを編集のために開きます。
$ sudo nano /etc/netdata/netdata.conf[global]セクションの下に次の行を貼り付けます。
[global]
...
memory mode = dbengine
page cache size = 32
dbengine disk space = 256ファイルを保存するには、Ctrl + Xを押し、プロンプトが表示されたらYを入力します。
ページキャッシュサイズは使用されるRAMの量を決定し、dbengine disk spaceはディスク使用量を決定します。デフォルトでは、Netdataは32MBのRAMと256MBのディスクスペースを使用します。これらの値をコメント解除して、2つの値のいずれかを好みに応じて変更できます。
Netdataのストレージメトリック計算機を使用して、必要なRAMとディスクスペースの量を決定できます。
収集頻度を減らす
メトリクス収集の間隔を増やすことで、Netdataのパフォーマンスを最適化できます。デフォルトでは、Netdataは毎秒メトリクスを収集します。
それを変更するには、Netdata設定ファイルを編集のために開きます。
$ sudo nano /etc/netdata/netdata.conf[global]セクションの下に次の行を入力します。これにより、頻度が5秒に増加します。
[global]
...
update every = 5ファイルを保存するには、Ctrl + Xを押し、プロンプトが表示されたらYを入力します。
ステップ7 - Slack通知の設定
最初のステップは、Slackアプリケーションを作成し、ワークスペース内の特定のチャンネルに接続してSlack通知を設定することです。
Slack APIページにアクセスし、Create Appボタンをクリックしてアプリケーションの作成を開始します。

From Scratchリンクをクリックしてアプリを作成します。

アプリの名前を選択し、アプリを表示したいワークスペースを選択します。既存のワークスペースにアプリを関連付けたくない場合は、別のワークスペースを作成し、このステップに戻ることができます。

左側のサイドバーのFeaturesメニューからIncoming Webhookページを開き、Webhookを有効にします。

ページの下部にあるAdd New Webhook to Workspaceボタンをクリックし、ワークスペースと通知の対象チャンネルを選択します。

Allowボタンをクリックして続行します。Incoming Webhooksページに戻り、Webhook URLをコピーします。

ターミナルに戻り、/etc/netdataディレクトリに移動します。
$ cd /etc/netdataNetdataは、Netdata設定ファイルを編集および作成するためのedit-configスクリプトを提供します。次のファイルを実行して、システムのデフォルトエディタを使用してhealth_alarm_notify.confファイルを作成および開きます。
$ sudo ./edit-config health_alarm_notify.conf次のセクションまでスクロールします。
# Enable slack notification
SEND_SLACK="YES"
# Select the slack webhook
SLACK_WEBHOOK_URL="https://hooks.slack.com/services/xxxxxxx"
# Default channel for notification
DEFAULT_RECIPIENT_SLACK="notifications"変数SEND_SLACKがyesに設定されていることを確認します。コピーしたWebhook URLをSLACK_WEBHOOK_URL変数に貼り付けます。DEFAULT_RECIPIENT_SLACK変数にチャンネル名を入力します。
エディタがVimの場合は、Escapeキーを押して編集を終了し、:xと入力してEnterキーを押してファイルを保存してエディタを終了します。
エディタがNanoの場合は、Ctrl + Xを押してファイルを保存し、プロンプトが表示されたらYを入力します。
変更を適用するためにNetdataを再起動します。
$ sudo systemctl restart netdataメール通知の設定
Netdataはデフォルトでsendmailを使用してメール通知を送信しますが、メールサーバーの管理は簡単な作業ではありません。NetdataはSMTPをサポートしていませんが、msmtpクライアントというパッケージをインストールできます。これにより、SMTPサーバーにメールを送信できます。
msmtpをインストールします。
$ sudo dnf install msmtpmsmtpの設定ファイルを作成し、開きます。
$ sudo nano /etc/msmtprc次のコードを貼り付けます。
# Set default values for all following accounts.
defaults
# Use the mail submission port 587 instead of the SMTP port 25.
port 587
# Always use TLS.
tls on
# The SMTP server of your ISP
account ses
host email-smtp..amazonaws.com
from [email protected]
auth on
user
password
# Set default account to isp
account default: ses ファイルを保存するには、Ctrl + Xを押し、プロンプトが表示されたらYを入力します。
/etc/netdata/health_alarm_notify.confファイルを編集のために開きます。
$ sudo nano /etc/netdata/health_alarm_notify.conf次のセクションまでスクロールし、msmtpへのパスを入力します。
# external commands
# The full path to the sendmail command.
# If empty, the system $PATH will be searched for it.
# If not found, email notifications will be disabled (silently).
sendmail="/usr/bin/msmtp"次のセクションを見つけて、送信者と受信者の詳細を入力し、メール送信が有効になっていることを確認します。
# email global notification options
# multiple recipients can be given like this:
# "[email protected] [email protected] ..."
# the email address sending email notifications
# the default is the system user netdata runs as (usually: netdata)
# The following formats are supported:
# EMAIL_SENDER="user@domain"
# EMAIL_SENDER="User Name "
# EMAIL_SENDER="'User Name' "
# EMAIL_SENDER="\"User Name\" "
EMAIL_SENDER="Server Admin <[email protected]>"
# enable/disable sending emails
SEND_EMAIL="YES"
# if a role recipient is not configured, an email will be send to:
DEFAULT_RECIPIENT_EMAIL="[email protected]"
# to receive only critical alarms, set it to "root|critical" ファイルを保存するには、Ctrl + Xを押し、プロンプトが表示されたらYを入力します。
ステップ8 - 通知チャネルのテスト
Slack通知が機能するかどうかをテストしましょう。
インストール中に作成されたシステムユーザーnetdataとしてログインします。
$ sudo su -s /bin/bash netdataアラーム通知スクリプトを実行してテスト通知を送信します。
$ /usr/libexec/netdata/plugins.d/alarm-notify.sh testユーザーを終了します。
$ exit.Slackアプリケーションを開くと、次のアラートを受信しているはずです。

テスト警告に関する3通のメールも受信するはずです。

ステップ9 - システム監視の設定
通知を設定してテストしたので、CPU使用量などのシステムの通知を設定してテストしましょう。
次のコマンドを実行してCPU設定ファイルを作成し、開きます。
$ cd /etc/netdata
$ sudo ./edit-config health.d/cpu.conf10min_cpu_usageの下のwarnおよびcritオプションの値を次のように変更します。
warn: $this > (($status >= $WARNING) ? (60) : (70))
crit: $this > (($status == $CRITICAL) ? (75) : (85))ファイルを保存してエディタを終了します。
上記の設定では、CPU使用率が60%から70%の間にある場合に警告が送信され、CPU使用率が75%から85%の間にある場合に重大な警告が送信されます。
Netdataサービスを再起動します。
$ sudo systemctl restart netdataStressアプリケーションをインストールして設定をテストしましょう。
$ sudo dnf install stressサーバーのCPU使用率をスパイクさせるために次のコマンドを実行します。
$ stress --cpu 2コマンドを5〜10分間実行したままにすると、高いCPU使用率メッセージを受信します。メッセージを受信したら、ターミナルに戻り、Ctrl + Zを押してコマンドを終了します。
サービスを停止すると、CPUが回復したという通知がSlackに送信されます。

ステップ10 - Nginx監視の設定
Netdataを使用して最も一般的に監視されるアプリの1つは、サーバーおよびSQLパッケージです。Netdataを使用してNginxサーバーを監視しましょう。
Nginxサーバーの監視を有効にするには、ngx_http_stub_status_moduleを使用する必要があります。通常、Nginxにはプリインストールされています。このモジュールが存在するかどうかを確認できます。
$ nginx -V 2>&1 | grep -o with-http_stub_status_module
with-http_stub_status_module応答がない場合は、Nginxのインストールがその機能をサポートしていないことを意味します。その場合は、Nginxをコンパイルする必要があります。
Nginxのデフォルト設定ファイル/etc/nginx/conf.d/default.confを編集のために開きます。ファイルの場所は、Nginxを公式リポジトリからインストールしたため異なります。OSのリポジトリからNginxをインストールする場合、ファイルの場所は/etc/nginx/nginx.confになります。
$ sudo nano /etc/nginx/conf.d/default.conf最後の閉じ中括弧の前に次のコードをサーバーブロック内に入力します。
# Enable module stub_status
location /stub_status {
stub_status;
allow 127.0.0.1; #only allow requests from localhost
deny all; #deny all other hosts
}ファイルを保存するには、Ctrl + Xを押し、プロンプトが表示されたらYを入力します。
Nginx設定を確認します。
$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successfulNginxサーバーを再起動します。
$ sudo systemctl restart nginxNetdataサービスを再起動します。
$ sudo systemctl restart netdataNetdataダッシュボードにNginx接続の詳細が表示されるはずです。

Nginxログの監視
NetdataはNginxアクセスログも監視できます。それを行うには、Netdataディレクトリに移動します。
$ cd /etc/netdataアクセスログを監視するための設定ファイルを生成するために次のコマンドを実行します。
$ sudo ./edit-config python.d/web_log.confファイルの下部にスクロールし、次のセクションを見つけます。
# -------------------------------------------
# nginx log on various distros
# debian, arch
nginx_log:
name: 'nginx'
path: '/var/log/nginx/access.log'
# gentoo
nginx_log2:
name: 'nginx_site'
path: '/var/log/nginx/localhost.access_log'それぞれのログファイルを監視するためにパスを変更します。監視するホストとそのアクセスログファイルの数に応じて、セクションを追加できます。私たちの設定ファイルは次のようになります。
# -------------------------------------------
# nginx log on various distros
# debian, arch
nginx_log:
name: 'nginx'
path: '/var/log/nginx/access.log'
nginx_log2:
name: 'nginx_site1'
path: '/var/log/nginx/site1.access_log'
nginx_log3:
name: 'nginx_site2'
path: '/var/log/nginx/site2.access_log'
nginx_log4:
name: 'nginx_site3'
path: '/var/log/nginx/site3.access_log'保存してエディタを終了します。
Netdataがログファイルにアクセスするには、ディレクトリへの権限が必要です。デフォルトでは、admシステムグループがログファイルにアクセスする権限を持っています。Netdataにアクセスを許可するには、netdataユーザーをadmグループに追加する必要があります。
$ sudo usermod -aG adm netdataNginxとNetdataサービスを再起動します。
$ sudo systemctl restart nginx netdataNetdataダッシュボードを再読み込みして、ログファイルデータを表示します。

ステップ11 - MySQL/MariaDB監視の設定
このチュートリアルではMariaDBをインストールします。MySQLサーバーを使用している場合も手順は同じです。
MariaDB 10.6のリポジトリを追加します。
$ sudo nano /etc/yum.repos.d/MariaDB.repo次のコードを貼り付けます。
# MariaDB 10.6 CentOS repository list - created 2022-04-12 11:12 UTC
# https://mariadb.org/download/
[mariadb]
name = MariaDB
baseurl = https://download.nus.edu.sg/mirror/mariadb/yum/10.6/centos8-amd64
module_hotfixes=1
gpgkey=https://download.nus.edu.sg/mirror/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck=1ファイルを保存するには、Ctrl + Xを押し、プロンプトが表示されたらYを入力します。
MariaDBをインストールします。
$ sudo dnf install MariaDB-serverMariaDBサーバーを有効にします。
$ sudo systemctl enable mariadbMySQLセキュアインストールスクリプトを開始します。MariaDBの場合、ファイル名が異なります。
$ sudo mariadb-secure-installation
....
Enter current password for root (enter for none): (Press Enter)
....
Switch to unix_socket authentication [Y/n] Y (Type Y and Press Enter)
....
Change the root password? [Y/n] Y (Type Y and Press Enter)
New password:
Re-enter new password:
Password updated successfully!
....
Remove anonymous users? [Y/n] Y (Type Y and Press Enter)
....
Disallow root login remotely? [Y/n] Y (Type Y and Press Enter)
....
Remove test database and access to it? [Y/n] Y (Type Y and Press Enter)
....
Reload privilege tables now? [Y/n] Y (Type Y and Press Enter)
....
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!ファイル/etc/my.cnf.d/server.cnfを編集のために開きます。
$ sudo nano /etc/my.cnf.d/server.cnfファイル内の[mariadb]セクションを見つけ、次の行を貼り付けてUserstatsプラグインを有効にします。この設定はMariaDBでのみ機能し、MySQLサーバーでは機能しません。
[mariadb]
userstat = 1ファイルを保存するには、Ctrl + Xを押し、プロンプトが表示されたらYを入力します。
MariaDBサーバーを開始します。
$ sudo systemctl start mariadbNetdataサービスを再起動します。
$ sudo systemctl restart netdataMariaDB/MySQLダッシュボードがNetdataダッシュボードに表示されるはずです。

ステップ12 - PHP-FPM監視の設定
Netdataを使用して1つ以上のPHP-FPMインスタンスを監視できます。このチュートリアルでは、PHP 8.0をインストールし、その監視を有効にします。
Remiリポジトリを使用してPHPをインストールします。ステップ3でEPELリポジトリをすでにインストールしています。Remiリポジトリをインストールします。
$ sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm利用可能なPHPストリームを確認します。
$ dnf module list php -y
Last metadata expiration check: 0:00:12 ago on Fri 03 Dec 2021 09:39:32 AM UTC.
Rocky Linux 8 - AppStream
Name Stream Profiles Summary
php 7.2 [d] common [d], devel, minimal PHP scripting language
php 7.3 common [d], devel, minimal PHP scripting language
php 7.4 common [d], devel, minimal PHP scripting language
Remi's Modular repository for Enterprise Linux 8 - x86_64
Name Stream Profiles Summary
php remi-7.2 common [d], devel, minimal PHP scripting language
php remi-7.3 common [d], devel, minimal PHP scripting language
php remi-7.4 common [d], devel, minimal PHP scripting language
php remi-8.0 common [d], devel, minimal PHP scripting language
php remi-8.1 common [d], devel, minimal PHP scripting language
Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalledデフォルトのバージョンは7.2です。RemiのPHP 8.0リポジトリを有効にします。
$ sudo dnf module reset php -y
$ sudo dnf module enable php:remi-8.0次に、Firefly IIIに必要なPHPとその拡張機能をインストールします。phpパッケージには、Firefly IIIが必要とするいくつかの依存関係が含まれているため、必ず含めてください。
$ sudo dnf install php php-fpm php-mbstring php-xml php-curl php-mysqlnd php-zip php-intl php-bcmath php-gd php-ldap php-cliインストールを確認します。
$ php --version
PHP 8.0.16 (cli) (built: Feb 15 2022 21:34:32) ( NTS gcc x86_64 )
Copyright (c) The PHP Group
Zend Engine v4.0.16, Copyright (c) Zend Technologies
with Zend OPcache v8.0.16, Copyright (c), by Zend TechnologiesPHPの設定
ファイル/etc/php-fpm.d/www.confを開きます。
$ sudo nano /etc/php-fpm.d/www.confPHPプロセスのUnixユーザー/グループをnginxに設定する必要があります。ファイル内のuser=www-dataおよびgroup=www-data行を見つけて、nginxに変更します。
...
; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
; will be used.
; RPM: apache user chosen to provide access to the same directories as httpd
user = nginx
; RPM: Keep a group allowed to write in log dir.
group = nginx
...ファイルを下にスクロールして、;pm.status_path = /statusオプションを見つけます。行の前のセミコロンを削除してコメントを解除します。
; Note: There is a real-time FPM status monitoring sample web page available
; It's available in: @EXPANDED_DATADIR@/fpm/status.html
;
; Note: The value must start with a leading slash (/). The value can be
; anything, but it may not be a good idea to use the .php extension or it
; may conflict with a real PHP file.
; Default Value: not set
pm.status_path = /statusファイルを保存するには、Ctrl + Xを押し、プロンプトが表示されたらYを入力します。
PHPサービスを有効にして開始します。
$ sudo systemctl enable php-fpm --nowNginxにPHP設定を追加
Nginxのデフォルト設定ファイル/etc/nginx/conf.d/default.confを編集のために開きます。
$ sudo nano /etc/nginx/conf.d/default.conf最後の閉じ中括弧の前に次のコードをサーバーブロック内に入力します。
# define PHP-FPM monitoring
location ~ ^/(status|ping)$ {
allow 127.0.0.1;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_pass unix:/run/php-fpm/.sock; # Depends on the PHP Version and OS Distro
}ファイルを保存するには、Ctrl + Xを押し、プロンプトが表示されたらYを入力します。
Nginx設定を確認します。
$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successfulNginxサーバーを再起動します。
$ sudo systemctl restart nginxNetdataサービスを再起動します。
$ sudo systemctl restart netdataNetdataダッシュボードを再読み込みすると、PHP-FPMの統計が表示されるはずです。

ステップ13 - Dockerエンジンとコンテナ監視の設定
NetdataはDockerエンジンとDockerコンテナの両方を監視できます。また、これらのコンテナ内で実行されているアプリも監視できますが、このチュートリアルではカバーしません。
まずDockerをインストールしましょう。
$ sudo dnf install yum-utils
$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
$ sudo dnf install docker-ce docker-ce-cli containerd.ioDockerサービスを有効にして開始します。
$ sudo systemctl enable docker --nowDockerエンジンを監視するには、Dockerのメトリクス機能を有効にする必要があります。
ファイル/etc/docker/daemon.jsonを編集のために作成し、開きます。
$ sudo nano /etc/docker/daemon.json次のコードを貼り付けます。
{
"metrics-addr" : "127.0.0.1:9323",
"experimental" : true
}ファイルを保存するには、Ctrl + Xを押し、プロンプトが表示されたらYを入力します。
NetdataとDockerサービスを再起動します。
$ sudo systemctl restart docker netdataNetdataダッシュボードを再読み込みすると、Dockerの統計が表示されます。

メトリクスオプションがPrometheusダッシュボード用に作成されたため、ダッシュボードにPrometheus Metricsという別のエントリが表示されます。

次のステップはDockerコンテナを監視することです。Netdataは、cgroupsと呼ばれる制御グループを使用してDockerコンテナを監視します。制御グループは、プロセスのリソース使用量を制限および追跡するLinuxの機能であり、この場合はコンテナです。NetdataをインストールしたときにDockerコンテナが実行されている場合、それらは自動的に追跡されます。ただし、Netdataをインストールした後にコンテナを実行する場合は、サービスを再起動する必要があります。
テストコンテナを実行します。
$ docker container run -d nginxコンテナの状態を確認します。
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
938b2cf30927 nginx "/docker-entrypoint.…" 3 seconds ago Up 2 seconds 80/tcp pensive_lovelaceコンテナの名前はtender_murdockです。コンテナがNetdataをインストールした後に開始されたため、サービスを再起動します。
$ sudo systemctl restart netdataダッシュボードを読み込み、コンテナの統計が表示されるはずです。

結論
これで、Rocky Linuxサーバー上でNginx、MySQL、PHP-FPM、およびDockerを監視するためにNetdata監視システムをインストールして使用する方法に関するチュートリアルが終了しました。質問がある場合は、下のコメントに投稿してください。
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。