データベースに書き込まfilebeat収集したログを結合A、logstash
図のフレームワーク
原則:重要なログの一部としてデータベースに保存されたログの発展の要件に従う必要があり、また、問題の比較焦点と難易度は、この実験は上の10のELKに基づいて設定されている、あなたは完成した構造のELKの10分の1までの必要を設定することができますこの環境:ELKパート10リンクします。https://www.cnblogs.com/struggle-1216/p/12502928.html
1、インストールmariadb-サーバデータベース
1、データベースをインストールして起動します
#yumをmariadb-サーバー-yインストール #はmariadbを開始systemctl
2、データベースおよび承認を作成します
#1 MySQLの[filebeat-1〜@ルート] MariaDBモニタへようこそ。コマンドは、で終わります。または\グラム。 あなたのMariaDBの接続IDが3である 5.5.64-MariaDB MariaDBサーバー:Serverバージョン 著作権(C)2000、2018、オラクル、MariaDB株式会社アブなどがあります。 「助けを;」タイプ 助けのためか、「\ H」。現在の入力文をクリアするために「\ C」を入力します。 MariaDB [(なし)]> [データベースヘラジカ文字セットのutf8コレートutf8_binを作成します。 クエリOK、影響を受けた1行(0.00秒) MariaDB [(なし)]>エルクのすべての権限を付与* '123456'によって識別される"192.168.7%。" @ ELKします。 クエリOK、影響を受けた0行(0.00秒) MariaDB [(なし)]>
3、別のクライアントホストのMySQLのテストコネクタ
[logstash-1 conf.d @ルート]#mysqlの-uelk -p123456 -h192.168.7.105 MariaDBモニタへようこそ。コマンドは、で終わります。または\グラム。 あなたのMariaDBの接続IDが4である 5.5.64-MariaDB MariaDBサーバー:Serverバージョン 著作権(C)2000、2018、オラクル、MariaDB株式会社アブなどがあります。 「助けを;」タイプ 助けのためか、「\ H」。現在の入力文をクリアするために「\ C」を入力します。 MariaDB [(なし)]>
2、logstash上のホストプラグインJDBCをインストール
図1に示すように、取付プラグlogstash出力-JDBC
[ルート@ logstash-1 conf.d]#1 logstash、プラグインインストールlogstash出力-JDBC
JARパッケージをダウンロードするには2、公式サイト
MySQLのConnector / JのJDBCドライバは公式のMySQL JDBC(Javaデータベース接続、Javaデータベース接続性)がSQL文を実行するためのJava APIであるJava言語のセットで構成され、リレーショナルデータベースのさまざまなに均一なアクセスを提供することができますクラスとインタフェースを書きます。
公式ダウンロードします。https://dev.mysql.com/downloads/
システムパッケージの対応バージョンをダウンロードします。mysql-コネクタ-javaの-8.0.19-1.el7.noarch
ダウンロードするには、パッケージの対応するバージョンを選択
3.店舗のjarファイルのディレクトリを作成し、ダウンロードしたパッケージをインストールして、指定されたディレクトリを作成するには、生成されたjarファイルをコピーします。
[@ logstashルート-JDBC。1]#yumをインストールしたJava-のMySQLコネクタ- 8.0.19-1.el7.noarch.rpm -Y [ルート-logstash @〜。1]#ます。mkdirは、/ usr / share / logstash /ベンダー/ JAR / JDBC -p [ルート-logstash @〜。1] CD#は、/ usr / share / logstash /ベンダー/ JAR / JDBC [@ logstashルート-JDBC。1]#LL /usr/share/java/mysql-connector-java.jar -rw-R - r--の1つのルートルート 2348827 12月4日夜8時06分/usr/share/java/mysql-connector-java.jar#1 上で作成し、このジャーパッケージディレクトリが存在する [ルート@ logstash-1 JDBC ]#CP /usr/share/java/mysql-connector-java.jarを/ usr / share / logstash /ベンダー/ジャー/ JDBC /
図4は、この時点でサービスがlogstashを開始できるようにすることを保証するために、logstashサービスを再起動します
[@ logstashルート-JDBC 1。]#systemctlの再起動logstash [@ logstashルート-JDBC 1。]#テール-f /var/log/logstash/logstash-plain.log [2020-03-16T14:48:43692] [INFO] [logstash.agent]正常に起動しlogstash APIエンドポイント :{ポート=> 9600}#のlogstashは、この時点で開始された [ルート@ logstash-1は、JDBC] | grepをlogstash出力-JDBC#は#1 logstash -プラグインのリストその時に出力を表示します存在プラグ logstash出力-JDBCを
3、mariadb内のログテーブルを収集するためのデータベースを作成します
1、データベースにログを収集テーブルelklogを作成します
#1 MySQLの[filebeat-1〜@ルート] MariaDBモニタへようこそ。コマンドは、で終わります。または\グラム。 あなたのMariaDBの接続IDが13である 5.5.64-MariaDB MariaDBサーバー:Serverバージョン 著作権(C)2000、2018、オラクル、MariaDB株式会社アブなどがあります。 「助けを;」タイプ 助けのためか、「\ H」。現在の入力文をクリアするために「\ C」を入力します。 MariaDB [(なし)]>使用ヘラジカ。 テーブルと列の名前を完了するためのテーブル情報を読み込み ますが、迅速-Aのに起動取得するには、この機能をオフにすることができ 、データベースは変更 > [ヘラジカ] MariaDBを(テーブルelklog(たClientIP varchar型(64)、RESPONSETIMEのVARCHAR(16)、HTTP_HOST varchar型を作成します64)、HTTP_USER_AGENTのvarchar(256)、URLのvarchar(128)、タイムスタンプ(0))。#创建收集日志的elklog表、需要定义字段名称
4、サーバlogstashは、データベースログnginxのに渡さ
1、/etc/logstash/conf.dディレクトリサーバlogstashに収集nginxのログにコンフィギュレーションファイルを作成します
[ルート@ logstash-1 conf.d]#猫filebeatツーlogstash.conf 入力{ ビート{ ホスト=> "192.168.7.101" ポート=> 5044 コーデック=> "JSON" } } 出力{ なら[フィールド] [アプリ] == "syslogの" { Redisの{ ホスト=> "192.168.7.104" ポート=> "6379" DB => "0" DATA_TYPE => "リスト" パスワード=> "123456" キー=>「filebeat、syslog- 7から103" コーデック=> "JSON" }} [フィールド] [APP] ==もし"nginxの" { Redisの{ ホスト=>「192.168.7。104" ポート=> "6379" DB => "0" DATA_TYPE => "リスト" パスワード=> "123456" キー=> "filebeat-nginxのログ-7から103" CODEC => "JSON" } データベースへのJDBC {#利用MySQLのログ転送モジュール は、connection_string =>「JDBC:MySQLの: //192.168.7.105/elkユーザ? =ヘラジカ&パスワード= 123456&useUnicode =真&characterEncoding = UTF8 "#IPのデータベースのアドレスのためのアドレス INSERT INTO elklog声明=> [" (たClientIP、RESPONSETIME、HTTP_HOST、HTTP_USER_AGENT、URL、ステータス)VALUES(?、?、?、?、?、?) ""たClientIP "" RESPONSETIME "" HTTP_HOST "" HTTP_USER_AGENT "" URL ""状態「]#のカスタムフィールド、およびelklog対応の上に作成しましたか?いくつかの書き込みには、いくつかのフィールドがあります }} }
2、サービスlogstashを再起動します
#systemctl再起動logstash
5、ビューは、データベース・ログに収集nginxの
MariaDB [ヘラジカ]> elklog \ G *から選択します。 *************************** 1行******************** ******* たClientIP:192.168.7.1 RESPONSETIME:0.0 HTTP_HOST:192.168.7.103 HTTP_USER_AGENT:Mozillaの/ 5.0(Windows NTの6.1; WOW64)のAppleWebKit / 537.36(ヤモリのようにKHTML、)クローム/ 78.0.3904.108サファリ/ 537.36 URL :/index.htmlが ステータス:304 時間:2020年3月16日夜4時34分05秒 *************************** 2行*************************** たClientIP:192.168.7.1 RESPONSETIME:0.0 HTTP_HOST:192.168.7.103 HTTP_USER_AGENT:Mozillaの/ 5.0(Windows NTの6.1。ヤモリ様WOW64)のAppleWebKit / 537.36(KHTML)クローム/ 78.0.3904.108サファリ/ 537.36 URL:/index.htmlが 状況:304 時間:2020年3月16日夜四時34分05秒 *************************** 3行************** ************* たClientIP:192.168.7.1 RESPONSETIME:0.0 HTTP_HOST:192.168.7.103 HTTP_USER_AGENT:のMozilla / 5.0(のWindows NT 6.1; WOW64)のAppleWebKit / 537.36(ヤモリ様KHTML)クローム/ 78.0 .3904.108サファリ/ 537.36 URL:/index.htmlが 状況:304 時間:2020年3月16日夜4時34分05秒 ************************ *** 4行*************************** たClientIP:192.168.7.1 RESPONSETIME:0.0 HTTP_HOST:192.168.7.103 HTTP_USER_AGENT:Mozillaの/ 5.0(Windows NTの6.1; WOW64)のAppleWebKit / 537.36(ヤモリのようにKHTML、)クローム/ 78.0.3904.108サファリ/ 537.36 URL:/index.htmlが 状況:304 時間:2020年3月16日夜四時34分05秒 *************************** 5行********* ****************** たClientIP:192.168.7.1 RESPONSETIME:0.0 HTTP_HOST:192.168.7.103 HTTP_USER_AGENT:Mozillaの/ 5.0(Windows NTの6.1; WOW64)のAppleWebKit / 537.36(ヤモリのようにKHTML、)クローム/ 78.0.3904.108サファリ/ 537.36 URL:/index.htmlが 状況:304 時間:2020年3月16日夜04時34分05秒 *************************** 6 。行*************************** たClientIP:192.168.7.1 RESPONSETIME:0.0 HTTP_HOST:192.168.7.103 HTTP_USER_AGENT:のMozilla / 5.0(Windows NTの6.1; WOW64)のAppleWebKit / 537.36(KHTML、ヤモリなど)クローム/ 78.0.3904.108サファリ/ 537.36 URL:/index.htmlが ステータス:304 時間:2020年3月16日夜04時34分05秒 *************************** 7行***************** ********** たClientIP:192.168.7.1 RESPONSETIME:0.0 HTTP_HOST:192.168.7.103 HTTP_USER_AGENT:のMozilla / 5.0(のWindows NT 6.1; WOW64)のAppleWebKit / 537.36(ヤモリ様KHTML)クローム/ 78.0.3904.108サファリ/537.36 URL:/index.htmlが 状況:304 時間:2020年3月16日夜04時34分05秒 *************************** 8行*************************** たClientIP:192.168.7.1 RESPONSETIME:0.0 HTTP_HOST:192.168.7.103 HTTP_USER_AGENT:のMozilla / 5.0(WindowsのNT 6.1; GeckoのようなWOW64)のAppleWebKit / 537.36(KHTML、)クローム/ 78.0.3904.108サファリ/ 537.36 URL:/index.htmlが 状況:304 時間:2020年3月16日夜四時34分05秒
第二に、統計的なマップによって、クライアントのIPアドレス、都市
1、公式サイトの地図をダウンロード
公式マップをダウンロードします。https://dev.maxmind.com/geoip/geoip2/geolite2/
1、下/解凍するアーカイブファイルのなど/ logstashカタログストアへの公式ダウンロードマップソフトウェアのウェブサイト、およびソフトウェア
[@ logstashルートlogstash]#のPWD の/ etc / logstash [@ logstashルートlogstash]#あるxv GeoLite2タールCity_20190723.tar.gz [@ logstashルートlogstash]#LL-City_20190723 GeoLite2 / GeoLite2-City.mmdb -rw-R- -r-- 1ルートルート61762964 2019年7月23日 GeoLite2-City_20190723 / GeoLite2-City.mmdb# このプロファイルが参照するために私たちが必要です
図2に示すように、構成logstashホストプロファイルは、ログは、ホストelasticsearchに送信されます
1、アドレスマップをロードするモジュールを追加する、ディレクトリLogstashの/etc/logstash/conf.dで設定ファイルを変更します
[ルート@ logstash conf.d]#猫logstashツーes.conf 入力{ Redisの{ ホスト=> "192.168.7.104" ポート=> "6379" DB => "0" パスワード=> "123456" DATA_TYPE => "リスト" キー=> "filebeat-SYSLOG-7から103" コーデック=> "JSON" } {Redisの ホストは=> "192.168.7.104" ポート=> "6379" DB => "0" パスワード=> "123456" DATA_TYPE => "リスト" キー=> "filebeat-nginxのログ-7-103" コーデック=> "JSON" } } フィルタ{ 決定するために使用される場合、[フィールド] [APP] == "nginxの" {#のnginxのサービスタイプ のGeoIPを{ ソース=> "たClientIP" ターゲット=> "のGeoIP" データベース=> "/etc/logstash/GeoLite2-City_20190723/GeoLite2-City.mmdb" #修改指定的地址位置 add_field => "[のGeoIP] [座標]"、 "%{[のGeoIP] [経度]}"] add_field => "[のGeoIP] [座標]"は、 "%{[のGeoIP] [緯度]}"] } のmutate { 変換=>「[のGeoIP] [座標] " "フロート"] } } } 出力{ [フィールド場合] [APP] == "syslogの"{ elasticsearch { ホスト=> [ "192.168.7.100:9200"] =>インデックス"logstash-SYSLOG-7から103 - %{+ YYYY.MM.DD}」 }} もし[フィールド] [APP] == "nginxの" { elasticsearch { ホスト=> [ "192.168.7.100:9200"] インデックス=> "logstash-nginxの-ACCESSLOG-7から103 - %{+ YYYY.MM.DD}" }} }
2、試験Logstashプロファイル
[ルートlogstash conf.d @]#logstash -f logstashツーes.conf -t WARNING:通常$ LS_HOME /設定または/ etc / logstashに位置していますlogstash.ymlが見つかりませんでした。あなたは--path.settingsを使用してパスを指定することができます。デフォルトを使用し続けて パス/usr/share/logstash/config/log4j2.propertiesでlog4j2設定が見つかりませんでした。コンソールにエラーを記録し、デフォルトの設定を使用して 、[WARN] 2020年3月16日19:09:09.448 [LogStash ::ランナー] multilocal -モジュールまたはコマンドラインオプションが指定されているので、「pipelines.yml」ファイルを無視する 設定OKの#显示OK、说明配置文件没问题
3、サービスLogstashを再起動します
#systemctl再起動logstash
3、サーバーnginxの上でそれをテスト
1、リードイン部分は、サーバーにログオンnginxの。
[ルート@ filebateソース]#尾-n1000のaccess.log >> /var/log/nginx/access.log
2は、kibanaで以前に生成されたインデックスファイル情報を更新し、最新のインデックス情報をロードします
4、ログステータスを表示発見
図5は、マップの視覚化行動を作成し、保存します