コンピュータのパケットをElasticSearchにマッピング
6204 ワード
フレキシブルリサーチでパケットを収集し、リアルタイムで保存したいです.
だから私はワイルシャーク指令にtsharkという機能があることに気づいた.
tsarkに関連するコマンドは、このサイトで表示できます.
今回はリアルタイムではなく、サンプルでデータを生成してから挿入するプロセスです.
端末を開き、次のコマンドを入力します.
その後、パケットが収集されている様子を見ることができます.私はまず10個のパケットを集めてテストを行いました.
まずESを開く
次にbulk APIを使用してデータを挿入してみます.
これで、jsonのデータに変更し、typeフィールドを削除し、bulkAPIを使用する必要があります.
viエディタを開いてjsonデータを次のように変更しました.
postmanで確認するのは簡単なので、次のようにしました.
その結果,このように入れられた2つのパケットが確認された.
パソコンをmacbookに変えたのに、インストールされていません.できるだけ早くインストールします.
次のポスターで確認しましょう! キー溝または設定 ElasticSearchにリアルタイムでデータを収集させる(Beats、Logstashを使用)
だから私はワイルシャーク指令にtsharkという機能があることに気づいた.
tsarkに関連するコマンドは、このサイトで表示できます.
今回はリアルタイムではなく、サンプルでデータを生成してから挿入するプロセスです.
1.t-sharkコマンドの使用
端末を開き、次のコマンドを入力します.
brew install wireshark
tshark -T ek -j "http tcp ip" -P -c 10> file.json
macos規格であるためbrewコマンドを使用しました.その後、パケットが収集されている様子を見ることができます.私はまず10個のパケットを集めてテストを行いました.
2.ElasticSearchを開く
まずESを開く
elasticsearch
このように開くとpostmanを実行してインデックス情報を送信します.3.パケットデータインデックス情報マッピング
http://localhost:9200/_template/packets
{
"template": "packets-*",
"mappings": {
"dynamic": "false",
"properties": {
"timestamp": {
"type": "date"
},
"layers": {
"properties": {
"frame": {
"properties": {
"frame_frame_len": {
"type": "long"
},
"frame_frame_protocols": {
"type": "keyword"
}
}
},
"ip": {
"properties": {
"ip_ip_src": {
"type": "ip"
},
"ip_ip_dst": {
"type": "ip"
}
}
},
"udp": {
"properties": {
"udp_udp_srcport": {
"type": "integer"
},
"udp_udp_dstport": {
"type": "integer"
}
}
}
}
}
}
}
}
このように、以下の結果を以下に示す.4.bulkAPIとして挿入
次にbulk APIを使用してデータを挿入してみます.
curl -s -H "Content-Type: application/x-ndjson" -XPOST "localhost:9200/_bulk" --data-binary "@file.json"
しかし、このエラーが発生しました.{
"index":{
"_index":"packets-2021-08-12",
"_type":"doc",
"_id":"7YJ9OXsBmTkfGvNThnG9",
"status":400,
"error":{
"type":"illegal_argument_exception",
"reason":"Rejecting mapping update to [packets-2021-08-12] as the final mapping would have more than 1 type: [_doc, doc]"
}
}
}
このエラーは以前ES問題についてシュートしたエラーです.7バージョンからタイプは必要ありません(6バージョンからdocのみサポートされ、7バージョンから同じなので消えます).タイププロパティによって競合が発生します.これで、jsonのデータに変更し、typeフィールドを削除し、bulkAPIを使用する必要があります.
viエディタを開いてjsonデータを次のように変更しました.
{"index":{"_index":"packets-2021-08-12"}}
{"timestamp":"1628716896960","no_":"1","time":"0.000000","source":"X.X.X.X","destination":"X.X.X.X","protocol":"TCP","length":"54","info":"443 → 58739 [ACK] Seq=1 Ack=1 Win=775 Len=0"}
その後、bulk APIを再度使用すると、次の結果が得られます.5.SearchAPIを使用してデータを検証する
postmanで確認するのは簡単なので、次のようにしました.
その結果,このように入れられた2つのパケットが確認された.
6.Kibanaによるデータ検証
パソコンをmacbookに変えたのに、インストールされていません.できるだけ早くインストールします.
brew install elastic/tap/kibana-full
その後kibanaを実行します.うん.基本的にダッシュボードを設定する内容は1つもないので、macbookを基準にキーボードを設定する内容を個別に位置決めします.次のポスターで確認しましょう!
Reference
この問題について(コンピュータのパケットをElasticSearchにマッピング), 我々は、より多くの情報をここで見つけました https://velog.io/@munang/ElasticSearch에-내-컴퓨터-패킷-데이터-매핑テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol