春+ LogstashのELK環境の設定と統合

大規模なサイトを参照するにはミドルウェア技術では、Elasticsearchほとんど関心のために、その構成プロセスはビットを記録します

なぜELK

ELK実際には3つのツール、Elastricsearch + LogStash + Kibanaは、ELKにより、だけでなく、視覚的なUIを使用してログ分析のためのログを収集し、最終的にディスプレイにします。プリントサーバのログにする場合、単純なSLF4J +ロガー、grepを通じ単純なクエリよりも小さなビジネスを開始しますが、業務量の増加に伴い、データ量が増加していきます、それはELKのログ収集の多数を用いて行うことができますそして、分析

単にビットアーキテクチャ図を描きます

環境設定では、コンフィギュレーションは、MacとLinuxを導入し、Windowsシステムでは〜私たちは、すべてのJDK1.8以降がインストールされていることを、当然のことながら、実質的に同じです

[root@VM_234_23_centos ~]# java -version
java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)
复制代码

注意を払います

ELK高いバージョンは、この記事のELKのバージョンが6.0以上の構成であるので、必要なJDKのバージョンが1.8以上である、JDKのサポートの上位バージョンが必要です


ElasticSearch

Elasticsearchが出現し続けてユースケースの多様性を解決するために、分散型RESTfulなスタイルの検索エンジンとデータ分析です。中央にある弾性スタックの中核として、あなたが期待する状況や予期しないを見つけるためにあなたのデータを保存します。

Macをインストールして実行

安装:brew install elasticsearch
运行:elasticsearch
复制代码

Linuxの場合:からElasticsearch公式アドレスは、その後、(もftpなどのツールを通じて渡さ、ダウンロードすることができます)GZファイルをダウンロードしたtarで解凍した後、binディレクトリにソフトウェアを実行するには

[root@VM_234_23_centos app]# curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.4.tar.gz
[root@VM_234_23_centos app]# tar -zxvf elasticsearch-6.2.4.tar.gz
[root@VM_234_23_centos app]# cd elasticsearch-6.2.4
[root@VM_234_23_centos elasticsearch-6.2.4]# ./bin/elasticsearch
复制代码

注意を払います

Linuxマシン上で、実行elasticsearchは、新しいユーザーグループを必要とし、記事は、最終的には弾性を記録するステップピットは、Linuxにインストールされています


Logstash

Logstashは同時に複数のソースからのデータ取得、データ変換が可能なオープンソースのサーバ側のデータ処理パイプラインであり、その後でお気に入りの「リポジトリ」にデータを送信します。(もちろん、私たちのリポジトリElasticsearch。) -公式販売孟

1.ソフトウェアのインストール

Macのインストール:

brew install logstash
复制代码

Linuxのインストール:

[root@VM_234_23_centos app]# curl -L -O https://artifacts.elastic.co/downloads/logstash/logstash-6.3.2.tar.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  137M  100  137M    0     0  5849k      0  0:00:24  0:00:24 --:--:-- 6597k
[root@VM_234_23_centos app]# tar -zxvf logstash-6.3.2.tar.gz
复制代码

2.設定ファイルを変更します

vim /etc/logstash.conf
复制代码

confファイル、プラグインの使用を指定し、ホストの対応elasticsearchを設定します

input { stdin { } }
output {
  elasticsearch { hosts => ["localhost:9200"] }
  stdout { codec => rubydebug }
}
复制代码

3.ファイル名を指定して実行

bin/logstash -f logstash.conf
复制代码

4.訪問はhttp:// localhostを:9600 /

{
	"host": "=-=",
	"version": "6.2.4",
	"http_address": "127.0.0.1:9600",
	"id": "5b47e81f-bdf8-48fc-9537-400107a13bd2",
	"name": "=-=",
	"build_date": "2018-04-12T22:29:17Z",
	"build_sha": "a425a422e03087ac34ad6949f7c95ec6d27faf14",
	"build_snapshot": false
}
复制代码

elasticsearchログに、ログが追加通常logstashに見ることができます

[2018-08-16T14:08:36,436][INFO ][o.e.c.m.MetaDataIndexTemplateService] [f2s1SD8] adding template [logstash] for index patterns [logstash-*]
复制代码

この戻り値を見て、それが正常にインストールして開始したことを言いました

段付ピット

そのステップが実行され、メモリ割り当てエラーが発生することができます

Java HotSpot(TM)64ビットサーバーVM警告:INFO:OS :: commit_memory(0x00000000c5330000、986513408、0)に失敗しました。エラー=「のメモリを割り当てることができません」(エラー番号= 12)

、 - (=トレンチ場合、高いプロファイルを購入するために解放してください=)、logstashその結果、elasticsearchを実行してきたのに十分なメモリよりも少ないを割り当てるこの間違いが原因テンセントクラウド1Gメモリサーバの個々の購入に、メモリの不足ですが明白ですその最後に、あなたは、JVMの設定を変更したいです。

[root@VM_234_23_centos logstash-6.3.2]# cd config/
[root@VM_234_23_centos config]# ll
total 28
-rw-r--r-- 1 root root 1846 Jul 20 14:19 jvm.options
-rw-r--r-- 1 root root 4466 Jul 20 14:19 log4j2.properties
-rw-r--r-- 1 root root 8097 Jul 20 14:19 logstash.yml
-rw-r--r-- 1 root root 3244 Jul 20 14:19 pipelines.yml
-rw-r--r-- 1 root root 1696 Jul 20 14:19 startup.options
[root@VM_234_23_centos config]# vim jvm.options 
复制代码

-Xms1g -Xmx1Gに修正

-Xms256m  
-Xmx256m
复制代码

そして、あなたは、通常のを開始することができます~~


Kibana

1.ソフトウェアのインストール

Kibanaは、あなたがデータElasticsearch弾性スタックを視覚化して操作することができますので、あなたはここに質問のロックを解除することができますなぜ午前2時にページングされ、たとえば、雨がどのようなインパクトの四半期データの原因となります。(アイコンの非常にクールな表示)

マックのインストール

brew install kibana
复制代码

インストールのLinux、公式ダウンロード

[root@VM_234_23_centos app]# curl -L -O https://artifacts.elastic.co/downloads/kibana/kibana-6.3.2-linux-x86_64.tar.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0  195M    0  271k    0     0  19235      0  2:57:54  0:00:14  2:57:40 26393
复制代码

私はローカルでコマンドRZを介してサーバに送信してダウンロードした後に、このステップでは、耐え難いほど遅いダウンロードするにはとても良いことも可能です

[root@VM_234_23_centos app]# rz
rz waiting to receive.
Starting zmodem transfer.  Press Ctrl+C to cancel.
Transferring kibana-6.3.2-linux-x86_64.tar.gz...
  100%  200519 KB     751 KB/sec    00:04:27       0 Errors  

[root@VM_234_23_centos app]# tar -zxvf kibana-6.3.2-linux-x86_64.tar.gz 
复制代码

2.設定を変更します

elasticsearch.url点Elasticsearchインスタンスを提供設定/ kibana.ymlプロファイルを変更します。

あなたはデフォルトの設定を使用している場合は、私のように、あなたはファイルを変更する必要はありません

3. [スタート]

[root@VM_234_23_centos kibana]# ./bin/kibana
复制代码

4.訪問ののhttp:// localhostを:5601 /アプリ / kibana#/ホーム_g =()?

インタフェースは、次のSLF4J + LogBackの統合により、その汎用性の高い表示します


統合春+ Logstash

1.修正logstash.conf、再起動logstash

input { 
  # stdin { }
  tcp { 
    # host:port就是上面appender中的 destination,
	# 这里其实把logstash作为服务,开启9250端口接收logback发出的消息 
    host => "127.0.0.1" port => 9250 mode => "server" tags => ["tags"] codec => json_lines 
  }
}
output {
  elasticsearch { hosts => ["localhost:9200"] }
  stdout { codec => rubydebug }
}
复制代码

2.リファレンスは、Javaアプリケーションに依存しています

<dependency>
  <groupId>net.logstash.logback</groupId>
  <artifactId>logstash-logback-encoder</artifactId>
  <version>5.2</version>
</dependency>
复制代码

3.ログ出力を設定Logback.xml

<!--日志导出的到 Logstash-->
<appender name="stash"
              class="net.logstash.logback.appender.LogstashTcpSocketAppender">
   <destination>localhost:9250</destination>
   <!-- encoder必须配置,有多种可选 -->
   <encoder charset="UTF-8"
            class="net.logstash.logback.encoder.LogstashEncoder" >
       <!-- "appname":"ye_test" 的作用是指定创建索引的名字时用,并且在生成的文档中会多了这个字段  -->
       <customFields>{"appname":"ye_test"}</customFields>
   </encoder>
</appender>  
    
<root level="INFO">
    <appender-ref ref="stash"/>
</root>
复制代码

私は最初のステップにしていますので、対応するインデックスを指定していないので、サービスの開始時に、ログ収集は自動的にインデックスlogstash - タイムスタンプを作成するために私を助けLogstash

4.インデックスインデックスkibanaを追加します。

5.発見左のインデックスの情報を確認

6.可視化グラフの視覚化を追加します。

まだ模索し、より多くの機能がありますが、最初の環境学習を継続するモチベーションを取り上げる〜


録音は、ピットを強化しました

エラーを開始

スレッドでキャッチされない例外[メイン] org.elasticsearch.bootstrap.StartupException:java.lang.RuntimeExceptionは:rootとしてelasticsearch実行することはできません

理由:あなたがルート権限でログインできません

ソリューション:スイッチのユーザー

[root@VM_234_23_centos ~]# groupadd es
[root@VM_234_23_centos ~]# useradd es -g es -p es
[root@VM_234_23_centos ~]# chown es:es /home/app/elasticsearch/
# 切换用户,记得su - ,这样才能获得环境变量
[root@VM_234_23_centos ~]# sudo su - es
复制代码

スレッド「メイン」java.nio.file.AccessDeniedExceptionで例外:

原因:root以外のユーザーは、ESを起動すると、利用者の不十分なファイルのパーミッションが拒否されるように。

解決策:chownコマンド-Rユーザ名:ユーザ名のファイル(ディレクトリ)名

たとえばます。chown -R ABC:通常のESにABCサーチエンジンの再起動


新聞が殺さelasticsearch開始した後、

[2018-07-13T10:19:44,775][INFO ][o.e.p.PluginsService     ] [f2s1SD8] loaded module [aggs-matrix-stats]
[2018-07-13T10:19:44,779][INFO ][o.e.p.PluginsService     ] [f2s1SD8] loaded module [analysis-common]
[2018-07-13T10:19:44,780][INFO ][o.e.p.PluginsService     ] [f2s1SD8] loaded module [ingest-common]
[2018-07-13T10:19:44,780][INFO ][o.e.p.PluginsService     ] [f2s1SD8] loaded module [lang-expression]
[2018-07-13T10:19:44,780][INFO ][o.e.p.PluginsService     ] [f2s1SD8] loaded module [lang-mustache]
[2018-07-13T10:19:44,780][INFO ][o.e.p.PluginsService     ] [f2s1SD8] loaded module [lang-painless]
[2018-07-13T10:19:44,780][INFO ][o.e.p.PluginsService     ] [f2s1SD8] loaded module [mapper-extras]
[2018-07-13T10:19:44,780][INFO ][o.e.p.PluginsService     ] [f2s1SD8] loaded module [parent-join]
[2018-07-13T10:19:44,780][INFO ][o.e.p.PluginsService     ] [f2s1SD8] loaded module [percolator]
[2018-07-13T10:19:44,780][INFO ][o.e.p.PluginsService     ] [f2s1SD8] loaded module [rank-eval]
[2018-07-13T10:19:44,781][INFO ][o.e.p.PluginsService     ] [f2s1SD8] loaded module [reindex]
[2018-07-13T10:19:44,781][INFO ][o.e.p.PluginsService     ] [f2s1SD8] loaded module [repository-url]
[2018-07-13T10:19:44,781][INFO ][o.e.p.PluginsService     ] [f2s1SD8] loaded module [transport-netty4]
[2018-07-13T10:19:44,781][INFO ][o.e.p.PluginsService     ] [f2s1SD8] loaded module [tribe]
[2018-07-13T10:19:44,781][INFO ][o.e.p.PluginsService     ] [f2s1SD8] loaded module [x-pack-core]
[2018-07-13T10:19:44,781][INFO ][o.e.p.PluginsService     ] [f2s1SD8] loaded module [x-pack-deprecation]
[2018-07-13T10:19:44,781][INFO ][o.e.p.PluginsService     ] [f2s1SD8] loaded module [x-pack-graph]
[2018-07-13T10:19:44,781][INFO ][o.e.p.PluginsService     ] [f2s1SD8] loaded module [x-pack-logstash]
[2018-07-13T10:19:44,782][INFO ][o.e.p.PluginsService     ] [f2s1SD8] loaded module [x-pack-ml]
[2018-07-13T10:19:44,782][INFO ][o.e.p.PluginsService     ] [f2s1SD8] loaded module [x-pack-monitoring]
[2018-07-13T10:19:44,782][INFO ][o.e.p.PluginsService     ] [f2s1SD8] loaded module [x-pack-rollup]
[2018-07-13T10:19:44,782][INFO ][o.e.p.PluginsService     ] [f2s1SD8] loaded module [x-pack-security]
[2018-07-13T10:19:44,782][INFO ][o.e.p.PluginsService     ] [f2s1SD8] loaded module [x-pack-sql]
[2018-07-13T10:19:44,782][INFO ][o.e.p.PluginsService     ] [f2s1SD8] loaded module [x-pack-upgrade]
[2018-07-13T10:19:44,782][INFO ][o.e.p.PluginsService     ] [f2s1SD8] loaded module [x-pack-watcher]
[2018-07-13T10:19:44,783][INFO ][o.e.p.PluginsService     ] [f2s1SD8] no plugins loaded
Killed
复制代码

jvm.optionsにconfigディレクトリを変更し、より小さなヒープサイズを設定

# Xms represents the initial size of total heap space
# Xmx represents the maximum size of total heap space

-Xms512m
-Xmx512m
复制代码

仮想記憶

最大仮想メモリ領域は、[65530]が低すぎるvm.max_map_count、少なくとも[262144]に増加

[2018-07-13T14:02:06,749][DEBUG][o.e.a.ActionModule       ] Using REST wrapper from plugin org.elasticsearch.xpack.security.Security
[2018-07-13T14:02:07,249][INFO ][o.e.d.DiscoveryModule    ] [f2s1SD8] using discovery type [zen]
[2018-07-13T14:02:09,173][INFO ][o.e.n.Node               ] [f2s1SD8] initialized
[2018-07-13T14:02:09,174][INFO ][o.e.n.Node               ] [f2s1SD8] starting ...
[2018-07-13T14:02:09,539][INFO ][o.e.t.TransportService   ] [f2s1SD8] publish_address {10.105.234.23:9300}, bound_addresses {0.0.0.0:9300}
[2018-07-13T14:02:09,575][INFO ][o.e.b.BootstrapChecks    ] [f2s1SD8] bound or publishing to a non-loopback address, enforcing bootstrap checks
ERROR: [1] bootstrap checks failed
[1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
[2018-07-13T14:02:09,621][INFO ][o.e.n.Node               ] [f2s1SD8] stopping ...
[2018-07-13T14:02:09,726][INFO ][o.e.n.Node               ] [f2s1SD8] stopped
[2018-07-13T14:02:09,726][INFO ][o.e.n.Node               ] [f2s1SD8] closing ...
[2018-07-13T14:02:09,744][INFO ][o.e.n.Node               ] [f2s1SD8] closed
复制代码

あなたは仮想メモリのサイズを変更する必要があります(root権限を持ちます)

[root@VM_234_23_centos elasticsearch]# vim /etc/sysctl.conf
# 插入下列代码后保存退出
vm.max_map_count=655360
[root@VM_234_23_centos elasticsearch]# sysctl -p
# 最后重启elastricsearch
复制代码

個人ブログのプロジェクトアドレス

私は私に小さな星を与え、スターを指すよう支援することを願ってい✨


参考記事

  1. ELKクイックガイド
  2. ELKは、Mac上に構築します
  3. ELKことによって、あなたはすぐに、集中ログプラットフォームを構築する必要があるかもしれません
  4. Logback JSONエンコーダ
  5. elasticSearch一般的なインストールエラーまたは問題
  6. Linuxユーザは、ルートを見つけることができませんJAVA_HOME
  7. リモート接続の問題が発生したelasticsearch

おすすめ

転載: juejin.im/post/5ce902d8e51d45773f2e8eba