AlmaLinuxにnetdataをインストールする手順
必要なパッケージのインストール
dnf install autogen-libopts libuv
dnf install zlib-devel libuuid-devel libmnl-devel gcc make git autoconf automake pkgconfig json-c-devel
-
libuv-devel
をインストールするために、powertools リポジトリを有効化する
vim /etc/yum.repos.d/almalinux-powertools.repo
# enabled=0
enabled=1
dnf update
dnf install libuv-devel
netdataのインストール
- netdata のアップデートについても下記以降の対応となる。
-
--depth 1
オプションで、git clone で master ブランチにある最新のコミットだけを落としている。コミット履歴が大量にあるGitリポジトリでも,素早く落とすことができる。 - depth オプションを使用した git clone を シャロークローン (shallow clone) とも呼称する。
mkdir -p /opt/src/
cd /opt/src/
git clone https://github.com/firehol/netdata.git --depth=1
cd netdata
./netdata-installer.sh --install /opt
起動&自動起動の設定
今回、インストールした際は systemd にも登録されており、起動&自動起動設定もされていました。
--dont-start-it
オプションを指定してインストールした場合はインストール後に netdata が起動されません。
こういった場合に手動で起動&自動起動設定を行う場合は以下のように設定します。
systemctl daemon-reload
systemctl enable netdata
systemctl start netdata
起動したらWebサーバが19999ポートでListenしますので、下記の形のURLにアクセスします。
http://<your-server-IP or Your-Server-Name>:19999
Apacheとの連携
firewallでポートを開放してもいいですが管理が煩雑になるのとベーシック認証を行いたいのでProxyで対応します。
vim /opt/.htpasswd_netdata
<BASIC認証ユーザー>:<BASIC認証パスワード>
vim /etc/httpd/conf.d/vhost.conf
<VirtualHost *:80>
ServerName XXX.XXX.XXX.XX
<Location />
AuthType Basic
AuthName "Authentication for netdata"
AuthUserFile /opt/.htpasswd_netdata
Require valid-user
</Location>
ProxyPass / http://localhost:19999/
ProxyPassReverse / http://localhost:19999/
</VirtualHost>
再起動後アクセスしBASIC認証付きでアクセスできることを確認します。
BASIC認証を設定することでnetdataのページがSEOに乗らないように対策もできます。
httpd -t
httpd -k graceful
http://<your-server-IP>
で確認。
メール通知設定
デフォルトで以下のようなメール通知の設定がされている。メールサーバが入っている場合は、root宛にメールが送られる。宛先を変更する場合は DEFAULT_RECIPIENT_EMAIL
を変更する。設定を変更後はサービス再起動を行う。
/opt/netdata/usr/lib/netdata/conf.d/health_alarm_notify.conf
EMAIL_SENDER=""
SEND_EMAIL="YES"
DEFAULT_RECIPIENT_EMAIL="root"
メール通知の確認については下記コマンドを実行することでテスト通知が行える。
/opt/netdata/usr/libexec/netdata/plugins.d/alarm-notify.sh test
Slack通知
メール通知をOFFにし、SlackメッセージをONにする設定を行う場合は、Slackのincoming WebhookでURLを取得後、SLACK_WEBHOOK_URLにそのURLを設定し、DEFAULT_RECIPIENT_SLACKにチャンネル名(#は省く)を設定しサービス再起動を行えば、そのチャンネル宛に通知が届くようになる。
/opt/netdata/usr/lib/netdata/conf.d/health_alarm_notify.conf
# [Email]
SEND_EMAIL='NO'
# [Slack]
SEND_SLACK='YES'
SLACK_WEBHOOK_URL='https://hooks.slack.com/services/xxxx......'
DEFAULT_RECIPIENT_SLACK='netdata'