热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ELK安装部署

 本文主要介绍ELK的部署架构(优化)、安装部署过程、以及安装部署过程中遇到的问题和解决方法,希望通过本文能给初步接触ELK的朋友一些指引。1. ELK介绍ELK由ElasticS

 本文主要介绍ELK的部署架构(优化)、安装部署过程、以及安装部署过程中遇到的问题和解决方法,希望通过本文能给初步接触ELK的朋友一些指引。

1. ELK介绍

ELK由ElasticSearch、Logstash和Kiabana三个开源工具组成。

ElasticSearch

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

Logstash

对日志进行收集、过滤,并将其存储供以后使用

Kiabana

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

2. ELK架构

 结合项目实际我们采用了filebeat采集日志,采集日志后传输到redis服务器中,通过Logstash分析过滤日志后存储到ElasticSearch,再通过kibana展示。

 ELK安装部署

 

3. 部署结构图如下:

    

ELK安装部署

 

4. 安装环境

CentOS release 6.9 (Final)

JDK 1.8.0_144

5. 安装包

1

filebeat-6.0.1-linux-x86_64.tar.gz

2

logstash-6.0.1.zip

3

elasticsearch-6.0.1.zip

4

elasticsearch-head-master.zip

5

kibana-6.0.1-linux-x86_64.tar.gz

6

node-v8.11.2-linux-x64.tar.xz

6. 相关安装及配置

6.1.  filebeat安装

1)  进入安装包所在目录,解压安装文件。

$ cd /usr/local/elk/

$ tar -zxvf filebeat-6.0.1-linux-x86_64.tar.gz

2)   进入filebeat目录,修改filebeat.yml文件

$ cd filebeat-6.0.1-linux-x86_64

$ vi filebeat.yml

- type: log

  # Change to true to enable this prospector configuration.

  enabled: true

  # Paths that should be crawled and fetched. Glob based paths.

  #指定要监控的日志,可以指定具体得文件或者目录

  # elk-service1代表以elk-service1开头的日志文件

  paths:

    - /usr/local/elk/logs/ elk-service1/*.log

    #- c:\programdata\elasticsearch\logs\*

  tags: ["elk-service1"]

  document_type: " elk-service1"

 

#================================ redis output ======================

#收集日志输出到redis集群

  • output.redis:

  enabled: true

  hosts: ["192.168.19.65:6500","192.168.19.65:6501","192.168.19.75:7500","192.168.19.75:7501","192.168.19.76:7600","192.168.19.76:7601"]

  key: "elk_log_file"

  db: 0

  timeout: 5

#----------------------------- Logstash output --------------------------------

 

 3)   启动filebeat

$ ohup ./filebeat -c ./filebeat.yml &

6.2. logstash安装

1)  进入安装包所在目录,解压安装文件

$ cd /usr/local/elk/

$ unzip logstash-6.0.1.zip

2)   在logstash-6.0.1的config下文件logstash_to_es.conf内容如下

$ cd /usr/local/elk/logstash-6.0.1/config

$ vi logstash_to_es.conf

 

3) 启动logstash

$ nohup ./bin/logstash -f config/logstash_to_es.conf >>logstash.out &

6.3.ElasticSearch安装

1) 进入安装包所在目录,解压安装文件

$ cd /usr/local/elk/

$ unzip elasticsearch-6.0.1.zip

2) 进入elasticsearch的config文件夹修改elasticsearch.yml文件

$ cd /usr/local/elk/elasticsearch-6.0.1/config

$ vi elasticsearch.yml

3)  相关配置如下:

# ---------------------------------- Network -----------------------------------

#

# Set the bind address to a specific IP (IPv4 or IPv6):

#

network.host: 192.168.19.138

#

# Set a custom port for HTTP:

#

http.port: 8200

#

# For more information, consult the network module documentation.

#

# --------------------------------- Discovery ----------------------------------

bootstrap.memory_lock: false

bootstrap.system_call_filter: false

        

 

4) 启动elasticsearch

$ nohup ./bin/elasticsearch >>elasticsearch.out &

5) elasticsearch安装过程中错误解决

 错误:

unable to install syscall filter:

java.lang.UnsupportedOperationException: seccomp unavailable: CONFIG_SECCOMP not compiled into kernel, CONFIG_SECCOMP and CONFIG_SECCOMP_FILTER are needed at org.elasticsearch.bootstrap.SystemCallFilter.linuxImpl(SystemCallFilter.java:341) ~[elasticsearch-6.0.1.jar:6.0.1]

解决:

在elasticsearch.yml新增如下配置

#Centos6不支持SecComp所以要关闭

bootstrap.memory_lock: false

bootstrap.system_call_filter: false

错误:

ERROR: [1] bootstrap checks failed

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

解决:

切换到root用户修改配置sysctl.conf

$ sudo vi /etc/sysctl.conf

添加下面配置:

vm.max_map_count=655360

并执行命令:

$ sudo sysctl -p

6.4. elasticsearch-head安装

安装elasticsearch-head前需先安装nodejs,主要安装步骤如下:

1)  进入nodejs安装包所在目录,解压安装文件

$ cd /usr/local/elk/

$ tar xf node-v8.3.0-linux-x64.tar.xz

2)  安装nodejs所需相关插件

$ sudo yum -y install gcc make gcc-c++ openssl-devel wget

3)  设置node和npm为全局变量

$ sudo ln -s /usr/local/elk/node-v8.11.2-linux-x64/bin/node /usr/local/bin/node

$ sudo ln -s /usr/local/elk/node-v8.11.2-linux-x64//bin/npm /usr/local/bin/npm

4)  修改.bash_profile文件,新增如下配置

$ vi ~/.bash_profile

# .bash_profile

# Get the aliases and functions

if [ -f ~/.bashrc ]; then

        . ~/.bashrc

fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin:/usr/local/elk/node-v8.11.2-linux-x64/bin

export PATH

5)  执行如下命令使.bash_profile修改生效

$ source  ~/.bash_profile

6)  测试nodejs是否安装成功

$ node -v

$ npm -v

7)  安装grunt

由于elasticsearch-head 插件的执行文件是由grunt 命令来执行的,所以这个命令必须安装。运行

  • 安装grunt所需插件

$ npm install -g grunt-cli

$ npm install grunt-contrib-clean

$npm install grunt-contrib-concat

$ npm install grunt-contrib-watch

$ npm install grunt-contrib-connect

$ npm install grunt-contrib-copy

$ npm install grunt-contrib-jasmine

  • 安装grunt

$ npm install grunt --save-dev

$ npm install

查看grunt是否安装成功

$ grunt -version

8) 进入elasticsearch-head安装包所在目录,解压安装文件

$ cd /usr/local/elk/

$ unzip elasticsearch-head-master.zip

9)  进入elasticsearch-head-master目录,修改Gruntfile.js文件

$ cd elasticsearch-head-master

$ vim Gruntfile.js

connect: {

       server: {

                 options: {

                          port: 8100,

                          hostname: '*',

                          base: '.',

                          keepalive: true

                 }

       }

}

 

10) 修改_site/app.js 文件,修改head的连接地址

$ cd elasticsearch-head-master

$ vim _site/app.js

app.App = ui.AbstractWidget.extend({

       defaults: {

                 base_uri: null

       },

       init: function(parent) {

                 this._super();

                 this.prefs = services.Preferences.instance();

                 this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") ||

        "http://192.168.19.138:8200";

                 if( this.base_uri.charAt( this.base_uri.length - 1 ) !== "/" ) {

                          // XHR request fails if the URL is not ending with a "/"

                          this.base_uri += "/";

                 }

    .....

       }

})

 

11)  启动elasticsearch-head插件:

$ grunt server &

 

6.5. kibana安装

1)   进入nodejs安装包所在目录,解压安装文件

$ cd /usr/local/elk/

$ tar -zxvf kibana-6.0.1-linux-x86_64.tar.gz

2)   进入kibana的config文件夹修改kibana.yml文件

$ cd /usr/local/elk/kibana-6.0.1-linux-x86_64/config

$ vi kibana.yml

# Kibana is served by a back end server. This setting specifies the port to use.

server.port: 8601

server.host: "192.168.19.138"

# to Kibana. This setting cannot end in a slash.

#server.basePath: ""

server.name: "your-hostname"

elasticsearch.url: "http://192.168.19.138:8200"

 

3) 启动kibana

$ nohup ./bin/kibana >>kibana.out &

 


 


推荐阅读
  • Spring Cloud因其强大的功能和灵活性,被誉为开发分布式系统的‘一站式’解决方案。它不仅简化了分布式系统中的常见模式实现,还被广泛应用于企业级生产环境中。本书内容详实,覆盖了从微服务基础到Spring Cloud的高级应用,适合各层次的开发者。 ... [详细]
  • docker镜像重启_docker怎么启动镜像dock ... [详细]
  • 构建Filebeat-Kafka-Logstash-ElasticSearch-Kibana日志收集体系
    本文介绍了如何使用Filebeat、Kafka、Logstash、ElasticSearch和Kibana构建一个高效、可扩展的日志收集与分析系统。各组件分别承担不同的职责,确保日志数据能够被有效收集、处理、存储及可视化。 ... [详细]
  • 本文提供了详细的 Filebeat 部署指南,涵盖了解压安装包、配置文件编辑以及启动服务等关键步骤。具体操作包括使用 `tar -zxvf filebeat-6.1.1-linux-x86_64.tar.gz` 解压安装包,并通过 `vi /home/elk/filebeat-6.4.2-linux/filebeat.yml` 编辑配置文件。此外,文章还介绍了最佳实践,帮助用户确保 Filebeat 的高效运行和数据传输的可靠性。 ... [详细]
  • Centos7搭建ELK(Elasticsearch、Logstash、Kibana)教程及注意事项
    本文介绍了在Centos7上搭建ELK(Elasticsearch、Logstash、Kibana)的详细步骤,包括下载安装包、安装Elasticsearch、创建用户、修改配置文件等。同时提供了使用华为镜像站下载安装包的方法,并强调了保证版本一致的重要性。 ... [详细]
  • 简短的问题是:是否可以从远程服务器中提取日志(在日志文件中)并将其提取到 ... [详细]
  •                               前言日志,一直以来都是开发人员和运维人员最关心的问题。开发人员可通过日志记录来协助问题定位,运维人员可通过日志发现系统隐 ... [详细]
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
  • MySQL缓存机制深度解析
    本文详细探讨了MySQL的缓存机制,包括主从复制、读写分离以及缓存同步策略等内容。通过理解这些概念和技术,读者可以更好地优化数据库性能。 ... [详细]
  • 本文介绍如何在现有网络中部署基于Linux系统的透明防火墙(网桥模式),以实现灵活的时间段控制、流量限制等功能。通过详细的步骤和配置说明,确保内部网络的安全性和稳定性。 ... [详细]
  • 通过Web界面管理Linux日志的解决方案
    本指南介绍了一种利用rsyslog、MariaDB和LogAnalyzer搭建集中式日志管理平台的方法,使用户可以通过Web界面查看和分析Linux系统的日志记录。此方案不仅适用于服务器环境,还提供了详细的步骤来确保系统的稳定性和安全性。 ... [详细]
  • 深入解析Redis内存对象模型
    本文详细介绍了Redis内存对象模型的关键知识点,包括内存统计、内存分配、数据存储细节及优化策略。通过实际案例和专业分析,帮助读者全面理解Redis内存管理机制。 ... [详细]
  • 58同城的Elasticsearch应用与平台构建实践
    本文由58同城高级架构师于伯伟分享,由陈树昌编辑整理,内容源自DataFunTalk。文章探讨了Elasticsearch作为分布式搜索和分析引擎的应用,特别是在58同城的实施案例,包括集群优化、典型应用实例及自动化平台建设等方面。 ... [详细]
  • ELK stack 学习记录
    ELK日志分析平台学习记录首先ELK主要指elasticsearch、logstash和kibana,三个开源软件组合而成的一套日志平台解决方案。可以将平时收集到的日志,通过前台展 ... [详细]
  • ELK+filebeat安装部署监控springboot日志
    ELK服务器端部署1.安装dockercompose,略2.配置docker-compose.ymlcdrootelkvidocker-compose.ymlversion:&am ... [详细]
author-avatar
手机用户2502937333
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有