一、概念
1、核心组成
ELK由Elasticsearch、Logstash和Kibana三部分组件组成;
Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
Logstash是一个完全开源的工具,它可以对你的日志进行收集、分析,并将其存储供以后使用
kibana 是一个开源和免费的工具,它可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志
2.下载
官网下载地址:https://www.elastic.co/downloads
从中获取最新版软件包软件包列表:
https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.4.1.tar.gz
https://artifacts.elastic.co/downloads/kibana/kibana-5.4.1-linux-x86_64.tar.gz
https://artifacts.elastic.co/downloads/logstash/logstash-5.4.1.tar.gz
https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-5.4.1-linux-x86_64.tar.gz
3.注意事项
a、所有节点操作系统版本最好保持一致,centos6.5测试最新版本内核不支持,尽可能使用目前centos7.3稳定版本。Elk服务器配置需要,如果条件运行使用为2C4G,
b、本文档为单机版,即将Elasticsearch、Logstash和Kibana安装在一台服务器上,生产环境建议将其在docker中分开安装,以便快速迁移至物理服务器。
c、关闭selinux,关闭firewalld或添加端口例外.修改主机名称。
二、安装部署
1.安装jdk
代码语言:javascript复制yum install -y java-1.8.0-openjdk
代码语言:javascript复制hostnamectl set-hostname elk-1 #修改主机名
代码语言:javascript复制systemctl stop firewalld #关闭firewalld
代码语言:javascript复制setenforce 0
2.下载软件包
3.安装elasticsearch
代码语言:javascript复制cd /usr/local/tools
代码语言:javascript复制tar zxf elasticsearch-5.4.1.tar.gz
代码语言:javascript复制mv elasticsearch-5.4.1 /usr/local/elasticsearch
代码语言:javascript复制cd /usr/local/elasticsearch/config/
编辑elasticsearch.yml
代码语言:javascript复制mkdir -p /usr/local/elasticsearch/data /usr/local/elasticsearch/logs
代码语言:javascript复制useradd elasticsearch
代码语言:javascript复制chown -R elasticsearch:elasticsearch /usr/local/elasticsearch
代码语言:javascript复制echo "vm.max_map_count = 655360" >>/etc/sysctl.conf && sysctl -p
elasticsearch不可用root用户启动,新建elasticsearch运行用户
编辑/etc/security/limits.conf文件,新增以下内容
代码语言:javascript复制* soft nofile 65536
代码语言:javascript复制* hard nofile 65536
代码语言:javascript复制* soft nproc 65536
代码语言:javascript复制* hard nproc 65536
启动elasticsearch
代码语言:javascript复制su - elasticsearch
代码语言:javascript复制cd /usr/local/elasticsearch
代码语言:javascript复制bin/elasticsearch &
查看端口监听信息
curl测试
4.安装logstash
代码语言:javascript复制cd /usr/local/tools
代码语言:javascript复制tar -zxvf logstash-5.4.1.tar.gz
代码语言:javascript复制mv logstash-5.4.1 /usr/local/logstash
代码语言:javascript复制cd /usr/local/logstash/config
代码语言:javascript复制vim 01-syslog.conf
安装filebeat
代码语言:javascript复制cd /usr/local/tools/
代码语言:javascript复制tar -zxvf filebeat-5.4.1-linux-x86_64.tar.gz
代码语言:javascript复制mv filebeat-5.4.1-linux-x86_64 /usr/local/filebeat
代码语言:javascript复制vim /usr/local/filebeat/filebeat.yml
启动filebeat
代码语言:javascript复制/usr/local/filebeat
代码语言:javascript复制./filebeat &
启动logstash(加载配置文件启动)
代码语言:javascript复制cd /usr/local/logstash/
代码语言:javascript复制bin/logstash -f config/01-syslog.conf &
查看监听端口
稍等以后屏幕会输出返回的结果
可以用名称测试:curl http://172.17.10.198:9200/_search?pretty
我们想以web形式展现数据,就需要安装kibana
5.安装kibana
代码语言:javascript复制cd /usr/local/tools/
代码语言:javascript复制tar -zxf kibana-5.4.1-linux-x86_64.tar.gz
代码语言:javascript复制mv kibana-5.4.1-linux-x86_64 /usr/local/kibana
代码语言:javascript复制cd /usr/local/kibana/config
代码语言:javascript复制vim /usr/local/kibana/config/kibana.yml
启动
代码语言:javascript复制/bin/kibana &
查看端口监听情况
三、测试
通过web界面访问,创建index patterns
查看创建对应的日志
本文为个人测试ELK最新版本最基础的搭建,可以将其在docker中各应用拆分开部署,后期学习elk的高级用法。