企業級日誌分析系統——ELK
1.ELK日誌分析系統簡介
日誌伺服器
提高安全性
集中存放日誌
缺陷:對日誌分析困難
ELK日誌分析系統
Elasticsearch
Logstash
Kibana
日誌處理步驟
將日誌進行集中化管理
將日誌格式化(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 日誌展示
日誌收集最好的開發語言就是java 因為有JVM
1.安裝elasticsearch
rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch
cd /etc/yum.repos.d/
vim 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
yum list
yum install elasticsearch -y
yum install java -y (1.8版本)
java -version
//顯示
openjdk version "1.8.0_181"
OpenJDK Runtime Environment (build 1.8.0_181-b13)
OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)
cd /etc/elasticsearch/
vim elasticsearch.yml
17行 叢集名稱
cluster.name: abner
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
mkdir -p /data/es-data
chown -R elasticsearch:elasticsearch /data/es-data/
systemctl start elasticsearch.service
netstat -ntap | grep 9200
測試
http://192.168.100.11:9200
安裝ES外掛
/usr/share/elasticsearch/bin/plugin install mobz/elasticsearch-head
測試
http://192.168.100.11:9200/_plugin/head/
在第二臺伺服器上同時安裝ES服務同上
17行 叢集名稱
cluster.name: abner
23行 節點名稱
node.name: linux-node2
69行 自動發現機制
discovery.zen.ping.unicast.hosts: ["127.0.0.1", "192.168.100.11"]
啟動elasticsearch
同樣在linux-node1中配置
69行 單播列表自動發現機制
discovery.zen.ping.unicast.hosts: ["127.0.0.1", "192.168.100.12"]
測試
http://192.168.100.12:9200/_plugin/head/
會看到主分片和副本分片
//node-01和node-02日誌提示不讓鎖記憶體
less /var/log/elasticsearch/abner.log
...
[2018-08-19 22:01:12,224][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
...
vim /etc/security/limits.conf
//末尾插入
# allow user 'elasticsearch' mlockall
elasticsearch soft memlock unlimited
elasticsearch hard memlock unlimited
systemctl stop elasticsearch.service
systemctl start elasticsearch.service
--------------生產環境中必須要修改(注意)------------------
ulimit -a
open files (-n) 1024
方法:
/etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535
//重啟生效
--------------------------------------------------
//監控元件
github.com 中查詢 kopf
/usr/share/elasticsearch/bin/plugin install lmenezes/elasticsearch-kopf
http://192.168.100.11:9200/_plugin/kopf/#!/cluster
2.安裝logstash
rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch
cd /etc/yum.repos.d/
vim 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
yum install logstash -y
------------------logstash收集系統日誌--------------------------
ln -s /opt/logstash/bin/logstash /usr/bin/
[root@localhost ~]# vim file.conf
input {
file {
path => "/var/log/messages"
type => "system"
start_position => "beginning"
}
file {
path => "/var/log/elasticsearch/yun.log"
type => "es-error"
start_position => "beginning"
codec => multiline {
pattern => "^\["
negate => true
what => "previous"
}
}
}
output {
if [type] == "system" {
elasticsearch {
hosts => ["192.168.100.11:9200"]
index => "system-%{+YYYY.MM.dd}"
}
}
if [type] == "es-error" {
elasticsearch {
hosts => ["192.168.100.11:9200"]
index => "es-error-%{+YYYY.MM.dd}"
}
}
}
//新增多行日誌內容進行驗證
logstash -f /root/file.conf
3.安裝kibana
tar zxvf kibana-4.3.1-linux-x64.tar.gz -C /opt/
mv kibana-4.3.1-linux-x64/ /usr/local/
mv kibana-4.3.1-linux-x64/ kibana
vim /usr/local/kibana/config/kibana.yml
//2行
server.port: 5601
//5行
server.host: "0.0.0.0"
//12行 ES地址
elasticsearch.url: "http://192.168.175.132:9200"
//20行
kibana.index: ".kibana"
yum install screen -y
//啟動監聽
/usr/local/kibana/bin/kibana
ctrl+a+d 進行丟入後臺
http://192.168.175.132:5601/
es-error-*
相關文章
- ELK日誌分析系統
- ELK-日誌分析系統
- ELK+FileBeat日誌分析系統
- ELK日誌分析系統詳解
- ELK 日誌分析系統 ----------- 部署ElasticSearch群集Elasticsearch
- 最新Centos7.6 部署ELK日誌分析系統CentOS
- SpringCloud微服務實戰——搭建企業級開發框架(三十八):搭建ELK日誌採集與分析系統SpringGCCloud微服務框架
- [日誌分析篇]-利用ELK分析jumpserver日誌-日誌拆分篇Server
- 企業級日誌平臺新秀!比 ELK 更輕量、更高效
- ELK日誌系統之通用應用程式日誌接入方案
- ELK+kafka+Winlogbeat/FileBeat搭建統一日誌收集分析管理系統Kafka
- ELK日誌分析系統 超詳細!!理論+實操講解!!
- ELK日誌系統之使用Rsyslog快速方便的收集Nginx日誌Nginx
- 基於AWS-ELK部署系統日誌告警系統
- ELK日誌
- Linux系統級日誌系統Linux
- 開源元件ELK日誌系統配置與管理元件
- Kafka與ELK實現一個日誌系統Kafka
- Windows系統搭建ELK日誌收集伺服器Windows伺服器
- 企業級 SpringBoot 教程 (二十五)sprinboot整合elk,搭建實時日誌平臺Spring Boot
- [elk]基於elk的業務日誌格式設計
- 日誌分析平臺ELK之日誌收集器logstash
- 日誌分析平臺ELK之日誌收集器filebeat
- 【ELK】elastalert 日誌告警AST
- 使用Docker快速部署ELK分析Nginx日誌實踐DockerNginx
- go-kit 微服務 日誌分析管理 (ELK + Filebeat)Go微服務
- 微服務下,使用ELK做日誌收集及分析微服務
- SpringBoot使用ELK日誌收集Spring Boot
- Linux-ELK日誌收集Linux
- 使用 ELK 搭建日記系統
- ElasticSearch實戰系列九: ELK日誌系統介紹和安裝Elasticsearch
- ELK實時分析之php的laravel專案日誌PHPLaravel
- Docker安裝ELK並實現JSON格式日誌分析DockerJSON
- Linux檔案系統與日誌分析Linux
- Elasticsearch+Kibana日誌分析系統搭建Elasticsearch
- linux檔案系統和日誌分析Linux
- 日誌分析平臺ELK之日誌收集器logstash常用外掛配置
- ELK日誌告警elastalert2AST