需要:Ubuntuの収集システムログ、送信されlogstashする、そのデータはlogstashのelasticsearchに伝達され、最終的にkibana表示ログデータによる。
Filebeatシステムモジュール
Filebeatモジュールは、共通ログ形式、解析と可視化の収集を簡素化することができます。1つ以上のログファイル(ファイルセット)組成物(nginxのために、デフォルトのaccess.logとerror.logファイルである)によって一般的なモジュール(例えば、nginxのログ用)。ここでは、Filebeat使用することができるシステムモジュールの完全なUbuntuのシステムログ。
次の手順で設定システムモジュールの導入(すでにFilebeatをインストールした場合)。
モジュールシステムを有効
Filebeatサポートモジュールはデフォルトで有効になっていません、私たちは以下の方法を使用して、モジュールを有効にすることができます。moudles enableコマンドを実行し、filebeatプログラムを検索:
$ sudoをする ./filebeatモジュールは、システムを有効にします
上記コマンドは、現在有効になっているモジュールを表示するために、次のコマンドを使用して、システムモジュールをイネーブルにします。
$のsudoの ./filebeatモジュールリスト
データを送信するにはlogstashする
Filebeat Logstashにログの行を送信するように設定。これを行うには、コンフィギュレーション・ファイルfilebeat.ymlにElasticsearch出力を無効にし、Logstash出力を有効にします。
#1 output.elasticsearch: #hosts:[ " xxx.xxx.xxx.xxx:9200 " ] output.logstash: ホスト:[ " xxx.xxx.xxx.xxx:5044 " ]
filebeatサービスを再起動します
$ sudoを systemctl再起動filebeat.service
データ処理設定Logstash
logstash Filebeatシステムモジュールは、送信されたデータやいくつかの困難を受け入れましょう、少なくとも我々は少し複雑に見える必要がある設定を:
入力{ ビート{ ポート => 5064 ホスト => " 0.0.0.0 " } } フィルタ{ なら [ファイルセット] [モジュール] == " システム" { なら [ファイルセット] [名] == " AUTH " { GROK { マッチ = > { " メッセージ" => "%{SYSLOGTIMESTAMP:[システム] [AUTH] [タイムスタンプ]}%{SYSLOGHOST:[システム] [AUTH] [ホスト名]}のsshd(?:\ [%{POSINT:[システム] [AUTH] [PID]} \] )?:%{DATA:[システム] [AUTH] [SSH] [イベント]}%{DATA:[システム] [AUTH] [SSH] [方法]}(無効なユーザーのために)%{DATA:[システム] [AUTH] [ユーザー]}%から{IPORHOST:[システム] [AUTH] [SSH] [IP]}ポート%{NUMBER:[システム] [AUTH] [SSH] [ポート]} SSH2(:%{GREEDYDATA。 [システム] [AUTH] [SSH] [署名]})?" " %{SYSLOGTIMESTAMP:[システム] [AUTH] [タイムスタンプ]}%{SYSLOGHOST:[システム] [AUTH] [ホスト名]}のsshd(?:\ [%{POSINT:[システム] [AUTH] [PID] } \])?:%{DATA:[システム] [AUTH] [SSH] [イベント]}ユーザ%{DATA:%から[システム] [AUTH] [ユーザー]} {IPORHOST:[システム] [AUTH] [ SSH] [IP]} " "%{SYSLOGTIMESTAMP:[システム] [AUTH] [タイムスタンプ]}%{SYSLOGHOST:[システム] [AUTH] [ホスト名]}のsshd(?:\ [%{POSINT:[システム] [AUTH] [PID]} \] )?:識別文字列を受信しなかった%から{IPORHOST:[システム] [AUTH] [SSH] [dropped_ip]} " " %{SYSLOGTIMESTAMP:[システム] [AUTH] [タイムスタンプ]}%{SYSLOGHOST:[システム] [AUTH] [ホスト名]}須藤(?:\ [%{POSINT:[システム] [AUTH] [PID]} \])?:\ S *%{DATA:[システム] [AUTH] [ユーザー]}。 (%{DATA:[システム] [AUTH] [須藤] [エラー]};)?TTY =%{DATA:[システム] [AUTH] [須藤] [TTY]}。PWD =%{DATA:[システム] [AUTH] [須藤] [PWD]}。USER =%{DATA:[システム] [AUTH] [須藤] [ユーザー]}。COMMAND =%{GREEDYDATA:[システム] [AUTH] [須藤] [コマンド]} " "%{SYSLOGTIMESTAMP:[システム] [AUTH] [タイムスタンプ]}%{SYSLOGHOST:[システム] [AUTH] [ホスト名]} groupaddの(?:\ [%{POSINT:[システム] [AUTH] [PID]} \] )?:新しいグループ:名前=%{DATA:system.auth.groupadd.name}、GIDは=%{NUMBER:system.auth.groupadd.gid} " " %{SYSLOGTIMESTAMP:[システム] [AUTH] [タイム・スタンプ]}%{SYSLOGHOST:[システム] [AUTH] [ホスト名]}のuseradd(?:\ [%{POSINT:[システム] [AUTH] [PID]} \])?:新しいユーザー:名=%{DATA: [システム] [AUTH] [ユーザー] [名]}、UID =%{NUMBER [追加]:[システム] [AUTH] [ユーザー] [追加] [UID]}、GID =%{NUMBER:[システム] [ AUTH] [ユーザー] [追加] [GID]}、家庭=%{DATA:[システム] [AUTH] [ユーザー] []追加[ホーム]}、シェル=%{DATA:[システム] [AUTH] [ユーザ] [] [シェル]} $を追加" "%{SYSLOGTIMESTAMP:[システム] [AUTH] [タイムスタンプ]}%{SYSLOGHOST:[システム] [AUTH] [ホスト名]}%{DATA:[システム] [AUTH] [プログラム]}(?:\ [%{POSINT [システム] [AUTH] [PID]} \])?:%{GREEDYMULTILINE:[システム] [AUTH] [メッセージ]} " ]} pattern_definitions => { " GREEDYMULTILINE " => " (|の\ n)*。" } remove_field => " メッセージ" } 日{ マッチ => " [システム] [AUTH] [タイムスタンプ] " " MMM dがHH:MM:SS " "MMM DD HH:mm:ssの" ] } のGeoIP { ソース => " [システム] [AUTH] [SSH] [IP] " ターゲット => " [システム] [AUTH] [SSH] [のGeoIP] " } } そう なら [ファイルセット] [名] = = " syslogの" { GROK { マッチ => { " メッセージ" => " %{SYSLOGTIMESTAMP:[システム] [システムログ] [タイムスタンプ]}%{SYSLOGHOST:[システム] [システムログ] [ホスト名]}%{DATA: [システム] [システムログ] [プログラム]}(?:\ [%{POSINT:[システム] [システムログ] [PID]} \])?:%{GREEDYMULTILINE。[システム] [システムログ] [メッセージ]} "]} pattern_definitions => { " GREEDYMULTILINE " => " (|。の\ n)* " } remove_field => " メッセージ" } 日{ マッチ => " [システム] [システムログ] [タイムスタンプ] "、「MMMは、D HH :MM:SS " " MMMはHHを×:MM:SS " ] } } } } 出力{ elasticsearch { ホスト => xxx.xxx.xxx.xxx manage_template =>偽 インデックス => " %{[メタデータ@] [ビート]} - %{[@メタデータ] [バージョン]} - %{+ YYYY.MM.DD} " } }
問題領域を扱う
この構成は、私はああ直接操作できるようにする方法を参照してください!残念ながら、それは、少なくともではない私のUbuntu 18.04で、うまく動作しません。問題の核心は、地域のすべてのローカルタイムゾーンを記録し、auth.logをまたはsyslogかどうかです。
に対処するためのUTC時刻として、これらの時間の上記構成では。その理由を調べ、上のローカルプラグインの日付のタイムゾーン情報を追加、修正するために非常に簡単です。例えば、東8地区に著者のタイムゾーンは、それぞれ、2つの構成日付で、以下の情報を追加します。
タイムゾーン=> 「アジア/重慶」
让独立的 pipeline 处理该数据流
下面创建一个新的目录 /etc/logstash/myconf.d,并在 /etc/logstash/myconf.d 目录下创建 Logstash 配置文件 krtest.conf。然后在 /etc/logstash/pipelines.yml 文件中添加新的 pipeline 配置:
- pipeline.id: main
path.config: "/etc/logstash/conf.d/*.conf"
- pipeline.id: krtest
path.config: "/etc/logstash/myconf.d/krtest.conf"
其中 pipeline.id 为 main 的管道是默认的配置,我们新添加了 id 为 krtest 的管道并指定了对应的配置文件路径。把上面的配置写入到 /etc/logstash/myconf.d/krtest.conf 文件中。然后重启 logstash 服务:
$ sudo systemctl restart logstash.service
在 Kibana 中查看日志
最后在 kibana 中添加 filebeat 开头的 index pattern,就可以通过图形界面查看 ubuntu 的系统日志了:
参考:
Filebeat Modules
System module
Working with Filebeat Modules