使用Elasticsearch进行日志收集和可视化(第一部分)

首先

我們四個人(長谷川、飯島、韓、大橋)將通過從生日誌中輸出的各種數據中提取並可視化所需的信息,以確認可以在各種故障檢測等方面加以利用。

作为本季度(直至12月底)的验证,通过收集并聚合“Windows事件日志中的登录成功/失败的日志”(以便进行可视化),以便能够检测到非法访问的可疑行为。具体而言,我们将验证从日志收集到可视化的流程如下:
1. 日志收集 > 存储 > 可视化的各个工具将被引入Linux系统中。因此,需要将Windows事件日志传输到Linux系统中(日志输出:Winlogbeat)。
2. 为了加快日志搜索和聚合的速度,将收集到的日志进行处理(整理)并传递给日志存储工具(日志收集:Logstash)。
3. 将日志存储工具和可视化工具进行协作,以实现对可疑非法访问的可视化(日志存储:Elasticsearch,日志可视化:Kibana)。

关于日志搜索工具Elasticsearch

这个日志搜索工具将使用Elastic公司在开源软件的基础上开发的全文搜索引擎Elasticsearch。Elasticsearch具有以下特点(引自官方网站:https://www.elastic.co/jp/products/elasticsearch/service):
1)直观且灵活,配置和部署非常简单,设计功能强大且易于使用。
2)具备卓越的功能,提供了仅适用于Elastic产品/服务的杰出功能,如机器学习、绘图、APM、索引生命周期管理等。
3)适用于各种用例,可以组合各种数据以增强安全性和可监视性,并应对关键用例。

在说明将数据存储到Elasticsearch之前,我们将解释一下Elasticsearch中使用的术语和数据类型。

在Elasticsearch中使用的术语

由于「Elasticsearchにおいて使用される用語」与一般的RDB术语不同,我们将使用RDB术语对每个术语进行解释和对比来说明。

    • index:データを保存する領域。RDBの「Database」や「Table」にあたる。以前は「_type」でindex内をさらに領域に分けることができましたが、現在は廃止されています。

 

    • field:列を示す。RDBの「column」にあたる。

 

    document:行を示す。RDBの「record」にあたる。

Elasticsearch的数据类型是什么?

由于Elasticsearch的“数据类型”种类繁多,本次重点将介绍与所用数据类型相关的其他数据类型。

    • date:日時を格納する。

 

    • integer:32ビットの符号付整数で、値の範囲は「-2147483648 ~ 2147483647」。                一般的には9桁以下の数値を格納するために用いられる。

 

    • short:16ビットの符号付整数で、値の範囲は「-32768~32767」。             一般的には4桁以下の数値を格納するために用いられる。integer型よりも容量節約ができる。

 

    • keyword:文字型のデータを格納する。完全一致検索に利用可能。                 (正規表現などを利用することで部分一致検索も可能)

 

    • text:文字型のデータを格納する。あいまい検索に利用可能。(1文字異なる単語の検索など)

 

    ip:IPv4/IPv6を格納する。

Elasticsearch搜索和聚合

在Elasticsearch中,我们为每个收集的项目设置“可搜索性”和“可汇总性”。

    • 検索可否:指定した項目での検索可否を定義します。

 

    集計可否:指定した項目で「可視化」するための集計可否を定義します。

另外,搜索和汇总功能默认是启用的。如果要禁用它们,您需要明确地设置为“false”。通过禁用可以节省数据容量。

关于此次收集的数据的数据结构

根据我们所讲述的内容,我们将根据此次收集的数据决定如何以何种”数据结构”保存在Elasticsearch中。

    • 収集する対象(ログファイル名と項目名) → Windowsログ「セキュリティ」から以下の表の項目を取得します。

 

    • 収集する項目のデータ型 → 以下の表のデータ型の通りです。

 

    • 収集する項目についての「検索/(可視化するための)集計」可否 → 以下の表の通り、全項目とも「検索/集計」を実施します。

 

    index名:logon_event.log
項目名field名データ型検索
可否集計
可否備考日付と時刻datedate○○
イベントIDevent_idshort○○4桁の数値のためshort型を選択する。ログオン
タイプlog_on_typeshort○○1~2桁の数値のためshort型を選択する。アカウント名accountkeyword○○ログ内の「ログオンが失敗したアカウント」
というブロック内の値を使う。アカウント
ドメインaccount_domainkeyword○○ログ内の「ログオンが失敗したアカウント」
というブロック内の値を使う。ソース
ネットワーク
アドレスnetwork_addressip○○

完成了上述的决定后,我们将继续着手建立日志收集的环境。在这项工作中,我们计划在12月底前共三次进行输出。下次输出预计在12月中旬左右进行。

广告
将在 10 秒后关闭
bannerAds