ELK日誌
ELK
1.ELK日誌分析系統簡介
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-lQpGTQqj-1606131447469)(C:\Users\Rikka\AppData\Roaming\Typora\typora-user-images\1606120893157.png)]
1.日誌伺服器
提高安全性; 集中存放日誌; 缺陷:對日誌分析困難
2.ELK日誌分析系統
Elasticsearch; Logstash; Kibana
3.日誌處理步驟
將日誌進行集中化管理 將日誌格式化(Logstash)並輸出到(Elasticsearch) ;對格式化後的資料進行索引和儲存(Elasticsearch); 前端資料的展示(Kibana)
2.Elasticsearch介紹
Elasticsearch的概述
提供了一個分散式多使用者能力的全文搜尋引擎
Elasticsearch核心概念
接近實時
叢集
節點
索引
索引(庫)—>型別(表)—>文件(記錄)
分片和副本
3.Logstash介紹
Logstash介紹
一款強大的資料處理工具
可實現資料傳輸、格式處理、格式化輸出
資料輸入、資料加工(如過濾、改寫等)以及資料輸出
LogStash主要元件
Shipper //日誌收集者。負責監控本地日誌檔案的變化,即時收集最新的日誌檔案內容
Indexer //日誌儲存者。負責接收日誌並寫入到本地檔案
Broker //日誌Hub。負責連線多個Shipper和多個Indexer
Search and Storage //允許對事件進行搜尋和儲存
Web Interface //基於Web的展示介面
//在Logstash中,包括了三個階段,分別是輸入(Input)、處理(Filter,非必需)和輸出(Output)
4.Kibana介紹
Kibana介紹
一個針對Elasticsearch的開源分析及視覺化平臺
搜尋、檢視儲存在Elasticsearch索引中的資料
通過各種圖表進行高階資料分析及展示
Kibana主要功能
Elasticsearch無縫之整合
整合資料,複雜資料分析
讓更多團隊成員受益
介面靈活,分享更容易
配置簡單,視覺化多資料來源
簡單資料匯出
5.部署ELK日誌分析系統
困境
1:開發人員不能登入線上伺服器檢視日誌
2:各個系統都有日誌,日誌分散難以查詢
3:日誌資料量大,查詢慢,資料不夠實時
Elastic Search 分散式搜尋引擎
LogStash 日誌收集
Kibana 日誌展示
6.案列
部署Elasticsearch
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-tlQ5blU0-1606131447470)(C:\Users\Rikka\AppData\Roaming\Typora\typora-user-images\1606121720476.png)]
1.yum安裝Elasticsearch(192.168.106.190;192.168.106.200)
[root@elk-1 ~]# rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch
[root@elk-1 ~]# vim /etc/yum.repos.d/elasticsearch.repo
[elasticsearch-2.x]
name=Elasticsearch repository for 2.x packages
baseurl=http://packages.elastic.co/elasticsearch/2.x/centos
gpgcheck=1
gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch
enable=1
[root@elk-1 ~]# yum install -y elasticsearch java
[root@elk-1 ~]# java -version ###檢視java版本
openjdk version "1.8.0_262"
OpenJDK Runtime Environment (build 1.8.0_262-b10)
OpenJDK 64-Bit Server VM (build 25.262-b10, mixed mode)
2.修改elasticsearch主配置檔案
[root@elk-1 ~]# vim /etc/elasticsearch/elasticsearch.yml
17行 叢集名稱 ###兩個節點一致
cluster.name: abner
23行 節點名稱 ###兩個節點不同
node.name: node-1
33行 工作目錄
path.data: /data/es-data
path.logs: /var/log/elasticsearch/
43行 防止交換swap分割槽
bootstrap.memory_lock: true
54行 監聽網路
network.host: 0.0.0.0
58行 埠
http.port: 9200
68行:discovery.zen.ping.unicast.hosts: ["127.0.0.1", "192.168.106.200"] #叢集發現通過單播實現
3.建立工作目錄並更改屬主及屬組,開啟服務
[root@elk-1 ~]# mkdir -p /data/es-data
[root@elk-1 ~]# chown -R elasticsearch.elasticsearch /data/es-data
[root@elk-1 ~]# systemctl start elasticsearch.service
[root@elk-1 ~]# netstat -anpt | grep 9200
tcp6 0 0 :::9200 :::* LISTEN 46814/java
4.測試
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-DMEE8Hsx-1606131447471)(C:\Users\Rikka\AppData\Roaming\Typora\typora-user-images\1606122095722.png)]
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-QcL6xp2p-1606131447472)(C:\Users\Rikka\AppData\Roaming\Typora\typora-user-images\1606122123485.png)]
5.兩種方法和ES進行互動
第一種 JAVA API
第二種 RESTful API (通過json格式互動)
[root@elk-1 ~]# curl -i -XGET 'http://192.168.192.190:9200/_count?pretty' -d '{
> "query": {
> "match_all": {}
> }
> }'
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Content-Length: 95
{
"count" : 0,
"_shards" : {
"total" : 0,
"successful" : 0,
"failed" : 0
}
}
6.兩個節點安裝elasticsearch-head外掛(安裝外掛可以更加人性化的管理叢集)
[root@elk-1 ~]# /usr/share/elasticsearch/bin/plugin install mobz/elasticsearch-head
……省略內容
Installed head into /usr/share/elasticsearch/plugins/head ###安裝位置
7.node-01和node-02日誌提示不讓鎖記憶體
[root@elk-1 ~]# less /var/log/elasticsearch/abner.log
# allow user 'elasticsearch' mlockall
elasticsearch soft memlock unlimited
elasticsearch hard memlock unlimited
[root@elk-1 ~]# vim /etc/security/limits.conf ###末尾插入
elasticsearch soft memlock unlimited
elasticsearch hard memlock unlimited
[root@elk-1 ~]# systemctl stop elasticsearch.service
[root@elk-1 ~]# systemctl start elasticsearch.service
8.測試——輸入192.168.106.190:9200/_plugin/head/
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-D9quvrVS-1606131447474)(C:\Users\Rikka\AppData\Roaming\Typora\typora-user-images\1606122824404.png)]
9.安裝監控元件
[root@elk-1 ~]# /usr/share/elasticsearch/bin/plugin install lmenezes/elasticsearch-kopf
測試——輸入192.168.106.190:9200/_plugin/kopf
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-2Q9O1G9K-1606131447474)(C:\Users\Rikka\AppData\Roaming\Typora\typora-user-images\1606123111466.png)]
部署logstash
1.yum安裝apache服務
[root@apache ~]# yum install -y httpd
[root@apache ~]# systemctl start httpd
2.yum安裝java環境
[root@apache ~]# yum install -y java
已載入外掛:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
軟體包 1:java-1.8.0-openjdk-1.8.0.131-11.b12.el7.x86_64 已安裝並且是最新版本
無須任何處理
[root@apache ~]# java -version
openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-b12)
OpenJDK 64-Bit Server VM (build 25.131-b12, mixed mode)
3.yum安裝 logstash
[root@apache ~]# vi /etc/yum.repos.d/logstash.repo
[logstash-2.1]
name=Logstash repository for 2.1.x packages
baseurl=http://packages.elastic.co/logstash/2.1/centos
gpgcheck=1
gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch
enable=1
[root@apache ~]# yum install -y logstash
[root@apache ~]# ln -s /opt/logstash/bin/* /usr/local/bin ###優化執行路徑
- logstash(apache)與elasticsearch(node)功能是否正常,做對接測試
[root@apache ~]# logstash -e 'input { stdin{} } output { stdout{} }'
//註釋
logstash命令選項解釋:
-f:指定logstash的配置檔案,根據配置檔案配置logstash
-e:後面跟著字串,該字串可以被當做logstash的配置(如果是“ ”,則預設使用stdin做輸入,stdout為輸出)
-t:測試配置檔案是否正確,然後退出
#輸入採用標準輸入,輸出採用標準輸出
定義輸入和輸出流,類似管道
- 使用rubydebug顯示詳細輸出,codec為一種編解碼器
[root@apache ~]# logstash -e 'input { stdin{} } output { stdout{ codec => rubydeb
- 使用logstash將資訊輸出給elasticsearch
[root@apache ~]# logstash -e 'input { stdin{} } output { elasticsearch { hosts => ["192.168.73.40:9200"] } }'
Settings: Default filter workers: 1
Logstash startup completed
abc123
tom456
123jerry
- 開啟瀏覽器輸入http://192.168.106.190:9200/,檢視索引資訊,顯示新的資料資訊說明輸出到elasticsearch成功
8.在apache主機中做對接配置
[root@apache ~]# chmod o+r /var/log/messages ###允許其他使用者訪問
[root@apache ~]# ll /var/log/messages
-rw----r--. 1 root root 439103 11月 23 15:20 /var/log/messages
[root@apache ~]# vim /etc/logstash/conf.d/system.conf
input { ###logstash輸入:從/var/log/messages輸入,型別為system,起始位
file {
path => "/var/log/messages"
type => "system"
start_position => "beginning"
}
}
output { ###logstash輸出:輸出給elasticsearch(以IP地址指定位置)
elasticsearch {
hosts => ["192.168.106.190:9200"]
index => "system-%{+YYY.MM.dd}"
}
}
[root@apache ~]# systemctl restart logstash
9.開啟瀏覽器輸入http://192.168.106.190:9200/,檢視索引資訊,顯示新的索引資訊代表logstash蒐集到的日誌資訊成功輸出給elasticsearch
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-dxHXv2lc-1606131447474)(C:\Users\Rikka\AppData\Roaming\Typora\typora-user-images\1606130950729.png)]
部署kibana
1安裝kibana(192.168.106.190)
[root@elk-1 ~]# tar zxf kibana-4.3.1-linux-x64.tar.gz
[root@elk-1 ~]# vim kibana-4.3.1-linux-x64/config/kibana.yml
//2行
server.port: 5601
//5行
server.host: "0.0.0.0"
//12行 ES地址
elasticsearch.url: "http://192.168.106.190:9200"
//20行
kibana.index: ".kibana"
yum install screen -y
[root@elk-1 ~]# kibana-4.3.1-linux-x64/bin/kibana ###啟動監聽
log [19:22:36.004] [info][status][plugin:kbn_vislib_vis_types] Status changed from uninitialized to green - Ready
log [19:22:36.009] [info][status][plugin:markdown_vis] Status changed from uninitialized to green - Ready
log [19:22:36.017] [info][status][plugin:metric_vis] Status changed from uninitialized to green - Ready
log [19:22:36.020] [info][status][plugin:spyModes] Status changed from uninitialized to green - Ready
log [19:22:36.023] [info][status][plugin:statusPage] Status changed from uninitialized to green - Ready
log [19:22:36.025] [info][status][plugin:table_vis] Status changed from uninitialized to green - Ready
log [19:22:36.028] [info][status][plugin:elasticsearch] Status changed from yellow to green - Kibana index ready
log [19:22:36.036] [info][listening] Server running at http://0.0.0.0:5601
2.瀏覽器中登入http://192.168.106.190:5601,首次登入提示建立一個索引名字:
填入system-*,即對接系統日誌檔名
[19:22:36.025] [info][status][plugin:table_vis] Status changed from uninitialized to green - Ready
log [19:22:36.028] [info][status][plugin:elasticsearch] Status changed from yellow to green - Kibana index ready
log [19:22:36.036] [info][listening] Server running at http://0.0.0.0:5601
2.瀏覽器中登入http://192.168.106.190:5601,首次登入提示建立一個索引名字:
填入system-*,即對接系統日誌檔名
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-OULgE1Hj-1606131447475)(C:\Users\Rikka\AppData\Roaming\Typora\typora-user-images\1606131394191.png)]
相關文章
- 【ELK】elastalert 日誌告警AST
- ELK日誌分析系統
- elk 日誌分析系統
- ELK 日誌分析體系
- 【ELK】日誌分析系統
- [日誌分析篇]-利用ELK分析jumpserver日誌-日誌拆分篇Server
- [elk]基於elk的業務日誌格式設計
- Linux-ELK日誌收集Linux
- ELK-日誌分析系統
- docker 容器日誌集中 ELK + filebeatDocker
- ELK日誌告警elastalert2AST
- SpringBoot使用ELK日誌收集Spring Boot
- Node.js + ELK 日誌規範Node.js
- ELK+logspout收集Docker日誌Docker
- 搭建ELK日誌平臺(單機)
- ELK+FileBeat日誌分析系統
- ELK日誌分析系統詳解
- ELK監控nginx日誌總結Nginx
- ELK日誌系統之通用應用程式日誌接入方案
- ELK太重?試試KFC日誌採集
- 企業級日誌分析系統——ELK
- ELK 日誌分析系統 ----------- 部署ElasticSearch群集Elasticsearch
- ELK前端日誌分析、監控系統前端
- ELK日誌定期清理 ES索引資料索引
- 日誌分析平臺ELK之日誌收集器filebeat
- ELK日誌系統之使用Rsyslog快速方便的收集Nginx日誌Nginx
- 日誌分析平臺ELK之日誌收集器logstash
- ELK+FileBeat+Kafka搭建日誌管理平臺Kafka
- 在Docker上搭建ELK+Filebeat日誌中心Docker
- ELK 處理 Spring Boot 日誌,不錯!Spring Boot
- 利用 ELK 處理 Percona 審計日誌
- 爬蟲日誌監控 -- Elastc Stack(ELK)部署爬蟲AST
- 使用docker搭建ELK分散式日誌同步方案Docker分散式
- go-kit 微服務 日誌分析管理 (ELK + Filebeat)Go微服務
- 最新Centos7.6 部署ELK日誌分析系統CentOS
- 微服務下,使用ELK做日誌收集及分析微服務
- Windows系統搭建ELK日誌收集伺服器Windows伺服器
- 使用Docker快速部署ELK分析Nginx日誌實踐DockerNginx