欢迎您, 来到 宁时修博客.^_^

Elastic Stack[7.0]开源日志收集 01 ----elasticsearch部署 及 集群

2018/10/08 林木立 Elastic Stack 892
Elastic Stack日志收集

一、安装elasticsearch

    1. 安装JDK

yum install java-1.8.0-openjdk -y


    2. 安装elasticsearch

    官方文档:https://www.elastic.co/guide/en/elasticsearch/reference/7.0/rpm.html

    下载并安装公共签名密钥:

rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch


     从RPM仓库安装:

     在 /etc/yum.repos.d/ 下创建 elasticsearch.repo文件:

cat > /etc/yum.repos.d/elasticsearch.repo <<EOF
[elasticsearch-7.x]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF

     配置好RPM仓库,直接yum安装elasticsearch:

yum install -y elasticsearch


二、配置

    1. 配置elasticsearch.yml文件

    创建数据存储目录:

mkdir /data/es-data -p
chown -R elasticsearch:elasticsearch /data/es-data/

    

    配置文件:

$ vim /etc/elasticsearch/elasticsearch.yml
cluster.name: myes           #elasticsearch集群名称
node.name: elk-node1          #本节点的主机名
path.data: /data/es-data        #数据存储目录
path.logs: /var/log/elasticsearch    #日志存储目录
bootstrap.memory_lock: true       #锁定内存,确保堆大小设置为系统上可
用内存的大约一半,并且允许进程的所有者使用此限制。当系统交换内存时,弹性搜索的性能很差。
network.host: 0.0.0.0          #绑定IP,访问限制
http.port: 9200             #elasticsearch端口
cluster.initial_master_nodes: ["elk-node1"]


    2. 调整jvm参数

    正式环境调大些,测试环境调小些,具体看服务器内存大小。确保为可用内存的一半。

$ vim /etc/elasticsearch/jvm.options
-Xms2g
-Xmx2g


    3. 调整文件描述符

vim /etc/security/limits.conf
* soft noproc 65535
* hard noproc 65535
* soft nofile 65535
* hard nofile 65535

# allow user 'elasticsearch' mlockall
elasticsearch soft memlock unlimited
elasticsearch hard memlock unlimited


三、启动elasticsearch

systemctl start elasticsearch


    1. 启动报错解决

    启动不了elasticsearch,查看日志:

$ tail -100 /var/log/elasticsearch/myes.log
[1] bootstrap checks failed
[1]: memory locking requested for elasticsearch process but memory is not locked

    

    解决方案:

$ vim /etc/elasticsearch/elasticsearch.yml

bootstrap.memory_lock: false


    2. 测试

    访问elasticsearch: http://elasticsearch主机IP:9200/

    elasticsearch.png



四、安装elasticsearch插件

    1. elasticsearch-head

    作用是elasticsearch集群索引管理:显示索引和分片情况

    Github地址:  https://github.com/mobz/elasticsearch-head

    

    作为Elasticsearch的插件运行(不建议使用)

    对于Elasticsearch 5.x及以上:不支持站点插件。作为独立服务运行

    对于Elasticsearch 2.x: sudo elasticsearch/bin/plugin install mobz/elasticsearch-head

    对于Elasticsearch 1.x: sudo elasticsearch/bin/plugin -install mobz/elasticsearch-head/1.x

    对于Elasticsearch 0.x: sudo elasticsearch/bin/plugin -install mobz/elasticsearch-head/0.9


    因为我现在安装的是elasticsearch 5.0以上,所以以独立服务运行elasticsearch-head。

    

    首先要安装nodejs:

安装EPEL源:wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
安装依赖:yum install gcc gcc-c++ make bzip2 openssl -y
安装nodejs:yum install nodejs -y
淘宝cnpm:npm install -g cnpm --registry=https://registry.npm.taobao.org


     下载elasticsearch-head:

cd /usr/local/
git clone git://github.com/mobz/elasticsearch-head.git
cd elasticsearch-head
cnpm install


     配置head:

修改head源码:增加hostname属性,设置为“*”,允许所有IP访问
$ vim /usr/local/elasticsearch-head/Gruntfile.js
connect: {
   server: {
      options: {
           port: 9100,
           hostname: '*',
           base: '.',
           keepalive: true
           }
        }
      }


修改head连接地址:
$ vim /usr/local/elasticsearch-head/_site/app.js

this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://localhost:9200";
把localhost修改成你es的服务器地址 
this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://192.168.2.41:9200";


    配置elasticsearch:增加以下参数,这样head服务就可以访问elasticsearch

$ vim /etc/elasticsearch/elasticsearch.yml

http.cors.enabled: true
http.cors.allow-origin: "*"

    

    重启elasticsearch,再启动head:

$ cd /usr/local/elasticsearch-head
$ cnpm run start &

    访问:http://elasticsearch主机IP:9100



    2. elasticsearch-kopf (被 cerebro代替)

    elasticsearch-kopf 是一个简单的用于elasticsearch的Web管理工具,已经不在维护,不支持elasticsearch 5.0以上版本,由cerebro替代。

    elasticsearch-kopf Github:https://github.com/lmenezes/elasticsearch-kopf

    cerebro Github:https://github.com/lmenezes/cerebro

    

    安装cerebro:

$ cd /usr/local/src
$ wget https://github.com/lmenezes/cerebro/releases/download/v0.8.1/cerebro-0.8.1.tgz
$ tar xf cerebro-0.8.1.tgz -C /usr/local/
$ /usr/local/cerebro-0.8.1/bin/cerebro &

    访问:http://elasticsearch主机IP:9000/

    也可以在不不同的主机和端口上监听cerebro(默认:0.0.0.0:9000):

$ bin/cerebro -Dhttp.port=1234 -Dhttp.address=127.0.0.1



    界面:

   cerebro.png

    输入elasticsearch URL即可连接到elasticsearch,如:输入http://192.168.2.41:9200/



   8.png




五、elasticsearch集群

    再拿一台服务器部署一个相同配置的elasticsearch节点,配置相同的集群名,通过组播或单播通信。

    修改配置文件:

[root@elk-node2 ~]# vim /etc/elasticsearch/elasticsearch.yml
cluster.name: myes
node.name: elk-node2
path.data: /data/es-data
path.logs: /var/log/elasticsearch
bootstrap.memory_lock: false
network.host: 0.0.0.0
http.port: 9200

#集群节点列表,集群中一台elasticsearch配置即可。
discovery.zen.ping.unicast.hosts: ["192.168.2.41", "192.168.2.42"]


    通过访问elasticsearch-head的web界面即可查看集群:

   集群.png

    Elasticsearch集群健康:   

    green:所有的主分片和副本分片都正常运行。

    yellow:所有的主分片都正常运行,但不是所有的副本分片都正常运行。

    red:有主分片没能正常运行。



点赞
说说你的看法

所有评论: (0)