この記事の目次
chevron_right
時系列データ
chevron_right
ElasticSearchにおける時系列データ
chevron_right
セキュリティ運用におけるログ
chevron_right
SlasticStackとは?
chevron_right
ElasticStackのコンポーネント
chevron_right
logstashとbeats
chevron_right
OpenDistro for ElasticSearch(↗)
chevron_right
ElasticSearchの設計における考え方
chevron_right
ノードの役割
chevron_right
全文検索と時系列
chevron_right
スキーマレス
chevron_right
IndexとIndex Pattern
chevron_right
ログ取り込みにおけるポイント
chevron_right
ETL処理とは
chevron_right
パース処理とエンリッチ処理
chevron_right
ログの加工処理が実行される箇所
chevron_right
Logstashはrubyで書かれているので
chevron_right
不要なデータの削除
chevron_right
Dead letter Queue
chevron_right
参考
時系列データ
- どんどん時間ともに蓄積されていくもの
ElasticSearchにおける時系列データ
- log stashのbeatsから取り込まれた時系列データは自動的にローテートしてしてくれる
- log stashのbeatsが自動的にindexを切り替えてくれる
- ただしUTC時間なので、日本だと朝9時にINDEXが切り替わるので注意
セキュリティ運用におけるログ
- 同じログでも、用途に応じて、以下のような分類ができる
- フォレンジック業務
- ハンティング業務
- 監査業務
ESは、シームの監視業務に向いている
SlasticStackとは?
ESのオープンソースのプロダクト群
- beats
- elastic search
- log stash
- kibana
をひとまとめに「SlasticStack」という。
ElasticStackのコンポーネント
- ElasticSearchにログを貯め込む
- kibanaでみる
- beats
- metric beatなど、複数のプロダクト群があり、ログデータを此奴等が作成
- log stash:データの加工
logstashとbeats
- logstash
- Java。メモリ食う
- 多種多様なソースからのデータ取り込み
- 多種多様なフィルタによるデータ加工
- 多種多様な保存作にデータ出力
- beats
- Go。メモリ食わない
- 特定ソースに特化したデータ取り込み
- データ保存先は限定的(基本はElasitcSearch)
- サーバにエージェント的な用途で導入
OpenDistro for ElasticSearch(↗)
AWSが公開している、ElasticSearchの有償機能を無償で使えるオープンソースプロダクト。
セキュリティなどの有償のものが無償で使えるらしい?
ElasticSearchの設計における考え方
ノードの役割
- matserノード
- データを保持したりするData node
- ML用のMLnode
- コーディネーティングNode
などで分ける
全文検索と時系列
- 全文検索は、メモリにデータが残せる状態で設計を行う
- 時系列データは常にデータが増えるので、メモリにキャッシュが残せないため、ディスクのIO性能を重視する
スキーマレス
Dynamic fild mappingがある程度スキーマがなくてもやってくれるが、
ちゃんとしておいたほうが、かゆいところに手が届く
IndexとIndex Pattern
Index patternはIndexをつなぐためのもの。
それぞれIndexのfieldが異なっていても、Index Patternで共通化し、補い、
Kibanaで表示してくれる。
ログ取り込みにおけるポイント
ETL処理とは
Extract Transform Load。
ESだとLog stashがやってくれる。
パース処理とエンリッチ処理
- パース処理
- ログデータの中身の解析
- CSVとかJSONとかを見分ける
- ログデータの中身の解析
- エンリッチ処理
- IPアドレスからホスト名にしたい
- IPアドレスがブラックリストに入っているならフラグを立てるなど
ログの加工処理が実行される箇所
- 前処理(Pythonなどでやる)
- Logstashが自動でやってくれる
- 後処理
ElasticSearchでは、前処理(Pythonなどでやる)でデータ整形するのがベスト。
Logstashはrubyで書かれているので
rubyフィルターと言うものでデータ整形を拡張できる
不要なデータの削除
- drop
- mutate filterのremove feild
Dead letter Queue
取りこぼしたデータをファイルに書き出しておける機能。
参考
https://www.slideshare.net/hibinohisashi/ss-154681947
この記事を書いた人
Nな人(えぬなひと)。
Nは本名から取っています。
Laravelが大好きなPHPerで、WEBを作るときはLaravelを技術スタックに絶対推すマン。
PHP、Pythonと、昔はperlを書いていたP言語エンジニア。
最近はNimを書いたりしています。
Nは本名から取っています。
Laravelが大好きなPHPerで、WEBを作るときはLaravelを技術スタックに絶対推すマン。
PHP、Pythonと、昔はperlを書いていたP言語エンジニア。
最近はNimを書いたりしています。