设为首页 收藏本站
查看: 4468|回复: 6

[经验分享] ELK+FILEBEAT+KAFKA+ZOOKEEPER日志管理分析平台

  [复制链接]
累计签到:1 天
连续签到:1 天
发表于 2017-9-22 09:30:40 | 显示全部楼层 |阅读模式
一、环境及软件版本

1
2
3
4
5
6
7
8
9
10
# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
# ll /software
jdk-8u60-linux-x64.tar.gz
elasticsearch-5.6.1.tar.gz
filebeat-5.6.1-x86_64.rpm
kafka_2.11-0.11.0.1.tgz
kibana-5.6.1-linux-x86_64.tar.gz
logstash-5.6.1.tar.gz
zookeeper-3.4.10.tar.gz



二、架构描述
1、采集层-->日志生产:10.150.27.55
NGINX LOG: /data/log/nginx/
TOMCAT LOG: /opt/tomcat/apache-tomcat-8.0.26/logs/
2、数据处理、缓存层-->日志转发LOGSTASH:10.150.27.66
3、数据处理、缓存层-->日志缓存集群:10.150.27.66/10.150.27.65
KAFKA/ZOOKEEPER
4、检索、展示层-->日志提取及过滤LOGSTASH:10.150.27.65
5、检索、展示层-->日志搜索ELASTICSEARCH:10.150.27.65
6、检索、展示层-->日志展示KIBANA:10.150.27.65
详细系统架构图如下:
QQ截图20170922093014.png
三、安装部署
0、系统初始化

1
2
3
4
5
6
7
8
9
# more /etc/security/limits.conf
root soft nofile 655350
root hard nofile 655350
* soft nofile 655350
* hard nofile 655350
# ulimit -HSn 65530
# more /etc/sysctl.conf
vm.max_map_count= 262144
# sysctl -p



1、JAVA环境

1
2
3
4
5
6
7
8
# tar xf jdk-8u60-linux-x64.tar.gz
# mv jdk1.8.0_60 /usr/local/
# more /etc/profile
export JAVA_HOME=/usr/local/jdk1.8.0_60
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
# source /etc/profile



解决后面出现的LOGSTASH启动缓慢问题:
修改文件$JAVA_HOME/jre/lib/security/java.security
设置参数securerandom.source=file:/dev/urandom

2、安装ELASTICSEARCH
切换到普通用户 su - king

1
2
$ tar xf elasticsearch-5.6.1.tar.gz
$ cd elasticsearch-5.6.1



安装x-pack插件:

1
$ ./bin/elasticsearch-plugin install x-pack




按照需求调整内存占用参数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$ grep -Ev "#|^$" ./config/jvm.options
-Xms2g
-Xmx2g
-XX:+UseConcMarkSweepGC
-XX:CMSInitiatingOccupancyFraction=75
-XX:+UseCMSInitiatingOccupancyOnly
-XX:+AlwaysPreTouch
-server
-Xss1m
-Djava.awt.headless=true
-Dfile.encoding=UTF-8
-Djna.nosys=true
-Djdk.io.permissionsUseCanonicalPath=true
-Dio.netty.noUnsafe=true
-Dio.netty.noKeySetOptimization=true
-Dio.netty.recycler.maxCapacityPerThread=0
-Dlog4j.shutdownHookEnabled=false
-Dlog4j2.disable.jmx=true
-Dlog4j.skipJansi=true
-XX:+HeapDumpOnOutOfMemoryError



修改监听端口,允许外部系统远程访问:

1
2
$ grep -Ev "#|^$" ./config/elasticsearch.yml
network.host: 10.150.27.65



启动ElasticSearch:

1
./bin/elasticsearch &




验证是否成功启动:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
$ curl http://elastic:changeme@10.150.27.65:9200
{
  "name" : "Z2-xF9U",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "CfPyniZDSv6zJV9ww0Ks5Q",
  "version" : {
    "number" : "5.6.1",
    "build_hash" : "667b497",
    "build_date" : "2017-09-14T19:22:05.189Z",
    "build_snapshot" : false,
    "lucene_version" : "6.6.1"
  },
  "tagline" : "You Know, for Search"
}



3、安装LOGSTASH(10.160.27.65)
切换成root用户

1
2
3
# tar xf logstash-5.6.1.tar.gz
# cd logstash-5.6.1
# mkdir conf.d/



设置接收kafka输入,输出到elasticsearch。(kafka安装配置完成后再配置此处,提前将配置列出。)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# more ./conf.d/kafka.conf
input {
       kafka {
           bootstrap_servers => "10.150.27.66:9092,10.150.27.65:9092"
           topics => ["ecplogs"]
           }
}
output {   
            elasticsearch {
                   hosts => ["10.150.27.65:9200"]
                   user => "elastic"
                   password => "changeme"
                   index => "ecp-log-%{+YYYY.MM.dd}"
                   flush_size => 20000
                   idle_flush_time => 10
                   template_overwrite => true
               }
}



启动Logstash:

1
# ./bin/logstash -f conf.d/kafka.conf &





4、安装KIBANA

1
2
3
# tar -xf kibana-5.6.1-linux-x86_64.tar.gz
# cd kibana-5.6.1-linux-x86_64/
# ./bin/kibana-plugin install x-pack



设置Kibaba对外开放的IP和ElasticSearch的url

1
2
3
# grep -Ev "#|^$" ./config/kibana.yml
server.host: "10.150.27.65"
elasticsearch.url: "http://10.150.27.65:9200"



启动Kibana并验证:

1
2
3
# ./bin/kibana &
http://10.150.27.65:5601
elastic/changeme



5、安装ZOOKEEPER集群
10.150.27.66:

1
2
3
4
5
6
7
8
9
10
11
12
13
# tar xf zookeeper-3.4.10.tar.gz -C /usr/local/
# cd /usr/local/zookeeper-3.4.10/config/
# cp zoo_sample.cfg zoo.cfg
# grep -Ev "#|^$" zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/local/zookeeper-3.4.10/zookeeper
clientPort=2181
server.1=10.150.27.66:12888:13888
server.2=10.150.27.65:12888:13888
# more ../zookeeper/myid
1



10.150.27.65:

1
2
# more ../zookeeper/myid
2



启动Zookeeper并验证:

1
2
3
4
5
# ../bin/zkServer.sh start
# ../bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper-3.4.10/bin/../conf/zoo.cfg
Mode: follower



6、安装KAFKA集群
10.150.27.66:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# tar xf kafka_2.11-0.11.0.1.tgz -C /usr/local/
# cd /usr/local/kafka_2.11-0.11.0.1/config/
# grep -Ev "#|^$" server.properties
broker.id=1
port=9092
host.name=10.150.27.66
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dirs=/usr/local/kafka-logs
num.partitions=1
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
log.retention.hours=1
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
zookeeper.connect=10.150.27.66:2181,10.150.26.65:2181
default.replication.factor=2
zookeeper.connection.timeout.ms=6000
group.initial.rebalance.delay.ms=0



10.150.27.65:

1
2
3
# grep -Ev "#|^$" server.properties
broker.id=2
host.name=10.150.27.65



启动并验证:

1
2
3
4
# ../bin/kafka-server-start.sh -daemon server.properties
# ../bin/kafka-topics.sh --create --zookeeper 10.150.27.66:2181 --replication-factor 1 --partitions 2 --topic ecplogs
# ../bin/kafka-console-producer.sh --broker-list 10.150.27.66:2181 --topic ecplogs
# ../bin/kafka-console-consumer.sh --zookeeper 10.150.27.65:2181 --from-beginning --topic ecplogs



7、日志中转LOGSTASH安装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# pwd
/usr/local/logstash-5.6.1/conf.d
# more kafka.conf
input {
       beats {
           port => "5044"
           }
}
output {   
            kafka {
                   bootstrap_servers => "10.150.27.66:9092,10.150.27.65:9092"
                   topic_id => "ecplogs"
               }
}



8、FILEBEAT安装配置

1
2
3
4
5
6
7
8
# rpm -ivh filebeat-5.6.1-x86_64.rpm
[iyunv@appcan-t-app-4 ~]# grep -Ev "#|^$" /etc/filebeat/filebeat.yml
filebeat.prospectors:
- input_type: log
  paths:
    - /opt/tomcat/apache-tomcat-8.0.26/logs/*
output.logstash:
  hosts: ["10.150.27.66:5044"]



  
至此,配置全部完成。
页面展示:
QQ截图20170922093021.png

另:TOMCAT日志格式更改为json样式。
cd /opt/tomcat/apache-tomcat-8.0.26/conf/
more server.xml


1
2
3
4
5
6
7
8
9
<!-- Access log processes all example.
             Documentation at: /docs/config/valve.html
             Note: The pattern used is equivalent to using pattern="common" -->
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".log"
               pattern="{&quot;client&quot;:&quot;%h&quot;,  &quot;client user&quot;:&quot;%l&quot;,   &quot;authenticated&quot;:&quot;%u&quot;,  
&quot;access time&quot;:&quot;%t&quot;,     &quot;method&quot;:&quot;%r&quot;,   &quot;status&quot;:&quot;%s&quot;,  &quot;send bytes&quot;:&quot
;%b&quot;,  &quot;Query?string&quot;:&quot;%q&quot;,  &quot;partner&quot;:&quot;%{Referer}i&quot;,  &quot;Agent version&quot;:&quot;%{User-Agent}i
&quot;}"/>



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-404905-1-1.html 上篇帖子: Ubuntu16.04安装Kafka集群 下篇帖子: kafka集群的部署
累计签到:51 天
连续签到:1 天
发表于 2017-11-10 17:06:54 | 显示全部楼层
x-pack插件不是收费的么?

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

累计签到:115 天
连续签到:1 天
发表于 2017-11-11 17:24:05 | 显示全部楼层
111111111111111111111111111

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

累计签到:28 天
连续签到:1 天
发表于 2018-1-9 21:46:39 | 显示全部楼层
怎么使用啊  有无使用手册

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

回复 支持 反对

使用道具 举报

累计签到:1557 天
连续签到:1 天
发表于 2018-1-10 06:56:24 | 显示全部楼层

怎么使用啊  有无使用手册

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

回复 支持 反对

使用道具 举报

累计签到:227 天
连续签到:1 天
发表于 2018-1-10 15:01:28 | 显示全部楼层
哎呀,高大上

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表