下载APP
关闭
讲堂
前端训练营
极客商城
客户端下载
兑换中心
企业版
渠道合作
推荐作者

提示信息

字幕
    倍速
      清晰度
        音轨

          Elasticsearch核心技术与实战

          视频课程 约1000分钟
           写留言

          精选留言(122)

          • LY
            2019-06-25
            老师您好,我没有修改docker-compose.yaml文件,直接启动的,es启动9200端口正常,但是kibana启动失败,cerebro无法链接 http://elasticsearch:9200。
            一、kibana启动失败。
            kibana7 | {"type":"log","@timestamp":"2019-06-25T10:18:08Z","tags":["fatal","root"],"pid":1,"message":"{ Error: Request Timeout after 30000ms\n at /usr/share/kibana/node_modules/elasticsearch/src/lib/transport.js:355:15\n at Timeout.<anonymous> (/usr/share/kibana/node_modules/elasticsearch/src/lib/transport.js:384:7)\n at ontimeout (timers.js:436:11)\n at tryOnTimeout (timers.js:300:5)\n at listOnTimeout (timers.js:263:5)\n at Timer.processTimers (timers.js:223:10)\n status: undefined,\n displayName: 'RequestTimeout',\n message: 'Request Timeout after 30000ms',\n body: undefined,\n isBoom: true,\n isServer: true,\n data: null,\n output:\n { statusCode: 503,\n payload:\n { statusCode: 503,\n error: 'Service Unavailable',\n message: 'Request Timeout after 30000ms' },\n headers: {} },\n reformat: [Function],\n [Symbol(SavedObjectsClientErrorCode)]: 'SavedObjectsClient/esUnavailable' }"}
            kibana7 |
            kibana7 | FATAL Error: Request Timeout after 30000ms
            kibana7 |
            kibana7 exited with code 1

            二、cerebro 链接 http://elasticsearch:9200 报错
            Unexpected response status: [503]
            展开

            作者回复: 你的ES在我看来,并没有正常启动。或者是 Docker 网络有问题。你可以访问

             http://localhost:9200/_cat/health?v
            查看集群的正常状态,是否为 Green?

            25
            11
          • 业余草
            2019-07-11
            为这一小结,写了三篇帮助教程!

            https://www.xttblog.com/?p=4402
            https://www.xttblog.com/?p=4404
            https://www.xttblog.com/?p=4408

            辅助大家学习!
            展开

            作者回复: 👍

            2
            6
          • 2019-06-25
            解决了碰到的几个坑,我是用vagrant启动的虚拟机,然后装的docker
            1.内存要设置大点,默认内存不够
            2.max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]编辑 /etc/sysctl.conf,追加以下内容:vm.max_map_count=262144保存后,执行:sysctl -p重新启动,成功。

            现在还有一个问题没有解决,打开kibana,是空白界面
            展开

            作者回复: 感谢分享。动手实践是最好的学习方式,为你👍

            4
          • zj
            2019-07-03
            es集群起不来。报错如下:
            es7_01 | "stacktrace": ["org.elasticsearch.discovery.MasterNotDiscoveredException: null",
            es7_01 | "at org.elasticsearch.action.support.master.TransportMasterNodeAction$AsyncSingleAction$4.onTimeout(TransportMasterNodeAction.java:259) [elasticsearch-7.1.0.jar:7.1.0]",
            es7_01 | "at org.elasticsearch.cluster.ClusterStateObserver$ContextPreservingListener.onTimeout(ClusterStateObserver.java:322) [elasticsearch-7.1.0.jar:7.1.0]",
            es7_01 | "at org.elasticsearch.cluster.ClusterStateObserver$ObserverClusterStateListener.onTimeout(ClusterStateObserver.java:249) [elasticsearch-7.1.0.jar:7.1.0]",
            es7_01 | "at org.elasticsearch.cluster.service.ClusterApplierService$NotifyTimeout.run(ClusterApplierService.java:555) [elasticsearch-7.1.0.jar:7.1.0]",
            es7_01 | "at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingRunnable.run(ThreadContext.java:681) [elasticsearch-7.1.0.jar:7.1.0]",
            es7_01 | "at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]",
            es7_01 | "at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]",
            es7_01 | "at java.lang.Thread.run(Thread.java:835) [?:?]"] }
            es7_01 | {"type": "server", "timestamp": "2019-07-03T08:44:36,151+0000", "level": "WARN", "component": "o.e.c.c.ClusterFormationFailureHelper", "cluster.name": "geektime", "node.name": "es7_01", "message": "master not discovered or elected yet, an election requires a node with id [-NtPuq1vRzGRi8CKL1st-A], have discovered [] which is not a quorum; discovery will continue using [] from hosts providers and [{es7_01}{Rl60TSJ3SUqhrb8hl0B0-Q}{8iiqMNQMSreXXgbyzWylfg}{172.19.0.3}{172.19.0.3:9300}{ml.machine_memory=2096164864, xpack.installed=true, ml.max_open_jobs=20}] from last-known cluster state; node term 2, last-accepted version 75 in term 2" }
            展开

            作者回复: docker-compose down -v
            再重新docker-compose up
            同时记得把docker的memory调大

            1
            3
          • renguzi
            2019-07-10
            阮老师,您好!谢谢您的辛苦付出。请问两个问题:1 对于ELK新手,请帮忙给出自学ELK,阅读官方文档的路径,比如先看什么,再看什么等。2 对于MySQL、PostgreSQL数据库的日志,是否可以用ELK来分析,并获取其慢SQL的报告。第一个问题,对于我来说,我可以课下自己阅读相关官方文档来打基础,巩固知识,第二问题,我希望学完本系列课程之后,可以自己搭建一套ELK来分析我手上的数据库的慢SQL,给优化带来帮助。再次感谢。
            展开

            作者回复: 有一篇学习路径➕书籍推荐。

            权威指南很不错的,唯一不足就是版本比较老

            2
          • zj
            2019-07-03
            各位同学们,我第一次启动起来了,再启动就失败了。我发现跟中文目录有关!大家把github下载下来的docker-compose.yaml放在其他非中文目录吧!不谢,😄
            展开

            作者回复: 🐂,大家可以试试。我自己是没有在中文目录下使用

            2
          • 节示
            2019-06-27
            老师用docker-compose.yaml有问题,发现启动完,一会就退出。71和7.2版本都是这个问题,目前没有头绪,请老师给予指导,多谢。
            启动:
             Name Command State Ports
            ---------------------------------------------------------------------------
            cerebro /opt/cerebro/bin/cerebro - ... Up 0.0.0.0:9000->9000/tcp
            es7_01 /usr/local/bin/docker-entr ... Up 0.0.0.0:9200->9200/tcp, 9300/tcp
            es7_02 /usr/local/bin/docker-entr ... Up 9200/tcp, 9300/tcp
            kibana7 /usr/local/bin/kibana-docker Up 0.0.0.0:5601->5601/tcp
            过几十秒后:
            cerebro /opt/cerebro/bin/cerebro - ... Up javascript:; 0.0.0.0:9000->9000/tcp
            es7_01 /usr/local/bin/docker-entr ... Up 0.0.0.0:9200->9200/tcp, 9300/tcp
            es7_02 /usr/local/bin/docker-entr ... Exit 137
            kibana7 /usr/local/bin/kibana-docker Up 0.0.0.0:5601->5601/tcp
            错误日志:
            {"type": "server", "timestamp": "2019-06-27T09:56:02,465+0000", "level": "WARN", "component": "o.e.d.SeedHostsResolver", "cluster.name": "geektime", "node.name": "es7_02", "message": "failed to resolve host [es7_01]" ,

            .java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]",
            es7_02 | "at java.lang.Thread.run(Thread.java:835) [?:?]"] }
            es7_02 | {"type": "server", "timestamp": "2019-06-27T09:56:03,496+0000", "level": "WARN", "component": "o.e.d.SeedHostsResolver", "cluster.name": "geektime", "node.name": "es7_02", "message": "failed to resolve host [es7_01]" ,
            es7_02 | "stacktrace": ["java.net.UnknownHostException: es7_01: Name or service not known",
            es7_02 | "at java.net.Inet4AddressImpl.lookupAllHostAddr(Native Method) ~[?:?]",

            展开
            2
          • 大匡
            2019-06-26
            kibana的监控不能满足课程需求吗?为何还特意选择cerebro?
            展开

            作者回复: CEREBRO的有些界面比较方便用户从集群的角度理解一些内部的分布式工作机制。并不是用来做单纯的监控。

            2
          • 老苏gogogo
            2019-06-26
            老师您好,根据您的docker-compose.yml文件可以启动双节点的es和kibana/cerebro。但是es中没有数据。您的示例数据从哪里导入进去?
            展开

            作者回复: 在Kibana安装和界面概览这一节,有介绍。你可以通过点kiban的首页,看到有一个导入数据的功能。kibana提供了:电子商务,飞机航班和日志信息三个数据集。点击页面就可以导入数据了。

            或者在logatash 导入数据那一节,通过运行logstash -f yourconfig.cofig,导入电影数据

            2
          • 天空之熊
            2019-07-16
            docker-compose.yaml文件中指定了kibana 和 es的 image网址,导致自己更换为国内的镜像站也没用,如果也有下载image太慢的,建议删除网址部分,即修改为: kibana:
                image: kibana:7.2.0
              elasticsearch:
                image: elasticsearch:7.2.0
            展开

            作者回复: 谢谢分享。这个会去docker的reopo下载?速度比较快?

            1
          • aQ.
            2019-07-14
            老师,我的服务内存比较小只有2g,单启动es,在单节点的情况下是可以启动的。但是docker-compose启动的时候,总是提示"es72_01 exited with code 137",down/up了好多次也没用
            展开

            作者回复: 2g内存不一定够,你可以尝试在docker-compose中设置成256,把kibaana设置成256,同时移除cerobro

            1
          • renguzi
            2019-07-10
            看到有同学说,卡在用docker环境启停ELK。我把在CentOS上的操作流程记录一下:
            1 docker安装忽略;

            2 安装docker-compose
            a 参考链接:https://docs.docker.com/compose/install/#install-using-pip
            b 切到Linux标签页,其实就是根据文档执行这2个命令:sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
            以及:sudo chmod +x /usr/local/bin/docker-compose

            3 配置OS的/etc/sysct.conf文件;通过命令:grep vm.max_map_count /etc/sysctl.conf检查vm.max_map_count=262144是否设置。如果返回为空,或者该参数值小于最低要求的262144值。则直接在/etc/sysctl.conf加入或者修改vm.max_map_count=262144。然后,记得执行sysctl -p使其生效。为什么要设置这个参数,因为,你可能会遭遇到docker-compose up 报错,导致另外一个es的instance启动不了,我在实验过程中,从docker-compose up命令窗口上看到es7_02启动不了,提示要修改该内核参数。参考链接:https://www.elastic.co/guide/en/elasticsearch/reference/7.2/docker.html#docker-cli-run-prod-mode

            4 mkdir 7.x-docker-2-es-instances

            5 cd 7.x-docker-2-es-instances

            6 vi docker-compose.yaml 把老师的https://github.com/geektime-geekbang/geektime-ELK/tree/master/part-1/2.3-%E5%9C%A8Docker%E5%AE%B9%E5%99%A8%E4%B8%AD%E8%BF%90%E8%A1%8CElasticsearch%2CKibana%E5%92%8CCerebro/7.x-docker-2-es-instances 文件内容,一字不差的填进去

            7 在当前路径下,执行 docker-compose up 第一次执行,会根据配置文件下载images,比较慢,等着就好了
            8 另外一个命令行窗口,可以执行docker images 或者docker ps 来查看镜像,以及运行的进程。
            [root@centos-master 7.x-docker-2-es-instances]# docker images
            docker.elastic.co/kibana/kibana 7.1.0 714b175e84e8 7 weeks ago 745 MB
            ...内容超长..省略...
            [root@centos-master 7.x-docker-2-es-instances]# docker ps
            CONTAINER ID IMAGE COMMAND CREATED
            ...内容超长..省略...
            9 命令行查看elasticsearch集群健康信息:
            [root@centos-master 7.x-docker-2-es-instances]# curl http://127.0.0.1:9200/_cat/health
            1562729637 03:33:57 geektime green 2 2 4 2 0 0 0 0 - 100.0%
            [root@centos-master 7.x-docker-2-es-instances]#
            10 上面是我的操作步骤和遇到问题的情况,供参考。
            展开

            作者回复: 👍

            1
            1
          • 绅士
            2019-07-04
            看到这里已经卡了两天了,这两天一直在看docker的东西,docker-compose,Docker Image,这些目前为止还是不太清楚是什么,我用的mac ,感觉跟老师的不一样啊
            展开

            作者回复: 你可以把碰到的具体问题列出来。看看大家能否帮助你。

            另外,不是必需使用docker-compose 运行。使用docker的好处是当年在开发机器上管理多套环境。

            这个问题如果你一下解决不了,完全可以用命令行启动es实例

            1
            1
          • Sunshine.
            2019-07-03
            当我下载Kibana镜像时候每次都超时,国内访问有限制?
            展开

            作者回复: 应该只是速度慢,可以尝试找一下国内的镜像

            1
            1
          • 乐凡
            2019-07-01
            老师,试了好多次一直处于这种状态啊!不知道怎么解决。。。。
            kibana7 | {"type":"log","@timestamp":"2019-07-01T13:30:20Z","tags":["license","warning","xpack"],"pid":1,"message":"License information from the X-Pack plugin could not be obtained from Elasticsearch for the [data] cluster. Error: Request Timeout after 30000ms"}
            展开

            作者回复: 请确保为docker分配了足够的内存,cpu和磁盘空间,然后docker-compose down -v 后 再测试一下

            1
          • 严小白
            2019-06-28
            老师,您好,能否给出一个关于不同物理机器之间集群的 dock-compose.yml 的配置文件。而不是在一个物理机器上,跑了两个 es 的实例,谢谢!
            展开

            作者回复: docker compose主要就是用在单台机器上的。多机器的,因该需要docker swam或者是kubernetes。k8s在第三部分会有讲解

            1
          • 节示
            2019-06-27
            es7_02 | {"type": "server", "timestamp": "2019-06-27T09:40:35,984+0000", "level": "WARN", "component": "o.e.d.SeedHostsResolver", "cluster.name": "geektime", "node.name": "es7_02", "message": "failed to resolve host [es7_01]" ,
            es7_02 | "stacktrace": ["java.net.UnknownHostException: es7_01",
            es7_02 | "at java.net.InetAddress$CachedAddresses.get(InetAddress.java:797) ~[?:?]",
            es7_02 | "at java.net.InetAddress.getAllByName0(InetAddress.java:1505) ~[?:?]",
            es7_02 | "at java.net.InetAddress.getAllByName(InetAddress.java:1364) ~[?:?]",
            es7_02 | "at java.net.InetAddress.getAllByName(InetAddress.java:1298) ~[?:?]",
            es7_02 | "at org.elasticsearch.transport.TcpTransport.parse(TcpTransport.java:528) ~[elasticsearch-7.2.0.jar:7.2.0]",
            es7_02 | "at org.elasticsearch.transport.TcpTransport.addressesFromString(TcpTransport.java:470) ~[elasticsearch-7.2.0.jar:7.2.0]",
            es7_02 | "at org.elasticsearch.transport.TransportService.addressesFromString(TransportService.java:754) ~[elasticsearch-7.2.0.jar:7.2.0]",
            es7_02 | "at org.elasticsearch.discovery.SeedHostsResolver.lambda$resolveHostsLists$0(SeedHostsResolver.java:141) ~[elasticsearch-7.2.0.jar:7.2.0]",
            es7_02 | "at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]",
            es7_02 | "at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingRunnable.run(ThreadContext.java:688) ~[elasticsearch-7.2.0.jar:7.2.0]",
            es7_02 | "at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]",
            es7_02 | "at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]",
            es7_02 | "at java.lang.Thread.ru
            展开
            1
            1
          • 芬达
            2019-06-27
            老师的docker-compose.yml文件在哪里可以下载?

            作者回复: https://github.com/onebirdrocks/geektime-ELK

            进入 Part-1 目录,找到相应的章节

            1
            1
          • colin
            2019-06-25
            老师,课程的实验,是用docker还是本地好一点
            展开

            作者回复: 都可以,你如果只用一个版本的,用本机版也可以。就是要分别启动es和kiban而已。

            1
          • 草帽路飞
            2019-06-24
            老师您好。有两个问题:1)请问现在生产中对ELK这类工具有没有容器化使用?或者容器化的趋势?
            2)celebro 应该是替代了head这个插件吧?
            展开

            作者回复: 关于容器化,目前,ebay正把ES集群从openstack迁往k8s。从上游看,Elastic公司除了开源了helm,还在上个月开源了eladticsearch的k8s operator,方便用户在k8s上部署和管理es的集群。关于插件,很难说谁取代谁,更新的频率,用户的使用习惯,都是挺重要的考量因素。从趋势上看,越来越多的功能都会整合进kibana的界面。

            1