Docker-compose を使用して ELK をデプロイするためのサンプル コード

Docker-compose を使用して ELK をデプロイするためのサンプル コード

環境

  1. ホストIP 192.168.0.9
  2. Docker バージョン 19.03.2
  3. docker-compose バージョン 1.24.0-rc1
  4. elasticsearch バージョン 6.6.1
  5. キバナ バージョン 6.6.1
  6. ログスタッシュ バージョン 6.6.1

1. ELK-dockerfileファイルの書き込みと設定ファイル

● エラスティックサーチ

1. elasticsearch-dockerfile

Centos:latest から
elasticsearch-6.6.1.tar.gz /usr/local/を追加します。
elasticsearch.yml をコピー /usr/local/elasticsearch-6.6.1/config/
jdk1.8 /usr/local/ をコピーします
環境変数JAVA_HOME=/usr/local/jdk1.8
ENV CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
環境変数PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin
実行 groupadd elsearch && \
ユーザー追加 elsearch -g elsearch -p elasticsearch && \
chown -R elsearch:elsearch /usr/local/elasticsearch-6.6.1 && \
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
echo "Asia/shanghai" > /etc/timezone && \
yum インストール which -y && \
mkdir /opt/data && \
mkdir /opt/logs
エクスポーズ9200 9300
#主にelsearchユーザーに切り替えてesを起動します
ユーザー検索
ワークディレクトリ /usr/local/elasticsearch-6.6.1/bin/
エントリポイント ["./elasticsearch"]

2. エラスティックサーチ.yml

[root@localhost elasticsearch]# egrep "^[^#]" elasticsearch.yml 
クラスター名: es-cluster
ノード名: ノード1
パス.データ: /opt/data
パス.logs: /opt/logs
ネットワークホスト: 0.0.0.0
http.ポート: 9200
cluster.routing.allocation.disk.threshold_enabled: true
クラスタールーティング割り当てディスクウォーターマーク低: 94%
クラスタールーティング割り当てディスクウォーターマーク高: 96%
クラスタールーティング割り当てディスクウォーターマークフラッドステージ: 98%
discovery.zen.最小マスターノード数: 1

● ログスタッシュ

1. ログスタッシュDockerファイル

Centos:latest から
logstash-6.6.1.tar.gz /usr/local/を追加します。
logstash.yml をコピー /usr/local/logstash-6.6.1/config/
logstash.conf をコピー /usr/local/logstash-6.6.1/config/
jdk1.8 /usr/local/ をコピーします
コピー start.sh /start.sh
環境変数JAVA_HOME=/usr/local/jdk1.8
ENV CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
環境変数PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin
mkdir /opt/data && \ を実行します。
mkdir /opt/logs && \
chmod +x /start.sh
エントリポイント ["/start.sh"]

2. ログスタッシュ開始.sh

#!/bin/bash
/usr/local/logstash-6.6.1/bin/logstash -f /usr/local/logstash-6.6.1/config/logstash.conf

3. ログスタッシュ.yml

[root@localhost logstash]# egrep "^[^#]" logstash.yml 
パス.データ: /opt/data
パス.logs: /opt/logs
パイプラインバッチサイズ: 200

4. ログスタッシュ.conf

入力{
 ファイル {
  パス => "/usr/local/nginx/logs/access.log"
  タイプ => "nginx"
  start_position => "始まり"
  sincedb_path => "/dev/null"
 }
 ファイル {
  パス => "/var/log/secure"
  タイプ => "セキュア"
  start_position => "始まり"
  sincedb_path => "/dev/null"
 }
}
#詳しい説明については、以前のブログフィルターを参照してください{
  理解する {
    一致 => {
      「メッセージ」=> '(?<clientip> [0-9] {1,3} \。[0-9] {1,3} \。[0-9] {1,3} \。[0-9] {1,3}) 2} \:[0-9] {2} \:[0-9] {2} \+[0-9]*\]) "(?<requesttype> [az]+)(?<licturl> [^]+)(?<requestv> http/\ d \。\ d) > [^] |(http | https):// [0-9] {1,3} \。[0-9] {1,3} \。[0-9] {1,3} \。[0-9] {1,3} \/) ""(?
    }
     remove_field => ["メッセージ","ログ","ビート","オフセット","プロスペクター","ホスト","@バージョン"]
  }
}
#outputはesコンテナの出力を指します{
 [タイプ] == "nginx" の場合 {
 エラスティックサーチ
  ホスト => ["es:9200"]
  インデックス => "nginx-%{+YYYY.MM.dd}"
    }
   }
 そうでない場合、[type] == "secure" {
  エラスティックサーチ
  ホスト => ["es:9200"]
  インデックス => "secure-%{+YYYY.MM.dd}"
    }
   }
 }

● キバナ

1. キバナdockerファイル

Centos:latest から
kibana-6.6.1-linux-x86_64.tar.gz /usr/local/を追加します。
kibana.yml をコピー /usr/local/kibana-6.6.1-linux-x86_64/config/
コピー start.sh /start.sh
chmod +x /start.sh を実行します。
エクスポーズ5601
エントリポイント ["/start.sh"]

2. キバナ

[root@localhost kibana]# egrep "^[^#]" kibana.yml 
サーバーポート: 5601
サーバーホスト: "0.0.0.0"
#es コンテナ elasticsearch.hosts のポート 9200 を指定します: ["http://es:9200"]

3. キバナを起動します

#!/bin/bash
キバナ

2. docker-compose、ymlファイルの書き込み

[root@localhost elk_dockerfile]# cat docker-compose.yml 

バージョン: '3.7'
サービス:
 エラスティックサーチ:
  画像: elasticsearch:elk
  コンテナ名: es
  ネットワーク:
   -ヘラジカ
  ボリューム:
   - /opt/データ:/opt/データ
   - /opt/logs:/opt/logs
  さらす:
   - 9200
   - 9300
  再起動: 常に
  依存:
   - ログスタッシュ
   -キバナ
 ログスタッシュ:
  画像: logstash:elk
  コンテナ名: logstash
  ネットワーク:
   -ヘラジカ
  ボリューム:
   - /opt/logstash/データ/:/op/データ
   - /opt/logstash/logs/:/opt/logs
   - /opt/elk/elk_dockerfile/logstash/logstash.conf:/usr/local/logstash-6.6.1/config/logstash.conf
   - /usr/local/nginx/logs:/usr/local/nginx/logs
   - /var/log/secure:/var/log/secure
  再起動: 常に
 キバナ:
  画像: キバナ:エルク
  コンテナ名: kibana
  ポート:
   -5601:5601
  ネットワーク:
   -ヘラジカ
  ボリューム:
   - /opt/elk/elk_dockerfile/kibana/kibana.yml:/usr/local/kibana-6.6.1-linux-x86_64/config/kibana.yml
ネットワーク:
 ヘラジカ:

作成ファイルのバージョンは以下を指します

3. アクセスインターフェース

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Docker ベースの ELK を素早く構築する方法
  • NodeフレームワークをELKに接続する実践の簡単な概要
  • Docker を使用して ELK ログ システムを構築する例
  • ELKの原理と導入の詳細な分析

<<:  CentOS 7 で yum を使用して MySQL 5.7.20 をインストールする最も簡単な方法

>>:  Linux CentOS 7.4 で mysql5.7.20 のパスワードを変更する方法

推薦する

スライド効果を実現するためのネイティブJavaScript

ページ、特にホームページを作成するときは、通常、Web サイト全体の他のメイン ページにリンクできる...

VUEトークンの無効化プロセスの詳細な説明

目次ターゲット思考分析コード着陸要約するターゲットトークンの有効期限切れシナリオの処理トークンは、ユ...

Linuxはscpコマンドを使用してファイルをローカルコンピュータにコピーし、ローカルファイルをリモートサーバーにコピーします。

以下のように表示されます。リモート サーバーのファイルをローカルにコピーします。 scp -r -P...

Azure Container Registry を使用してイメージを保存する際の問題

Azure Container Registry は、Docker Registry 2.0 仕様に...

docker.service 起動エラーの詳細なトラブルシューティング

エラーを報告するには次のコマンドを実行しますsystemctl dockerを再起動しますエラーメッ...

HTML における li タグの水平配置の例

ほとんどのナビゲーション バーは、下の図に示すように水平に配置されていますが、これはどのように実現さ...

Tomcat の設定と Eclipse での起動方法

目次Tomcat8のインストールと設定方法tomcat ダウンロードTomcat マネージャーを有効...

小規模プロジェクトで Vue が点滅するのを防ぐ方法

まとめHTML: 要素と v-cloak CSS: [v-cloak]{表示: なし}プロセスページ...

HTML CSS JS はタブページのサンプルコードを実装します

コードをコピーコードは次のとおりです。 <html xmlns="">...

MySQLサーバのスレッド数を表示する方法の詳細な説明

この記事では、例を使用して、MySQL サーバーのスレッド数を表示する方法について説明します。ご参考...

Linuxの同時実行は簡単です。このようにするだけです

並行処理関数 i の `grep server /etc/hosts | awk '{pri...

表示しているページのスナップショットを Baidu が保存できないように設定する方法

今日、Baidu でページを検索したところ、ページが削除されていたため、当然 Baidu スナップシ...

Mysql 自己結合クエリ例の詳細な説明

この記事では、Mysql の自己結合クエリについて説明します。ご参考までに、詳細は以下の通りです。自...

JavaScript でのモグラ叩きゲームの実装

この記事では、モグラ叩きゲームを実装するためのJavaScriptの具体的なコードを参考までに紹介し...

Jenkinsを使用してプロジェクトを別のホストにデプロイするプロセス

環境ホスト名IPアドレス仕えるジェンキンス192.168.216.200トムキャット、ジェンキンスサ...