在学习ES之前,一般需要先安装ES。虽然ES可以开箱即用,但是如果要学习分布式特性,需要安装多个节点,这时候还是有点工作量的。下面提供两个小脚本,一个是在Ubuntu中安装一个3节点的ES伪集群,一个是在docker中安装一个3节点的ES集群。除了安装ES,该脚本还提供了对应版本的Kibana和Cerebro0.9.4的安装。1、在Ubuntu中安装ES7.13这里我们下载ES安装包并解压安装,不使用Ubuntuapt。ES的安装很简单,这里先放安装脚本。下面介绍比较重要的配置项:discovery.seed_hosts在开箱即用的环境(native环境)不需要配置,ES会自动扫描本机的9300到9305端口。一旦配置了网络环境,将不会执行此自动扫描操作。Discovery.seed_hosts可以配置为主备选节点。如果需要指定端口,它的值可以是:["localhost:9300","localhost:9301"]cluster.initial_master_nodes指定新的clustermaster候选列表,它的值是一个节点名列表。如果配置了node.name:my_node_1,那么它的值为["my_node_1"],而不是ip的列表!network.host和http.port是ES对外提供服务的监听地址和端口,ip不能在线配置为0.0.0.0,这是非常危险的行为!!!这个discovery.seed_hosts和cluster.initial_master_nodes怎么理解?cluster.initial_master_nodes是候选列表。一般我们线上环境的考生人数比较少,毕竟是用来备份的。并且这个配置只与master的选举有关,即与其他类型的节点无关。即使你有100个数据节点,如果你经常添加或删除,你也不需要触及这个列表。discovery.seed_hosts这个可以理解为服务或者节点发现,其他节点必须知道它们才能进入集群~一般配置为集群的master候选列表。但是这些master候选人(组织联系人)可能经常变动,怎么办?这个配置项除了支持ip之外还支持域名~所以可以用域名来解决这个问题。其他节点的配置写域名,域名解析到对应的ip。如果机器挂了,换了新的节点ip,就直接把域名解析成新的ip,这样就不需要修改其他节点的配置了。所以非master候选节点需要配置discovery.seed_hosts(组织联系方式)。除了修改ES服务配置外,还需要配置JVM配置。我们主要配置服务占用的堆内存大小。JVM配置需要注意以下几点:两个jvm的配置必须配置相同的值。启动时分配内存空间,避免运行时申请内存分配导致系统抖动。Xmx不要超过机器内存的50%,留一些内存给JVM堆外内存,Xmx不要超过32G。建议最大配置为30G。接近32G时,JVM会启用压缩对象指针的功能,导致性能下降。详情请参考:a-heap-of-trouble。安装成功后,可以访问:ES:localhost:9211Kibana:localhost:5601cerebro:localhost:98002,在docker中安装ES7.13在进行所有操作之前,我们必须先安装docker。如果你已经安装了docker和docker-compose,你可以访问我为你准备的docker-compose.yaml文件。如果您没有安装docker,可以在docker文档中的安装ES中找到完整的教程。下载这个文件,保存为docker-compose.yaml,进入这个文件所在目录,执行以下命令:docker-composeup如果你还没有下载镜像文件,docker-compose会自动为你下载镜像并启动它的容器。如果docker-compose启动失败,提示没有权限连接docker,报错如下:GotpermissiondeniedwhiletryingtoconnecttotheDockerdaemonsocketatunix:///var/run/docker.sock:获取“http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/json?all=1&filters=%7B%22label%22%3A%7B%22com.docker.compose.project%3Ddocker_es%22%3Atrue%7D%7D&limit=0":dialunix/var/run/docker.sock:connect:permissiondenied可以运行如下命令临时修改:sudochmod666/var/run/docker.sock原因是因为你的docker是用root启动的。最后可以访问:cerebro:ip:9000Kibana:ip:5601Elasticsearch:ip:9200,ip:9202,ip:9203其他学习资料创建自己的ESDockerImage在dockerimage中安装Elasticsearch插件一个打开sourceELKdocker-compose配置docker在docker中安装ES7.13在docker中安装Kibana7.13
