導入
Webサーバーログを管理することは、サイトのスムーズな運営、問題の解決、およびユーザーの行動理解には不可欠です。Nginxを使用している場合、アクセスおよびエラーログには大量の有価な情報が含まれています。これらのログを管理し、分析するために、Logstashを使用して処理と送信、DigitalOceanのManaged OpenSearchを使用して索引化とデータ的可視化することができます。
このチュートリアルでは、Droplet上でLogstashのインストール、Nginxログの収集を設定し、DigitalOcean Managed OpenSearchに送信する方法をご案内します。
前提条件
-
A DigitalOcean Cloud account and an Ubuntu Droplet up and running.
-
Nginxを設定する必要があり、Droplet上でログを生成する必要があります。Droplet上でNginxをインストールするには、Ubuntu上でNginxをインストールする方法のチュートリアルを参照してください。
-
OpenSearchクラスターは稼働しており、アクセスできる必要があります。詳細はOpenSearchクラスターの作成方法をご覧ください。
-
Nginx、Logstash、およびOpenSearchについての知識があることが有益です。
使用案例
以下のような場合にこの設定が必要です。
- 監視とトラブルシューティング: 実際のログを分析して、Web サーバーのパフォーマンスとエラーを追跡します。
- パフォーマンス分析: Web トラフィックパターンとサーバーメトリックスについての洞察を得ます。
- ログの集中的化: 複数の Nginx サーバーからのログを单一の OpenSearch インスタンスに集約し、より簡単な管理をするためです。
注釈: 設定時間は約30分です。
手順 1 – DropletにLogstashをインストールする
Logstashは、ここに提供されているバイナリファイルを使用してインストールすることができ、または、あなたのオペレーティングシステムに合わせたパッケージレポジトリを使用することもできます。より簡単な管理と更新のために、一般的にはパッケージレポジトリの使用が推奨されます。Debian系のシステムであるUbuntuなどでAPTパッケージマネージャーを使用することができ、Red Hat系のシステムであるCentOSやRHELではyum
を使用することができます。この2つの方法は、Logstashを適切にシステムのパッケージ管理インフラに統合し、インストールとメンテナンスを簡略化することを保証します。
この節では、apt
とyum
の両方のパッケージマネージャーを使用してLogstashのインストールを説明します。これにより、Linuxディストリビューションに関係なく、Droplet上でLogstashを設定することができます。
オペレーティングシステムを特定するために、以下のコマンドを実行してください。
APTベースシステム(Ubuntu/Debian)用
1.公钥署名をダウンロードしてインストールする:
2.まだインストールされていない場合は、apt-transport-httpsをインストールします:
3.Logstashのレポジトリ定義をapt
のソースリストに追加して保存します:
注意: `add-apt-repository` コマンドを使用しないようにしてください。これはサポートされていない `deb-src` エントリーを追加するかもしれません。`deb-src` エントリーに関連するエラーに直面した場合、`/etc/apt/sources.list` ファイルからそれを削除してください。`deb-src` エントリーを追加した場合、以下のようなエラーが表示されます:
`deb-src` エントリーを`/etc/apt/sources.list` ファイルから削除すると、インストールは预期通りに動作するはずです。
4.新しいリポジトリを含めたパッケージインデックスを更新します:
5.Logstashを`apt` パッケージマネージャーを使用してインストールします:
6.Logstashを起動し、起動時に自動的に開始するように設定します:
Logstashは、現在、您的システム上でインストールされて運行中です。
YUMを使用したシステム(CentOS/RHEL)の場合
1.Logstash リポジトリ用の公開署名鍵をダウンロードしてインストールします:
2.Logstash用のリポジトリファイルを`/etc/yum.repos.d/`に作成します。たとえば、名前を`logstash.repo`にしてファイルを作成します。以下の内容をコピーと貼り付けることでファイルを作成し、内容を更新することができます:
リポジトリは使用できる状態になりました。
3.YUM パッケージマネージャーを使用して Logstash をインストールします:
4.Logstashを起動し、起動時に自動的に開始するように設定します。
Logstashは、現在、您的系统上にインストールされて运行中です。
手順2 – Open Search 出力プラグインのインストール
OpenSearch 出力プラグインをインストールするには、以下のコマンドを実行します。
このlogstash-output-opensearch プラグインリポジトリにて、プラグインに関する詳細情報を見つけることができます。
手順3 – Logstashを設定してNginxログをOpenSearchに送信する
Logstashのパイプラインは、入力、フィルタ、出力の3つの主要な段階で構成されています。Logstashのパイプラインは、プラグインを使用しています。コミュニティのプラグインを使用するか、自作しても構いません。
- 入力:この段階で、さまざまなソースからデータを集めます。Logstashは、ログファイル、データベース、メッセージ队列、クラウドサービスなどのデータ源を処理するための多くの入力プラグインをサポートしています。
- フィルタ:この段階では、入力段階で集めたデータを処理し、変換します。フィルタは、データを修正、豊かにする、構造化することで、分析するのにより有用で、簡単にすることができます。
- 出力: この段階では、処理されたデータを目的地に送信します。目的地には、データベース、ファイル、OpenSearchのようなデータストアが含まれます。
今はパイプラインを作成しましょう。
1./etc/logstash/conf.d/nginx-to-opensearch.conf
に以下の内容でLogstash設定ファイルを作成してください:
以下を置き換えてください:
OpenSearch-Hostname
をあなたのOpenSearchサーバのホスト名に、<your_password>
をあなたのOpenSearchのパスワードに置き換えてください。- 2.Logstashを再起動して新しい設定を適用します:
3.Logstashのログを確認して、正しく処理とデータの送信が行われていることを確認します:
4.nginx-to-opensearch.conf
設定の詳細
INPUT
Nginx LogsPaths/var/log/nginx/access.log
(アクセスログ用)/var/log/nginx/error.log
(エラーログ用)Start Positionbeginning
– ログファイルの先頭から読み込むSincedb Path/dev/null
– 連続的読み込みの追跡を無効にしますTags["nginx_access"]
(アクセスログ用)["nginx_error"]
(エラーログ用)
注意: Logstashサービスが入力パスにアクセスできるようにしてください。
FILTER
filter
ブロックは、タグに基づいてログを処理します。
ログ処理:
アクセスログ:
grok
フィルターを使用して、アクセスログのフォーマットを解析し、client_ip
、timestamp
、method
、request
、http_version
、response
、bytes
、referrer
、user_agent
などのフィールドを抽出します。
元のmessage
と特定のメタデータフィールドを削除します。
エラーログ:
nginx_error
タグをチェックし、grok
フィルターを適用して、timestamp
、level
、pid
、tid
、error_message
などのフィールドを抽出します。
また、message
とメタデータフィールドを削除します。
OUTPUT
output
ブロックは、タグに基づいてイベントをOpenSearchにルーティングします。
OpenSearchにルーティング:
アクセスログとエラーログの両方について、次の内容を指定します。
Hosts: OpenSearchインスタンスのURL。
User: 認証用のdoadmin
。
Password: OpenSearchのパスワード。
Index:
アクセスログ用のnginx_access-%{+YYYY.MM.dd}
エラーログ用のnginx_error-%{+YYYY.MM.dd}
SSL設定: SSLと証明書の検証を有効にします。
ステップ 4 – OpenSearchの設定
1.Webブラウザを開き、OpenSearch DashboardのURLにアクセスしてください:
`OpenSearch-Hostname`をあなたのOpenSearchサーバーのホスト名に置き換えてください。
2.インデックスパターンを作成します。
a. 左側のナビゲーションバーにある`管理 > ダッシュボード管理 > インデックスパターン`に移動してください。
b. 右上角の`インデックスパターンを作成`をクリックしてください。
c. Logstashによって作成されたすべてのインデックスに一致するインデックスパターンとして`nginx_access-*`または`nginx_error-*`を入力し、`次のステップ`をクリックしてください。
d. `インデックスパターンを作成`をクリックしてください。
3.インデックスパターンが正常に作成され、インデックスパターン一覧に表示されていることを確認してください。
4.左側のナビゲーションバーにある`Discover`に移動し、作成したインデックスパターン(`nginx_access-*`または`nginx_error-*`)を選択してください。ログ記録が表示され、正しくインデックスされていることを確認してください。
5.的可視化とダッシュボードを作成します。詳細はOpenSearchでダッシュボードを作成する方法を参照してください。
トラブルシューティング
接続性を確認する
LogstashがOpenSearchに接続できることを確認するために、接続性をテストすることができます。
以下を置き換えます。
OpenSearch-Hostname
をお使いのOpenSearchサーバーのホスト名に置き換えます。<your_password>
をお使いのOpenSearchのパスワードに置き換えます。
データの取り込み
以下のcurlコマンドを使用して、データがOpenSearchに正しく索引されていることを確認できます。
以下を置き換えます。
OpenSearch-Hostname
をお使いのOpenSearchサーバーのホスト名に置き換えます。<your_password>
をお使いのOpenSearchのパスワードに置き換えます。
ファイアウォールとネットワーク設定
LogstashとOpenSearchの間で25060
ポートを通るトラフィックを許可するファイアウォールルールとネットワーク設定を確認してください。
結論
このガイドで、あなたはLogstashを設定し、NginxログをOpenSearchに集めて送信する方法を学びました。
Linuxディストリビューションに応じてapt
またはyum
パッケージマネージャーを使用し、LogstashをDropletに設定し、Nginxログを正しく解析しOpenSearchに送信するように設定したLogstash構成ファイルを作成し調整しました。その後、OpenSearchダッシュボードでインデックスパターンを設定し、ログが正しく索引され、分析に使用できるように表示されていることを確認しました。これらの手順が完了したら、LogstashがNginxログを集めてOpenSearchに送信する機能の設定が完了します。この設定で、OpenSearchの強力な検索と視覚化ツールを使用し、サーバーログを分析することができます。
何か問題が発生した場合は、提供されたトラブルシュootingのヒントを確認し、LogstashおよびOpenSearch 文書についての詳細な情報を参照してください。定期的な監視は、ログインスightsシステムを smoothに運営し、効果的に管理することを助けます。
Source:
https://www.digitalocean.com/community/tutorials/forward-nginx-logs-to-opensearch-using-logstash