filebeatを使用してelasticsearchにログを収集する

3660 ワード

1.引用
  • 環境:
  • Elastic stackバージョン:6.5.1次のコンポーネント--elasticsearchを使用  --kibana --filebeat
    サービスログ保存ディレクトリ:/home/liujg/dev/crush-backend-cpp/crush/gateway/bin/Debug.rotationログファイルが複数あり、ログファイル名に「.log」が接尾辞されている.ログ記録フォーマット:行番号|タイムスタンプ|プロセスID|スレッドID|ログレベル|メッセージ内容
     
  • ターゲット
  • filebeatを利用してサービスログを1つずつ抽出し、elasticsearchに書き込み、kibanaで表示する.
    2.filebeatの構成
    filebeat構成/etc/filebeat/filebeat.ymlの内容は次のとおりです.
    filebeat.inputs:
    - input_type: log
      paths:
        - /home/liujg/dev/crush-backend-cpp/crush/gateway/bin/Debug/*.log
      tags: ["my-service", "hardware", "test"]
      fields: {project: "myproject", instance-id: "574734885120952459"}
      
    output.elasticsearch:
      hosts: ["localhost:9200"]
      pipeline: "test-pipeline"

    paths:抽出されたログファイル、すべての*.logファイルtags、fields:ログクエリーのフィルタリングに使用されます.ログのサービスタイプ、サービスインスタンスを区別するために使用できます.(fieldsを使用する傾向があります)
    tagsとfieldsの違いは参考になる(権威の定説は見られず、参考に供するのみ)Tags vs Fieldshttps://discuss.elastic.co/t/tags-vs-fields/24014
    複数のinput.それぞれに独自のfieldsがあり、tags.(1つのfilebeatが複数のサービスを処理できるログ)Configure inを構成できます.putshttps://www.elastic.co/guide/en/beats/filebeat/master/configuration-filebeat-options.htmlhttps://www.elastic.co/guide/en/beats/filebeat/master/filebeat-input-log.html
    3.elasticsearchデータの消去
    操作elasticsearchインデックス.
  • 索引の表示
  • $curl 'localhost:9200/_cat/indices?v'

    内容を返します.
    health status index                     uuid                   pri rep docs.count docs.deleted store.size pri.store.size
    green  open   .kibana_1                 3lHZbBZDTYKJbw6dT0wWBQ   1   0          3            0      9.1kb          9.1kb
    yellow open   filebeat-6.5.1-2018.12.04 NxDy6YLPTb-dWC8ldOlD_w   3   1          2            0     12.4kb         12.4kb
  • インデックス削除
  • 指定したインデックスを削除します.
    $ curl -XDELETE localhost:9200/filebeat-6.5.1-2018.12.04

    file-*インデックスを削除した後、ブラウザでkibanaを表示し、ログが空になったことを示すようにLooks like you don't have any logging indicesにプロンプトします.
    4.ログの生成
    起動プログラムはログファイルを生成します.ファイル名は2018-12-05_です.0000.log. 内容は次のとおりです.
    1|2018-12-05, 17:12:16.823414|8020|140509537564864|debug|A debug severity messag
    2|2018-12-05, 17:12:16.833594|8020|140509242611456|error|connect to host:192.168.88.135port:3079failed.error:Connection refused

    5.検証
    検証データはelasticsearch.apiとkibanaでそれぞれ表示されます.
  • 索引の表示
  • curl 'localhost:9200/_cat/indices?v'

    内容を返します.
    health status index                     uuid                   pri rep docs.count docs.deleted store.size pri.store.size
    green  open   .kibana_1                 3lHZbBZDTYKJbw6dT0wWBQ   1   0          3            0      9.1kb          9.1kb
    yellow open   filebeat-6.5.1-2018.12.05 tFzyRYRcTPKVRnVY0ekzaA   3   1          2            0      6.7kb          6.7kb

    kibanaページを開くhttp://192.168.21.190:5601
    ログを表示すると、新しいログの内容が表示されます.抽出されたフィールド、tags、fieldsは、発見ページでフィルタできます.
    6.索引照会コマンド
  • クエリーインデックス
  • すべて検索
    $ curl 'localhost:9200/filebeat-6.5.1-2018.12.04/_search?q=*&pretty'

    q=*はクエリーのすべての内容を表します.pretty:きれいなフォーマット
  • 統計
  • $ curl 'localhost:9200/filebeat-6.5.1-2018.12.04/_count?pretty'
    $ curl 'localhost:9200/filebeat-*/_count?pretty'
  • 条件照会
  • $ curl -H'Content-Type: application/json'  -XGET 'http://localhost:9200/filebeat-6.5.1-2018.12.04/_search?pretty=true' -d'
    {
      "query" : { "match" : { "message" : "info  " }}
    }
    '