快速搭建ELK

官网地址: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 {} }'

你可能感兴趣的:(快速搭建ELK)