手动安装部署Elasticsearch

开篇

开篇闲话,如果是新人在接触ELKstack什么都不懂的情况下,可以先看看各位前人写的关于ELKstack的博客,如何对ELKstack部署安装及使用,但是别人的东西只能作为借鉴,在自己搭建使用一定要以官方文档为准。

一定要注意软件版本,这里系统集合类软件,如果各软件版本不一致,会造成不可预估的后果!!!

资源列表

官方文档: https://www.elastic.co/products/elasticsearch

elasticsearsh权威指南: http://es.xiaoleilu.com/

kibana中文指南: http://kibana.logstash.es/content/

部署

打开官网-->访问docs

我们以最新版本2.3来进行引导

下载方式安装

Installation

设置java环境

java -version

echo $JAVA_HOME

下载elasticsearch压缩包

curl -L -O https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/2.3.3/elasticsearch-2.3.3.tar.gz

解压压缩包,解压后可以直接使用

tar -xvf elasticsearch-2.3.3.tar.gz

cd elasticsearch-2.3.3/bin

启动elasticsearch

./elasticsearch

启动信息:

./elasticsearch

[2014-03-13 13:42:17,218][INFO ][node ] [New Goblin] version[2.3.3], pid[2085], build[5c03844/2014-02-25T15:52:53Z]

[2014-03-13 13:42:17,219][INFO ][node ] [New Goblin] initializing ...

[2014-03-13 13:42:17,223][INFO ][plugins ] [New Goblin] loaded [], sites []

[2014-03-13 13:42:19,831][INFO ][node ] [New Goblin] initialized

[2014-03-13 13:42:19,832][INFO ][node ] [New Goblin] starting ...

[2014-03-13 13:42:19,958][INFO ][transport ] [New Goblin] bound_address {

inet[/0:0:0:0:0:0:0:0:9300]}, publish_address {
inet[/192.168.8.112:9300]}

[2014-03-13 13:42:23,030][INFO ][cluster.service] [New Goblin] new_master [New Goblin][rWMtGj3dQouz2r6ZFL9v4g][mwubuntu1][inet[/192.168.8.112:9300]], reason: zen-disco-join (elected_as_master)

[2014-03-13 13:42:23,100][INFO ][discovery ] [New Goblin] elasticsearch/rWMtGj3dQouz2r6ZFL9v4g

[2014-03-13 13:42:23,125][INFO ][http ] [New Goblin] bound_address {

inet[/0:0:0:0:0:0:0:0:9200]}, publish_address {
inet[/192.168.8.112:9200]}

[2014-03-13 13:42:23,629][INFO ][gateway ] [New Goblin] recovered [1] indices into cluster_state

[2014-03-13 13:42:23,630][INFO ][node ] [New Goblin] started

设置集群名和节点名

./elasticsearch --cluster.name my_cluster_name --node.name my_node_name

yum方式安装

安装GPG验证KEY

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

把下面的源配置加入到 /etc/yum.repos.d/目录中的 a.repo文件里, 可以起名为:elasticsearch.repo

怎么配elasticsearchrepo源,我想中级以上的小伙伴都会

[elasticsearch-2.x]

name=Elasticsearch repository for 2.x packages

baseurl=https://packages.elastic.co/elasticsearch/2.x/centos

gpgcheck=1

gpgkey=https://packages.elastic.co/GPG-KEY-elasticsearch

enabled=1

yum安装即可

yum install elasticsearch

基于salt自动化安装elasticsearch

此处只是分享下salt安装elasticsearch的模板,写的比较粗糙,也是刚开始写,很多自定义配置未加入到模板中,后面会逐步改进,内容里不会涉及新手的入门知识,此类入门知识会逐步在salt模块进行分享。

配置state目录

file_roots:

base_init:

- /etc/salt/states

配置top.sls

[root@sz-a-saltstack-xen states]# cat /etc/salt/states/top.sls

'*':

- init.yum_config

- init.selinux_shutdown

- init.limit

- init.sshd_config

- init.clock_config

- init.ntp_config

- init.user_config

- init.salt_minion_config

- init.tty_init

- init.zabbix_agent

'sz-a-qhfaxes0[1,3]-es-hw':

- jdk

- elkstack.es

配置elkstack 目录es.sls

elasticsearch-2:

pkgrepo.managed:

- humanname: Elasticsearch repository for 2.x packages

- baseurl: https://packages.elastic.co/elasticsearch/2.x/centos

- gpgcheck: 1

- gpgkey: https://packages.elastic.co/GPG-KEY-elasticsearch

elasticsearch-server:

pkg.installed:

- pkgs:

- elasticsearch

- git

- openssl.x86_64

- openssl-devel.x86_64

/etc/elasticsearch/elasticsearch.yml:

file.managed:

- source: salt://elkstack/files/elasticsearch.yml

- template: jinja

- user: elasticsearch

- group: elasticsearch

- require:

- pkg: elasticsearch-server

/data/qhfax_elckstack:

file.directory:

- user: elasticsearch

- group: elasticsearch

- makedirs: True

elasticsearch_log_path:

file.directory:

- name: /var/log/elasticsearch

- user: elasticsearch

- group: elasticsearch

- makedirs: True

elasticsearch:

service.running:

- enable: True

- watch:

- pkg: elasticsearch-server

- file: /etc/elasticsearch/elasticsearch.yml

service_plugins_install:

file.directory:

- name: /root/soft

- makedirs: True

cmd.run:

- cwd: /root/soft

- name: git clone https://github.com/elasticsearch/elasticsearch-servicewrapper.git && ls

- unless: test -d /root/soft/elasticsearch-servicewrapper

mv_service_es:

cmd.run:

- cwd: /root/soft

- name: cp -a elasticsearch-servicewrapper/service/ /usr/share/elasticsearch/bin

- unless:

- test -d /usr/share/elasticsearch/bin/service

- test -d elasticsearch-servicewrapper/service || echo False

head_plugins_install:

cmd.run:

- cwd: /usr/share/elasticsearch/bin

- name: /usr/share/elasticsearch/bin/plugin install mobz/elasticsearch-head

- unless: test -d /usr/share/elasticsearch/plugins/head

license_plugins_install:

cmd.run:

- cwd: /usr/share/elasticsearch/bin

- name: /usr/share/elasticsearch/bin/plugin install license

- unless:

- test -d /usr/share/elasticsearch/plugins/license

marvel_plugins_install:

cmd.run:

- cwd: /usr/share/elasticsearch/bin

- name: /usr/share/elasticsearch/bin/plugin install marvel-agent

- unless:

- test -d /usr/share/elasticsearch/plugins/marvel-agent

上文sls模板存在问题:

1. 没有很好的使用到各类自定义和动态参数

2. 没有进行分层

我考虑应该使用一个应用的生命周期来进行分层,服务器始终保持无状态

安装前预环境 --> 安装 --> 升级