kafka zookeeper安装
tar -zxvf zookeeper-3.4.6.tar.gz
cp zoo_sample.cfg zoo.cfg
/bin/zkServer.sh start
tar -zxvf kafka_2.11-1.1.0.tgz
bin/kafka-server-start.sh config/server.properties
bin/kafka-topics.sh --create --zookeeper 127.0.0.1:2181 --replication-factor 1 --partitions 1 --topic elk
elasticsearch安装
tar zxf elasticsearch-6.2.3.tar.gz
修改config/elasticsearch.yml
network.host: 0.0.0.0
http.cors.enabled: true
http.cors.allow-origin: "*"
./elasticsearch -d (-d确保服务可以在后台运行)
安装node
wget https://npm.taobao.org/mirrors/node/latest-v4.x/node-v4.5.0-linux-x64.tar.gz
tar -zxvf node-v4.5.0-linux-x64.tar.gz
vim /etc/profile
export NODE_HOME=/usr/node-v4.5.0-linux-x64
export PATH=$PATH:$NODE_HOME/bin/
export NODE_PATH=$NODE_HOME/lib/node_modules
安装grunt
grunt是基于Node.js的项目构建工具,可以进行打包压缩、测试、执行等等的工作,head插件就是通过grunt启动
npm install -g grunt-cli //执行后会生成node_modules文件夹
grunt -version
vi Gruntfile.js
vi _site/app.js
npm install 如果成功就直接执行grunt server
否则下载https://github.com/Medium/phantomjs/releases/download/v2.1.1/phantomjs-2.1.1-linux-x86_64.tar.bz2
下载好后进行解压(由于是bz2格式,要先进行bzip2解压成tar格式,再使用tar解压)
bzip2 -d phantomjs-2.1.1-linux-x86_64.tar.bz2
tar xvf phantomjs-2.1.1-linux-x86_64.tar
安装依赖软件
yum -y install wget fontconfig
安装filebeat 监听文件输出到kafka
output.kafka:
enabled: true
hosts: ["localhost:9092"]
topic: elkLog
logstash的组件其实很简单,主要包括input、filter、output、codec四个部分
- input 用于读取内容,常用的有stdin(直接从控制台输入)、file(读取文件)等,另外还提供了对接redis、kafka等的插件
- filter 用于对输入的文本进行处理,常用的有grok(基于正则表达式提取字段)、kv(解析键值对形式的数据)、csv、xml等
- output
用于把fitler得到的内容输出到指定的接收端,常用的自然是elasticsearch(对接ES)、file(输出到文件)、stdout(直接输出到控制台) - codec
它用于格式化对应的内容,可以再Input和output插件中使用,比如在output的stdout中使用rubydebug以json的形式输出到控制台
input {
file {
path => "D:\elk\page.csv"
start_position => "beginning"
}
}
filter {
grep{
match => {
"message" => "error"
}
}
}
output {
stdout{codec => dots}
elasticsearch {
document_type => "test"
index => "page"
hosts => ["127.0.0.1:9200"]
}
}
启动logstash时候,必须看见下面才是成功
logstash接受kafka数据,传输到elastic
input {
kafka {
bootstrap_servers => "127.0.0.1:9092"
topics => ["elkLog"]
}
}
output {
elasticsearch {
hosts => ["localhost:9200"]
}
}
统一执行脚本
#!/bin/bash
kill -9 $(ps -ef|grep logstash|gawk '$0 !~/grep/ {print $2}' |tr -s '\n' ' ')
kill -9 $(ps -ef|grep zookeeper|gawk '$0 !~/grep/ {print $2}' |tr -s '\n' ' ')
kill -9 $(ps -ef|grep kafka|gawk '$0 !~/grep/ {print $2}' |tr -s '\n' ' ')
kill -9 $(ps -ef|grep filebeat|gawk '$0 !~/grep/ {print $2}' |tr -s '\n' ' ')
kill -9 $(ps -ef|grep kibana|gawk '$0 !~/grep/ {print $2}' |tr -s '\n' ' ')
kill -9 $(ps -ef|grep elasticsearch|gawk '$0 !~/grep/ {print $2}' |tr -s '\n' ' ')
kill -9 9100
/opt/zookeeper-3.4.6/bin/zkServer.sh start >/dev/null 2>&1 &
sleep 5
/opt/kafka_2.11-1.1.0/bin/kafka-server-start.sh /opt/kafka_2.11-1.1.0/config/server.properties >/dev/null 2>&1 &
sleep 5
/opt/elk/filebeat-6.2.3/filebeat -c /opt/elk/filebeat-6.2.3/filebeat.yml >/dev/null 2>&1 &
sleep 2
/opt/elk/elasticsearch-6.2.3/bin/elasticsearch >/dev/null 2>&1 &
sleep 3
/opt/elk/logstash-6.2.3/bin/logstash -f /opt/elk/logstash-6.2.3/bin/logstash.conf >/dev/null 2>&1 &
sleep 5
/opt/elk/kibana-6.2.3/bin/kibana >/dev/null 2>&1 &
sleep 5
cd /opt/elk/elasticsearch-6.2.3/elasticsearch-head-master
grunt server >/dev/null 2>&1 &