ELK的安装配置

一、组成

ELK由Elasticsearch、Logstash和Kibana三部分组件组成。

Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。

Logstash是一个完全开源的工具,它可以对你的日志进行收集、分析,并将其存储供以后使用

kibana 是一个开源和免费的工具,它可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志。

二、下载方式

下载地址:https://www.elastic.co/downloads。

右键复制链接地址,wget就可以下载,如:wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.3.tar.gz

下载完,解压,如:  tar -zxvf elasticsearch-6.4.3.tar.gz

还需要安装jdk, sudo apt-get update, sudo apt-get install openjdk-8-jdk

三、配置

(1)elasticsearch配置启动:

进入config目录,vim elasticsearch.yml 修改配置文件,在最下面加入如下几行:

network.host: 0.0.0.0 http.port: 9200 http.cors.enabled: true http.cors.allow-origin: "*"

进入bin目录下,./elasticsearch 启动

可能出现错误:

1.max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

解决:

切换到root用户执行命令:

sysctl -w vm.max_map_count=262144

查看结果:

sysctl -a|grep vm.max_map_count

显示:

vm.max_map_count = 262144

上述方法修改之后,如果重启虚拟机将失效,所以:

在 /etc/sysctl.conf文件最后添加一行

vm.max_map_count=262144

即可永久修改。

2.the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured

修改 config/elasticsearch.yml

取消注释保留一个节点:cluster.initial_master_nodes: ["主机名或ip"]

从Elasticsearch 7.0开始,如果一个节点无法发现主节点,而且也无法赢得选举,Elasticsearch将会定期记录警告消息,消息中将提供描述其当前状态的详细信息,帮助诊断一些常见的问题。

如果未设置initial_master_nodes,那么在启动新节点时会尝试发现已有的集群。如果节点找不到可以加入的集群,将定期记录警告消息:

master not discovered yet, this node has not previously joined a bootstrapped (v7+) cluster,and [cluster.initial_master_nodes] is empty on this node

 

(2)配置kibana:

需要在kibana.yml文件中指定一下需要读取的elasticSearch地址和可供外网访问的bind地址就可以了

vim kibana.yml

elasticsearch.hosts: ["http://localhost:9200"] server.host: 0.0.0.0 server.port: 5601

通过提示,无任何错误表示启动完成。此时通过访问http://192.168.1.23:5601即可

可能出现问题:

1.Error: Request Timeout after 30000ms

解决:处理方法加大es jvm内存和优化查询

给elasticsearch多一点内存,配置文件/config/jvm.options

更改kibana.yml中 elasticsearch.requestTimeout: 90000

 

(3)安装filebeat

为什么要用filebeat来收集日志?为什么不直接用logstash收集日志?

因为logstash是jvm跑的,资源消耗比较大,启动一个logstash就需要消耗500M左右的内存(这就是为什么logstash启动特别慢的原因),而filebeat只需要10来M内存资源。常用的ELK日志采集方案中,大部分的做法就是将所有节点的日志内容通过filebeat发送到logstash,logstash根据配置文件进行过滤。然后将过滤之后的文件输送到elasticsearch中,通过kibana去展示。

下载地址:https://www.elastic.co/cn/downloads/beats/filebeat

配置文件默认是filebeat.yml

#global filebeat configuration options tags: ["10.0.3.199"] max-procs: 1 #Configure inputs filebeat.inputs: - type: log paths: => 日志路径,支持正则 - /var/log/httpd/*log fields: => 输出日志中添加额外的字段,用于日志过滤 service: httpd_log => httpd_log 为自定义字段, logstash的输出可以看到 fields_under_root: true => 自定义字段在第一行,不会被覆盖 #Configure the output output.logstash: => 这里输出到logstash hosts: ["10.0.3.60:5044"] => logstash主机 IP + Port compression_level: 0 => 0表示不进行压缩,压缩级别有0-9

 

附:

elasticsearch主从配置

主机配置:

 1 # 集群名称
 2 cluster.name: es
 3 # 节点名称
 4 node.name: es-master
 5 # 存放数据目录,先创建该目录
 6 path.data: /home/app/elk/elasticsearch-7.3.2/data
 7 # 存放日志目录,先创建该目录
 8 path.logs: /home/app/elk/elasticsearch-7.3.2/logs
 9 # 节点IP
10 network.host: 192.168.43.16
11 # tcp端口
12 transport.tcp.port: 9300
13 # http端口
14 http.port: 9200
15 # 种子节点列表,主节点的IP地址必须在seed_hosts中
16 discovery.seed_hosts: ["192.168.43.16:9300","192.168.43.17:9300","192.168.43.18:9300"]
17 # 主合格节点列表,若有多个主节点,则主节点进行对应的配置
18 cluster.initial_master_nodes: ["192.168.43.16:9300"]
19 # 主节点相关配置
20  
21 # 是否允许作为主节点
22 node.master: true
23 # 是否保存数据
24 node.data: true
25 node.ingest: false
26 node.ml: false
27 cluster.remote.connect: false
28  
29 # 跨域
30 http.cors.enabled: true
31 http.cors.allow-origin: "*" 

 

从机配置:

 1 # 集群名称
 2 cluster.name: es
 3 # 节点名称
 4 node.name: es-data1
 5 # 存放数据目录,先创建该目录
 6 path.data: /home/app/elk/elasticsearch-7.3.2/data
 7 # 存放日志目录,先创建该目录
 8 path.logs: /home/app/elk/elasticsearch-7.3.2/logs
 9 # 节点IP
10 network.host: 192.168.43.17
11 # tcp端口
12 transport.tcp.port: 9300
13 # http端口
14 http.port: 9200
15 # 种子节点列表,主节点的IP地址必须在seed_hosts中
16 discovery.seed_hosts: ["192.168.43.16:9300","192.168.43.17:9300","192.168.43.18:9300"]
17 # 主合格节点列表,若有多个主节点,则主节点进行对应的配置
18 cluster.initial_master_nodes: ["192.168.43.16:9300"]
19 # 主节点相关配置
20  
21 # 是否允许作为主节点
22 node.master: false
23 # 是否保存数据
24 node.data: true
25 node.ingest: false
26 node.ml: false
27 cluster.remote.connect: false
28  
29 # 跨域
30 http.cors.enabled: true
31 http.cors.allow-origin: "*" 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值