一、概述
ELK官網 https://www.elastic.co
ELK由Elasticsearch、Logstash和Kibana三部分組件組成;
Elasticsearch是個開源分布式搜索引擎,它的特點有:分布式,零配置,自動發現,索引自動分片,索引副本機制,restful風格接口,多數據源,自動搜索負載等。
Logstash是一個完全開源的工具,它可以對你的日志進行收集、分析,並將其存儲供以后使用
kibana 是一個開源和免費的工具,它可以為 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以幫助您匯總、分析和搜索重要數據日志。
常見平台架構
ELK = Elasticsearch + Logstash + Kibana
EFK = Elasticsearch + Flume + Kibana
簡單架構:
ELK+Redis
或
(Logstash/Flume)->(Kafka/Redis)->ES->Web
可更簡單些:
Client(Filebeat) --> LogServer(Logstash-->Elasticsearch-->Kibana )
(可以不用Logstash,Filebeat直接輸出到ES)
復雜架構:
數據采集層[離線/實時數據,MySQL/ES/Logstash/Flume]
->數據傳輸層[Kafka/Redis]
->數據緩存層[Storm->Kafka]
->計算存儲層[離線計算(Kylin/Spark SQL/Impala/MR)、實時計算(Storm/Spark Streaming/Flink/Druid)、存儲(ES/MySQL/Hbase/HDFS/Kudu)]
->應用層[Web/REST API]
二、下載安裝ELK
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.4.3.tar.gz --no-check-certificate
wget https://artifacts.elastic.co/downloads/logstash/logstash-5.4.3.tar.gz --no-check-certificate
wget https://artifacts.elastic.co/downloads/kibana/kibana-5.4.3-windows-x86.zip --no-check-certificate
注意需要jdk8環境
在windows 上運行 elasticsearch 分布式日志分析,檢索
下載地址 https://www.elastic.co/downloads
在界面中下載 elasticsearch Logstash Kibana
1 . elasticsearch 下載 ,zip 解壓縮,進入bin 運行文件elasticsearch.bat
啟動成功
2 .由於elasticsearch 只是字符串 等文件信息 ,需要安裝 elasticsearch-head 插件
在當前版本中,由於使用的是6.4.0進行環境搭建,需要使用node 等工具進行安裝插件
步驟一。 安裝node 在此不再贅述
步驟二。安裝 npm install -g grunt-cli 安裝 grunt
使用 grunt –version 查看安裝 grunt的版本信息
3.修改elasticsearch/conf 文件夾 修改 elasticsearch.xml 文件 ,
進入安裝目錄下的config目錄,修改elasticsearch.yml文件.在文件的末尾加入以
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true
node.data: true
其他操作
然后去掉network.host: 192.168.0.1的注釋並改為network.host: 0.0.0.0,去掉cluster.name;node.name;http.port的注釋(也就是去掉#)
雙擊elasticsearch.bat重啟es
4.下載elasticsearch-head包
下載地址 https://github.com/mobz/elasticsearch-head 中下載head插件,選擇下載zip
5.解壓到指定文件夾下,G:\elasticsearch-6.6.2\elasticsearch-head-master 進入該文件夾,修改G:\elasticsearch-6.6.2\elasticsearch-head-master\Gruntfile.js 在對應的位置加上hostname:'*'
6. 修改完成后,使用cmd命令進入 elasticsearch-head-master 文件夾中 ,
執行命令 npm install 然后在執行 npm run start 運行 head
訪問界面
以上為elasticsearch 安裝和查看教程
測試elasticsearch-head
1.使用cmd請求
curl -XGET http://127.0.0.1:9200/_cluster/health?pretty
請求結果
2.使用elasticsearch-head進行請求
請求結果
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
啟動 logstash 服務
需要修改 conf中添加 logstash.conf 在新建的文件中粘貼
input {
file {
type => "nginx_access"
path => "D:\nginx\logs\access.log"
}
}
output {
elasticsearch {
hosts => ["192.168.10.105:9200"]
index => "access-%{+YYYY.MM.dd}"
}
stdout {
codec => json_lines
}
}
進入到bin文件夾中 執行
命令1 logstash.bat agent –f ../config/logstash.conf
命令2 logstash.bat -f ../config/logstash.conf
啟動 logstash 如果報錯 將 logstash.bat 中的 "%CLASSPATH%" 使用 ”” 引號引起來,在執行即可
啟動報錯,不能當成持續服務
reason=>"Expected one of #, input, filter, output at line 1, column 1 (byte1)after "}
是文件格式問題。
Windows文件默認是utf8 。將文件格式改為:ansi格式就可以了。程序可以正常運行
bin\logstash -f ./config/test.conf
啟動Kibana 服務
進入到 kibana-6.4.0-windows-x86_64/bin 文件夾 雙擊 Kibana.bat
剛啟動時 ,需要等大概一分鍾 ,cmd命令 窗口沒有反應
Elasticsearsh 設置中文分詞器
使用安裝命令 elasticsearch-plugin.bat install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.4.0/elasticsearch-analysis-ik-6.4.0.zip
使用windows 安裝會報錯,不如直接下載 然后將文件 信息解壓到 elasticsearch/plugs/ik文件夾下
驗證 在kibana中可以進行 請求,也可在 elasticsearsh中進行請求
GET _search { "query": { "match": { "message": "中華" } } }
將elasticsearsh 設置為windows 系統服務
在bin中執行 elasticsearch-service.bat install
將logstash Kibana 設置為windows 服務
使用nssm進行安裝
nssm下載地址 (官網地址) https://nssm.cc/ci/nssm-2.24-101-g897c7ad.zip
使用
進入到 ELK_WORK\nssm-2.24-101-g897c7ad\win64>nssm install logstash/Kibana
回車后會彈出執行框
NSSM 用法 ( Linux service 使用一樣)
show service installation GUI:
nssm install [<servicename>]
To install a service without confirmation:
nssm install <servicename> <app> [<args> ...]
To show service editing GUI:
nssm edit <servicename>
To retrieve or edit service parameters directly:
nssm dump <servicename>
nssm get <servicename> <parameter> [<subparameter>]
nssm set <servicename> <parameter> [<subparameter>] <value>
nssm reset <servicename> <parameter> [<subparameter>]
To show service removal GUI:
nssm remove [<servicename>]
To remove a service without confirmation:
nssm remove <servicename> confirm
To manage a service:
nssm start <servicename>
nssm stop <servicename>
nssm restart <servicename>
nssm status <servicename>
nssm statuscode <servicename>
nssm rotate <servicename>
nssm processes <servicename>
總結,
在windows中啟動 ELK 日志收集分析查詢 功能 ,
將會在服務中安裝三個服務
Elasticsearch 服務 訪問地址 192.168.10.105:9200
服務名 Elasticsearch 6.4.0 (elasticsearch-service-x64)
logstash 服務 訪問地址 192.168.10.105:9600
Kibana 服務 訪問地址:http://localhost:5601