
ElasticsearchでSynology LOGを収集し、Grafanaで視覚化する
まぁ, 別の投稿では、ログを収集して視覚化し、インフラストラクチャで何が起こっているかを理解する方法について説明しています, 今日は、SynologyのログをLogstashに送信し、それをElasticsearchに保存し、最後にGrafanaで視覚化する方法を確認するドキュメントがあります.
だから, ゴムでできている猿に杖! (私はとても年をとっています, ヨーグルト…) 行く! Synologyの製造元からNASがあり、その中で何が起こっているのかを知りたい場合, 一番いいのは、常に丸太に身を投げることです, しかし、何行も何行もテキストを読むのはちょっと退屈です, 常にリアルタイムで進行するわけではない, 理解しにくいと感じるもの… まあ、そういうことです (その他) Elastic Stackがあります, SynologyがログをLogstashに送信する場所, そこで私たちは彼らを受け入れ、治療します, 関心のある情報をさまざまなフィールドに分割し、Elasticsearchに保存します. データを視覚化するために、いつでもKibanaを使用できます, しかし、私はGrafanaのファンです, ごめんなさい, だから、それがどんな選択であっても, この収集されたデータをさまざまな形式で視覚化できます, テーブル内, グラフィック, チーズ, 世界地図… これは、Synologyで何が起こるかを解釈する方法です, 誰がアクセスした、またはアクセスしようとしたか, そしてそれが何をするのか… いつものように見ることができます, リアルタイムまたは履歴モードでクエリを実行する. 開始!
まず、明らかにElastic Stackパーツをインストールする必要があります, これまでの経緯ログスタッシュ, エラスティックサーチ そしてキバナ; 次に、ログをLogstashに送信するようにSynologyに指示することになります, 私たちの選択の港に, 私たちが発明します, から “レコードセンター」 > “ログの送信” > 私たちは、 “syslog サーバーへのログの送信”, LogstashのIPと、選択したポートとTCPまたはUDPを示します. そして、変更を適用します.
インプット { TCPの { タイプ => "シロヤ" ポート => "1516" タグ => ["シロヤ"] } } フィルター { もし [種類] == "シロヤ" { グロック { マッチ => { "メッセージ" => [ "^<%{ポシント:syslog_pri}>%{SYSLOGタイムスタンプ:syslog_timestamp} %{ホスト名:host_title} WinFileService イベント: %{言葉:アクション}, パス: %{貪欲なデータ:パス}, ファイル/フォルダ: %{言葉:path_type}, 大きさ: %{BASE10NUM:file_size} %{言葉:file_size_unit}, 利用者: %{ユーザー名:ユーザー名}, IPアドレス: %{IPアドレス:src_ip}", "^<%{ポシント:syslog_pri}>%{SYSLOGタイムスタンプ:syslog_timestamp} %{ホスト名:host_title} 接続: 利用者 \[%{ユーザー名:ユーザー名}\] 差出人 \[%{ホスト名:チーム}\(%{IPアドレス:src_ip}\)\] 経由 \[%{日付:議定書}\] %{貪欲なデータ:メッセージ} \[%{日付:shared_folder}\]", "^<%{ポシント:syslog_pri}>%{SYSLOGタイムスタンプ:syslog_timestamp} %{ホスト名:host_title} 接続: 利用者 \[(%{ユーザー名:ユーザー名})?\] 差出人 \[%{IPアドレス:src_ip}\] %{貪欲なデータ:メッセージ}", "^<%{ポシント:syslog_pri}>%{SYSLOGタイムスタンプ:syslog_timestamp} %{ホスト名:host_title} 接続[%{イント:Id_proc}\]: 制: %{貪欲なデータ:メッセージ}", "^<%{ポシント:syslog_pri}>%{SYSLOGタイムスタンプ:syslog_timestamp} %{ホスト名:host_title} 制 %{ユーザー名:ユーザー名}: %{貪欲なデータ:メッセージ}" ] } } } } アウトプット { もし ([種類]=="シロヤ"){ エラスティックサーチ { インデックス => "Synology の-%{+YYYYです。MM.ddの}" hosts=> "DIRECCION_IP_ELASTICSEARCH:9200" } } }
次に、Logstashに移動します, そして、そこで、受信したさまざまなログのさまざまなフィールドを分離するためのフィルターを作成できます. いつものように改善可能, しかし、これらのgroksは、少なくともバージョン付きのSynology DSMにとっては良いでしょう 7.0. そこで、設定ファイルを作成しました, 例えば、「/etc/logstash/conf.d/synology.conf」’ そして、このコンテンツで私たちは何かをします.
設定ファイルが作成されたら, Logstashサービスを再起動してリロードすることを忘れないでください. その後はいつものように, Kibanaに移動し、データが入ってきたら「Management」に進むことができます > 「スタック管理」 > 「キバナ」 > 「インデックスパターン」 > インデックスパターンを作成する「インデックスパターンを作成」, 私が言ったように, いつも通り (この場合、引用符は付けません) 'synology-*' と入力すると、データはすでに Elasticsearch に正しく保存されています. 今、私たちはから接続することができました “解析学” > Synologyインデックスを「検出」し、データを収集していることを視覚化します.
それから, Kibana でインデックスを作成した後, ここで、Grafanaで、ElasticsearchとSynologyインデックスを指す「データソース」を作成する必要があります. それから、それはあなたの想像力を暴走させます, 異なるダッシュボードでダッシュボードを作成する, 視覚化するさまざまなデータを使用, スタイルの1つ サンキー 送信元/宛先 IP と送信されているトラフィックを表示する, 列形式で, で行き詰り 特定のデータを表示するため (正しいログインなど), 間違った, 接続, 作成されるファイル, 修飾する, 鉏, アクションを実行するユーザー...