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 のパスワードを変更する方法

推薦する

centos7.2 オフラインインストール mysql5.7.18.tar.gz

ネットワークが分離されているため、MySQL は yum を使用してインストールできません。ここでは...

スタイルを書く際の背景色宣言の重要性

タイトルの通り、ページを修正すると以下のような状況が発生する可能性があります。現在、古いページを改修...

Docker、プレーヤー機能を備えたCMSオンデマンドシステムを構築

目次文章1. 機械を準備する2. Dockerをインストールする1. 依存パッケージをインストールす...

Centos8で静的IPを設定する方法の詳細な説明

CentOS 8をインストールした後、ネットワークを再起動すると次のエラーが表示されますエラーメッセ...

JavaScript フロントエンドのタイムアウト非同期操作に最適なソリューション

目次コードの実行に長い時間がかかる場合はどうなりますか? Axiosにはタイムアウト処理機能が搭載さ...

Windows 10 に Apache 2.4.41 をインストールするチュートリアル

1. Apache 2.4.41 のインストールと設定最初のステップは、以下に示すように、https...

Mysql は、デッドロック問題を解決するために kill コマンドを使用します (実行中の特定の SQL ステートメントを強制終了します)。

MySQL を使用して特定のステートメントを実行すると、データ量が多いためにデッドロックが発生し、...

テーブルタグ(テーブル)詳細

<br />テーブルは、昔から誰もが使ってきたタグで、今も使われています。しかし、現在の...

K8S クラスターを構築し、Hyper-V で Docker をインストールする方法

Win10 システムをインストールしていて、k8s クラスターを構築する場合、Win10 に付属する...

vue3 を使用してマテリアル ライブラリを構築する方法

目次なぜマテリアルライブラリが必要なのでしょうか?材質は何ですか?素材の種類fuep、vue3 ベー...

Linux mpstat コマンドの使用方法の詳細な説明

1. mpstatコマンド1.1 コマンド形式 mpstat [ -A ] [ -u ] [ -V ...

JavaScript での HTML キャンバスとページ ストレージ テクノロジの使用に関する詳細な説明

目次1. JavaScriptはHTMLでキャンバスを使用する2. ページストレージ技術1. Jav...

ページスピードの最適化の概要

インターネットは人々の生活にますます欠かせないものになってきていると思います。 Ajax や fle...

Vueカスタム命令とその使用方法の詳細な説明

目次1. 指令とは何ですか? Vue でよく使われる組み込みの v ディレクティブv-if と v-...

Mysql は null 値の first/last メソッドの例を実装します

序文MySQL が SQL SELECT コマンドと WHERE 句を使用してテーブルからデータを読...