ホームページ  >  記事  >  システムチュートリアル  >  Elasticsearchの基本フレンドLogstashについて詳しく解説

Elasticsearchの基本フレンドLogstashについて詳しく解説

WBOY
WBOYオリジナル
2024-07-18 06:56:47938ブラウズ

Elasticsearchの基本フレンドLogstashについて詳しく解説

Logstash は、データ送信、フォーマット処理、フォーマットされた出力を実現できる強力なデータ処理ツールであり、ログ処理によく使用される強力なプラグイン機能を備えています。

1. 原則

入力

データはファイル、ストレージ、データベースから抽出できます。入力には 2 つのオプションがあります。1 つはフィルタリングとプルーニングのためにデータを渡すことです。もう 1 つは Output

に直接与えられます

フィルター

データを動的に変換および解析する機能。データ情報はカスタマイズされた方法でフィルタリングおよびプルーニングできます

出力

多数の出力オプションを提供することで、必要な場所にデータを送信でき、多数のダウンストリームのユースケースを柔軟に実現できます。

Elasticsearchの基本フレンドLogstashについて詳しく解説

2. インストールと使用
1.インストール
リーリー
2.Logstash設定ファイル
リーリー
3.Logstash の JVM 設定ファイル

Logstash は Java に基づいて開発されたプログラムであり、JVM で実行する必要があります。jvm.options を設定することで JVM に設定できます。たとえば、メモリの最大値と最小値、ガベージ クリーニングのメカニズムなどです。ここでは、最もよく使用されるもののうち 2 つだけを紹介します。

JVM のメモリ割り当ては大きすぎても小さすぎてもいけません。大きすぎるとオペレーティング システムの速度が低下します。始めるには小さすぎます。

リーリー
4. 最も単純なログ収集構成

テスト用に httpd をインストールし、Apache の accless.log ログ ファイルを収集するように Logstash を構成します

リーリー リーリー
5. 設定ファイルをテストします

Logstash は組み込みコマンドですが、環境変数には含まれていないため、このコマンドを使用するには絶対パスのみを使用できます。

リーリー
6. logstash を開始します

現在のセッションで logstash を実行した後、このセッションを一時的にセッション 1 として閉じず、新しいウィンドウをセッション 2 として開きます。 リーリー

開始後、セッション2でcurlコマンドを使用してテストします

リーリー

その後、前のセッション 1 に戻ると出力情報が表示されます

リーリー

この時点で、最も単純な Logstash 構成が完了しました。ここでは、収集された直接出力がフィルタリングやプルーニングなしで収集されます。

3. Elasticsearch と Logstash

上面的配置时Logsatsh从日志文件中抽取数据,然后输出至屏幕。那么在生产中往往是将抽取的数据过滤后输出到Elasticsearch中。下面讲解Elasticsearch结合Logstash

Logstash抽取httpd的access.log文件,然后经过过滤(结构化)之后输出给Elasticsearch Cluster,在使用Head插件就可以看到抽取到的数据。(Elasticsearch Cluster与Head插件搭建请查看前两篇文章)

Elasticsearchの基本フレンドLogstashについて詳しく解説

配置Logstash

    vim /etc/logstash/conf.d/test.conf
    input {
    file {
        path => ['/var/log/httpd/access_log']
        start_position => "beginning"
    }
    }
    filter {
    grok {
        match => {
            "message" => "%{COMBINEDAPACHELOG}"
        }

        remove_field => "message"   
    }
    }
    output {
    elasticsearch {
        hosts => ["http://172.18.68.11:9200","http://172.18.68.12:9200","http://172.18.68.13:9200"]
        index => "logstash-%{+YYYY.MM.dd}"
        action => "index"
        document_type => "apache_logs"
    }
    }

启动Logstash

     /usr/share/logstash/bin/logstash -t -f /etc/logstash/conf.d/test.conf       # 测试配置文件
    Configuration OK
     /usr/share/logstash/bin/logstash  -f /etc/logstash/conf.d/test.conf         # 启动Logstash

测试

每个执行10次172.18.68.14,位Logstash的地址

    curl 127.0.0.1
    curl 172.18.68.14

验证数据

使用浏览器访问172.18.68.11:9100(Elastisearch 安装Head地址,前面文章有讲)

选择今天的日期,就能看到一天内访问的所有数据。

Elasticsearchの基本フレンドLogstashについて詳しく解説

四、监控其他

监控Nginx日志

仅仅列了filter配置块,input与output参考上一个配置

    filter {
        grok {
                match => {
                        "message" => "%{HTTPD_COMBINEDLOG} \"%{DATA:realclient}\""
                }
                remove_field => "message"
        }
        date {
                match => ["timestamp","dd/MMM/YYYY:H:m:s Z"]
                remove_field => "timestamp"
        }
    }

监控Tomcat

仅仅列了filter配置块,input与output参考上一个配置

    filter {
        grok {
                match => {
                        "message" => "%{HTTPD_COMMONLOG}"
                }
                remove_field => "message"
        }
        date {
                match => ["timestamp","dd/MMM/YYYY:H:m:s Z"]
                remove_field => "timestamp"
        }
    } 
五、Filebeat

现在已经搭建成在节点安装Logstash并发送到Elasticsearch中去,但是Logstash是基于Java开发需要运行在JVM中,所以是一个重量级采集工具,仅仅对于一个日志采集节点来说使用Logstash太过重量级,那么就可以使用一个轻量级日志收集工具Filebeat来收集日志信息,Filebeat同一交给Logstash进行过滤后再Elasticsearch。这些在接下来的文章在进行讲解,先放一张架构图吧。

Elasticsearchの基本フレンドLogstashについて詳しく解説

以上がElasticsearchの基本フレンドLogstashについて詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。