ELKはElasticsearch、Logstash、Kibanaの短いあり、これら3つのコアスイートですが、すべてではありません。
収集、分析、データの保存3つの機能を提供しElasticsearchリアルタイム全文検索・分析エンジン、RESTは、効率的な検索機能、スケーラブルな分散システムを提供するためのオープンとJAVA APIおよび他の構造です。これは、Apache Luceneの検索エンジンライブラリの上に構築されています。
Logstashは、収集、分析、フィルタリングツールのログを記録するために使用されます。これは、システムログ、エラーログ、およびカスタムアプリケーションログを含むログのほぼすべてのタイプをサポートしています。それは多くのソースからログを受信することができ、これらのソースからsyslog、メッセージング(例えばRabbitMQの)とJMXを含め、それが電子メールを含む様々な方法でデータを出力することが可能であり、WebSocketをElasticsearch。
Kibanaログに関連するデータのウェブベースのグラフィカルインタフェースであり、分析および視覚化Elasticsearchインデックスに格納されています。これにより、ユーザーはデータの独自のカスタマイズされたダッシュボードビューを作成することを可能にするだけでなく、それらにクエリやフィルタデータへの特別な方法を可能にするだけでなく、データを取得するためにElasticsearch RESTインターフェースを使用しています
まず、参考資料
- 公式ウェブサイトのアドレス
- http://mirrors.aliyun.com/centos
- https://github.com/medcl/elasticsearch-analysis-ik/releases
- https://www.cnblogs.com/William-Guozi/p/elk-docker.html
- https://www.cnblogs.com/peterpoker/p/9573720.html
- https://www.cnblogs.com/just-coder/p/11017050.html
第二に、ドッキングウィンドウのミラーをダウンロード
docker pull elasticsearch:7.6.0
docker pull kibana:7.6.0
docker pull logstash:7.6.0
docker pull filebeat:7.6.0
docker pull mobz/elasticsearch‐head:5
第三に、ビルドELKログシステム
フォルダヘラジカを作成し、次の設定ファイルは、内側にあります
mkdir /home/elk
3.1インストールelasticsearch
作成しelasticsearch.yml
たファイルを
vi /home/elk/elasticsearch.yml
次のようにそこに追加されました。
cluster.name: "docker-cluster"
network.host: 0.0.0.0
# 访问ID限定,0.0.0.0为不限制,生产环境请设置为固定IP
transport.host: 0.0.0.0
# elasticsearch节点名称
node.name: node-1
# elasticsearch节点信息
cluster.initial_master_nodes: ["node-1"]
# 下面的配置是关闭跨域验证
http.cors.enabled: true
http.cors.allow-origin: "*"
elasticsearchコンテナを作成して開始
docker run -di -p 9200:9200 -p 9300:9300 --name=elasticsearch -v /home/elk/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml elasticsearch:7.6.0
ブラウザ上で9200ポート範囲を通過した後、成功したリターン情報
注:ディレクトリパスまたは実際のコマンド(ワードブレーカーが設置などIK:経由でプラグコンテナをマッピングするためのウィジェットを追加する必要がある場合
docker cp ik elasticsearch:/usr/share/elasticsearch/plugins/
)容器にそれをコピー
可能性のある問題が発生しました
1.正常に起動した後、しばらくすると停止
起動時にelasticsearchは、このようなの開いているファイルへの仮想メモリ、最大の数など、いくつかのテストを、実施しますので、これは私たちだけで変更された構成に関連している
あなたは、この設定を手放す場合など領域の数を、よりオープンする必要性を意味しますファイルや仮想メモリなので、我々はまた、システムのチューニングを必要としています。
以下を追加し、/etc/security/limits.confを変更します。
* soft nofile 65536 * hard nofile 65536
NOFILE開いているファイルの最大数は、ソフトNOFILEハードNOFILEソフト制限であることを可能にする単一のプロセスは、ハードリミットです
変更に/etc/sysctl.conf、追加コンテンツ
vm.max_map_count=655360
数量制限は、VMA(仮想メモリ領域)のプロセスを持つことができます
カーネル・パラメータがすぐに有効になります変更するには、次のコマンドを実行し、サーバーのサービス]ドッキングウィンドウを再起動します
sysctl ‐p
2.次のログ情報は、起動に失敗しました表示されます
ERROR: [1] bootstrap checks failed
[1]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured
これは、マルチノードクラスタのバージョンである、あなたがelasticsearch.ymlで次の設定を追加する必要がelasticsearch7によるものです。
# elasticsearch节点名称
node.name: node-1
# elasticsearch节点信息
cluster.initial_master_nodes: ["node-1"]
3.エクストラネットは、ポート9200を介してデータおよびクエリデータをプッシュすることができたが、リアなどの成分がkibanaマウントもできません
ビュー・ログには、次のエラーを見つけました
error=>"Elasticsearch Unreachable: [http://192.168.6.128:9200/][Manticore::...
この問題は通常、ドッキングウィンドウコンテナがマシンにインストールされているの下で引き起こされ、ファイアウォールがオンになって、内部ドッキングウィンドウコンテナは、ホストサービス(他のLANコンピュータが非ホストサービスにアクセスすることができます)、ソリューションにアクセスすることはできません。
-
- ConfigureFirewallRulesファイアウォール-CMD --zone =パブリック--addポート= {ポート} / TCP --permanent、ファイアウォールルールをオーバーライドすると、ファイアウォール-CMD --reload
-
- --netホストモードを使用します(ネットワークモードの4種類のドッカー:開始コンテナhttps://www.jianshu.com/p/22a7032bb7bd)
-
- ファイアウォールをオフにします
デバッグするためのプラグインを使用してElasticsearchヘッドのインストール(インストールすることはできません)
docker run ‐di ‐‐name=es-head ‐p 9100:9100 mobz/elasticsearch‐head:5
9100ポートを起動した後正常に使用elasticsearchの管理インターフェースにアクセスすることができます。
ローカルコンピュータにインストールされています
- プラグインのダウンロードヘッド:https://github.com/mobz/elasticsearch-head
- イサキは、グローバルコマンドとしてインストール。イサキは、Node.jsのプロジェクトに基づくビルドツールです。それは自動的に設定されたタスクを実行することができます-g作男-CLIをインストールNPM
インストールが依存します
npm install
スタート
grunt server
ブラウザを開き、入力します。httpを:// localhostを:9100
3.2 安装kibana
kibanaのelasticsearchは、主に、データビューを分析するために使用されます。バージョンを選択する必要があり、同一又は下部のelasticsearchバージョン、同じお薦めやelasticsearchバージョンが、それ以外の場合はkibanaを使用することができなくなります。
作成kibana.yml
コンフィギュレーションファイルを、ここで以下の設定を記述します。
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://elasticsearch的IP:9200"]
# 操作界面语言设置
i18n.locale: "zh-CN"
kibanaコンテナを作成して開始
docker run -di --name kibana -p 5601:5601 -v /home/elk/kibana.yml:/usr/share/kibana/config/kibana.yml kibana:7.6.0
ポートkibana管理インターフェイスを入力するために5601に成功した訪問を開始した後。(必要な設定選択を入力した後、あなたは直接、独自のブラウザを選択することができます)
インデックスの設定を追加
入力します。その後、オペレーティングlogstashをインストール戻ってくるlog*
の成功を作成するために、ログ情報logstashを選択するために、ログ情報を確認します
3.3インストールlogstash
作成しlogstash.conf
たプロファイルを、で次の設定を追加します:
input {
tcp {
port => 5044
codec => "plain"
}
}
filter{
}
output {
# 这个是logstash的控制台打印(进行安装调试的开启,稍后成功后去掉这个配置即可)
stdout {
codec => rubydebug
}
# elasticsearch配置
elasticsearch {
hosts => ["elasticsearch的IP:9200"]
}
}
logstashコンテナを作成して開始
docker run -di -p 5044:5044 -v /home/elk/logstash.conf:/usr/share/logstash/pipeline/logstash.conf --name logstash logstash:7.6.0
logstashマイクロプッシュサービスをログに記録
Mavenの依存関係を追加
<dependency>
<groupId>net.logstash.logback</groupId>
<artifactId>logstash-logback-encoder</artifactId>
<version>6.3</version>
</dependency>
ログ処理、構成ファイル(AS以下springbootのlogbackでlogback-spring.xml
次のように)設定情報:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- 控制台输出 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %highlight(%-5level) %cyan(%logger{50}.%M.%L) - %highlight(%msg) %n</pattern>
</layout>
</appender>
<!--logback输出-->
<appender name="STASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<destination>192.168.6.128:5044</destination>
<includeCallerData>true</includeCallerData>
<encoder class="net.logstash.logback.encoder.LogstashEncoder">
<includeCallerData>true</includeCallerData>
<providers>
<timestamp>
<timeZone>UTC</timeZone>
</timestamp>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{80}.%M.%L - %msg %n</pattern>
</providers>
</encoder>
</appender>
<root level="INFO">
<!--本地开发调试将控制台输出打开,同时将日志文件输出关闭,提高日志性能;线上部署请务必将控制台输出关闭-->
<appender-ref ref="STDOUT"/>
<appender-ref ref="STASH"/>
</root>
</configuration>