1.はじめに
日常の運用および保守作業、業務処理システムおよびログのために特に重要で。あなたは、死への運用・保守を恐れて、ログを取得したい場合は、特定の分散アーキテクチャでは、各サービスが手作業で、一つ一つを多くのノードを持つことになります。
簡単な紹介:
ELK短いためelasticsearch + logstash + kibana 3つのオープンソースソフトウェアです。
elasticsearch:分散、簡単な構成で、自動検出、自動スライスインデックス、インデックス複製機構、安らかスタイルインターフェイス、このような自動負荷検索など、複数のデータソース、オープンソース分散型検索エンジンである、ことを特徴とします
logstashは:、収集したログを介して濾過し、そしてelasticsearchに格納することができます
kibana:elasticsearchする使いやすいユーザインタフェースを提供するために、ユーザーがkibanaで分析し、検索しても、データを分析するためにプロットすることができます。
ここではアーキテクチャの現在の使用は、より以下のとおりです。
ELK +ファイルビート
Filebeat軽量オープンログファイルデータコレクタである、ログまたはelasticsearch logstashに送達され、収集されるノードに取り付けることができます
ELKのログは、複数の統一された計画に配布することができます。
そこELKに関する多くの展開シナリオは、ある古いバージョンのいずれかを発見するために多くを参照してください、そして、それは、ネットワーク上で完璧ではなかったので、自分の記録の下。
注意:ELKをインストールする際、および3つのソフトウェアのバージョンはサポートするために保管、または様々なバグが出現しなければなりません
2. ELKのビルドプロセス
実験トポロジ:
実験環境サービスの説明をホスティング:
実験は中elasticsearchに収集され、保存されたnginxのログです。ElasticsearchネットワークIO操作と不要なダイレクトマシンインタラクションを避けるkibana同じホスト上に取り付けられました。
2.1 Elasticsearchのインストールプロセス
(1)初期設定
- SELinuxの、ファイアウォール近いです
- 時刻同期
- ホスト名を変更します。
- 開いているファイルの最大数を変更します。
時刻同期:
[[email protected]〜] #ntpdate tiger.sina.com.cn
ホスト名を変更します。
[[email protected]〜]設定ホスト名#hostnamectlノード1の 中の/ etc / hostsに記載されたホスト名に変更することを忘れないでください終了 192.168.118.14ノード1を
開いているファイルの最大数を変更します。
[[email protected]〜] #vim /etc/security/limits.confを *ソフトNPROC 655350 *ハードNPROC 655350 *ソフトNOFILE 655350 *ハードNOFILE 655350 [[email protected]〜] #ulimit -shn 655350
(2)構成環境のJava
[[email protected]は/ usr / local / SRC] #tar XF JDK-8u77-Linuxベースx64.tar.gz -Cは/ usr / local / 在の/ etc /プロファイル文件中追加? JAVA_HOME =は/ usr / local / jdk1.8.0_77 JAVA_BIN = $ JAVA_HOME /ビン PATH = $ PATHに:$ JAVA_BIN CLASSPATH = $ JAVA_HOME / libに/ dt.jar:$ JAVA_HOME / libに/ tools.jarの 輸出JAVA_HOME JAVA_BINパスCLASSPATH [ルート@ 192.168.118.14は/ usr / local / srcに] #sourceは/ etc / profile [[email protected]は/ usr / local / srcに] #ln -vs /usr/local/jdk1.8.0_77/bin/javaは/ usr /ビン/ [[email protected]は/ usr / local / srcに] #java -version Javaバージョン"1.8.0_77" Javaの(TM)SEランタイム環境(1.8.0_77-B03を構築する) は、Java HotSpot(TM)64ビットサーバーVM(25.77-B03、混合モードを構築します)
(3)インストールelasticsearch
ダウンロード:https://www.elastic.co/cn/downloads/past-releases#elasticsearch
ここでは6.8 rpmパッケージのダウンロードがあります
直接インストール:
[[email protected]〜/ ELK] #yum localinstall elasticsearch-6.8.2.rpm 修改配置文件如下: [[email protected]〜/ ELK] #egrep ^ [AZ] /etc/elasticsearch/elasticsearch.yml クラスタ.nameの:スーパークラスタ node.name:ノード1 path.data:は/ var / elasticsearch / libに path.logs:は/ var / log / elasticsearch bootstrap.memory_lock:真 network.host:0.0.0.0 たhttp.port:9200 発見。 zen.ping.unicast.hosts:[ "192.168.118.14"] http.cors.enabled:真 http.cors.allow起源: "*"
スタート
[[email protected]は〜/ ELK] elasticsearchを有効#systemctl。elasticsearch開始systemctl
最初のスタートは、ログを表示、起動に失敗することがあります。
[[email protected]〜/ ELK] #tail /var/log/elasticsearch/super-cluster.log ... [1]:メモリがelasticsearchプロセスのために要求されるロッキングが、メモリがロックされていません ...
エラーとして、あなたは起動スクリプトを変更する必要があります。
[[email protected]〜/ ELK] #vim /lib/systemd/system/elasticsearch.service [ -サービス]の設定スニペット: ... LimitMEMLOCK =インフィニティ ... [[email protected]〜/ ELK] #systemctlデーモンリロード [[email protected]は〜/ ELK]スタート#systemctl elasticsearch
ビューポートは、9200と9300のモニター場合は、正常に起動しelasticsearch。
検証:
[[email protected]〜/ ELK] #curlのhttp:// localhostを:9200 / { "名前": "ノード1"、 "CLUSTER_NAME": "スーパークラスタ"、 "cluster_uuid": "1FD-KmYMTVCzWVPI9vn8zw"、 "バージョン":{ "番号": "6.8.2"、 "build_flavor": "デフォルト"、 "build_type": "回転"、 "build_hash": "b506955"、 "ビルド日付":" 2019-07-24T15:24 :41.545295Z " "build_snapshot":偽 、"lucene_version": "7.7.0"、 "minimum_wire_compatibility_version": "5.6.0"、 "minimum_index_compatibility_version」: "5.0.0" }、 "キャッチフレーズ": "あなたが知っている、検索のための" }
これは、正常なインストールをelasticsearch。
ここでは、デバッグのための複数のelasticsearchヘッドマウントと表示データは非常に便利です。
プログラムダウンロードします。https://github.com/mobz/elasticsearch-head
最初の依存関係をインストール
yumをgitのインストールのopenssl-develの画面をnodejs -y クローンelasticsearchヘッド項目 [[email protected]〜] Gitのクローン#https://github.com/mobz/elasticsearch-head.git [[email protected]〜]# CD elasticsearchヘッド/ [email protected]を無視し、次のコマンドを実行します。 --ignore-スクリプトビルド済みのインストール#1 NPM-PhantomJS [ルート・ヘッドの@ノード1をelasticsearch] #がインストールNPM [ノード1 @ルート-頭をelasticsearch] ...
ここでは非常に遅いプロセスです。
elasticsearchヘッドサービスを開始
[[email protected]〜] #cd elasticsearchヘッド/ [[email protected]〜/ elasticsearch-ヘッド] #screen [@ node1のelasticsearchルート-ヘッド] NPM RUN#スタート はCtrl + A + D Ctrlキープロセスへへここでは、画面下のバックグラウンドチェックは、とても良いコマンドを理解していません。
成功の開始を示す限り、モニタは9100であるとしてポートを表示します。
ブラウザアクセス:
適切に、インストールが成功しました。あなたはelasticsearchヘッドによりelasticsearch内のすべてのデータを表示することができます。現在、ノード1のインデックスに。あなたが本をお勧めしますelasticsearchで綿密な研究をしたい場合は、「elasticsearch-決定的なガイド-CN」PDFオンラインでダウンロードすることができます。
次に、kibanaをインストールします。同じホストにインストールKibanaとelasticsearch
Kibanaダウンロード:https://www.elastic.co/cn/downloads/past-releases#kibana
直接rpmパッケージ
[[email protected]〜/ ELK] #yum localinstall kibana-6.8.2-x86_64.rpm -y
設定ファイルを変更します。
普通のユーザは、次のポートに1024を起動することはできませんので、あなたがkibanaポート80を変更する場合は注意が必要、開始kibanaユーザーrootを変更する必要があります。
スタートアップコンフィギュレーションファイルを変更します。
[[email protected]〜] #vim /etc/systemd/system/kibana.service ユーザー=ルート グループは=ルート サービスを開始するには、再び [[email protected]〜] #systemctlデーモン・リロード [[email protected]〜] #systemctl再起動kibana
ポート80は打ち上げ成功を説明するために待機しているか確認してください。
2.2 logstashのインストールプロセス
計画によると、logstashは別のホストにインストールする必要があり、logstashインストールは非常に簡単です。
Logstashダウンロード:https://www.elastic.co/cn/downloads/past-releases#logstash
上記のように、初期化はもはやそこに記載されて、忘れてはいけません。
JDKをインストールしても、上記と同様、JDKの検証:
[[email protected]は/ usr / local / srcに] #java -version Javaバージョン"1.8.0_77" Javaの(TM)SEランタイム環境(1.8.0_77-B03を構築する) は、Java HotSpot(TM)64ビットサーバーVM( 25.77-B03、混合モードを構築します)
インストールlogstash
[[email protected]〜] #yum localinstall logstash- 6.8.2.rpm -y コマンドPATH環境変数をlogstashに追加 [[email protected]の/ etc / logstash] #vim /etc/profile.d/logstash .SH $ PATH:このコンテンツ共有/ logstash / binにPATH =は/ usr /レポートをエクスポート
[OK]を、ここではすでにインストールされている、それは非常に簡単ではありません。
検証:
【[email protected]〜】#logstash -e '入力 {STDIN {}}出力{STDOUT {}} 限りが正常に起動Logstash APIエンドポイント{:ポート => 9600}が成功した開始を表すことになります。 こんにちは、中国 { => "@version"、」1" 。 "メッセージ" => "こんにちは、中国"、 "ホスト" => "logstash-ノード1"、 "@timestamp" => 2019-09-14T04: 14:35.035Z
試験により、logstash検証が成功しています。
2.3 Filebeatとインストールnginxの
Filebeatダウンロード:https://www.elastic.co/cn/downloads/past-releases#filebeat
まず、nginxのインストールyumを直接インストール
[[email protected]〜] #yum nginxの-yインストール 启动nginxの [[email protected]を〜] #nginx
インストールfilebeat
[[email protected]〜] #yum localinstall filebeat-6.8.2-x86_64.rpm -y 开启nginxの模块 [[email protected]〜] #cdの/ etc / filebeat / [[email protected]の/ etc / filebeat ] #filebeatモジュールnginxの有効 有効nginxのを
filebeatメインの設定ファイルを変更します。
【[email protected]〜】#vim /etc/filebeat/filebeat.yml Zhushidiao出力elasticsearchする #1 output.elasticsearchを: 。アレイに接続するホストの# [ "はlocalhost:9200"] #hostsを 出力logstashにオンされます output.logstash: でホストするLogstash# ホスト:[ "192.168.118.16:5044"]
ホストはlogstash IPホストを書くことに注意してください
nginxのモジュールの設定ファイルを変更します。
[[email protected]〜] #vim /etc/filebeat/modules.d/nginx.yml
filebeatサービスを開始
[[email protected]〜]はfilebeat開始#systemctl Filebeatサービスは限り状態はそれを開始することを意味し実行されているように、ポートをlistenしていない、あなたはログインfilebeat確認することができます は/ var / log / filebeat / filebeat
これは、ELK +は、あなたが調整する必要をインストールすることができますし、データを収集するために、展開されてfilebeatが、仕事のこの作品はlogstashに焦点を当てているので、我々はlogstashが困難ELKで書きます。Logstash設定構文が強く公式ドキュメントは非常に包括的である参照することをお勧めします。
2.4書き込みlogstashプロフィール
ここでは、簡単なテストを書くことができ、拡大する段階的なアプローチを採用。
画面にデータを出力する設定ファイルを記述します。
[[email protected] /etc/logstash/conf.d]#vim Test.confを
次のようにLogstashは、コンフィギュレーションファイルに従ってブートを開始することができます。
[[email protected] /etc/logstash/conf.d]#logstash -f Test.confをは 成功しました成功したスタートを表すことになりLogstash APIエンドポイントを開始して表示されます。
正常に起動した後、私たちはnginxのログデータを生成するアクセスしよう。
ログファイルは、上で転送されてきたが、次のステップはでelasticsearchにデータを書き込むことです。
設定ファイルを変更し続けます。
構成ファイルをlogstash開始
[[email protected] /etc/logstash/conf.d]#logstash -f Test.confを
新しいインデックスが作成さにあり、頭がelasticsearch場合nginxのは見るにアクセスしてみてください。
上記のように、新しいインデックスが作成され、インデックスデータはelasticsearchヘッドによって見ることができます。
それは今でelasticsearchするログデータに書き込まれ、その後、kibanaショーを介して、良いkibanaにアクセスするには、ブラウザの上部に取り付けられています
セットアップが完了すると、ちょうどDiscoverをクリックしてください
マルチアクセス時間ログが表示されたかどうかを確認するには、nginxの。
[OK]を、この、ELK + nginxのログを取得するfilebeatは完了です。ショーは、ログアウト混沌としたこのようなデータをログに記録が、さらに他の構造化された必要とする、受け入れることは非常に困難だったが。
nginxののlogstashを取得するログデータをより詳細に次の書き込みであれば、さらに定期的な描画データを表示し、kibanaによります。