日志主要包括系統日志、應用程序日志和安全日志等。系統運維和開發人員可以通過日志了解服務器軟硬件信息、檢查配置過程中的錯誤及故障發生的原因。分析日志可以了解服務器的負荷,性能安全性,從而及時采取措施糾正錯誤,因此日志的重要性不言而喻。
但是,在系統分布式后,日志通常被分散的儲存不同的設備上。比如當系統為數十上百台服務器,必須依次登錄每台機器的傳統方法查閱日志,這樣很繁瑣和效率低下。因此日志的集中化管理是隨着系統架構分布式演進,其矛盾越來越明顯,而開源實時日志分析ELK平台完美的解決上述矛盾。
ELK由ElasticSearch(ES)、Logstash和Kiabana三個開源工具組成。
- ES是個開源分布式搜索引擎,它的特點有:分布式,零配置,自動發現,索引自動分片,索引副本機制,restful風格接口,多數據源,自動搜索負載等。
- Logstash是一個完全開源的工具,可以對日志進行收集、分析、並將其存儲供以后使用。
- kibana也是一個開源和免費的工具,他Kibana可以為Logstash和ES提供的日志分析友好的Web界面,可以幫助您匯總、分析和搜索重要數據日志。
本文用於指導ELK在windows10環境下單機版使用,版本選擇:
- logstash-7.1.0
- elasticsearch-7.1.0
- kibana-7.1.0-windows-x86
由於是單機版,這里采用最簡單的架構構建:
讀者可以在ELK官網 https://www.elastic.co/下載最新版本的工具安裝包,Windows環境選擇后綴為zip格式的下載。
1.1 准備並安裝Java環境
Java是ELK三軟件依賴的運行環境,讀者可以在Oracle官網獲取最新版的Java版本,由於只是運行不是開發,所以也可以只下載JRE。安裝完成后配置安裝完成后,配置JAVA_HOME和JRE_HOME環境變量。執行如下命令成功: win+R 輸入:cmd
C:\Users\Administrator>java -version
java version "1.8.0_251"
Java(TM) SE Runtime Environment (build 1.8.0_251-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.251-b08, mixed mode)
由於Logstash服務依賴ES服務,Kibana服務依賴Logstash和ES,所以這里建議ELK的服務啟動順序為:ES->Logstash->Kibana,為了配合服務啟動順序,我們安裝順序和啟動順序保持一致。
1.2 Elasticsearch安裝並使用
Elasticsearch是個開源分布式搜索引擎,它的特點有:分布式,零配置,自動發現,索引自動分片,索引副本機制,restful風格接口,多數據源,自動搜索負載等。
1、編輯ES配置文件:
進入目錄:
E:\software\elasticsearch-7.1.0\config\elasticsearch.yml,修改如下配置:(備注:根據個人自己路徑修改配置)
# 監聽地址和端口
network.host: 127.0.0.1 #es的網絡IP
http.port: 9200 #es服務默認端口
#跨域配置
http.cors.enabled: true
http.cors.allow-origin: "*"
2、啟動ES
進入目錄E:\software\elasticsearch-7.1.0\bin執行
elasticsearch.bat
兩種方法:
1、進入E:\software\elasticsearch-7.1.0\bin 直接雙擊elasticsearch.bat
2、打開Windows PowerShell 進入E:\software\elasticsearch-7.1.0\bin 執行 .\elasticsearch.bat或者.\elasticsearch 執行完成。
打開瀏覽器訪問地址:http://127.0.0.1:9200,展現如下信息表示成功。
3、elasticsearch-head安裝
elasticsearch-head是一個用於管理Elasticsearch的web前端插件
https://github.com/mobz/elasticsearch-head
運行環境准備node.js,Grunt
npm install -g grunt-cli
git clone git://github.com/mobz/elasticsearch-head.git
cd elasticsearch-head
npm install
修改elasticsearch.yml,增加跨域的配置(需要重啟es才能生效)
http.cors.enabled: true
http.cors.allow-origin: "*"
編輯elasticsearch-head/Gruntfile.js,修改服務器監聽地址,connect節點增加hostname屬性,將其值設置為*
connect: {
server: {
options: {
hostname:'*',
port: 9100,
base: '.',
keepalive: true
}
}
}
編輯elasticsearch-head/_site/app.js, 修改默認es地址為http://127.0.0.1:9200/, 也可以不修改。
啟動
npm run start
注意下列信息需要在Logstash連接ES上后才可以展現。
查看數據是否已經同步到ES。
ES數據默認存儲位置:
E:\software\elasticsearch-7.1.0\data
1.3 Logstash安裝並使用
Logstash是一個接收,處理,轉發日志的工具。支持各種類型的日志。
進入 E:\software\logstash-7.1.0\config,然后新建Logstash日志分析配置文件logstash.conf,內容如下:
input {
file {
type => "nginx_access"
path => "D:\nginx\logs\access.log"
}
}
output {
elasticsearch {
hosts => ["192.168.1.106:9200"]
index => "access-%{+YYYY.MM.dd}"
}
stdout {
codec => json_lines
}
}
2、啟動Logstash
logstash.bat -f ../config/logstash.conf
並在D:\nginx\logs\access.log文件中添加如下數據。
請轉到ES查看數據同步情況。
1.4 Kibana安裝並使用
kibana 是一個開源和免費的工具,它可以為 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以幫助您匯總、分析和搜索重要數據日志。
1、編輯Kibana配置文件:
E:\software\kibana-7.1.0-windows-x86_64\config\kibana.yml 修改如下配置
server.port: 5601 #本機的端口
server.host: 192.168.1.102 #本機IP地址
elasticsearch.url: http://192.168.1.102:9200 #ES的服務IP+端口
2、啟動Kibana
E:\software\kibana-7.1.0-windows-x86_64\bin 執行
kibana.bat
3、瀏覽Kibana數據
kibana: http://127.0.0.1:5601/
剛才在寫入數據的時候已經創建了access開頭的索引,因此這里需要創建access-*
輸入access-*,然后點擊create
點擊discover,頁面展現獲取的數據
1.5 到此安裝完成
日志主要包括系統日志、應用程序日志和安全日志等。系統運維和開發人員可以通過日志了解服務器軟硬件信息、檢查配置過程中的錯誤及故障發生的原因。分析日志可以了解服務器的負荷,性能安全性,從而及時采取措施糾正錯誤,因此日志的重要性不言而喻。
但是,在系統分布式后,日志通常被分散的儲存不同的設備上。比如當系統為數十上百台服務器,必須依次登錄每台機器的傳統方法查閱日志,這樣很繁瑣和效率低下。因此日志的集中化管理是隨着系統架構分布式演進,其矛盾越來越明顯,而開源實時日志分析ELK平台完美的解決上述矛盾。
ELK由ElasticSearch(ES)、Logstash和Kiabana三個開源工具組成。
- ES是個開源分布式搜索引擎,它的特點有:分布式,零配置,自動發現,索引自動分片,索引副本機制,restful風格接口,多數據源,自動搜索負載等。
- Logstash是一個完全開源的工具,可以對日志進行收集、分析、並將其存儲供以后使用。
- kibana也是一個開源和免費的工具,他Kibana可以為Logstash和ES提供的日志分析友好的Web界面,可以幫助您匯總、分析和搜索重要數據日志。
本文用於指導ELK在windows10環境下單機版使用,版本選擇:
- logstash-5.4.3
- elasticsearch-5.4.3
- kibana-5.4.3-windows-x86
由於是單機版,這里采用最簡單的架構構建:
讀者可以在ELK官網 https://www.elastic.co/下載最新版本的工具安裝包,Windows環境選擇后綴為zip格式的下載。
1.1 准備並安裝Java環境
Java是ELK三軟件依賴的運行環境,讀者可以在Oracle官網獲取最新版的Java版本,由於只是運行不是開發,所以也可以只下載JRE。安裝完成后配置安裝完成后,配置JAVA_HOME和JRE_HOME環境變量。執行如下命令成功:
C:\Users\45014>java -version
java version "1.8.0_171"
Java(TM) SE Runtime Environment (build 1.8.0_171-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)
由於Logstash服務依賴ES服務,Kibana服務依賴Logstash和ES,所以這里建議ELK的服務啟動順序為:ES->Logstash->Kibana,為了配合服務啟動順序,我們安裝順序和啟動順序保持一致。
1.2 Elasticsearch安裝並使用
Elasticsearch是個開源分布式搜索引擎,它的特點有:分布式,零配置,自動發現,索引自動分片,索引副本機制,restful風格接口,多數據源,自動搜索負載等。
1、編輯ES配置文件:
進入目錄:
D:\Study\codeproject\elasticsearch-5.4.3\config\elasticsearch.yml,修改如下配置:
network.host:192.168.1.106 #ES的網絡IP
http.port: 9200 #ES服務端口
2、啟動ES
進入目錄D:\Study\codeproject\elasticsearch-5.4.3\bin執行
elasticsearch.bat
打開瀏覽器訪問,展現如下信息表示成功。
3、elasticsearch-head安裝
elasticsearch-head是一個用於管理Elasticsearch的web前端插件
https://github.com/mobz/elasticsearch-head
運行環境准備NodeJS,Grunt
npm install -g grunt-cli
git clone git://github.com/mobz/elasticsearch-head.git
cd elasticsearch-head
npm install
修改elasticsearch.yml,增加跨域的配置(需要重啟es才能生效)
http.cors.enabled: true
http.cors.allow-origin: "*"
編輯elasticsearch-head/Gruntfile.js,修改服務器監聽地址,connect節點增加hostname屬性,將其值設置為*
connect: {
server: {
options: {
hostname:'*',
port: 9100,
base: '.',
keepalive: true
}
}
}
編輯elasticsearch-head/_site/app.js, 修改默認es地址為http://192.168.1.102:9200/, 也可以不修改。
啟動
npm run start
瀏覽器打開http://192.168.1.106:9100/
注意下列信息需要在Logstash連接ES上后才可以展現。
查看數據是否已經同步到ES。
ES數據默認存儲位置:
D:\Study\codeproject\elasticsearch-5.4.3\data
1.3 Logstash安裝並使用
Logstash是一個接收,處理,轉發日志的工具。支持各種類型的日志。
進入 D:\Study\codeproject\logstash-5.4.3\config,然后新建Logstash日志分析配置文件logstash.conf,內容如下:
input {
file {
type => "nginx_access"
path => "D:\nginx\logs\access.log"
}
}
output {
elasticsearch {
hosts => ["192.168.1.106:9200"]
index => "access-%{+YYYY.MM.dd}"
}
stdout {
codec => json_lines
}
}
2、啟動Logstash
logstash.bat -f ../config/logstash.conf
並在D:\nginx\logs\access.log文件中添加如下數據。
請轉到ES查看數據同步情況。
1.4 Kibana安裝並使用
kibana 是一個開源和免費的工具,它可以為 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以幫助您匯總、分析和搜索重要數據日志。
1、編輯Kibana配置文件:
D:\Study\codeproject\kibana-5.4.3-windows-x86\config\kibana.yml 修改如下配置
server.port: 5601 #本機的端口
server.host: 192.168.1.102 #本機IP地址
elasticsearch.url: http://192.168.1.102:9200 #ES的服務IP+端口
2、啟動Kibana
D:\Study\codeproject\kibana-5.4.3-windows-x86\bin 執行
kibana.bat
3、瀏覽Kibana數據
kibana: http://192.168.1.102:5601/
剛才在寫入數據的時候已經創建了access開頭的索引,因此這里需要創建access-*
輸入access-*,然后點擊create
點擊discover,頁面展現獲取的數據
1.5 總結