日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

一步一步搭建ELK日志处理集群(自己做过测试)

發布時間:2024/9/20 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一步一步搭建ELK日志处理集群(自己做过测试) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

下面的linux版本用的是centos 7的,用centos 6.5有可能出現問題。

ELK集群搭建手冊

一、?? 環境準備:

三臺Linux服務器,ip地址分別為:

192.168.25.30

192.168.25.31

192.168.25.32

?

角色劃分:

3臺機器全部安裝jdk1.8,因為elasticsearch是java開發的

3臺全部安裝elasticsearch (后續都簡稱為es)

192.168.25.30作為主節點

192.168.25.31以及192.168.25.32作為數據節點

主節點上需要安裝kibana

在192.168.25.31上安裝 logstash

在192.168.25.32上安裝filebeat

?

ELK版本信息:

Elasticsearch-6.4.2

logstash-6.4.2

kibana-6.4.2

filebeat-6.4.2

配置三臺機器的hosts文件內容如下:

$ vim /etc/hosts

192.168.25.30 data-node-0

192.168.25.31 data-node-1

192.168.25.32 data-node-2

然后三臺機器都得關閉防火墻或清空防火墻規則。

二、?? 安裝java環境

安裝包版本:jdk-8u25-linux-x64.tar.gz

#tar -zxvf jdk-8u25-linux-x64.tar.gz

#cd jdk1.8.0_25/

#mkdir –p /app/jdk

#cp -r ../jdk1.8.0_25 /app/jdk

#vim /etc/profile

在最后插入如下幾行:

export JAVA_HOME=/app/jdk/jdk1.8.0_25

export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/jre/lib/tools.jar

檢查安裝情況:

# source /etc/profile

# java –version

java version "1.8.0_25"

Java(TM) SE Runtime Environment (build 1.8.0_25-b17)

Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)

#javac

?

Usage: javac <options> <source files>

where possible options include:

? -g???????????????????????? Generate all debugging info

? -g:none??????????????????? Generate no debugging info

? -g:{lines,vars,source}???? Generate only some debugging info

? -nowarn??????????????????? Generate no warnings

? -verbose?????????????????? Output messages about what the compiler is doing

? -deprecation?????????????? Output source locations where deprecated APIs are used

? -classpath <path>????????? Specify where to find user class files and annotation processors

? -cp <path>???????????????? Specify where to find user class files and annotation processors

? -sourcepath <path>???????? Specify where to find input source files

? -bootclasspath <path>????? Override location of bootstrap class files

? -extdirs <dirs>??????????? Override location of installed extensions

? -endorseddirs <dirs>?????? Override location of endorsed standards path

? -proc:{none,only}????????? Control whether annotation processing and/or compilation is done.

? -processor <class1>[,<class2>,<class3>...] Names of the annotation processors to run; bypasses default discovery process

? -processorpath <path>????? Specify where to find annotation processors

? -parameters??????????????? Generate metadata for reflection on method parameters

? -d <directory>???????????? Specify where to place generated class files

? -s <directory>???????????? Specify where to place generated source files

? -h <directory>????????? ???Specify where to place generated native header files

? -implicit:{none,class}???? Specify whether or not to generate class files for implicitly referenced files

? -encoding <encoding>?????? Specify character encoding used by source files

? -source <release>????????? Provide source compatibility with specified release

? -target <release>????????? Generate class files for specific VM version

? -profile <profile>???????? Check that API used is available in the specified profile

? -version?????????????????? Version information

? -help????????????????????? Print a synopsis of standard options

? -Akey[=value]????????????? Options to pass to annotation processors

? -X???????????????????????? Print a synopsis of nonstandard options

? -J<flag>?????????????????? Pass <flag> directly to the runtime system

? -Werror??????????????????? Terminate compilation if warnings occur

? @<filename>??????????????? Read options and filenames from file

安裝java成功

三、?? 安裝Elasticsearch(簡稱ES)

安裝ES:

下載安裝包elasticsearch-6.4.2.rpm

https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.2.rpm

?

#wget –O /app/elasticsearch-6.4.2.rpm?https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.2.rpm

#cd /app

#rpm -ivh elasticsearch-6.4.2.rpm

?

warning: elasticsearch-6.4.2.rpm: Header V4 RSA/SHA512 Signature, key ID d88e42b4: NOKEY

Preparing...????????????????????????? ################################# [100%]

Creating elasticsearch group... OK

Creating elasticsearch user... OK

Updating / installing...

?? 1:elasticsearch-0:6.4.2-1????????? ################################# [100%]

### NOT starting on installation, please execute the following statements to configure elasticsearch service to start automatically using systemd

?sudo systemctl daemon-reload

?sudo systemctl enable elasticsearch.service

### You can start elasticsearch service by executing

?sudo systemctl start elasticsearch.service

Created elasticsearch keystore in /etc/elasticsearch

?

配置ES:

elasticsearch配置文件在/etc/elasticsearch/下和/etc/sysconfig/elasticsearch這個文件,其中elasticsearch.yml 文件用于配置集群節點等相關信息的,elasticsearch 文件則是配置服務本身相關的配置,例如某個配置文件的路徑以及java的一些路徑配置什么的。

# cd /etc/elasticsearch/

# ll

total 28

-rw-rw---- 1 root elasticsearch? 207 Nov? 5 11:48 elasticsearch.keystore

-rw-rw---- 1 root elasticsearch 2869 Sep 26 21:39 elasticsearch.yml

-rw-rw---- 1 root elasticsearch 3009 Sep 26 21:39 jvm.options

-rw-rw---- 1 root elasticsearch 6380 Sep 26 21:39 log4j2.properties

-rw-rw---- 1 root elasticsearch? 473 Sep 26 21:39 role_mapping.yml

-rw-rw---- 1 root elasticsearch? 197 Sep 26 21:39 roles.yml

-rw-rw---- 1 root elasticsearch??? 0 Sep 26 21:39 users

-rw-rw---- 1 root elasticsearch??? 0 Sep 26 21:39 users_roles

?

# ll /etc/sysconfig/elasticsearch

-rw-rw---- 1 root elasticsearch 1613 Sep 26 21:39 /etc/sysconfig/elasticsearch

?

在每個節點上創建數據data和logs目錄:

#mkdir -p /app/elk/elasticsearch/data

#mkdir -p /app/elk/elasticsearch/logs

#chown -R elasticsearch /app/elk/elasticsearch/

?

開始配置集群節點,在主節點 192.168.25.30 上編輯配置文件:

# vim /etc/elasticsearch/elasticsearch.yml

添加或修改以下內容(沒有的增加,存在的修改):

path.data: /app/elk/elasticsearch/data

path.logs: /app/elk/elasticsearch/logs

cluster.name: elk-test? # 集群中的名稱

node.name: data-node-0? # 該節點名稱

node.master: true? # 意思是該節點是否可選舉為主節點

node.data: true? ?# 表示這不是數據節點

network.host: 0.0.0.0? # 監聽全部ip,在實際環境中應為一個安全的ip

http.port: 9200? ?# es服務的端口號

discovery.zen.ping.unicast.hosts: ["192.168.25.30", "192.168.25.31", "192.168.25.32"]? ?# 配置自動發現

?

然后在從節點192.168.25.31、32上編輯配置文件,添加或修改如下內容:

path.data: /app/elk/elasticsearch/data

path.logs: /app/elk/elasticsearch/logs

cluster.name: elk-test? # 集群中的名稱

node.name: data-node-?? # 該節點名稱,與前面配置hosts保持一致

node.master: true? # 意思是該節點是否可選舉為主節點

node.data: true? ?# 表示這不是數據節點

network.host: 0.0.0.0? # 監聽全部ip,在實際環境中應為一個安全的ip

http.port: 9200? ?# es服務的端口號

discovery.zen.ping.unicast.hosts: ["192.168.25.30", "192.168.25.31", "192.168.25.32"]? ?# 配置自動發現

?

修改 /etc/sysconfig/elasticsearch中的java路徑

# vim /etc/sysconfig/elasticsearch

JAVA_HOME=/app/jdk/jdk1.8.0_25

?

完成以上的配置之后,到主節點上,啟動es服務, 主節點啟動完成之后,再啟動其他節點的es服務:

# systemctl start elasticsearch.service

# systemctl status elasticsearch.service

● elasticsearch.service - Elasticsearch

?? Loaded: loaded (/usr/lib/systemd/system/elasticsearch.service; disabled; vendor preset: disabled)

?? Active: active (running) since Mon 2018-11-05 14:30:56 CST; 2s ago

???? Docs: http://www.elastic.co

?Main PID: 522372 (java)

?? CGroup: /system.slice/elasticsearch.service

?????????? ├─522372 /app/jdk/jdk1.8.0_25/bin/java -Xms1g -Xmx1g -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+AlwaysPreTouch -Xss1m -...

?????????? └─522574 /usr/share/elasticsearch/modules/x-pack-ml/platform/linux-x86_64/bin/controller

?

Nov 05 14:30:56 cnsz22pl1030 systemd[1]: Started Elasticsearch.

Nov 05 14:30:56 cnsz22pl1030 systemd[1]: Starting Elasticsearch...

?

安裝成功

檢查安裝好的集群健康狀態:

# curl '192.168.25.30:9200/_cluster/health?pretty'

{

? "cluster_name" : "master-node",

? "status" : "green",

? "timed_out" : false,

? "number_of_nodes" : 3,

? "number_of_data_nodes" : 2,

? "active_primary_shards" : 0,

? "active_shards" : 0,

? "relocating_shards" : 0,

? "initializing_shards" : 0,

? "unassigned_shards" : 0,

? "delayed_unassigned_shards" : 0,

? "number_of_pending_tasks" : 0,

? "number_of_in_flight_fetch" : 0,

? "task_max_waiting_in_queue_millis" : 0,

? "active_shards_percent_as_number" : 100.0

}

?

查看集群的詳細信息:

# curl '192.168.25.30:9200/_cluster/state?pretty'

四、?? 安裝kibana

Kibana只需要在主節點192.168.25.30上安裝即可,由于kibana是使用node.js開發的,所以進程名稱為node。

下載RPM安裝包:kibana-6.4.2-x86_64.rpm

下載地址:https://artifacts.elastic.co/downloads/kibana/kibana-6.4.2-x86_64.rpm

如果主機可以上外網,也可以執行以下命令:

#wget –O /app/ kibana-6.4.2-x86_64.rpm?https://artifacts.elastic.co/downloads/kibana/kibana-6.4.2-x86_64.rpm

?

# cd /app

# rpm -ivh kibana-6.4.2-x86_64.rpm

warning: kibana-6.4.2-x86_64.rpm: Header V4 RSA/SHA512 Signature, key ID d88e42b4: NOKEY

Preparing...????????????????????????? ################################# [100%]

Updating / installing...

?? 1:kibana-6.4.2-1??????????? ???????################################# [100%]

?

配置kibana

# vim /etc/kibana/kibana.yml

添加或修改如下項:

server.port: 5601? # 配置kibana的端口

server.host: 192.168.25.30? # 配置監聽ip

elasticsearch.url: "http://192.168.25.30:9200"? # 配置es服務器的ip,如果是集群則配置該集群中主節點的ip

logging.dest: /var/log/kibana.log? # 配置kibana的日志文件路徑,不然默認是messages里記錄日志

?

由于我們配置了日志路徑,所以需要創建日志文件:

# touch /var/log/kibana.log

# chmod 777 /var/log/kibana.log

?

啟動kibana服務,并檢查進程和監聽端口:

# systemctl start kibana

# systemctl status kibana

● kibana.service - Kibana

Loaded: loaded (/etc/systemd/system/kibana.service; disabled; vendor preset: disabled)

?Active: active (running) since Mon 2018-11-05 15:09:00 CST; 4s ago

?Main PID: 146989 (node)

?CGroup: /system.slice/kibana.service

?????????? └─146989 /usr/share/kibana/bin/../node/bin/node --no-warnings /usr/share/kibana/bin/../src/cli -c /etc/kibana/kibana.yml

?

Nov 05 15:09:00 cnsz22pl1030 systemd[1]: Started Kibana.

Nov 05 15:09:00 cnsz22pl1030 systemd[1]: Starting Kibana...

?

# ps aux |grep kibana

kibana?? 146989 47.0? 0.0 1349520 269736 ?????? Ssl? 15:09?? 0:29 /usr/share/kibana/bin/../node/bin/node --no-warnings /usr/share/kibana/bin/../src/cli -c /etc/kibana/kibana.yml

root???? 150923? 0.0? 0.0 112644?? 952 pts/1??? R+?? 15:10?? 0:00 grep --color=auto kibana

?

#netstat -lntp |grep 5601

tcp??????? 0????? 0 127.0.0.1:5601????????? 0.0.0.0:*?????????????? LISTEN????? 146989/node

到此我們的kibana就安裝完成了,很簡單,接下來就是安裝logstash,不然kibana是沒法用的。

五、?? 安裝logstash

在192.168.25.31上安裝logstash,注意目前logstash不支持JDK1.9:

下載RPM安裝包logstash-6.4.2.rpm,下載地址如下:

https://artifacts.elastic.co/downloads/logstash/logstash-6.4.2.rpm

如果主機支持外網,可直接執行以下命令下載:

wget –O /app/ logstash-6.4.2.rpm?https://artifacts.elastic.co/downloads/logstash/logstash-6.4.2.rpm

?

# rpm -ivh logstash-6.4.2.rpm

warning: logstash-6.4.2.rpm: Header V4 RSA/SHA512 Signature, key ID d88e42b4: NOKEY

Preparing...????????????????????????? ################################# [100%]

Updating / installing...

?? 1:logstash-1:6.4.2-1?????????????? ################################# [100%]

Using provided startup.options file: /etc/logstash/startup.options

Successfully created system startup script for Logstash

?

修改環境變量

# vim /etc/default/logstash

添加以下項:

JAVA_HOME=/app/jdk/jdk1.8.0_25

?

修改日志存儲路徑:

#mkdir -p /app/elk/logstash/data

#mkdir -p /app/elk/logstash/logs

#chown -R logstash /app/elk/logstash/

?

修改配置文件

# vim /etc/logstash/logstash.yml

將如下項的值修改為如下:

path.data: /app/elk/logstash/data

http.host: "192.168.25.31"

path.logs: /app/elk/logstash/logs

#

?

安裝完之后,先不要啟動服務,先配置logstash收集syslog日志:

#vim /etc/logstash/conf.d/syslog.conf

加入如下內容:

input {? # 定義日志源

? syslog {

??? type => "system-syslog"? # 定義類型

??? port => 10514??? # 定義監聽端口

? }

}

  • output {? # 定義日志輸出

? elasticsearch {

??? hosts => ["192.168.25.30:9200","192.168.25.31:9200","192.168.25.32:9200"]? # 定義es服務器的ip

??? index => "system-syslog-%{+YYYY.MM.dd}" # 定義索引

? }

}

?

檢測配置文件是否有錯:

# cd /usr/share/logstash/bin

# ./logstash --path.settings /etc/logstash/ -f /etc/logstash/conf.d/syslog.conf --config.test_and_exit

Sending Logstash logs to /var/log/logstash which is now configured via log4j2.properties

[2018-11-05T16:20:07,997][WARN ][logstash.config.source.multilocal] Ignoring the 'pipelines.yml' file because modules or command line options are specified

Configuration OK

[2018-11-05T16:20:09,448][INFO ][logstash.runner????????? ] Using config.test_and_exit mode. Config Validation Result: OK. Exiting Logstash

Configuration OK? # 為ok則代表配置文件沒有問題

命令說明:

  • --path.settings 用于指定logstash的配置文件所在的目錄
  • -f 指定需要被檢測的配置文件的路徑
  • --config.test_and_exit 指定檢測完之后就退出,不然就會直接啟動了

配置logstash服務器的ip以及配置的監聽端口:

# vim /etc/rsyslog.conf

#### RULES ####

*.* @@192.168.25.31:10514

?

重啟rsyslog,讓配置生效:

# systemctl restart rsyslog

?

啟動logstash并檢查服務狀態:

# systemctl start logstash

# systemctl status logstash

?

六、?? 安裝filebeats

在192.168.25.32上安裝filebeat。

下載RPM包filebeat-6.4.2-x86_64.rpm,下載地址:

https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.4.2-x86_64.rpm

如果安裝的主機可以直接上外網,也可以使用如下命令下載:

wget –O /app/filebeat-6.4.2-x86_64.rpm?https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.4.2-x86_64.rpm

?

下載完成執行命令安裝

#rpm -ivh filebeat-6.4.2-x86_64.rpm

warning: filebeat-6.4.2-x86_64.rpm: Header V4 RSA/SHA512 Signature, key ID d88e42b4: NOKEY

Preparing...????????????????????????? ################################# [100%]

Updating / installing...

?? 1:filebeat-6.4.2-1???????????????? ################################# [100%]

安裝完成后編輯配置文件:

# vim /etc/filebeat/filebeat.yml

- type: log

# Change to true to enable this input configuration.

? enabled: true

#================== Kibana=====================================

setup.kibana:

? host: "192.168.25.30:5601"

#==================== Outputs =================================

# Configure what output to use when sending the data collected by the beat.

#-------------------------- Elasticsearch output ------------------------------

output.elasticsearch:

# Array of hosts to connect to.

? hosts: ["192.168.25.30:9200","192.168.25.31:9200","192.168.25.32:9200"]

以下配置可選,根據實際需要配置

#----------------------------- Logstash output --------------------------------

#output.logstash:

# The Logstash hosts

? #hosts: ["192.168.25.31:5044"]

?

啟動服務:

#systemctl start filebeat.service

查看服務啟動狀態

#systemctl status filebeat.service

?

查看elasticsearch

#?curl '192.168.25.30:9200/_cat/indices?v'

health status index???????????????????? uuid?????????????????? pri rep docs.count docs.deleted store.size pri.store.size

green? open?? system-syslogs-2018.11.06 9-WQSrX7Su2FeORk5XM5-w?? 5?? 1??????? 614??????????? 0??? 924.1kb??????? 406.5kb

green? open?? filebeat-6.4.2-2018.11.06 gYOcxCK8THaJ57AWAUbK3Q?? 3?? 1?????? 8039??????????? 0????? 2.7mb????????? 1.3mb

?

來源:http://www.cnblogs.com/chmyee/p/9914461.html

總結

以上是生活随笔為你收集整理的一步一步搭建ELK日志处理集群(自己做过测试)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。