您好,登錄后才能下訂單哦!
相關軟件及版本
jdk-8u181-linux-x64.tar.gz
elasticsearch-6.3.2.tar.gz
zookeeper-3.4.12.tar.gz
kafka_2.10-0.10.0.1.tgz
filebeat-6.3.2-linux-x86_64.tar.gz
kibana-6.3.2-linux-x86_64.tar.gz
logstash-6.3.2.tar.gz
約定
所有安裝包放置在 /elk/app
所有軟件安裝在 /usr/local 的主目錄下
JDK的安裝
版本:jdk1.8.0_181
涉及的服務器 (c172 to c178)
這里以c172安裝JDK為例
解壓
tar zxvf jdk-8u181-linux-x64.tar.gz -C /usr/local/
添加全局環(huán)境變量
vim /etc/profile
export JAVA_HOME=/usr/local/jdk1.8.0_181
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$CLASSPATH
變量生效
source /etc/profile
驗證JAVA版本
java -version
同樣的步驟完成c173到c178服務器JAVA的安裝
ElasticSearch 的安裝與配置
版本:elasticsearch-6.3.2
涉及的服務器 c176 到 c178 (三臺)
這里以c176為例
解壓
tar zxvf elasticsearch-6.3.2.tar.gz -C /usr/local/
重命名
mv elasticsearch-6.3.2 elasticsearch
創(chuàng)建獨立的es用戶,名稱:elasticsearch, 并授權給 /usr/local/elasticsearch
useradd elasticsearch
chown -R elasticsearch:elasticsearch /usr/local/elasticsearch
針對elasticsearch的系統(tǒng)調優(yōu)
vim /etc/sysctl.conf
加入以下內容
fs.file-max=655360
vm.max_map_count=262144
vim /etc/security/limits.conf
加入以下內容
* soft nproc 204800
* hard nproc 204800
* soft nofile 655360
* hard nofile 655360
* soft memlock unlimited
* hard memlock unlimited
vim /etc/security/limits.d/20-nproc.conf
修改內容為
* soft nproc 40960
root soft nproc unlimited
執(zhí)行下面命令來生效
sysctl -p
logout系統(tǒng),再重新login,并執(zhí)行 ulimit -a 查看調優(yōu)的結果
ulimit -a
JVM調優(yōu)
vim /usr/local/elasticsearch/config/jvm.options
Xms 和Xmx的值,推薦設置為物理內存的一半。(這里都設置為1GB)
創(chuàng)建elasticsearch 的data存放目錄
mkdir -p /data1/elasticsearch
mkdir -p /data2/elasticsearch
chown -R elasticsearch:elasticsearch /data1/elasticsearch
chown -R elasticsearch:elasticsearch /data2/elasticsearch
配置elasticsearch
vim /usr/local/elasticsearch/config/elasticsearch.yml
添加以下內容
cluster.name: es
node.name: c176
node.master: true
node.data: true
path.data: /data1/elasticsearch,/data2/elasticsearch
path.logs: /usr/local/elasticsearch/logs
bootstrap.memory_lock: true
network.host: 192.168.199.176
http.port: 9200
discovery.zen.minimum_master_nodes: 1
discovery.zen.ping_timeout: 3s
discovery.zen.ping.unicast.hosts: ["192.168.199.176:9300","192.168.199.177:9300","192.168.199.178:9300"]
啟動elasticsearch集群, # 注意:確保 /usr/local/elasticsearch 和 /data1/elastisearch 和 /data2/elasticsearch 的授權用戶是elasticsearch 用戶;啟動 elasticsearch服務的時候,必須要切換到 elasticsearch 用戶
su - elasticsearch
/usr/local/elasticsearch/bin/elasticsearch -d
驗證elasticsearch服務啟動正常
jps
curl http://192.168.199.176:9200
有如下輸出,表明該服務正常
關于elasticsearch的日志文件
/usr/local/elasticsearch/logs/XXX.log (## XXX 代表 cluster.name 的名稱)
如果服務不能正常啟動,根據(jù)日志報錯情況來分析,判斷和解決。
對c177 和 c178 服務器做同樣的 關于 elasticsearch 的安裝,配置步驟
ZooKeeper的安裝與配置
版本:zookeeper-3.4.12
涉及的服務器 (c172 to c174)
這里以c172安裝配置 ZooKeeper 為例
解壓, 重命名主目錄
tar zxvf zookeeper-3.4.12.tar.gz -C /usr/local/
mv zookeeper-3.4.12 zookeeper
復制zoo_sample.cfg,并重名為zoo.cfg
cd /usr/local/zookeeper/conf
cp zoo_sample.cfg zoo.cfg
創(chuàng)建 ZooKeeper 的 data 目錄
mkdir -p /data/zookeeper
創(chuàng)建 myid 文件,其內容為1
echo "1" > /data/zookeeper/myid (## 注意對應的c173的值為 2, c174的值為 3;)
配置 zookeeper
vim /usr/local/zookeeper/conf/zoo.cfg
添加以下內容
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data/zookeeper
clientPort=2181
server.1=192.168.199.172:2888:3888
server.2=192.168.199.173:2888:3888
server.3=192.168.199.174:2888:3888
啟動ZooKeeper服務, 并通過 jps 或者 ps -ef 來驗證服務正常啟動
zkServer.sh start
jps
ps -ef | grep zookeeper
注意:
ZooKeeper 的日志存放位置與zookeeper啟動的時候在同一目錄下,名稱為 zookeeper.out;
完成同樣的 zookeeper 安裝配置在 c173, c174 服務器上。
Kafka的安裝與配置
版本:kafka_2.10-0.10.0.1
涉及的服務器 (c172 to c174)
這里以c172安裝配置 ZooKeeper 為例
注意:Filebeat使用的版本(filebeat-6.3.2)所支持的Kafka版本要對應支持
https://www.elastic.co/guide/en/beats/filebeat/6.3/kafka-output.html
獲取kafka安裝包
wget https://archive.apache.org/dist/kafka/0.10.0.1/kafka_2.10-0.10.0.1.tgz
解壓,重命名
tar zxvf kafka_2.10-0.10.0.1.tgz -C /usr/local/
mv kafka_2.10-0.10.0.1 kafka
創(chuàng)建kafka日志目錄
mkdir -p /kafka-logs
配置kafka配置文件
vim /usr/local/kafka/config/server.properties
關鍵配置項目內容 (c172為例)
broker.id=1
listeners=PLAINTEXT://192.168.199.172:9092
log.dirs=/kafka-logs
num.partitions=6
log.retention.hours=60
log.segment.bytes=1073741824
zookeeper.connect=192.168.199.172:2181,192.168.199.173:2181,192.168.199.174:2181
auto.create.topics.enable=true
delete.topic.enable=true
啟動kafka ( nohup ...... & : 放置于后臺運行)
nohup kafka-server-start.sh /usr/local/kafka/config/server.properties &
檢測kafka服務
jps
生成的kafka 的日志文件 nohup.out ( 與執(zhí)行kafka 啟動時在同一目錄下產(chǎn)生)
同樣的步驟對 c173, c174服務器完成kafka 的安裝和配置
kafka 基本命令操作
顯示topic列表
kafka-topics.sh --zookeeper c172:2181,c173:2181,c174:2181 --list
創(chuàng)建一個topic,并指定topic屬性(副本數(shù)、分區(qū)數(shù)等)
kafka-topics.sh --create --zookeeper c172:2181,c173:2181,c174:2181 --replication-factor 1 --partitions 3 --topic xyz
查看某個topic的狀態(tài)
kafka-topics.sh --describe --zookeeper c172:2181,c173:2181,c174:2181 --topic xyz
生產(chǎn)消息
kafka-console-producer.sh --broker-list c172:9092,c173:9092,c174:9092 --topic xyz
消費消息
kafka-console-consumer.sh --zookeeper c172:2181,c173:2181,c174:2181 --topic xyz
kafka-console-consumer.sh --zookeeper c172:2181,c173:2181,c174:2181 --topic xyz --from beginning
刪除topic
kafka-topics.sh --zookeeper c172:2181,c173:2181,c174:2181 --delete --topic xyz
Filebeat 的安裝與配置
版本:filebeat-6.3.2
涉及的服務器 c171
解壓安裝,重命名
tar zxvf filebeat-6.3.2-linux-x86_64.tar.gz -C /usr/local/
mv filebeat-6.3.2-linux-x86_64 filebeat
配置filebeat有兩種方法:
傳統(tǒng)方法:修改filebeat.yml 的配置文件
模塊配置:在modules.d 目錄下包含了各種模塊
在modules.d 下支持的模塊列表
這里以修改 filebeat.yml 配置為例
############INPUT################
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/messages
- /var/log/secure
fields:
log_topic: osmessages
name: "192.168.199.171"############OUTPUT################
output.kafka:enabled: true
hosts: ["192.168.199.172:9092", "192.168.199.173:9092", "192.168.199.174:9092"]
version: "0.10"
topic: '%{[fields.log_topic]}'
partition.round_robin:
reachable_only: true
worker: 2
required_acks: 1
compression: gzip
max_message_bytes: 10000000
logging.level: debug
啟動filebeat
nohup ./filebeat -e -c filebeat.yml &
查看輸出
tail -f nohup.out
數(shù)據(jù)過濾的例子, 然后通過 nohup.out可查看結果
processors:
- drop_fields:
fields: ["beat","host","input","source","offset","prospector" ]
驗證 從filebeat的日志傳給了kafka
在kafka的服務器上執(zhí)行:(有一個osmessages的topic)
消費osmessages;
執(zhí)行以下命令
測試:在任意一臺服務器上ssh到c171 (filebeat),隨后在上述的屏幕如果有以下輸出,表明kafka服務器從filebeat的服務器中獲取了數(shù)據(jù),并消費了
Logstash的安裝,配置
版本:logstash-6.3.2
涉及的服務器 c175
解壓安裝包,并重命名
tar zxvf logstash-6.3.2.tar.gz -C /usr/local/
mv logstash-6.3.2 logstash
logstatsh只做三件事情
接收數(shù)據(jù)(input),分析過濾(filter),輸出數(shù)據(jù)(output)
通過插件機制的方式去實現(xiàn),filter不是必須的,input,output是必須的;
插件:https://github.com/logstash-plugins
input插件:接收數(shù)據(jù)
filter插件:過濾數(shù)據(jù)
output插件:輸出數(shù)據(jù)
Logstash 配置文件
jvm.options: JVM內存資源配置文件
logstash.yml:logstash 全局配置文件
logstash 事件配置文件:手工創(chuàng)建
./logstash -e 'input{stdin{}} output{stdout{codec=>rubydebug}}'
或者讓logstash通過調用配置文件的方式來實現(xiàn),
vim testfile.conf
bin/logstash -f testfile.conf
或者放后臺運行, 查看nohup.out 的日志
nohup bin/logstash -f testfile.conf &
本例的logstatsh 從kafka接收數(shù)據(jù),然后輸出給elasticsearch。 創(chuàng)建一個logstash的配置文件
vim kafka_io_es.conf
調用并執(zhí)行
nohup ./bin/logstash -f ./config/kafka_io_es.conf &
tail -f nohup.out
Kibana的安裝與配置
版本:kibana-6.3.2
涉及的服務器 c178
解壓安裝包,并重命名
zxvf kibana-6.3.2-linux-x86_64.tar.gz -C /usr/local
mv kibana-6.3.2-linux-x86_64 kibana
配置文件
vim /usr/local/kibana/config/kibana.yml
輸入以下內容
server.port: 5601
server.host: "192.168.199.178"
elasticsearch.url: "http://192.168.199.176:9200"
kibana.index: ".kibana"
啟動kibana服務
nohup /usr/local/kibana/bin/kibana &
查看日志
tail -f nohup.out
查看服務進程
ps -ef | grep node
在客戶端打開瀏覽器輸入
http://192.168.199.178:5601
總結各服務的開啟方式例子
nohup ./filebeat -e -c filebeat.yml &
zkServer.sh start
nohup kafka-server-start.sh /usr/local/kafka/config/server.properties &
nohup ./bin/logstash -f ./config/kafka_io_es.conf
elasticsearch -d
nohup /usr/local/kibana/bin/kibana &
++++++++++++++++++++++++++++++++++++++++++
要深刻理解數(shù)據(jù)流向,各項服務提供的功能
重點和難點:logstash的插件配置(input, filter,output)
++++++++++++++++++++++++++++++++++++++++++
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。