ELKは何ですか
ELKはじめに
人気の用語オープンソースソフトウェアの3つの要素filebeat Elasticsearch、LogstashによってELK、Kibanaは、それぞれのソフトウェアの中でこれらの3つのソフトウェアの組み合わせでは、異なる機能を実行する、ELKと
ELKスタックと呼ばれ、正式なドメイン名elastic.co ELKスタックの主な利点は以下があります。
- 柔軟なアプローチ:強力な検索機能を備えたelasticsearchリアルタイムフルテキストインデックス
- 設定は比較的簡単です:簡単にインターフェースモジュールの構成kibana logstashプロファイルの部分を使用して、すべての使用JSONをelasticsearch。
- 効率的な検索性能:優れたデザインをリアルタイムに各問い合わせものの、に基づいていますが、百億問い合わせ秒の応答データに到達することができます。
- 直線クラスタスケール:弾性検索とlogstashは、柔軟な線膨張することができ
- 操作のブリリアントエンド:フロントエンドの設計kibana比較カラフル、操作しやすいと
Elasticsearchは何ですか
これは、APIインタフェースを提供する、分散型の高可用性を実現することができるサポートするために、リアルタイムのフルテキスト検索の検索データを得ることができ、拡張性の高いオープンソースの全文検索および分析エンジンで、大規模なログデータを扱うことができ、例えば:Nginxは、Tomcatの、システムログその他の機能。
Logstashは何ですか
カスタムJSON形式を解析するログ、一般的なログをサポートし、プラグ・アンド・フォワード・ログ収集、ログフィルタのサポートを介して達成することができます。
kibanaは何ですか
インターフェース、およびフロントエンドのデータの可視化・プレゼンテーションを介してメインデータコールをElasticsearch。
なぜELK
ELK組立作業やメンテナンス大規模なログシステムは、次の主要な問題に対処するために使用することができます。
- ログデータが収集され、配布され、集中管理およびクエリ
- トラブルシューティング
- セキュリティ情報およびイベント管理
- レポーティングレポーティング
ELK大きなデータ組立動作及び保守システム、次のように主な問題を解決します。
- ログ、トラブルシューティング、障害回復ログ、トラブルシューティング、障害回復、自己修復、自己修復
- アプリケーションログアプリケーションログ解析、誤報、誤警報
- パフォーマンス分析、ユーザーの行動分析のパフォーマンス分析、ユーザーの行動分析
使用シナリオ:
クラスタ展開elasticsearch
以下は、ホストサーバelasticsearchの両方に配備されています
1、JDKのインストールと展開の環境
JDKは1.8.xパッケージと設定環境変数をダウンロードする1、公式サイト
公式JDKアドレスをダウンロードします。https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
[ルート@ ELK-1 SRC] #タールあるxv JDK-8u212-linuxの-x64.tar.gz# JDK解凍されたパケット [ルート@ヘラジカ-1 SRC] #LN -sv /usr/local/src/jdk1.8.0_212/ / usr / local / JDK#JDKソフトリンクを作成 'を/ usr / local /のJDKを' - > '/usr/local/src/jdk1.8.0_212/' [エルク-1 SRC @ルート] -sv LNます。#/ usr /ローカル/ JDK / binに/ javaの/ USR / binに/ Javaの#はJavaのソフトリンクを作成 > 'は/ usr / local / JDK / binに/ javaの' - 」は/ usr / binに/ Javaの [エルク-1 SRC @ルート]#Vimを/ etc / profileを番号の変更、環境変数の設定ファイル のエクスポートHISTTIMEFORMAT = "%F%T 'whoami`" エクスポートエクスポートLANG = "EN_US.UTF-8" エクスポートJAVA_HOME =は/ usr / local / JDK エクスポートCLASSPATH = $ JAVA_HOME :. /jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar エクスポートPATH PATH = $:$ JAVA_HOME / binに [。エルク-SRC @ルート1]#/ etc / profileを。 #環境変数を有効にします
2、検証およびバージョンのJDK JDK環境
[ルート@ヘラジカ-1〜]#のJava -version javaのバージョン"1.8.0_212" のJava(TM)SEランタイム環境(ビルド1.8.0_212-B10) は、Java HotSpot(TM)64ビットサーバーVM(ビルド25.212-B10、混合モード) [ルート@ヘラジカ-1〜]#エコー$ JAVA_HOME は/ usr / local / JDK
3、新しく追加された100グラムフォーマットしたディスクおよび/データディレクトリをマウント
[ルート@ヘラジカ-1 SRC] lsblk# NAME MAJ:MIN RMサイズRO TYPEマウントポイント SDA 8:0 0 0 100Gディスク ├─sda18:1つの0 0 512M部品/ブート └─sda28:2 0 99.5G 0部 ├─centosルート253:0 0 0 99.5G LVM / └─centosスワップ253:1 0 0 4M LVM [SWAP] SDB 8時16分0 100G 0ディスク SR0 11:0 1 0 942M ROM [ルート@ elk- 1 SRC]#mkfs.xfsは/ dev / sdbと 、メタデータ=は/ dev / sdbとISIZE = 512 agcount = 4、agsize = 6553600 BLKS = sectsz = 512 ATTR = 2、projid32bit = 1 = CRC = 1 finobt = 0、疎= 0 データ= BSIZE = 4096ブロック= 26214400、 imaxpct = 25 = SUnitは= 0 SWidth = 0 BLKS 命名=バージョン2 BSIZE = 4096 ASCII-CI = 0 FTYPE = 1 ログ=内部ログBSIZE = 4096ブロック= 12800、バージョン= 2 = sectsz = 512 SUnitは= 0 BLKS、怠惰-COUNT = 1 リアルタイムextsz =なし0 = =ブロック4096、rtextents = 0 [ルート@エルク-SRC 1]#MKDIR /データ#マウント/データディレクトリを作成します
図4は、書き始めたのは/ etc / fstabの設定ファイル、CDブートをマウントするセットは、CDには、それが有効になるかどうかを確認するために、Linuxシステムを再起動するのが最善である、実装後終了
[ルート@ヘラジカ-1 SRC]#のVIMの/ etc / fstabの #の/ etc / fstabの 土1月4日午後4時31分31秒2020にアナコンダにより作成# # #バリアファイルシステム、参照することにより、 '/ devの/ディスク'下に維持されています #参照くださいmanページのfstab(5)、findfs(8)、詳細は(8)、および/またはBLKID(8)をマウント # は/ dev /マッパー/ CentOSのルート/ XFSのデフォルトは0 0 UUID = 64d9f83a-34c5-4025- 94ff-504ca7a00a3f /ブートXFSデフォルト0 の/ dev /マッパ/ CentOSのスワップスワップスワップデフォルト0 の/ dev / sdbと/データXFSデフォルト0#挂载到指定的/データ目录下 [ルート@ヘラジカ-1 SRC] #マウント-a#使自动挂载生效 [ルート@ ELK-1 SRC] #DF -Th# マウントビュー情報を ファイルシステムタイプサイズは%が上のマウントされた無駄の使用を使用し devtmpfs devtmpfs 1.9G 0 1.9G 0%の/ dev tmpfsのtmpfsの1.9G 0 1.9G 0%の/ dev / shmは tmpfsのtmpfsの1.9G 12M 1.9G 1%/実行 1.9G 0 1.9 tmpfsのtmpfsのG 0%/ SYS / FS / cgroup内 の/ dev /マッパ/ CentOSのルートXFS 100G 2.0G 98G 2%/ の/ dev / SDA1 XFS 509M 143M 367M 29%/ブート TMPFS TMPFS 378M 0 378M 0%/実行/ユーザ/ 0 / dev / sdbとXFS 100G 33M 100G 1%/データ
2、ダウンロードして展開elasticsearch
清華大学は、ダウンロードします。https://mirrors.tuna.tsinghua.edu.cn/elasticstack/6.x/yum/
公式ウェブサイトのアドレスをダウンロードします。https://www.elastic.co/cn/downloads/past-releases#elasticsearch
1、インストールパッケージelasticsearch
[ルート@ ELK-1のソース]#yumをインストールelasticsearch-6.8.1.rpm -y
2、設定ファイルを変更しelasticsearch
[ルート@エルク-1 SRC]#vimの/etc/elasticsearch/elasticsearch.yml bootstrap.memory_lock:trueになって#が、それは固定のデフォルトの1Gメモリ占有します ヘラジカクラスタ#クラスタのクラスタ名と他のクラスタ:cluster.nameを名前一致 node.name:ノード名を書き込むノード-1#、ノード名が相互に矛盾して path.data:別個のデータディスクに/データ/データ保存esdata#ディレクトリ搭載 path.logsを:/データ/ eslog #ログディレクトリの保存 network.host:0.0.0.0#リッスンIPアドレス たhttp.port:9200#リスニングポート番号 discovery.zen.ping.unicast.hosts:[ "192.168.7.100"、 " 192.168.7.101"] #は、マルチキャストアドレスを書き、いくつかのelasticsearchは、複数のIPアドレスを書いてあります
3、ホスト上の別のelasticsearchにこのコンフィギュレーションファイル、変更ノード名は、クラスタ分布を達成するために
[ルート@ ELK-1 SRC] #scpコマンド/etc/elasticsearch/elasticsearch.yml 192.168.7.101:/etc/elasticsearch/elasticsearch.yml# 別のホストに渡され ます。[root @ヘラジカ-1 SRC] #のvimの/ etc / elasticsearch /elasticsearch.yml bootstrap.memory_lock:trueになった#が、それは固定のデフォルトの1Gメモリ占有します cluster.nameを:他のクラスタの名前と一致したクラスタのヘラジカクラスタ#クラスタ名 node.name:ノード-2#は、ノード名を書くために、他のノード名と一致しない、ノード2に変更することができるノードの名前 path.data:別個のデータディスクのデータ保存/データ/ esdata#ディレクトリ搭載 path.logsを:/データ/ eslog #ログディレクトリの保存 network.host:0.0.0.0#リッスンIPアドレス たhttp.port:9200#リスニングポート番号 discovery.zen.ping.unicast.hosts:[ "192.168.7.100"、 " 192.168.7.101"] #書き込みつのクラスタユニキャストアドレスは、いくつかのelasticsearchは、複数のIPアドレスを書いてあります
elasticsearchメモリ制限を変更し、同期プロファイル(クラスタの2つのホストは、書き込まれます)
公式文書は説明します。https://discuss.elastic.co/t/memory-lock-not-working/70576
1、固定メモリ上のデフォルトの最大の占有率は確かに足りない、製造での使用に1グラムであるため、我々は、マシンの物理メモリの50%に変更固定メモリを取る必要があるが、最大32Gを超えないようにしてください。
[エルク-1〜@ルート]#vimの/usr/lib/systemd//system/elasticsearch.service LimitMEMLOCK =インフィニティ#修正elasticsearchメモリのサービス無制限の使用を開始します
図2は、コンフィギュレーションファイルを使用して最小および最大メモリの設定と同じelasticsearchメモリを変更します
[ルートエルク@〜1]#Vimの/etc/elasticsearch/jvm.options 2グラムの-Xms2g#最小メモリ -Xmx2g最大メモリ#2グラム
3、elasticsearchサービスを開始
[ルート@ヘラジカ-1 SRC] #chownコマンドelasticsearch.elasticsearch /データの-R#の二つの主なマウントのデータを変更する権限は、サービス開始elasticsearch [ルート-エルク@〜。1]#systemctlデーモンリロード [ELK-ルート@ 1 SRC]#systemctlの開始elasticsearch
4、elasticsearchサービスを開始した後、ログおよびポートログがすでに開始されたビューには、開かれている9200と9300のポートのこの時点で見ることができます。
[ルート@ヘラジカ-1 elasticsearch]#テール-f /data/eslog/elk-cluster.log -nlt [ルート@ヘラジカ-1〜]#ssの 状態のRecv-Qセンド-Qローカルアドレス:ポートピアアドレス:ポートが LISTEN 0 100 127.0.0.1:25 *:* LISTEN 0 128 * 22 *:* LISTEN 0 100 [:: 1]:25 [::]:* LISTEN 0 20480 [::]:9200 [::]:* 9300 [::]:0 20480 [::] LISTEN * LISTEN 0 128 [::]:22 [::]:*
5、ページのアクセスelasticsearchを訪れることができるかどうかを確認します192.168.7.100:9200、 192.168.7.101:9200
図6は、設定ファイルを変更/etc/security/limits.confを、CentOSのシステムのフロントが有効に*書くことができますが、Ubuntuは必要elsaticsearchユーザー名を書くために有効にするには、。
*ソフトコア無制限 *ハードコア無制限 *ソフトNPROC 1000000 *ハードNPROC 1000000 *ソフトNOFILE 1000000 *ハードNOFILE 1000000 *ソフトmemlock 32000 *ハードmemlock 32000 *ソフトmsgqueue 8192000 *ハードmsgqueue 8192000
7、あなたはすでに、ソフトとハードの限界を見ることができる最大値です
[ルート@ヘラジカ-2 SRC]#ulimitの-n 1000000
elasticsearchクラスタサーバーの状態を監視
それは赤、フロントシートが失われたかどうかをチェックしcurlコマンドでクラスタの健康状態を、戻り値が緑であれば、通常の説明は、説明したイエローは、フラグメントのコピー不足しているされています。
[ルート@ヘラジカ-2〜]#カール-sXGET http://192.168.7.100:9200/_cluster/health?pretty=true#カール的IP地址是对端集群的IP地址、非本地的IP地址 { 「CLUSTER_NAME ": "ヘラジカクラスタ"、 "ステータス": "緑"、 "TIMED_OUT":偽、 "number_of_nodes":2、 "number_of_data_nodes":2、 "active_primary_shards":4、 "active_shards":8、 "relocating_shards": 0、 "initializing_shards":0、 "unassigned_shards":0、 "delayed_unassigned_shards":0、 "number_of_pending_tasks":0、 "number_of_in_flight_fetch":0、 "task_max_waiting_in_queue_millis」:0、 "active_shards_percent_as_number":100.0 }
戻り値は、クラスタelasticsearch正常ことを示し、50であれば、次は、クラスタの健康Pythonスクリプトエディタをチェックです。
#!は/ usr / binに/ ENVのpython #coding:UTF-8 #Author劉 インポートしたりするsmtplib email.mime.text輸入ます:MIMETextから email.utilsからはformataddrインポート インポートサブプロセスの 体を= "" 偽= ""偽 OBJ = subprocess.Popen ((「カール-sXGET http://192.168.7.100:9200/_cluster/health?pretty=true"),shell=True,stdout=subprocess.PIPE) データ= obj.stdout.read() DATA1 =評価(データ) 状態= data1.get( "状態") の状態であれば== "緑": プリント( "50") 他: プリント( "100")
スクリプトの実行は、戻り値は、クラスタが正常であることを示し、50です。
[@ルートごとに2〜]#パイソンes.py 50
ドッキングウィンドウ-CEをダウンロードしてインストールするには、アリの雲
アリクラウドドッキングウィンドウ-CEのインストール住所:https://developer.aliyun.com/mirror/docker-ce?spm=a2c6h.13651102.0.0.3e221b11yxp9kR
1、YUM容器取付ドッカー-CE:次のインストール手順aliyunあります
#ステップ1:インストールに必要ないくつかのシステムツール sudoをyumをインストールにyum-utilsの-Y-永続的デバイスマッパーデータLVM2 #ステップ2:ソフトウェアのソース情報の追加 sudoをyumを-config設定マネージャは--add-レポます。https://ミラー.aliyun.com /ドッカー-CE / Linuxの/ CentOSの/ドッカー-ce.repoの #手順3:アップデートとインストールCE-ドッカー にsudo yumをmakecache FAST のsudo yumをインストールドッカー-Y-CEの 。サービスオープンドッカー:#ステップ4 sudoのサービスドッキングウィンドウスタート #注: 最新の公式ソフトウェアのソースソフトウェアがデフォルトで有効になって#、あなたは元の道を編集することで、ソフトウェアパッケージのさまざまなバージョンを取得することができます。ソフトウェアソースのテスト版が利用可能に設定されているたとえば、関係者は、次の方法でオンにすることができませんでした。同様に、あなたは、さまざまなテストバージョンを開くことができます。 VIM /etc/yum.repos.d/docker-ce.repo# #有効[ドッカー-CE-試験]以下である= 0は変更された1 =有効。 # #CE-ドッカーの指定されたバージョンをインストールします 。#ステップ1:検索ドッカー-CEのバージョン: #yumをリストドッカー-ce.x86_64の--showduplicates |並び替え-r キャッシュされたホストファイルからの読み込み#ミラー速度 #ロードされたプラグイン:支店、fastestmirror、langpacks #ドッカ-ce.x86_64の17.03.1.ce-1.el7.centosドッキングウィンドウ-CE-安定 #ドッキングウィンドウ-ce.x86_64 17.03.1.ce- 1.el7.centos @ドッキングウィンドウ-CE-安定 #ドッキングウィンドウ-ce.x86_64 17.03.0.ce-1.el7.centosドッキングウィンドウ-CE-安定 #利用可能なパッケージ #ステップ2:安装指定版本的ドッカー-CE:(VERSION例如上面的17.03.0.ce.1-1.el7.centos) #須藤YUM -yドッカー-CE-[VERSION]をインストール
2、設定ファイルを変更しelsaticsearch
[ルート@ヘラジカ-1〜] #vimの/etc/elasticsearch/elasticsearch.yml# 許可するすべてのプラグイン可能なアクセスelasticsearch http.cors.enabled:trueに http.cors.allow-起源: "*"
3、ダウンロードしてelasticsearchプラグヘッドをインストールします。
プラグインの異なる機能を実行するために、関係者はほかに開発された愛好家がelasticsearchクラスタ機能のステータス監視や構成管理を実現することができるプラグインの数がありますが、有料でいくつかのプラグインが、ほとんどを提供します。
もはや将来elasticsearch 5.xのバージョンでは、インストールに直接頭プラグではなく、開始サービスによってサポートされていないこと。
します。https:gitlabプラグインアドレスダウンロードし、パッケージをダウンロード//github.com/mobz/elasticsearch-head/releasesを800以上のM.を持っています
ダウンロードelasticsearchヘッド-5.tar.gzパケット送信ドッキングウィンドウその後、使用済み容器
[ルート@ヘラジカ-1〜]#]ドッキングウィンドウの負荷-i elasticsearchヘッド-5.tar.gz b6ca02dfe5e6:ロード層[======================= ===========================>] 128.9メガバイト/ 128.9メガバイト 60a0858edcd5:担持層[=========== =======================================>] 45.19メガバイト/ 45.19メガバイト 53c779688d06:担持層[================================================= =>] 126.6メガバイト/ 126.6メガバイト 0a5e2b2ddeaa:担持層[===================================== =============>] 330.5メガバイト/ 330.5メガバイト fa18e5ffd316:担持層[========================= =========================>] 352.3kB / 352.3kB 604c78617f34:担持層[============= =====================================>] 113.7kB / 113.7kB cf2eea3d6e04:担持層[= =================================================> ] 50.16メガバイト/ 50。16メガバイト d556e03b8284:担持層[= =================================================> ] 2.56kB / 2.56kB 95ea76455b84:ロード層[============================================= =====>] 12.72メガバイト/ 12.72メガバイトの ce5705289a91:担持層[================================= =================>] 4.096kB / 4.096kB d09533ddfc0d:担持層[===================== =============================>] 143.3メガバイト/ 143.3メガバイト eb415bbb4658:担持層[========= =========================================>] 23.71メガバイト/ 23.71メガバイト
4、名前のdokcerコンテナにelasticsearch-頭を見て開始します。
[ルート@ヘラジカ-1〜] #]ドッキングウィンドウの画像#の名前のチェックelasticsearchヘッドミラー タグIDは、画像サイズを作成したリポジトリ mobz / elasticsearchヘッドb19a5c98e43b。3. 5年間メンバー824メガバイト前 [ルート-エルク@〜。1] -d -p RUN#ドッカー9100:9100 mobz / elasticsearchヘッド #5 9100ポートマッピングドッカー容器、elasticsearch頭プラグ開始 48ce2547c70b1152706d8e01e406a507d6613235177a82e9e4c271fc7ce0819aを
5、アクセスウェブ結果:192.168.7.100:9100、その後、別のクラスタホストのIPアドレスを接続