elk(elasticsearch+logstash+kibana)安装入坑
关于日志,大家应该都有所了解,日志的作用是为了排查问题,尤其是突发的问题,或者提供监控报警功能。传统的日志监控,都是在生产机上通过命令grep或less等命令查询日志文件,当服务器集群,数量多的时候,传统方式效率低下,无法及时确定问题,难以监控。最近公司打算优化日志监控,查阅大量资源,发现了一款开源日志系统-elasticsearch+logstash+kibana。
下面大致介绍一下elk的三大部分(由于水平有限,采用百科和官网解释):
Elasticsearch(数据存储):
ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。基于elasticsearch搜索速度快、零配置等特点,我们使用它作为数据存储,来提高日志查询速度。
Logstash(搜集、数据转换、传输):
Logstash 是开源的服务器端数据处理管道,能够同时从多个来源采集数据,转换数据,然后将数据发送到您最喜欢的 “存储库” 中。logstash具有三大组件—input、filter、output,input用来接收各种各样的数据,filter用来格式化数据,output输出数据到我们指定的地方。这里我们使用elasticsearch来作为我们的存储库。
Kibana(日志可视化):
Kibana是一个开源的分析与可视化平台,被设计与Elasticsearch一起使用。可以搜索、查看、交互(crud)存放在Elasticsearch索引里的数据,使用各种不同的图表、表格、地图等kibana能够很轻易地展示高级数据分析与可视化。
粗略介绍这三大工具的作用,至于具体使用,这里不是重点,也不是一两句话能够说清楚的,现在,我们先搭建出一个elk的环境,后续相关操作,再慢慢详谈。只要大家环境能够搭建正确,怎么使用,肯定难不倒大家的。
下面是一个正常安装流程,入坑开始:
Elasticsearch安装:
首先,我们开始下载最新elasticsearch(路径:/usr/local/):
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.4.tar.gz
解压:
[[email protected] local]# tar -zvxf elasticsearch-6.2.4.tar.gz
进入bin目录,进行运行:
[[email protected] local]# cd elasticsearch-6.2.4/
[[email protected] elasticsearch-6.2.4]# ./bin/elasticsearch
这时,大家会发现如下错误:
从错误中,可以看出,elasticsearch不允许使用root账户进行启动,我们需要创建新的用户。
[[email protected] elasticsearch-6.2.4]# useradd elk
使用新用户启动,会报用户没有相应权限:
切换root配置权限,然后使用elk账户启动:
[[email protected] elasticsearch-6.2.4]# chown -R elk:elk /usr/local/elasticsearch-6.2.4
如果启动时,报出:
编辑 /etc/security/limits.conf,追加以下内容;
* soft nofile 65536
* hard nofile 65536
编辑 /etc/sysctl.conf,追加以下内容:
vm.max_map_count=262144
重新启动,elasticsearch启动成功,如果想要外网访问,开启远程访问:
[[email protected] elasticsearch-6.2.4]# vi config/elasticsearch.yml
访问9200端口,如开启远程还不能访问,关闭防火墙或开启9200端口:
另外,Elasticsearch后台启动:
[[email protected] elasticsearch-6.2.4]# ./bin/elasticsearch -d
Kibana安装:
开始下载最新安装包(路径:/usr/local/):
wget https://artifacts.elastic.co/downloads/kibana/kibana-6.2.4-linux-x86_64.tar.gz
解压:
[[email protected] local]# tar -zvxf kibana-6.2.4-linux-x86_64.tar.gz
后台启动:
[[email protected] kibana-6.2.4-linux-x86_64]# ./bin/kibana &
如需外网访问,开启远程,如果外网不能访问,关闭防火墙或开启5601端口:
访问5601端口,表示配置成功:
logstash安装:
开始下载最新安装包(路径:/usr/local/):
[[email protected] local]# wget https://artifacts.elastic.co/downloads/logstash/logstash-6.2.4.tar.gz
解压:
[[email protected] local]# tar -zvxf logstash-6.2.4.tar.gz
进入config目录,添加logstash.conf配置文件:
- input {
- tcp {
- host => "192.168.159.129"
- port => 4560
- mode => "server"
- tags => ["tags"]
- ##格式json
- codec => json_lines
- }
- }
- output {
- elasticsearch {
- hosts => "192.168.159.129:9200"
- #指定索引名字
- index => "applog"
- }
- stdout { codec => rubydebug}
- }
特别注意,其中的ip地址(192.168.159.129)换成本机ip地址,不能使用localhost或者127.0.0.1,否则连接不上本机的elasticsearch。
启动logstash:
[[email protected] logstash-6.2.4]# ./bin/logstash -f config/logstash.conf
这是笔者关于elk安装的一些心得,如果有不对的地方,希望大家能够指正,谢谢大家。