ELKはESクラスタのインストールおよびその拡張機能、Kibanaのインストールと使用、Logstash設定の拡張機能、プラットフォームを分散しました

ELKワークフロー全体

ここに画像を挿入説明
ELKは、3つのソフトウェア製品の頭字語であるソリューションです
ELKを表す
ログの取得と保管の責任:Elasticsearch
Logstash:収集とログの分析を担当し、処理
ログの可視化責任:Kibanaを

ELKの組立作業やメンテナンス大規模なログシステムは、解くために使用することができる:
分散クエリ・ログ・データは、管理と集中
監視システムは、ハードウェアおよびアプリケーションの様々なコンポーネントが含まれ、システム監視を
トラブルシューティング
セキュリティ情報とイベント管理
レポートを

次のようにELKを設定しました:

A、(動作踏み台)がインストールESクラスタ

動作環境、踏み台マシンと5台のelasticsearchのクラスタマシン
ansible、そこelasticsearch.ymlファイル、または手動でのみインストールしていて
、それは、ホスト名をpingを実行できるように、1.修正/ etc / hostsファイルを
スクリプトansibleを書く2。

[root@ecs-mao1 ~]# cat eess.yml 
---
- hosts: eess   //节点
  tasks: 
    - name: copy
      copy:
        src: /etc/hosts
        dest: /etc/hosts
        owner: root
        group: root
        mode: 0644
    - name: install
      yum:
        name: java-1.8.0-openjdk.x86_64,elasticsearch
        state: latest
    - name: es版本
      template:
        src: elasticsearch.yml
        dest: /etc/elasticsearch/elasticsearch.yml
        owner: bin
        group: wheel
        mode: 0644
      notify:
        - re 
  handlers:
    - name: re
      service:
        name: elasticsearch
        state: started
        enabled: yes

タグ付きのテンプレートコピーテキストブロック

[root@ecs-mao1 ~]# cat elasticsearch.yml  | grep hostname
node.name: {{ ansible_hostname  }}

ansible_hostnameは、モジュール内で設定されたホスト名を示してい

[root@ecs-mao1 ~]# ansible eess -m setup | grep hostname
        "ansible_hostname": "eess-0001", 
        "ansible_hostname": "eess-0002",

3.スクリプトを実行

[root@ecs-mao1 ~]# ansible-playbook eess.yml

結果は成功を示し、

4.試験結果(ESクラスタオペレーション)

[root@eess-0001 ~]# curl  http://192.168.1.111:9200/_cluster/health?pretty  //任意节点都可以

「ステータス」:「グリーン」クラスタの状態:通常、緑、黄色手段は問題があるが、非常に深刻ではない、赤は重大な失敗を示し
、「number_of_nodes」:5を、クラスタ内のノードの数を表し、

第二に、インストールおよびその他のプラグインHEAD

すべてのプラグインは、内部のFTPファイルの石ステッピングされている
唯一のマシンで使用できるマシンにインストールプラグイン、
プラグインをインストールすることを

[root@ecs-mao1 ~]# cat es1.yml 
---
- hosts: eess   //节点
  tasks: 
   - name: XX
     shell: /usr/share/elasticsearch/bin/plugin install ftp://192.168.1.252/public/elasticsearch-head-master.zip
   - name: xx1
     shell: /usr/share/elasticsearch/bin/plugin install ftp://192.168.1.252/public/elasticsearch-kopf-master.zip
   - name: xx2
     shell: /usr/share/elasticsearch/bin/plugin install ftp://192.168.1.252/public/bigdesk-master.zip
[root@ecs-mao1 ~]# ansible-playbook es1.yml  //运行剧本

動作を確認し

[root@eess-0001 bin]# ./plugin  list    //查看安装的插件
Installed plugins in /usr/share/elasticsearch/plugins:
    - head
    - kopf
    - bigdesk

3つのプラグインのページへのアクセス

[root@eess-0001 bin]$ firefox http://192.168.1.55:9200/_plugin/head
[root@eess-0001 bin]$ firefox   http://192.168.1.55:9200/_plugin/kopf
[root@eess-0001 bin]$ firefox  http://192.168.1.55:9200/_plugin/bigdesk

コマンドインデックスの確立
1.インデックスファイル

[root@eess-0001 ~]# curl -X PUT "http://192.168.1.55:9200/index" -d '
> { 
>     "settings":{
>     "index":{
>     "number_of_shards":5,
>     "number_of_replicas":1
>    }
>   }
> }'

[root@eess-0001 bin]$ firefox http://192.168.1.55:9200/_plugin/head  去该网页上查看是否有索引

データを増やす2.

[root@eess-0001 ~]# curl -X PUT "http://192.168.1.111:9200/tedu/teacher/1" -d '{
> "职业":"诗人",
> "名字":"李白",
> "年代":"唐"
> }'

3.修正データ

[root@eess-0001 ~]# curl -X PUT "http://192.168.1.111:9200/tedu/teacher/1" -d '{
"doc":{
"年代": "唐代"
}
}'

4.クエリデータ

[root@eess-0001 ~]# curl -X GET "http://192.168.1.111:9200/tedu/teacher/3?pretty"
{
  "_index" : "tedu",
  "_type" : "teacher",
  "_id" : "3",
  "found" : false
}

5.データ削除

[root@eess-0001 ~]# curl -X DELETE "http://192.168.1.111:9200/tedu/teacher/3?pretty"
{
  "found" : false,
  "_index" : "tedu",
  "_type" : "teacher",
  "_id" : "3",
  "_version" : 1,
  "_shards" : {
    "total" : 2,
    "successful" : 2,
    "failed" : 0
  }
}

6.削除インデックス
の削除(DELETE)
カール-XDELETE HTTP://任意のクラスタノード:9200 /インデックス名/タイプ/述べID上記
カール-XDELETE http://192.168.1.111:9200/tedu/teacher/1

カール-XDELETEます。http://任意のクラスタノード:9200 /インデックス名
カール-XDELETE http://192.168.1.111:9200/tedu

カール-XDELETEます。http://任意のクラスタノード:9200 / *
カール-XDELETE http://192.168.1.111:9200/
すべて同じと認証方式、

第三に、インポートデータ(テストのために、無視することができます)

POSTメソッドを使用して一括インポートデータは、データフォーマットがインデックスを含むURLエンコードされたファイルを使用して、JSON、JSON形式のデータをバイナリインポート構成
図1に示すように、使用されなければならないPOSTメソッド
2は、データ・フォーマットは、JSONでなければならない
。3、符号化フォーマットデータバイナリ
4、キーワードを使用して_bulkインポートデータ

[root@ecs-mao1 ~]# scp  /var/ftp/public/logs.jsonl.gz [email protected]:/root  //把导入传给es节点
[root@eess-0001 ~]# gzip -d logs.jsonl.gz 
[root@eess-0001 ~]# ls
logs.jsonl
[root@eess-0001 ~]# curl -X POST "http://192.168.1.111:9200/_bulk"  \
> --data-binary @logs.jsonl

ビューElasticsearch確認ページ

第四に、インストールkibana

データ可視化プラットフォームツール
1、インストール
yumをkibanaをインストール

図2に示すように、設定ファイル/ etc /ホストを変更
192.168.1.51 ES-0001
192.168.1.52 ES-0002
192.168.1.53 ES-0003
192.168.1.54 ES-0004
192.168.1.55 ES-0005
192.168.1.56 kibana

3、コンフィギュレーション・ファイル/opt/kibana/config/kibana.ymlの変更
はserver.portを:5601
server.host: "0.0.0.0"
elasticsearch.url: "http://192.168.1.111:9200" //はelasticsearchのアドレスを指定します
kibana.index: ".kibana"
kibana.defaultAppId: "発見"
elasticsearch.pingTimeout:1500
elasticsearch.requestTimeout:30000
elasticsearch.startupTimeout:5000

4、启动服务
systemctl start kibana
systemctl enable kibana

ポート5601を検証するために5.確認
のSS -ltunを

第五に、インストールして設定しLogstash

Logstashより多くのリソースを消費し、2CPU 4Gサーバ選択
Logstashの設定ファイルを自分の設定する必要が
Logstash取り組ん構造を
ここに画像を挿入説明
プラグインを使用するには、公式ドキュメントを表示するために必要な
https://www.elastic.co/guide/en/logstash/current/index.html

Logstashをインストール1.

[root@logstash ~]#  yum -y install java-1.8.0-openjdk
[root@logstash ~]# yum -y install logstash
[root@logstash ~]# touch /etc/logstash/logstash.conf     //创建配置文件
[root@logstash ~]#  /opt/logstash/bin/logstash  --version
logstash 2.3.4
[root@logstash ~]# /opt/logstash/bin/logstash-plugin  list   //查看插件
...
logstash-input-stdin    //标准输入插件
logstash-output-stdout    //标准输出插件

2.書き込み設定ファイルの形式

[root@logstash ~]# cat /etc/logstash/logstash.conf 
input{
  stdin{codec => "json"}
  file {
    path => ["/tmp/apache.log"]         //指定日志文件路径,这个是在本地
    sincedb_path => "/root/.sincedb"     //指定指针文件的保存路径(记录已读取文件的位置)
    start_position => "beginning"        //当没有指针文件时,默认从头开始读取
    type => "httplog"                    //标签
  }
  beats{                                 //监听5044端口,接收从5044发送过来的日志数据和标签,客户端会安装filebeat
    port => 5044                         //这属于远程接受日志信息,上面的属于本地

}
filter{
if [type] == "hlog" {                   //当收到标签apache_log时,就会如下操作
  grok {                                 //grok插件:解析各种非结构化的日志数据插件;
                                         //grok使用正则表达式把飞结构化的数据结构化
    match => { "message" => "%{COMBINEDAPACHELOG}" }  //使用作者写的正则
#/opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-pattern-core-2.0.5/patterns/grok-patterns      //作者写的正则
  }}
}
output{
  stdout{ codec => "rubydebug" }         //输出设置为rubydebug
  if [type] == "hlog"{                  //当收到标签apache_log时,就会如下操作
  elasticsearch {                        //指定elasticsearch的地址;建立索引
                                         //当数据超过2000或者10秒时,发送给elasticsearch
    hosts => ["es-0001:9200", "es-0002:9200", "es-0003:9200"]
    index => "web-%{+YYYY.MM.dd}"
    flush_size => 2000                   //每当写2000字节的时候就写刷新一次
    idle_flush_time => 10                //空闲10秒就刷新一次
  }}

}
[root@logstash ~]# /opt/logstash/bin/logstash -f /etc/logstash/logstash.conf 
//启动并测试
Settings: Default pipeline workers: 2
Pipeline main started
aa        //logstash 配置从标准输入读取输入源,然后从标准输出输出到屏幕
2018-09-15T06:19:28.724Z logstash aa

エンドのWebをインストール3。

[root@ecs-ff35 ~]# yum -y install filebeat
[root@ecs-ff35 ~]# vim /etc/filebeat/filebeat.yml
 ..........
      paths:         //指定日志路径
        - /var/log/httpd/access_log
...........
 # elasticsearch:
 #  hosts: ["localhost:9200"]
............
  logstash:          //指定logstash服务器地址
    # The Logstash hosts
    hosts: ["192.168.1.117:5044"]
.........
document_type: hlog  //打标签

[root@ecs-ff35 ~]# systemctl start filebeat

確認します
logstashサーバーでlogstashサービスを開始し、他のマシンとのアクセスのウェブを表示かどうかを確認し、サーバーにアップロードElasticsearchかどうかを確認するために

[root@ecs-b486 ~]# /opt/logstash/bin/logstash -f /etc/logstash/logstash.conf 

ここに画像を挿入説明
kibanaのチャートで成功した後、(IPアドレス5601)

第六は、実際のソースを取得IP

変換IPの後に見て、クラウド上でロードバランシングを使用して、Huawei社、IPは、今見て実際に必要である
文書
https://support.huaweicloud.com/test-usermanual-elb/zh-cn_topic_0172675020.html

HTTPサービス:

実層7にIPを取得する
1。、リスナーELB HTTPプロトコルを使用して提供される
Apacheを増加させるために後端部に配置され2、
[ECS-ウェブ@ルート〜] #猫/etc/httpd/conf.modules.d/00-remoteip .confの
LoadModuleのリモート
ip_moduleモジュール/ mod_remoteip.so
RemoteIPHeader X-転送さ-FOR-
RemoteIPInternalProxy 100.125.0.0/16

3、00-base.confアウトコメント
#LoadModule remoteip_moduleモジュール/ mod_remoteip.so

図4に示すように、コンフィギュレーションファイルを変更するhttpd.confの
LogFormatディレクティブ"%%さh%lの組み合わせ%U%T" %のR "%> S%Bの" %{リファラー} I "" %{のUser-Agent} i "は"
による余分にIP、logstashサーバー上の必要性、変更GROKレギュラー

図5は、サービスを再起動する際に、テストコンフィギュレーションファイルには何の問題もない構文
はapachectl -t
systemctl再起動httpdの
は、tail -fは/ var / log / httpdの/ access_logのログを表示
################### #########################################

nginxのサービス


重新编译添加realip参数
は./configure --prefix =は/ usr / local / nginxの--user = nginxの--group = nginxの--with-http_ssl_module --with-http_realip_module

编辑nginx.conf添加
set_real_ip_from 100.125.0.0/16。
real_ip_header X-転送さ-について;

サービスを再起動
は/ usr / local / nginxの/ sbinに / nginxの-sリロード

################################################## ##########

四つのロードバランシング

ます。mkdir -pます。mkdir -p / libに/モジュール/ n個 A メートル E - R / E バツ トン R A / n個 E トン / トン インクルード A C P トン インクルード A K インクルード バツ から / リットル B / メートル インクルード D リットル E S / (UNAME -r)/エクストラ/ネット/男性toa.ko.xzのCP / libに/ NGAKōwae/ (のuname -r)/エクストラ/ NET / TOA /
でdepmod -a
はlsmod
のmodinfo TOA

サービスを再起動
は/ usr / local / nginxの/ sbinに / nginxの-sリロード

公開された27元の記事 ウォンの賞賛2 ビュー795

おすすめ

転載: blog.csdn.net/f5500/article/details/105082572