国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

ELK 企業(yè)級日志分析系統的概念、ELK Elasticsearch 集群部署

這篇具有很好參考價值的文章主要介紹了ELK 企業(yè)級日志分析系統的概念、ELK Elasticsearch 集群部署。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、ELK 的概述

1、ELK 簡介

  • ELK平臺是一套完整的日志集中處理解決方案,將 ==ElasticSearch、Logstash 和 Kiabana ==三個開源工具配合使用, 完成更強大的用戶對日志的查詢、排序、統計需求。

ElasticSearch

  • 是基于Lucene(一個全文檢索引擎的架構)開發(fā)的分布式存儲檢索引擎,用來存儲各類日志。
  • Elasticsearch 是用 Java 開發(fā)的,可通過 RESTful Web 接口,讓用戶可以通過瀏覽器與 Elasticsearch 通信。
  • Elasticsearch是一個實時的、分布式的可擴展的搜索引擎,允許進行全文、結構化搜索,它通常用于索引和搜索大容量的日志數據,也可用于搜索許多不同類型的文檔。

Kiabana:Kibana

  • 通常與 Elasticsearch 一起部署,Kibana 是 Elasticsearch 的一個功能強大的數據可視化 Dashboard,Kibana 提供圖形化的 web 界面來瀏覽 Elasticsearch 日志數據,可以用來匯總、分析和搜索重要數據。

Logstash

  • 作為數據收集引擎。它支持動態(tài)的從各種數據源搜集數據,并對數據進行過濾、分析、豐富、統一格式等操作,然后存儲到用戶指定的位置,一般會發(fā)送給 Elasticsearch。
  • Logstash 由 Ruby 語言編寫,運行在 Java 虛擬機(JVM)上,是一款強大的數據處理工具, 可以實現數據傳輸、格式處理、格式化輸出。Logstash 具有強大的插件功能,常用于日志處理。

2、可以添加的其它組件

  • Filebeat:輕量級的開源日志文件數據搜集器。通常在需要采集數據的客戶端安裝 Filebeat,并指定目錄與日志格式。
  • Filebeat 就能快速收集數據,并發(fā)送給 logstash 進行解析,或是直接發(fā)給 Elasticsearch 存儲,性能上相比運行于 JVM 上的 logstash 優(yōu)勢明顯,是對它的替代。常應用于 EFLK 架構當中。

3、filebeat 結合 logstash 帶來好處:

  • (1)通過 Logstash 具有基于磁盤的自適應緩沖系統,該系統將吸收傳入的吞吐量,從而減輕 Elasticsearch 持續(xù)寫入數據的壓力

  • (2)從其他數據源(例如數據庫,S3對象存儲或消息傳遞隊列)中提取

  • (3)將數據發(fā)送到多個目的地,例如S3,HDFS(Hadoop分布式文件系統)或寫入文件

  • (4)使用條件數據流邏輯組成更復雜的處理管道

  • 緩存/消息隊列(redis、kafka、RabbitMQ等):可以對高并發(fā)日志數據進行流量削峰和緩沖,這樣的緩沖可以一定程度的保護數據不丟失,還可以對整個架構進行應用解耦。

4、Fluentd的概念

  • 是一個流行的開源數據收集器。由于 logstash 太重量級的缺點,Logstash 性能低、資源消耗比較多等問題,隨后就有 Fluentd 的出現。相比較 logstash,Fluentd 更易用、資源消耗更少、性能更高,在數據處理上更高效可靠,受到企業(yè)歡迎,成為 logstash 的一種替代方案,常應用于 EFK 架構當中。在 Kubernetes 集群中也常使用 EFK 作為日志數據收集的方案。
  • 在 Kubernetes 集群中一般是通過 DaemonSet 來運行 Fluentd,以便它在每個 Kubernetes 工作節(jié)點上都可以運行一個 Pod。 它通過獲取容器日志文件、過濾和轉換日志數據,然后將數據傳遞到 Elasticsearch 集群,在該集群中對其進行索引和存儲。

二、ELK的特征與工作原理

1、為什么要使用 ELK

  • 日志主要包括系統日志、應用程序日志和安全日志。系統運維和開發(fā)人員可以通過日志了解服務器軟硬件信息、檢查配置過程中的錯誤及錯誤發(fā)生的原因。經常分析日志可以了解服務器的負荷,性能安全性,從而及時采取措施糾正錯誤。
  • 往往單臺機器的日志我們使用grep、awk等工具就能基本實現簡單分析,但是當日志被分散的儲存不同的設備上。
  • 如果你管理數十上百臺服務器,你還在使用依次登錄每臺機器的傳統方法查閱日志。這樣是不是感覺很繁瑣和效率低下。當務之急我們使用集中化的日志管理,例如:開源的syslog,將所有服務器上的日志收集匯總。
  • 集中化管理日志后,日志的統計和檢索又成為一件比較麻煩的事情,一般我們使用 grep、awk和wc等Linux命令能實現檢索和統計,但是對于要求更高的查詢、排序和統計等要求和龐大的機器數量依然使用這樣的方法難免有點力不從心。
  • 一般大型系統是一個分布式部署的架構,不同的服務模塊部署在不同的服務器上,問題出現時,大部分情況需要根據問題暴露的關鍵信息,定位到具體的服務器和服務模塊,構建一套集中式日志系統,可以提高定位問題的效率。

2、完整日志系統基本特征

  • 收集:能夠采集多種來源的日志數據
  • 傳輸:能夠穩(wěn)定的把日志數據解析過濾并傳輸到存儲系統
  • 存儲:存儲日志數據
  • 分析:支持 UI 分析
  • 警告:能夠提供錯誤報告,監(jiān)控機制

3、ELK 的工作原理

  • (1)在所有需要收集日志的服務器上部署Logstash;或者先將日志進行集中化管理在日志服務器上,在日志服務器上部署 Logstash。
  • (2)Logstash 收集日志,將日志格式化并輸出到 Elasticsearch 群集中。
  • (3)Elasticsearch 對格式化后的數據進行索引和存儲。
  • (4)Kibana 從 ES 群集中查詢數據生成圖表,并進行前端數據的展示。

總結:logstash作為日志搜集器,從數據源采集數據,并對數據進行過濾,格式化處理,然后交由Elasticsearch存儲,kibana對日志進行可視化處理

三、ELK Elasticsearch 集群部署(實驗)

(在Node1、Node2節(jié)點上操作)

node1節(jié)點(2C/4G):node1/192.168.80.10					Elasticsearch
node2節(jié)點(2C/4G):node2/192.168.80.11					Elasticsearch
Apache節(jié)點:apache/192.168.80.12						Logstash  Kibana  Apache
systemctl stop firewalld
setenforce 0

1.環(huán)境準備

#設置Java環(huán)境

java -version										#如果沒有安裝,yum -y install 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)

ELK 企業(yè)級日志分析系統的概念、ELK Elasticsearch 集群部署,elk,服務器,運維,es,node.js,java

2、部署 Elasticsearch 軟件

(1)安裝elasticsearch—rpm包
#上傳elasticsearch-6.7.2.rpm到/opt目錄下
cd /opt
rpm -ivh elasticsearch-6.7.2.rpm

ELK 企業(yè)級日志分析系統的概念、ELK Elasticsearch 集群部署,elk,服務器,運維,es,node.js,java

(2)修改elasticsearch主配置文件
cp /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml.bak
vim /etc/elasticsearch/elasticsearch.yml
--17--取消注釋,指定集群名字
cluster.name: my-elk-cluster
--23--取消注釋,指定節(jié)點名字:Node1節(jié)點為node1,Node2節(jié)點為node2
node.name: node1
node.master: true		#是否master節(jié)點,false為否
node.data: true			#是否數據節(jié)點,false為否
--33--取消注釋,指定數據存放路徑
path.data: /var/lib/elasticsearch
--37--取消注釋,指定日志存放路徑
path.logs: /var/log/elasticsearch
--43--取消注釋,避免es使用swap交換分區(qū)
bootstrap.memory_lock: true
--55--取消注釋,設置監(jiān)聽地址,0.0.0.0代表所有地址
network.host: 0.0.0.0
--59--取消注釋,ES 服務的默認監(jiān)聽端口為9200
http.port: 9200					#指定es集群提供外部訪問的接口
transport.tcp.port: 9300		#指定es集群內部通信接口
--68--取消注釋,集群發(fā)現通過單播實現,指定要發(fā)現的節(jié)點
discovery.zen.ping.unicast.hosts: ["192.168.80.10:9300", "192.168.80.11:9300"]

grep -v "^#" /etc/elasticsearch/elasticsearch.yml

ELK 企業(yè)級日志分析系統的概念、ELK Elasticsearch 集群部署,elk,服務器,運維,es,node.js,java
ELK 企業(yè)級日志分析系統的概念、ELK Elasticsearch 集群部署,elk,服務器,運維,es,node.js,java
ELK 企業(yè)級日志分析系統的概念、ELK Elasticsearch 集群部署,elk,服務器,運維,es,node.js,java

(3)es 性能調優(yōu)參數
#優(yōu)化最大內存大小和最大文件描述符的數量
vim /etc/security/limits.conf
......
*  soft    nofile          65536
*  hard    nofile          65536
*  soft    nproc           32000
*  hard    nproc           32000
*  soft    memlock         unlimited
*  hard    memlock         unlimited

vim /etc/systemd/system.conf
DefaultLimitNOFILE=65536
DefaultLimitNPROC=32000
DefaultLimitMEMLOCK=infinity

需重啟生效

ELK 企業(yè)級日志分析系統的概念、ELK Elasticsearch 集群部署,elk,服務器,運維,es,node.js,java
ELK 企業(yè)級日志分析系統的概念、ELK Elasticsearch 集群部署,elk,服務器,運維,es,node.js,java

(4)優(yōu)化elasticsearch用戶擁有的內存權限
  • 由于ES構建基于lucene, 而lucene設計強大之處在于lucene能夠很好的利用操作系統內存來緩存索引數據,以提供快速的查詢性能。
  • lucene的索引文件segements是存儲在單文件中的,并且不可變,對于OS來說,能夠很友好地將索引文件保持在cache中,以便快速訪問;
  • 因此,我們很有必要將一半的物理內存留給lucene ; 另一半的物理內存留給ES(JVM heap )。

在ES內存設置方面,可以遵循以下原則

  • 1.當機器內存小于64G時,遵循通用的原則,50%給ES,50%留給操作系統,供lucene使用
  • 2.當機器內存大于64G時,遵循原則:建議分配給ES分配 4~32G 的內存即可,其它內存留給操作系統,供lucene使用
vim /etc/sysctl.conf
#一個進程可以擁有的最大內存映射區(qū)域數,參考數據(分配 2g/262144,4g/4194304,8g/8388608)
vm.max_map_count=262144

sysctl -p
sysctl -a | grep vm.max_map_count

ELK 企業(yè)級日志分析系統的概念、ELK Elasticsearch 集群部署,elk,服務器,運維,es,node.js,java
ELK 企業(yè)級日志分析系統的概念、ELK Elasticsearch 集群部署,elk,服務器,運維,es,node.js,java

(5)啟動elasticsearch是否成功開啟
systemctl start elasticsearch.service
systemctl enable elasticsearch.service
netstat -antp | grep 9200

ELK 企業(yè)級日志分析系統的概念、ELK Elasticsearch 集群部署,elk,服務器,運維,es,node.js,java

(6)查看節(jié)點信息
瀏覽器訪問  http://192.168.80.10:9200  、 http://192.168.80.11:9200 查看節(jié)點 Node1、Node2 的信息。

瀏覽器訪問 http://192.168.80.10:9200/_cluster/health?pretty  、 http://192.168.80.11:9200/_cluster/health?pretty查看群集的健康情況,可以看到 status 值為 green(綠色), 表示節(jié)點健康運行。

瀏覽器訪問 http://192.168.80.10:9200/_cluster/state?pretty  檢查群集狀態(tài)信息。

#使用上述方式查看群集的狀態(tài)對用戶并不友好,可以通過安裝 Elasticsearch-head 插件,可以更方便地管理群集。

ELK 企業(yè)級日志分析系統的概念、ELK Elasticsearch 集群部署,elk,服務器,運維,es,node.js,java
ELK 企業(yè)級日志分析系統的概念、ELK Elasticsearch 集群部署,elk,服務器,運維,es,node.js,java
ELK 企業(yè)級日志分析系統的概念、ELK Elasticsearch 集群部署,elk,服務器,運維,es,node.js,java
ELK 企業(yè)級日志分析系統的概念、ELK Elasticsearch 集群部署,elk,服務器,運維,es,node.js,java

ELK 企業(yè)級日志分析系統的概念、ELK Elasticsearch 集群部署,elk,服務器,運維,es,node.js,java

3、安裝 Elasticsearch-head 插件

  • Elasticsearch 在 5.0 版本后,Elasticsearch-head 插件需要作為獨立服務進行安裝,需要使用npm工具(NodeJS的包管理工具)安裝。
    安裝 Elasticsearch-head 需要提前安裝好依賴軟件 node 和 phantomjs。
  • node:是一個基于 Chrome V8 引擎的 JavaScript 運行環(huán)境。
  • phantomjs:是一個基于 webkit 的JavaScriptAPI,可以理解為一個隱形的瀏覽器,任何基于 webkit 瀏覽器做的事情,它都可以做到。
(1)編譯安裝 node
#上傳軟件包 node-v8.2.1.tar.gz 到/opt
yum install gcc gcc-c++ make -y

cd /opt
tar zxvf node-v8.2.1.tar.gz

cd node-v8.2.1/
./configure
make && make install
(2)安裝 phantomjs
#上傳軟件包 phantomjs-2.1.1-linux-x86_64.tar.bz2 到
cd /opt
tar jxvf phantomjs-2.1.1-linux-x86_64.tar.bz2
cd /opt/phantomjs-2.1.1-linux-x86_64/bin
cp phantomjs /usr/local/bin
(3)安裝 Elasticsearch-head 數據可視化工具
#上傳軟件包 elasticsearch-head-master.zip 到/opt
cd /opt
unzip elasticsearch-head-master.zip
cd /opt/elasticsearch-head/
npm install		 //安裝依賴包
(4)修改 Elasticsearch 主配置文件
vim /etc/elasticsearch/elasticsearch.yml
......
--末尾添加以下內容--
http.cors.enabled: true				#開啟跨域訪問支持,默認為 false
http.cors.allow-origin: "*"			#指定跨域訪問允許的域名地址為所有

systemctl restart elasticsearch

ELK 企業(yè)級日志分析系統的概念、ELK Elasticsearch 集群部署,elk,服務器,運維,es,node.js,java

(5)啟動 elasticsearch-head 服務
#必須在解壓后的 elasticsearch-head 目錄下啟動服務,進程會讀取該目錄下的 gruntfile.js 文件,否則可能啟動失敗。
cd /usr/local/src/elasticsearch-head/
npm run start &

> elasticsearch-head@0.0.0 start /usr/local/src/elasticsearch-head
> grunt server

Running "connect:server" (connect) task
Waiting forever...
Started connect web server on http://localhost:9100

#elasticsearch-head 監(jiān)聽的端口是 9100
netstat -natp |grep 9100

ELK 企業(yè)級日志分析系統的概念、ELK Elasticsearch 集群部署,elk,服務器,運維,es,node.js,java
ELK 企業(yè)級日志分析系統的概念、ELK Elasticsearch 集群部署,elk,服務器,運維,es,node.js,java

(6)通過 Elasticsearch-head 查看 Elasticsearch 信息
通過瀏覽器訪問 http://192.168.80.10:9100/ 地址并連接群集。如果看到群集健康值為 green 綠色,代表群集很健康。

ELK 企業(yè)級日志分析系統的概念、ELK Elasticsearch 集群部署,elk,服務器,運維,es,node.js,java

(7)插入索引
#通過命令插入一個測試索引,索引為 index-demo,類型為 test。
curl -X PUT 'localhost:9200/index-demo/test/1?pretty&pretty' -H 'content-Type: application/json' -d '{"user":"zhangsan","mesg":"hello world"}'
//輸出結果如下:
{
"_index" : "index-demo",
"_type" : "test",
"_id" : "1",
"_version" : 1,
"result" : "created",
"_shards" : {
"total" : 2,
"successful" : 2,
"failed" : 0
},
"created" : true
}

瀏覽器訪問 http://192.168.80.10:9100/ 查看索引信息,可以看見索引默認被分片5個,并且有一個副本。
點擊“數據瀏覽”,會發(fā)現在node1上創(chuàng)建的索引為 index-demo,類型為 test 的相關信息。

ELK 企業(yè)級日志分析系統的概念、ELK Elasticsearch 集群部署,elk,服務器,運維,es,node.js,java
ELK 企業(yè)級日志分析系統的概念、ELK Elasticsearch 集群部署,elk,服務器,運維,es,node.js,java
ELK 企業(yè)級日志分析系統的概念、ELK Elasticsearch 集群部署,elk,服務器,運維,es,node.js,java

四、ELK Logstash 部署(在 Apache 節(jié)點上操作)

  • Logstash 一般部署在需要監(jiān)控其日志的服務器。在本案例中,Logstash 部署在 Apache 服務器上,用于收集 Apache 服務器的日志信息并發(fā)送到 Elasticsearch。
1、更改主機名
hostnamectl set-hostname apache
2、安裝Apahce服務(httpd)
yum -y install httpd
systemctl start httpd
3、安裝Java環(huán)境
yum -y install java
java -version
4、安裝logstash
#上傳軟件包 logstash-6.7.2.rpm 到/opt目錄下
cd /opt
rpm -ivh logstash-6.7.2.rpm                          
systemctl start logstash.service                      
systemctl enable logstash.service

ln -s /usr/share/logstash/bin/logstash /usr/local/bin/

ELK 企業(yè)級日志分析系統的概念、ELK Elasticsearch 集群部署,elk,服務器,運維,es,node.js,java

5、測試 Logstash
(1)Logstash 命令常用選項
  • -f:通過這個選項可以指定 Logstash 的配置文件,根據配置文件配置 Logstash 的輸入和輸出流。
  • -e:從命令行中獲取,輸入、輸出后面跟著字符串,該字符串可以被當作 Logstash 的配置(如果是空,則默認使用 stdin 作為輸入,stdout 作為輸出)。
  • -t:測試配置文件是否正確,然后退出。
(2)定義輸入和輸出流
#輸入采用標準輸入,輸出采用標準輸出(類似管道),新版本默認使用 rubydebug 格式輸出
logstash -e 'input { stdin{} } output { stdout{} }'
(3)使用 rubydebug 輸出詳細格式顯示,codec 為一種編解碼器
logstash -e 'input { stdin{} } output { stdout{ codec=>rubydebug } }'
......
www.baidu.com										#鍵入內容(標準輸入)
{
    "@timestamp" => 2020-12-22T02:15:39.136Z,		#輸出結果(標準輸出處理后的結果)
      "@version" => "1",
          "host" => "apache",
       "message" => "www.baidu.com"
}
(4)使用 Logstash 將信息寫入 Elasticsearch 中
logstash -e 'input { stdin{} } output { elasticsearch { hosts=>["192.168.80.10:9200"] } }'
			 輸入				輸出			對接
......
www.baidu.com										#鍵入內容(標準輸入)
www.sina.com.cn										#鍵入內容(標準輸入)
www.google.com										#鍵入內容(標準輸入)
(5)結果不在標準輸出顯示,而是發(fā)送至 Elasticsearch 中
可瀏覽器訪問 http://192.168.80.10:9100/ 查看索引信息和數據瀏覽。

ELK 企業(yè)級日志分析系統的概念、ELK Elasticsearch 集群部署,elk,服務器,運維,es,node.js,java

ELK 企業(yè)級日志分析系統的概念、ELK Elasticsearch 集群部署,elk,服務器,運維,es,node.js,java

6、定義 logstash配置文件
(1)Logstash 配置文件組成
  • Logstash 配置文件基本由三部分組成:input、output 以及 filter(可選,根據需要選擇使用)。

input

  • 表示從數據源采集數據,常見的數據源如Kafka、日志文件等
    file beats kafka redis stdin

filter

  • 表示數據處理層,包括對數據進行格式化處理、數據類型轉換、數據過濾等,支持正則表達式
  • grok 對若干個大文本字段進行再分割成一些小字段 (?<字段名>正則表達式) 字段名: 正則表達式匹配到的內容
  • date 對數據中的時間格式進行統一和格式化
  • mutate 對一些無用的字段進行剔除,或增加字段
  • mutiline 對多行數據進行統一編排,多行合并或拆分

output

  • 表示將Logstash收集的數據經由過濾器處理之后輸出到Elasticsearch。
    elasticsearch stdout
(2)格式如下
  • input {…}
  • filter {…}
  • output {…}
(3)在每個部分中,也可以指定多個訪問方式。
例如,若要指定兩個日志來源文件,則格式如下
input {
	file { path =>"/var/log/messages" type =>"syslog"}
	file { path =>"/var/log/httpd/access.log" type =>"apache"}
}
(4)修改 Logstash 配置文件,讓其收集系統日志/var/log/messages,并將其輸出到 elasticsearch 中。
chmod +r /var/log/messages					#讓 Logstash 可以讀取日志

cd /etc/logstash/conf.d/
vim system.conf
input {
    file{
        path =>"/var/log/messages"
        type =>"system"
        start_position =>"beginning"
		# ignore_older => 604800
        sincedb_path => "/etc/logstash/sincedb_path/log_progress"
        add_field => {"log_hostname"=>"${HOSTNAME}"}
    }
}

ELK 企業(yè)級日志分析系統的概念、ELK Elasticsearch 集群部署,elk,服務器,運維,es,node.js,java

#path表示要收集的日志的文件位置
#type是輸入ES時給結果增加一個叫type的屬性字段
#start_position可以設置為beginning或者end,beginning表示從頭開始讀取文件,end表示讀取最新的,這個要和ignore_older一起使用
#ignore_older表示了針對多久的文件進行監(jiān)控,默認一天,單位為秒,可以自己定制,比如默認只讀取一天內被修改的文件
#sincedb_path表示文件讀取進度的記錄,每行表示一個文件,每行有兩個數字,第一個表示文件的inode,第二個表示文件讀取到的位置(byteoffset)。默認為$HOME/.sincedb*
#add_field增加屬性。這里使用了${HOSTNAME},即本機的
環(huán)境變量,如果要使用本機的環(huán)境變量,那么需要在啟動命令上加--alow-env

output {
    elasticsearch {												#輸出到 elasticsearch
        hosts => ["192.168.80.10:9200","192.168.80.11:9200"]	#指定 elasticsearch 服務器的地址和端口
        index =>"system-%{+YYYY.MM.dd}"							#指定輸出到 elasticsearch 的索引格式
    }
}

mkdir /etc/logstash/sincedb_path/
touch /etc/logstash/sincedb_path/log_progress
chown logstash:logstash /etc/logstash/sincedb_path/log_progress

logstash -f system.conf

ELK 企業(yè)級日志分析系統的概念、ELK Elasticsearch 集群部署,elk,服務器,運維,es,node.js,java

(5)瀏覽器訪問 http://192.168.80.10:9100/ 查看索引信息

ELK 企業(yè)級日志分析系統的概念、ELK Elasticsearch 集群部署,elk,服務器,運維,es,node.js,java

五、ELK Kiabana 部署(在 Node1 節(jié)點上操作)

1、安裝 Kiabana

#上傳軟件包 kibana-6.7.2-x86_64.rpm 到/opt目錄
cd /opt
rpm -ivh kibana-6.7.2-x86_64.rpm

2、設置 Kibana 的主配置文件

vim /etc/kibana/kibana.yml
--2--取消注釋,Kiabana 服務的默認監(jiān)聽端口為5601
server.port: 5601
--7--取消注釋,設置 Kiabana 的監(jiān)聽地址,0.0.0.0代表所有地址
server.host: "0.0.0.0"
--28--取消注釋,配置es服務器的ip,如果是集群則配置該集群中master節(jié)點的ip
elasticsearch.url:  ["http://192.168.80.10:9200","http://192.168.80.11:9200"] 
--37--取消注釋,設置在 elasticsearch 中添加.kibana索引
kibana.index: ".kibana"
--96--取消注釋,配置kibana的日志文件路徑(需手動創(chuàng)建),不然默認是messages里記錄日志
logging.dest: /var/log/kibana.log

ELK 企業(yè)級日志分析系統的概念、ELK Elasticsearch 集群部署,elk,服務器,運維,es,node.js,java
ELK 企業(yè)級日志分析系統的概念、ELK Elasticsearch 集群部署,elk,服務器,運維,es,node.js,java

3、創(chuàng)建日志文件,啟動 Kibana 服務

touch /var/log/kibana.log
chown kibana:kibana /var/log/kibana.log

systemctl start kibana.service
systemctl enable kibana.service

netstat -natp | grep 5601
ELK 企業(yè)級日志分析系統的概念、ELK Elasticsearch 集群部署,elk,服務器,運維,es,node.js,java

4、驗證 Kibana

瀏覽器訪問 http://192.168.80.10:5601
第一次登錄需要添加一個 Elasticsearch 索引:
Management -> Index Pattern -> Create index pattern
Index pattern 輸入:system-*	#在索引名中輸入之前配置的 Output 前綴“system”

Next step -> Time Filter field name 選擇 @timestamp -> Create index pattern

單擊 “Discover” 按鈕可查看圖表信息及日志信息。
數據展示可以分類顯示,在“Available Fields”中的“host”,然后單擊 “add”按鈕,可以看到按照“host”篩選后的結果

ELK 企業(yè)級日志分析系統的概念、ELK Elasticsearch 集群部署,elk,服務器,運維,es,node.js,java
ELK 企業(yè)級日志分析系統的概念、ELK Elasticsearch 集群部署,elk,服務器,運維,es,node.js,java
ELK 企業(yè)級日志分析系統的概念、ELK Elasticsearch 集群部署,elk,服務器,運維,es,node.js,java

5、將 Apache 服務器的日志(訪問的、錯誤的)添加到 Elasticsearch 并通過 Kibana 顯示

vim /etc/logstash/conf.d/apache_log.conf
input {
    file{
        path => "/etc/httpd/logs/access_log"
        type => "access"
        start_position => "beginning"
    }
    file{
        path => "/etc/httpd/logs/error_log"
        type => "error"
        start_position => "beginning"
    }
}
output {
    if [type] == "access" {
        elasticsearch {
            hosts => ["192.168.80.10:9200","192.168.80.11:9200"]
            index => "apache_access-%{+YYYY.MM.dd}"
        }
    }
	if [type] == "error" {
        elasticsearch {
            hosts => ["192.168.80.10:9200","192.168.80.11:9200"]
            index => "apache_error-%{+YYYY.MM.dd}"
        }
    }
}

cd /etc/logstash/conf.d/
/usr/share/logstash/bin/logstash -f apache_log.conf

ELK 企業(yè)級日志分析系統的概念、ELK Elasticsearch 集群部署,elk,服務器,運維,es,node.js,java

6、瀏覽器訪問http://192.168.80.10:9100 查看索引是否創(chuàng)建

 http://192.168.80.10:5601 登錄 Kibana,單擊“Index Pattern -> Create Index Pattern”按鈕添加索引, 在索引名中輸入之前配置的 Output 前綴 apache_access-*,并單擊“Create”按鈕。在用相同的方法添加 apache_error-*索引。
選擇“Discover”選項卡,在中間下拉列表中選擇剛添加的 apache_access-* 、apache_error-* 索引, 可以查看相應的圖表及日志信息。

ELK 企業(yè)級日志分析系統的概念、ELK Elasticsearch 集群部署,elk,服務器,運維,es,node.js,java
ELK 企業(yè)級日志分析系統的概念、ELK Elasticsearch 集群部署,elk,服務器,運維,es,node.js,java

六、Filebeat+ELK 部署

Node1節(jié)點(2C/4G):node1/192.168.80.10					Elasticsearch
Node2節(jié)點(2C/4G):node2/192.168.80.11					Elasticsearch
Apache節(jié)點:apache/192.168.80.12						Logstash  Kibana  Apache
Filebeat節(jié)點:filebeat/192.168.80.13					Filebeat

(1)在 Node1 節(jié)點上操作

1、安裝 Filebeat
#上傳軟件包 filebeat-6.7.2-linux-x86_64.tar.gz 到/opt目錄
tar zxvf filebeat-6.7.2-linux-x86_64.tar.gz
mv filebeat-6.7.2-linux-x86_64/ /usr/local/filebeat
2、設置 filebeat 的主配置文件
cd /usr/local/filebeat

vim filebeat.yml
filebeat.inputs:
- type: log         #指定 log 類型,從日志文件中讀取消息
  enabled: true
  paths:
    - /var/log/messages       #指定監(jiān)控的日志文件
    - /var/log/*.log
  tags: ["sys"]		#設置索引標簽
  fields:           #可以使用 fields 配置選項設置一些參數字段添加到 output 中
    service_name: filebeat
    log_type: syslog
    from: 192.168.80.13

--------------Elasticsearch output-------------------
(全部注釋掉)

----------------Logstash output---------------------
output.logstash:
  hosts: ["192.168.80.12:5044"]      #指定 logstash 的 IP 和端口

ELK 企業(yè)級日志分析系統的概念、ELK Elasticsearch 集群部署,elk,服務器,運維,es,node.js,javaELK 企業(yè)級日志分析系統的概念、ELK Elasticsearch 集群部署,elk,服務器,運維,es,node.js,java

3、啟動 filebeat
nohup ./filebeat -e -c filebeat.yml > filebeat.out &
#-e:輸出到標準輸出,禁用syslog/文件輸出
#-c:指定配置文件
#nohup:在系統后臺不掛斷地運行命令,退出終端不會影響程序的運行
4、在 Logstash 組件所在節(jié)點上新建一個 Logstash 配置文件
cd /etc/logstash/conf.d

vim filebeat.conf
input {
    beats {
        port => "5044"
    }
}

#filebeat發(fā)送給logstash的日志內容會放到message字段里面,logstash使用grok插件正則匹配message字段內容進行字段分割
#Kibana自帶grok的正則匹配的工具:http://<your kibana IP>:5601/app/kibana#/dev_tools/grokdebugger
# %{IPV6}|%{IPV4} 為 logstash 自帶的 IP 常量
filter {
  grok {
    match => ["message", "(?<remote_addr>%{IPV6}|%{IPV4})[\s\-]+\[(?<logTime>.*)\]\s+\"(?<method>\S+)\s+(?<url_path>.+)\"\s+(?<rev_code>\d+) \d+ \"(?<req_addr>.+)\" \"(?<content>.*)\""]
  }
}

output {
    elasticsearch {
        hosts => ["192.168.80.10:9200","192.168.80.11:9200"]
        index => "%{[fields][service_name]}-%{+YYYY.MM.dd}"
    }
    stdout {
        codec => rubydebug
    }
}

#啟動 logstash
logstash -f filebeat.conf

ELK 企業(yè)級日志分析系統的概念、ELK Elasticsearch 集群部署,elk,服務器,運維,es,node.js,java

5、瀏覽器訪問
http://192.168.80.10:5601 登錄 Kibana,單擊“Create Index Pattern”按鈕添加索引“filebeat-*”,單擊 “create” 按鈕創(chuàng)建,單擊 “Discover” 按鈕可查看圖表信息及日志信息。

ELK 企業(yè)級日志分析系統的概念、ELK Elasticsearch 集群部署,elk,服務器,運維,es,node.js,java

ELK 企業(yè)級日志分析系統的概念、ELK Elasticsearch 集群部署,elk,服務器,運維,es,node.js,java文章來源地址http://www.zghlxwxcb.cn/news/detail-576340.html

到了這里,關于ELK 企業(yè)級日志分析系統的概念、ELK Elasticsearch 集群部署的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • [ELK] ELK企業(yè)級日志分析系統

    [ELK] ELK企業(yè)級日志分析系統

    1.1?ELK 簡介與組件 ELK平臺是一套完整的日志集中處理解決方案,將 ElasticSearch、Logstash 和 Kiabana 三個開源工具配合使用, 完成更強大的用戶對日志的查詢、排序、統計需求。 ●ElasticSearch:是基于Lucene(一個全文檢索引擎的架構)開發(fā)的分布式存儲檢索引擎,用來存儲各類日

    2024年01月21日
    瀏覽(37)
  • ELK 企業(yè)級日志分析系統

    ELK 企業(yè)級日志分析系統

    ELK平臺是一套完整的日志集中處理解決方案,將 ElasticSearch、Logstash 和 Kiabana 三個開源工具配合使用, 完成更強大的用戶對日志的查詢、排序、統計需求。 ●ElasticSearch:是基于Lucene(一個全文檢索引擎的架構)開發(fā)的分布式存儲檢索引擎,用來存儲各類日志。 Elasticsearch 是

    2024年02月07日
    瀏覽(24)
  • ELK企業(yè)級日志分析系統

    目錄 一、ELK理論 1、日志服務器 2、ELK日志分析系統 3、日志處理步驟 4、ELK簡介 5、為什么要使用ELK 6、完整日志系統基本特征 7、ELK的工作原理 8、總結 二、ELK集群之部署elasticsearch集群部署 1、環(huán)境準備 2、部署elasticsearch 軟件 2.1?修改elasticsearch 主配置文件 2.3?創(chuàng)建數據存放

    2024年02月02日
    瀏覽(29)
  • ELK 企業(yè)級日志分析系統(一)

    ELK 企業(yè)級日志分析系統(一)

    服務器數量較少時 使用 rsyslog 或 腳本 收集、分割日志,統一匯總到專門存放日志的日志服務器保存管理。 (查看日志可把需要的日志文件傳輸到 windows 主機上,使用專業(yè)的文本工具打開分析日志) 服務器數量較多時 使用 ELK 收集日志,存儲日志,展示日志。 日志主要包括

    2024年02月16日
    瀏覽(28)
  • ELK 企業(yè)級日志分析系統(三)

    ELK 企業(yè)級日志分析系統(三)

    定義: zookeeper是一個開源的分布式的,為分布式框架提供協調服務的Apache項目 工作機制: zookeeper從設計模式角度來理解:是以一個基于觀察者模式設計的分布式服務管理框架,它復習存儲和管理大家都關心的數據,然后接受觀察者的注冊,一旦這些數據的狀態(tài)發(fā)生改變,

    2024年02月15日
    瀏覽(25)
  • ELK 企業(yè)級日志分析系統(四)

    ELK 企業(yè)級日志分析系統(四)

    1.下載安裝包 官方下載地址:http://kafka.apache.org/downloads.html cd /opt wget https://mirrors.tuna.tsinghua.edu.cn/apache/kafka/2.7.1/kafka_2.13-2.7.1.tgz 2.安裝 Kafka cd /opt/ tar zxvf kafka_2.13-2.7.1.tgz mv kafka_2.13-2.7.1 /usr/local/kafka //修改配置文件 cd /usr/local/kafka/config/ cp server.properties{,.bak} vim server.properties br

    2024年02月16日
    瀏覽(23)
  • ELK 企業(yè)級日志分析系統(二)

    ELK 企業(yè)級日志分析系統(二)

    目錄 ELK Kiabana 部署(在 Node1 節(jié)點上操作) 1.安裝 Kiabana 2.設置 Kibana 的主配置文件 ?3.啟動 Kibana 服務 4.驗證 Kibana ?5.將 Apache 服務器的日志(訪問的、錯誤的) ?添加Elasticsearch 并通過 Kibana 顯示 ?Filebeat+ELK 部署 在 filebeat?節(jié)點上操作 2.設置 filebeat 的主配置文件 ?

    2024年02月14日
    瀏覽(22)
  • ELK 企業(yè)級日志分析系統 簡單介紹

    ELK 企業(yè)級日志分析系統 簡單介紹

    目錄 一? ? ?ELK 簡介 1,?elk?是什么 2,elk?架構圖 3,elk?日志處理步驟 二? ??Elasticsearch?簡介 1,?Elasticsearch?是什么 2,?Elasticsearch 的核心概念 3,?Elasticsearch?的原理 三? ? ?Logstash 1,?Logstash?是什么 2,Logstash?架構圖 四,Logstash?的代替品? 1,Filebeat 1.1,為什么Logs

    2024年04月13日
    瀏覽(45)
  • ELK 企業(yè)級日志分析系統 ELFK

    ELK 企業(yè)級日志分析系統 ELFK

    ELK平臺是一套完整的日志集中處理解決方案,將?ElasticSearch、Logstash 和 Kiabana 三個開源工具配合使用, 完成更強大的用戶對日志的查詢、排序、統計需求。 使用ELK日志文件系統的原因:日志主要包括系統日志、應用程序日志和安全日志。系統運維和開發(fā)人員可以通過日志了

    2024年02月07日
    瀏覽(24)
  • DAY 74 ELK企業(yè)級日志分析系統

    DAY 74 ELK企業(yè)級日志分析系統

    ELK平臺是一套完整的日志集中處理解決方案,將 ElasticSearch、Logstash 和 Kiabana 三個開源工具配合使用, 完成更強大的用戶對日志的查詢、排序、統計需求 ElasticSearch: 是基于Lucene(一個全文檢索引擎的架構)開發(fā)的分布式存儲檢索引擎,用來存儲各類日志。 Elasticsearch 是用

    2024年02月09日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包