ELK日誌分析系統
摘要
顧名思義ELK是由Elasticsearch,Logstash,Kibana三大元件構成的一個基於web頁面的日誌分析工具。
日誌分析是運維工程師解決系統故障,發現問題的主要手段。日誌包含多種型別,包括程式日誌,系統日誌以及安全日誌等。通過對日誌分析,預發故障的發生,又可以在故障發生時,尋找到蛛絲馬跡,快速定位故障點。及時解決。
元件結構:
Elasticsearch:是一個開源分散式時實分析搜尋引擎,建立在全文搜尋引擎庫Apache Lucene基礎上,同時隱藏了Apache Lucene的複雜性。Elasticsearch將所有的功能打包成一個獨立的動畫片,索引副本機制,RESTful風格介面,多資料來源。自動搜尋等特點。
Logstash :是一個完全開源的工具,主要用於日誌收集,同時可以對資料處理,並輸出給Elasticarch
Kibana:也是一個完全開源的工具,kibana可以為Logstash和Elasticsearch提供圖形化的日誌分析。Web介面,可以彙總,分析和搜尋重要資料日誌。
Top
一、ELK日誌分析系統簡介
日誌伺服器
提高安全性
集中存放日誌
缺陷
對日誌的分析困難
1.2、ELK日誌分析系統
1.2.1、Elasticsearch
1.2.2、Logstash
1.2.3、Kibana
1.3、日誌處理步驟
1.3.1、將日誌進行集中化管理
1.3.2、將日誌格式化(Logstash)並輸出到(Elasticsearch)
1.3.3、對格式化後的資料進行索引和儲存(Elasticsearch)
1.3.4、前端資料的展示(Kibana)
Top
二、ELK元件介紹
2.1、ELasticsearch的概述
提供了一個分散式多使用者能力的全文搜尋引擎
2.2、Elasticsearch核心概念
2.2.1、接近實時
2.2.2、叢集
2.2.3、節點
2.2.4、索引
索引(庫)→型別(表)→文件(記錄)
2.2.5、分片和副本
2.3、Logstash介紹
2.3.1、Logstash介紹
一款強大的資料處理工具
可實現資料傳輸、格式處理、格式化輸出
資料輸入、資料加工(如過濾,改寫等)以及資料輸出
2.3.2、Logstash主要元件
Shipper
Indexer
Broker
Search and Storage
Web Interface
2.4、Kibana介紹
2.4.1、Kibana介紹
一個針對Elasticsearch的開源分析及視覺化平臺
搜尋、檢視儲存在Elasticsearch索引中的資料
通過各種圖表進行高階資料分析及展示
2.4.2、Kibana主要功能
Elasticsearch無縫之整合
整合資料,複雜資料分析
讓更多團隊成員受益
介面靈活,分享更容易
配置簡單,視覺化多資料來源
簡單資料匯出
Top
三、ELK日誌問及那系部署
3.1、環境說明
部署兩臺Elasticsearch做叢集,node1做ELK日誌分析系統
3.2、Elasticsearch配置(下面的操作都需要在node1、node2上配置)
3.2.1、安裝金鑰及elasticsearch源
[root@node1 ~]# rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch
[root@node1 ~]# cd /etc/yum.repos.d/
[root@node1 yum.repos.d]# vi 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@node1 ~]# yum list #檢視yum清單
[root@node1 ~]# yum install elasticsearch -y #安裝elasticsearch
[root@node1 ~]# yum install java -y #安裝Java
[root@node1 ~]# java -version #檢視Java版本
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.2.2、修改配置檔案
[root@node1 yum.repos.d]# vi /etc/elasticsearch/elasticsearch.yml
17行 叢集名稱
cluster.name: elastic
23行 節點名稱
node.name: linux-node1
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
3.2.3、建立目錄及開啟服務
1 [root@node1 yum.repos.d]# mkdir -p /data/es-data
2 [root@node1 yum.repos.d]# chown -R elasticsearch:elasticsearch /data/es-data
3 [root@node1 yum.repos.d]# systemctl start elasticsearch.service
4 [root@node1 yum.repos.d]# netstat -anpt | grep 9200
5 tcp6 0 0 :::9200 ::? LISTEN 54134/java
3.2.4、測試
1 http://20.0.0.10:9200
[root@node1 yum.repos.d]# curl -i -XGET ‘http://20.0.0.20: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
}
}
[root@node2 yum.repos.d]# curl -i -XGET ‘http://20.0.0.10: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
}
}
3.2.5、安裝Elasticsearch外掛
1 [root@node1 yum.repos.d]# /usr/share/elasticsearch/bin/plugin install mobz/elasticsearch-head
3.2.6、測試
1 http://192.168.175.139:9200/_plugin/head/
3.2.7、符合查詢
提交請求
查詢
刪除後再查詢
3.2.8、elasticsearch叢集部署
1 [root@node1 yum.repos.d]# vi /etc/elasticsearch/elasticsearch.yml
2 69行 單播列表自動發現機制
3 discovery.zen.ping.unicast.hosts: [“20.0.0.10”, “20.0.0.20”]
4
5 重啟服務
6 [root@node1 yum.repos.d]# systemctl restart elasticsearch.service
3.2.9、測試
1 http://192.168.175.139:9200/_plugin/head/
3.2.10、node-01和node-02日誌提示不讓鎖記憶體
[root@node1 elasticsearch]# less /var/log/elasticsearch/elastic.log
…
[2020-11-18 10:36:42,959][WARN ][bootstrap ] These can be adjusted by modifying /etc/security/limits.conf, for example:
# allow user ‘elasticsearch’ mlockall
elasticsearch soft memlock unlimited
elasticsearch hard memlock unlimited
修改配置檔案
[root@node1 elasticsearch]# vim /etc/security/limits.conf
//末尾插入
allow user ‘elasticsearch’ mlockall
elasticsearch soft memlock unlimited
elasticsearch hard memlock unlimited
[root@node1 elasticsearch]# systemctl stop elasticsearch.service
[root@node1 elasticsearch]# systemctl start elasticsearch.service
3.2.11、安裝監控元件
1 [root@node1 elasticsearch]# /usr/share/elasticsearch/bin/plugin install lmenezes/elasticsearch-kopf
3.2.12、測試
3.3、Logstash部署(node1上部署)
3.3.1、安裝金鑰及Logstash源
1 [root@node1 elasticsearch]# rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch
2 [root@node1 elasticsearch]# vi /etc/yum.repos.d/logstash.repo
3 [logstash-2.1]
4 name=Logstash repository for 2.1.x packages
5 baseurl=http://packages.elastic.co/logstash/2.1/centos
6 gpgcheck=1
7 gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch
8 enable=1
9
10 安裝Logstash
11 [root@node1 elasticsearch]# yum install logstash -y
相關文章
- elk 日誌分析系統
- 【ELK】日誌分析系統
- ELK-日誌分析系統
- ELK+FileBeat日誌分析系統
- ELK日誌分析系統詳解
- 企業級日誌分析系統——ELK
- ELK 日誌分析系統 ----------- 部署ElasticSearch群集Elasticsearch
- ELK前端日誌分析、監控系統前端
- ELK 日誌分析體系
- 最新Centos7.6 部署ELK日誌分析系統CentOS
- centos7 安裝elk日誌分析系統CentOS
- [日誌分析篇]-利用ELK分析jumpserver日誌-日誌拆分篇Server
- 搭建ELK日誌分析系統(四)-kibana安裝和使用
- ELK日誌系統之通用應用程式日誌接入方案
- 基於AWS-ELK部署系統日誌告警系統
- ELK日誌分析系統 超詳細!!理論+實操講解!!
- ELK日誌
- Windows系統搭建ELK日誌收集伺服器Windows伺服器
- Kafka與ELK實現一個日誌系統Kafka
- 開源元件ELK日誌系統配置與管理元件
- ELK日誌系統之使用Rsyslog快速方便的收集Nginx日誌Nginx
- ELK+kafka+Winlogbeat/FileBeat搭建統一日誌收集分析管理系統Kafka
- 日誌分析平臺ELK之日誌收集器filebeat
- 【ELK】elastalert 日誌告警AST
- 日誌分析平臺ELK之日誌收集器logstash
- go-kit 微服務 日誌分析管理 (ELK + Filebeat)Go微服務
- 微服務下,使用ELK做日誌收集及分析微服務
- 使用Docker快速部署ELK分析Nginx日誌實踐DockerNginx
- 使用 ELK 搭建日記系統
- ElasticSearch實戰系列九: ELK日誌系統介紹和安裝Elasticsearch
- 日誌系統ELK使用詳解(四)--kibana安裝和使用
- ELK實時分析之php的laravel專案日誌PHPLaravel
- Splunk + Forwarder 收集分析Windows系統日誌ForwardWindows
- [elk]基於elk的業務日誌格式設計
- Linux-ELK日誌收集Linux
- docker 容器日誌集中 ELK + filebeatDocker
- ELK日誌告警elastalert2AST
- .NET Core + ELK搭建視覺化日誌分析平臺(上)視覺化