官网地址:https://www.elastic.co/cn/
官网权威指南:https://www.elastic.co/guide/cn/elasticsearch/guide/current/index.html
安装指南:(三个组件版本保持一致)
elasticsearch:https://www.elastic.co/cn/downloads/elasticsearch
logstash:https://www.elastic.co/cn/downloads/logstash
kibana:https://www.elastic.co/cn/downloads/kibana
离线安装或者yum安装均可(推荐YUM)
安装elasticsearch的环境
1、安装java
2、设置创建elasticsearch数据的存放目录,并修改该目录的属主属组,需要用非root用户启动
# mkdir -p /data/es-data (自定义用于存放data数据的目录)
# chown -R elasticsearch:elasticsearch /data/es-data
修改elasticsearch的日志属主属组
# chown -R elasticsearch:elasticsearch /var/log/elasticsearch/
修改elasticsearch的配置文件
# vim /etc/elasticsearch/elasticsearch.yml
cluster.name: demon #集群名称
node.name: elk-1 #节点名称
path.data: /data/es-data #data存放路径
path.logs: /var/log/elasticsearch/ #log存放路径
bootstrap.memory_lock: true #内存使用用交换分区
network.host: 0.0.0.0 #监听的网络地址
http.port: 9200 #开启监听的端口
#新增参数,elasticsearch-head可访问elasticsearch
http.cors.enabled: true
http.cors.allow-origin: "*"
启动报错:
1)内存报错,修改虚拟内存
vim /etc/elasticsearch/jvm.options
-Xms512m
-Xmx512m
如果有报错可以去看错误日志 less /var/log/elasticsearch/demon.log(日志的名称是以集群名称命名的)
创建开机自启动服务# chkconfig elasticsearch on
注意事项
需要修改几个参数,不然启动会报错
vim /etc/security/limits.conf
在末尾追加以下内容(elk为启动用户,当然也可以指定为*)
elk soft nofile 65536elk hard nofile 65536
elk soft nproc 2048elk hard nproc 2048
elk soft memlock unlimited
elk hard memlock unlimited
继续再修改一个参数
vim /etc/security/limits.d/90-nproc.conf
将里面的1024改为2048(ES最少要求为2048)
* soft nproc 2048
通过浏览器请求下9200的端口,看下是否成功
安装插件elasticsearch-head
elasticsearch集群:
es集群中配置的seed hosts,通过seed hosts provider提供,provider的数据来源有集群配置文件和第三方插件提供。
集群配置文件又有两种方式,一种是直接在elasticsearch.yml配置文件中通过discovery.seed_hosts参数直接指定主机:[端口]列表,称为setting-based seed hosts provider,如下面:
discovery.seed_hosts:
-192.168.1.10:9300①
-192.168.1.11②
-seeds.mydomain.com③
-[2001:0db8:85a3:0000:0000:8a2e:0370:7334]:9300④
其中①直接指定主机ip和端口;
②指定了主机ip,使用默认的端口。默认端口的设置由transport.profiles.default.port和transport.port端口设置,前者优先级高于后者;
③指定了主机hostname,需要使用dns解析成ip地址,并使用默认端口;
④ip v6地址形式
另外一种是称作file-based seed hosts provider,是通过指定discovery.seed.host: file然后在$ES_PATH_CONF环境变量指定的目录下创建unicast_hosts.txt文件,在文件中保存主机列表,列表形式如第一种。
使用file-based seed hosts provider的方式,es会自动检测unicast_hosts.txt文件的改变,以获取最新主机列表。而对于setting-based seed hosts provider的方式,则需要通过节点重启的方式生效。从这点上来说,file-based seed hosts provider的方式较为灵活。
LogStash的使用
创建一个软连接,每次执行命令的时候不用在写安装路劲
ln -s /usr/share/logstash/bin/logstash /bin/
执行logstash的命令
# logstash -e 'input { stdin { } } output { stdout {} }'