【ELK学习-1】-ELK框架搭建与配置

ELK是目前最流行的开源日志分析架构技术栈。

世上本没有路,走的人多了,便成了路.

鲁迅

简介:

ELK是Elasticsearch,Logstash,Kibana三大开源框架首字母大写简称。也被称为Elastic Stack。
ElasticSearch是一个基于Lucene(基于Java的全文搜索引擎),分布式,通过Restful(HTTP的接口)方式进行交互
的近实时搜索框架;Logstash是一个开源日志搜集工具,可以从不同目标(文件/数据存储/MQ)采集不同格式的
的数据,经过过滤后输出到不同目的地(文件/MQ/redis/es/kafka);Kibana可以将es中数据通过友好的页面展示
出来,提供实时分析,可视化的功能。

架构图:

这边部署在虚拟机上,只使用了最简单粗暴的部署方式。
这种架构只是我用来实验的,按照官方推荐应该使用filebeat等收集,发送至消息中间件Kafka或redis暂存信息,然后发送至Logstash进行过滤,由其发送至ES。

下载

 注意ES和Kibana具有依赖性,因此都下载最新版本。
 注意ES和Logstash都需要Java8环境,需要下载JDK1.8.0的包—推荐使用yum install java-1.8.0-openjdk命令进行安装。
 下载地址:https://www.elastic.co/cn/products

提前准备:新建elk用户

 groupadd elk;
 useradd elk;
 passwd elk进行密码配置

安装

安装logstash

—注意权限配置,最好以root执行以便读取日志
 a.解压至/home/elk目录下

  b. 在解压文件的config目录中新建logstash.conf,输入如下配置:

  说明:input表示传输的数据来源,此处使用file,表示监听/root/logs/目录下所有log文件的内容。start_position是监听的位置,默认为end也就是说只看新增的内容。Beginning表示从头开始读取。

 c.启动logstash,配置文件设置为conf/logstash.conf

命令:./logstash –f ../conf/logstash.conf

Logstash已经启动,下一步就是进行ES配置。

安装ElasticSearch

 a.解压ES包至/home/elk目录下,更改文件所有者和所属组为elk
  chown elk:elk elasticsearch

 切换至elk用户,然后解压文件

b.进入解压后的config目录,配置elasticsearch.yml文件

1
2
3
4
5
6
7
8
解除一下注释,并进行配置
Cluster.name:自定义
Node.name 自定义或只解除注释
Network.host : 0.0.0.0
http.port: 9200
discovery.seed_hosts: [“host1”]
cluster.initial_master_nodes: [“node-1”]
action.auto_create_index: log-* //此处添加这个log-*要与logstash的配置文件中index => “log-%{+YYYY.MM.dd}”格式对应-----重要
&emsp;c.启动ES<br>

  回到es的bin目录下执行./elstaicsearch,然后curl –s localhost:9200查看是否启动成功。如果启动不成功,则根据报错信息进行排查。

 d.启动中可能会遇到的报错信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
(1)max file descriptors [4096]for elasticsearch process is too low, increase to at least [65536]----每个进程最大同时打开文件数太小

vi /etc/security/limits.conf
添加:
* soft nofile 65536
* hard nofile 65536


(2)max number of threads [3818] for user [es] is too low, increase to at least [4096]
------最大线程个数太低

vi /etc/security/limits.conf
添加:
* soft nproc 2048
* hard nproc 4096

(3)max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]

解决办法:vi /etc/sysctl.conf

添加 vm.max_map_count=655360

并执行命令:sysctl –p

-------至此,ES安装也完成了,下一步进行Kibana安装------

安装Kibana

1
2
3
4
5
6
7
8
9
10
11
12
a.将压缩包移动至/home/elk下,更改所属组和所有者至elk,然后切换至elk用户进行解压。

b.修改config目录中的kibana.yml文件
elasticsearch.url : http://es集群master节点IP:9200
server.host: 0.0.0.0

c.启动看kibana
./kibana

d.访问 http://IP:5601,进入kibana进行配置

注意:如果是单机环境,那么就需要进行如下配置---关闭索引副本,否则es中索引会是yellow

 e.配置kibana,index patterns


---------------------------------------------------------------至此,ELK安装完毕。-----------------------------------------