Prometheus: Prometheus Node ExporterにTLS暗号化を追加する

このドキュメントはLinuxからメトリクスを取得するガイドの一部です。完全なガイドはこちらからご覧いただけます:Node Exporterを使用してPrometheusでLinuxサーバーのメトリクスを取得する方法

👋 Stackheroドキュメントへようこそ!

Stackheroは、信頼性とシンプルさを重視したフルマネージドのPrometheusクラウドプラットフォームを提供しています:

  • Alert Managerが標準搭載されており、SlackMattermostPagerDutyなどの主要なサービスへ直接アラートをルーティングできます。
  • 専用のメールサーバーにより、追加設定なしで無制限のメールアラートを送信可能です。
  • Blackboxが含まれており、HTTPICMPTCPなど様々なプロトコルの監視が可能です。
  • オンライン設定ファイルエディタでインスタンスを迅速に設定できます。YAMLを手動で管理する必要はありません。
  • ワンクリックでアップデートを適用可能。Stackheroがアップグレードプロセスを自動で管理し、ダウンタイムや手動作業を最小限に抑えます。
  • 専用のプライベートインフラストラクチャによる高いパフォーマンスと強固なセキュリティを実現しています。

約5分で導入完了。Stackheroがセットアップを担当するため、運用ではなく監視に集中できます。PrometheusクラウドホスティングをStackheroでぜひお試しください。監視・アラート運用を効率化します。

デフォルトでは、Node Exporterは通信を暗号化しません。これにより、前述のパスワードを含む資格情報が平文で送信されます。通信を保護するために、次のようにTLS暗号化を有効にできます。

次のコマンドを実行してTLS証明書とキーを作成します:

# TLS証明書を作成する
cd /tmp
sudo openssl req -new -newkey rsa:2048 -days 3650 -nodes -x509 \
  -keyout /etc/prometheus_node_exporter/tlsCertificate.key \
  -out /etc/prometheus_node_exporter/tlsCertificate.crt \
  -subj "/CN=`hostname`" \
  -addext "subjectAltName = DNS:`hostname`"
sudo chmod 600 /etc/prometheus_node_exporter/*
sudo chown -R node_exporter:node_exporter /etc/prometheus_node_exporter

TLS設定を追加するために設定ファイルに次の行を追加し、Node Exporterを再起動します:

sudo cat << 'EOF' >> /etc/prometheus_node_exporter/configuration.yml
tls_server_config:
  cert_file: /etc/prometheus_node_exporter/tlsCertificate.crt
  key_file: /etc/prometheus_node_exporter/tlsCertificate.key

EOF

# Prometheus Node Exporterを再起動する
sudo systemctl restart node_exporter

次のコマンドを使用してHTTPS経由で接続することでTLSがアクティブであることを確認できます:

curl -k -u prometheus:${password} https://localhost:9100/metrics

この方法はCA証明書を使用しないため、cURLで証明書検証をバイパスするために"-k"オプションを渡す必要があります。