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に/モジュール/
(のuname -r)/エクストラ/ NET / TOA /
でdepmod -a
はlsmod
のmodinfo TOA
サービスを再起動
は/ usr / local / nginxの/ sbinに / nginxの-sリロード