文章目錄
- ELK
-
- ELK介紹
-
- Elasticsearch
- Logstash
- kibana
- 安裝
-
- JDK
- 軟體包
- Elasticsearch
-
- 配置elasticsearch
- 啟動elasticsearch
-
- windows啟動
- linux啟動
- logstash
-
- 解壓
- 配置logstash
- 啟動logstash
-
- windows啟動
- linux啟動
- Kibana
-
- linux 解壓kibana
- windows啟動
- 進入kibana bin檔案中執行
- 運作kibana
ELK
ELK介紹
ELK由Elasticsearch、Logstash和Kibana三部分元件組成;
Elasticsearch
lasticsearch是個開源分布式搜尋引擎,它的特點有:分布式,零配置,自動發現,索引自動分片,索引副本機制,restful風格接口,多資料源,自動搜尋負載等。
Logstash
是一個完全開源的工具,它可以對你的日志進行收集、分析,并将其存儲供以後使用
kibana
一個開源和免費的工具,它可以為 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以幫助您彙總、分析和搜尋重要資料日志
安裝
嘗試了 幾個版本的安裝方式都是差不多的。
本人伺服器不行,故以windows安裝了。。。
https://www.elastic.co/downloads 官網
下載下傳安裝的elk一定要是相同版本的。
JDK
yum install -y java-1.8.0-openjdk --安裝jdk (會自動安裝jdk相關的配置)
軟體包
将下載下傳的elk上傳到伺服器
Elasticsearch
cd /usr/local/tools
tar zxf elasticsearch-6.5.0.tar.gz --解壓elasticsearch
mv elasticsearch-5.4.1 /usr/local/elasticsearch --将elasticsearch重命名移動到其它目錄
cd /usr/local/elasticsearch/config/
配置elasticsearch
編輯elasticsearch.yml
正常配置 伺服器更改ip以及data&logs 路徑
discovery.seed_hosts: ["127.0.0.1"]
cluster.initial_master_nodes: ["node-3"] --參數設定一系列符合主節點條件的節點的主機名或 IP 位址來引導啟動叢集
path.data: D:/search7.12.0/elasticsearch-7.12.0/data --資料存儲路徑
path.logs: D:/search7.12.0/elasticsearch-7.12.0/logs --日志存儲路徑
bootstrap.memory_lock: false --為true鎖定記憶體位址&false不鎖定
bootstrap.system_call_filter: false
node.name: node-3 --節點名
node.master: true --是否為主節點
network.host: 127.0.0.1 --ip
http.cors.enabled: true --是否支援跨域,預設為false不支援
http.cors.allow-origin: "*" --當設定允許跨域,預設為*,表示支援所有域名,如果我們隻是允許某些網站能通路,那麼可以使用正規表達式。比如隻允許本地位址
可選配置
http.cors.allow-methods --允許跨域的請求方式,預設OPTIONS,HEAD,GET,POST,PUT,DELETE
http.cors.allow-headers --跨域允許設定的頭資訊,預設為X-Requested-With,Content-Type,Content-Length
http.cors.allow-credentials --是否傳回設定的跨域Access-Control-Allow-Credentials頭,如果設定為true,那麼會傳回給用戶端。
配置完成之後啟動elasticsearch
啟動elasticsearch
windows啟動
windows點選bin目錄下的
linux啟動
./bin/elasticsearch & --啟動es
啟動成功之後通路
logstash
linux再将lonstash解壓到對應目錄下之後
解壓
tar –zxvf logstash-7.12.0.tar.gz
配置logstash
在bin建立一個.conf檔案,輸入以下配置資訊
input {
jdbc {
# 資料庫
jdbc_connection_string => "jdbc:mysql://59.110.240.77:3306/infomation"
jdbc_user => "fetter"
jdbc_password => "fetter"
# mysql驅動解壓的位置
jdbc_driver_library => "E:/Download/mysql/mysql-connector-java-5.1.46/mysql-connector-java-5.1.46.jar"
# mysql驅動類
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_paging_enabled => "true"
jdbc_page_size => "50000"
#可以使用sql檔案的方式
#statement_filepath => ""
#要同步的表
statement => "select id,username,password,dev_mac from user"
schedule => "* * * * *"
#索引type
type => "tag"
#索引設定時區
jdbc_default_timezone => "Asia/Shanghai"
}
}
output {
elasticsearch {
hosts => "http://127.0.0.1:9200"
#索引名稱
index => "myindex"
document_id => "%{id}"
#輸出的索引type此處表示上面的tag
"document_type" => "%{type}"
}
stdout {
codec => json_lines
}
}
下面的輸出會将對應的日志輸出到對應ip的es之上。
啟動logstash
windows啟動
windows下cmd執行bin目錄之下建立.conf檔案啟動
linux啟動
./bin/logstash -f bin/pg.conf & --加& 表示離線運作
nohup ./bin/logstash -f bin/pg.conf & --加nohup表示扔到背景運作
啟動成功之後檢視logstash
http://localhost:9100
Kibana
linux 解壓kibana
這裡的配置不用修改,直接預設啟動。
windows啟動
windows直接點選bin目錄之下的kibana.bat
linux啟動
進入kibana bin檔案中執行
./bin/kibana & --&表示kibana背景運作
運作kibana
通路預設的5601端口,上面能看到采集到的日志
http://localhost:5601