ELK

五台机器:
192.168.0.212        flume logstash nginx
192.168.0.213        kinaba      
192.168.0.214        kafka zookeeper es
192.168.0.215        kafka zookeeper es
192.168.0.216        kafka zookeeper es
flume--kafka--logstash--es--kinaba
都得安装jdk(版本兼容问题要考虑)
--------------------------------------------------------------------------------------------------------
flume:
安装版本:apache-flume-1.7.0-bin
jdk版本:1.8.0_181
1.配置flume-env.sh,主要配置参数JAVA_HOME和JAVA_OPTS(这一步亲测过不起作用,还是以/etc/profile方式改java环境变量)
2.新建kafka-conf.properties(这个文件默认是没有的,这个文件名后面启动的时候会-f指定),上传至flume的apache-flume-1.7.0-bin/conf目录下,配置内容如下:
[root@psptwebpreweb11 conf]# cat kafka-conf.properties 
#client
a1.channels=ch1
a1.sources=src1
a1.sinks=sk1

#define source monitor a logfile
a1.sources.src1.type=exec
a1.sources.src1.command=tail -F /data/jsp/log_producer/logs/producer.log
a1.sources.src1.channels=ch1

a1.channels.ch1.type=memory
a1.channels.ch1.capacity=10000
a1.channels.ch1.transactionCapacity=100

#define kafka receiver
a1.sinks.sk1.type=org.apache.flume.sink.kafka.KafkaSink
a1.sinks.sk1.brokerList=10.205.0.214:9092,10.205.0.215:9092,10.205.0.216:9092
a1.sinks.sk1.topic=my-replicated-topic
a1.sinks.sk1.serializer.class=kafka.serializer.StringEncoder
a1.sinks.sk1.channel=ch1
a1.sinks.sk1.batchSize=20

需要注意以下三个重要配置:
a1.sources.src1.command=tail -F /data/jsp/log_producer/logs/producer.log tail监听日志文件
a1.sinks.sk1.brokerList=ip1:9092,ip2:9092,ip3:9092 kafka集群配置
a1.sinks.sk1.topic=kafkatest flume向kafkatest主题push数据

touch  /data/jsp/log_producer/logs/producer.log

for((i=0;i<=1000;i++));
do echo "kafka_test-"+$i>>/data/jsp/log_producer/logs/producer.log;
done
用这个命令生成日志文件配合测试kafka


启动agent的shell操作:
flume-ng agent -n a1 -c conf -f conf/kafka-conf.properties -Dflume.root.logger=DEBUG,console
上面命令虽然可以启动但是容易挂掉
亲测:nohup ./bin/flume-ng agent -n a1 -c conf -f conf/ng-kafka-conf.properties -Dflume.root.logger=DEBUG,console &
参数说明:
-n 指定agent名称(与配置文件中代理的名字相同) 即a1
-c 指定flume中配置文件的目录 
-f 指定配置文件 
-Dflume.root.logger=DEBUG,console 设置日志等级
jps查看启动进程名称application
--------------------------------------------------------------------------------------------------------
kafka:
安装版本:kafka_2.11-2.1.0
zookeeper(不建议用自带的zookeeper)
安装版本:zookeeper-3.4.13
在conf目录下cp zoo_sample.cfg zoo.cfg并且修改配置文件:
加入以下配置:
server.3=10.205.0.214:2888:3888
server.1=10.205.0.215:2888:3888
server.2=10.205.0.216:2888:3888
dataDir=/opt/zookeeper-3.4.13/data
上面3的配置每台机器都相同
dataDir这个配置路径下需要创建myid文件并且输入一个唯一标志必须和server后面的数字保持一致(每台机器不一样)命令:
echo 3 > /opt/zookeeper-3.4.13/data/myid
启动zk服务:
sh zkServer.sh start(每台机器挨个启动)
然后查看状态:sh zkServer.sh status
[root@psptwebpreweb09 bin]# sh zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper-3.4.13/bin/../conf/zoo.cfg
Mode: leader
表示安装正确(jps也可以看到进程)

kafka安装
更改配置文件server.properties:
broker.id=0 
listeners=PLAINTEXT://10.205.0.214:9092
log.dirs=/tmp/kafka-logs 
zookeeper.connect=10.205.0.214:2181,10.205.0.215:2181,10.205.0.216:2181
注意:
broker.id 每台机器不一样
listeners这个机器需要绑定本地的ip地址
其他配置一样

启动kafka进程:
./bin/kafka-server-start.sh -daemon config/server.properties    三台挨个启动

./kafka-topics.sh --create --zookeeper 10.205.0.214:2181,10.205.0.215:2181,191.10.205.0.216:2181 --replication-factor 3 --partitions 1 --topic my-replicated-topic
创建一个topic(这个topic名称在flume配置文件里写入保持一致 这个参数:agent.sinks.sk1.topic=my-replicated-topic)

./bin/kafka-console-producer.sh --broker-list 10.205.0.214:9092 --topic my-replicated-topic
生产者测试

./bin/kafka-console-consumer.sh --bootstrap-server 10.205.0.215:9092 --topic ng-access --from-beginning
消费者测试
应该可看到flume的日志文件里的内容
--------------------------------------------------------------------------------------------------------
logstash
更改配置文件kafka-logstash-es.conf
input {
    kafka {
        bootstrap_servers => ["10.205.0.214:9092,10.205.0.215:9092,10.205.0.216:9092"]
        group_id => "1"
        topics => ["my-replicated-topic"]
        consumer_threads => 5
        decorate_events => true
        codec => "json"
        }
}

output {
    elasticsearch {
        hosts => ["10.205.0.214:9200","10.205.0.215:9200","10.205.0.216:9200"]
        index => "logstash-%{[type]}-%{+YYYY.MM.dd}" 
        codec => "json"
          }
     }
启动方式:
nohup ./bin/logstash -f config/kafka-logstash-es.conf &

--------------------------------------------------------------------------------------------------------
es
安装版本:/opt/elasticsearch-6.7.0
不能用root用户启动es,所以创建一个普通用户useadd es
更改配置elasticsearch.yml
cluster.name:my-cluster        (唯一)
node.name:node-1        (唯一)
path.data: /opt/elasticsearch-6.7.0/data

bootstrap.memory_lock: false
bootstrap.system_call_filter: false    
(这2个参数解决启动报错filter的问题)

network.host:10.205.0.214
discovery.zen.ping.unicast.hosts: ["10.205.0.214:9300","10.205.0.215:9300","10.205.0.216:9300"]

还有改如下配置解决启动报错句柄不够等问题:
[root@psptwebpreweb09 config]# tail -fn2 /etc/security/limits.conf
es       hard        nofile        65536
es       soft        nofile        65536
退出重新登录生效
[root@psptwebpreweb09 config]# tail -fn1 /etc/sysctl.conf
vm.max_map_count = 262144
sysctl -p生效

es后台启动方式 ./elasticsearch -d
jps查看启动进程
curl '10.205.0.214:9200/_cat/nodes?v'    查看集群节点状况
curl '10.205.0.215:9200/_cat/health?v'    查看集群健康状况
curl '10.205.0.214:9200/_cat/indices?v'    查看集群所有索引
curl -XGET 10.205.0.214:9200/_cat/shards?v

-----------------------------------------------------------------------------------
kibana安装
安装版本:kibana-6.7.0-linux-x86_64
配置文件kibana.yml:
server.port: 5601
server.host: "10.205.0.213"
elasticsearch.hosts: ["http://10.205.0.214:9200"]
kibana.index: ".kibana"

启动方式:
nohup ./bin/kibana &
查看进程:
ps aux | grep node
root     25413 83.4  3.3 1235868 131064 pts/0  Rl   19:30   0:04 ./bin/../node/bin/node --no-warnings --max-http-header-size=65536 ./bin/../src/cli
root     25450  0.0  0.0 103248   884 pts/0    S+   19:30   0:00 grep node

浏览器访问地址:10.205.0.213:5601/app/kibana

######################################################
flume多监控点配置
[root@psptwebpreweb11 apache-flume-1.7.0-bin]# cat conf/ng-kafka-conf.properties
#client
a1.channels=ch1
a1.sources=src1
a1.sinks=sk1

#define source monitor a logfile
a1.sources.src1.type=exec
a1.sources.src1.command=tail -F /usr/local/nginx/logs/access.log
a1.sources.src1.channels=ch1

a1.channels.ch1.type=memory
a1.channels.ch1.capacity=10000
a1.channels.ch1.transactionCapacity=100

#define kafka receiver
a1.sinks.sk1.type=org.apache.flume.sink.kafka.KafkaSink
a1.sinks.sk1.brokerList=10.205.0.214:9092,10.205.0.215:9092,10.205.0.216:9092
a1.sinks.sk1.topic=ng-acc
a1.sinks.sk1.serializer.class=kafka.serializer.StringEncoder
a1.sinks.sk1.channel=ch1
a1.sinks.sk1.batchSize=20

#---------------------------------------------
#client
a1.channels=ch2
a1.sources=src2
a1.sinks=sk2

#define source monitor a logfile
a1.sources.src2.type=exec
a1.sources.src2.command=tail -F /usr/local/nginx/logs/error.log
a1.sources.src2.channels=ch2

a1.channels.ch2.type=memory
a1.channels.ch2.capacity=10000
a1.channels.ch2.transactionCapacity=100

#define kafka receiver
a1.sinks.sk2.type=org.apache.flume.sink.kafka.KafkaSink
a1.sinks.sk2.brokerList=10.205.0.214:9092,10.205.0.215:9092,10.205.0.216:9092
a1.sinks.sk2.topic=ng-err
a1.sinks.sk2.serializer.class=kafka.serializer.StringEncoder
a1.sinks.sk2.channel=ch2
a1.sinks.sk2.batchSize=20


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值