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 elkelasticsearch安装
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 -versionvi 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: elkLoglogstash的组件其实很简单,主要包括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 &