ELK+Kafka日志集成环境搭建

news/2024/7/7 5:53:54 标签: ELK, Kibana, Elasticsearch, Kafka

ELK是什么

image.png

 

  • ElasticSearch简称ES,它是一个实时的分布式搜索和分析引擎,它可以用于全文搜索,结构化搜索以及分析。它是一个建立在全文搜索引擎 Apache Lucene 基础上的搜索引擎,使用 Java 语言编写。
  • Logstash是一个具有实时传输能力的数据收集引擎,用来进行数据收集(如:读取文本文件)、解析,并将数据发送给ES。
  • KibanaElasticsearch 提供了分析和可视化的 Web 平台。它可以在 Elasticsearch 的索引中查找,交互数据,并生成各种维度表格、图形。

ELK的用途


日志分析并不仅仅包括系统产生的错误日志,异常,也包括业务逻辑,或者任何文本类的分析。而基于日志的分析,能够在其上产生非常多的解决方案,譬如:

  1. 问题排查。日志分析技术是问题排查的基石。基于日志做问题排查,还有一个很帅的技术,叫全链路追踪,比如SkyWalking、Cat、Zipkin,也算是日志分析技术里的一种。
  2. 监控和预警。 日志,监控,预警是相辅相成的。
  3. 关联事件。多个数据源产生的日志进行联动分析,通过某种分析算法,就能够解决生活中各个问题。
  4. 数据分析。可以根据日志进行某些数据的分析。

架构图

image.png

搭建Elasticsearch

https://blog.csdn.net/qq_37598011/article/details/103137571

https://blog.csdn.net/qq_37598011/article/details/103140376

我这里用的版本还是6.7

安装NPM

wget https://npm.taobao.org/mirrors/node/v4.4.7/node-v4.4.7-linux-x64.tar.gz
tar -zxvf node-v4.4.7-linux-x64.tar.gz
rm -rf node-v4.4.7-linux-x64.tar.gz
ln -s /usr/local/node/node-v4.4.7-linux-x64/bin/npm /usr/local/bin/npm
ln -s /usr/local/node/node-v4.4.7-linux-x64/bin/node /usr/local/bin/node
npm -v

安装elasticsearch-head

git clone git://github.com/mobz/elasticsearch-head.git
cd elasticsearch-head
npm install

如果要其他机器访问,则需要修改Gruntfile.js,在options对象属性下增加一个hostname属性,值为"*"

vim Gruntfile.js
hostname: '*'

 


启动

npm run start

安装Logstash

wget https://artifacts.elastic.co/downloads/logstash/logstash-6.7.0.tar.gz
tar -zxvf logstash-6.7.0.tar.gz 
cd logstash-6.7.0/config/

创建logstash-es.conf:

vim logstash-es.conf

配置如下:

input {
  stdin { }
  beats {
    port => 9900
    ssl => false
  }
}
output {
    elasticsearch {
        action => "index"
        hosts => "127.0.0.1:9200"
        index  => "logstash-%{+YYYY-MM}"
    }
    stdout { codec=> rubydebug }
}

启动

../bin/logstash -f ./logstash-es.conf 

安装kibana

wget https://artifacts.elastic.co/downloads/kibana/kibana-6.7.0-linux-x86_64.tar.gz
cd kibana-6.7.0-linux-x86_64/config/

修改配置文件

vim kibana.yml 
server.port: 5601
server.host: "192.168.78.133"
elasticsearch.hosts: ["http://192.168.78.133:9200"]
xpack.reporting.encryptionKey: "a_random_string"
xpack.security.encryptionKey: "something_at_least_32_characters"
i18n.locale: "zh-CN"

启动

../bin/kibana

    OK~

    设置Index Pattern,因为我们在logstash-es.conf中设置为logstash-%{+YYYY-MM},所以设置为logstash-*就可以了。

文档:https://www.elastic.co/guide/index.html

创建Index:https://www.elastic.co/guide/en/kibana/6.7/tutorial-load-dataset.html

批量导入数据到Kibana:https://www.cnblogs.com/hai-ping/p/6068946.html

Kafka集成

Kafka安装:https://blog.csdn.net/qq_37598011/article/details/88980317

在logstash的config目录下添加logstash_kafka.conf

vim logstash_kafka.conf
input {
  kafka{
    bootstrap_servers=>"192.168.78.133:9092"
    topics=>"test"
    codec=>plain
  }
  #stdin { }
}
output {
    elasticsearch {
        #action => "index"
        hosts => "127.0.0.1:9200"
        index  => "test-%{+YYYY-MM}"
    }
    #stdout { codec=> rubydebug }
}

重启logstash

../bin/logstash -f  ./logstash_kafka.conf 

Kibana里创建test索引

测试通过kafka添加数据

./kafka-console-producer.sh --broker-list localhost:9092 --topic test

集群方式:https://cloud.tencent.com/developer/article/1376678


http://www.niftyadmin.cn/n/1456941.html

相关文章

WF:关于流程设计器的一点补充

最近不少朋友对我以前发的一些例子中的流程设计器有一些疑问,以后我会专门写一个流程设计器的例子,这里先写几个开发流程设计器时要用到的小知识点 1.为自定义的Activity添加图标 为自定义Activity设置成员属性 [System.Drawing.ToolboxBitmap(typeof(wxdActivity),…

SpringBoot+Logback+ELK+Kafka+Sleuth链路追踪做日志收集

ELK搭建 https://blog.csdn.net/qq_37598011/article/details/103260806 配置修改 先到logstash的config目录下 cd /application/logstash/config/ 新建logstash-test.conf配置 vim logstash-test.conf input {kafka{id > "my_plugin_id"bootstrap_servers&…

CRT显示器和液晶显示器

CRT显示器和液晶显示器 一直以来,更完美的视觉享受都是我们的追求,传统的CRT显示器就经历了从黑白到彩色,从球面到柱面再到平面直角,直至纯平的发展。在这段加速度前进的历程中,显示器的视觉效果在不断得到提高&#…

Docker基础/搭建redis主从

安装 https://docs.docker.com/install/linux/docker-ee/centos/#repo-install-and-upgrade sudo yum -y install docker-ee docker-ee-cli containerd.io sudo systemctl start docker 测试 sudo docker run hello-world docker ps -a OK!安装成功…… 基础 …

提升访问github的访问速度

首先进入这个网站: http://tool.chinaz.com/dns 查询以下几个地址: github.com assets-cdn.github.com github.global.ssl.fastly.net 如: 找到TTL最小的那个值,记下他的IP。 C:\Windows\System32\drivers\etc\hosts 最后添加到hosts文…

Docker核心原理(Docker背后的内核知识)

Docker容器本质上是宿主机上的进程。Docker通过namespace实现了资源隔离,通过cgroups实现了资源限制,通过写时复制机制(copy-on-write)实现了高效的文件操作。 namespace资源隔离 完成一个基本容器需要六项隔离,Linux…

一步一步SharePoint 2007之三十四:实现通用Event Handler(2)——尝试Event Handler

摘要  本篇文章将介绍实现通用Event Handler的最后一部分——尝试Event Handler。正文  下面将记录每一步的操作过程。  1、首先打开我的网站,依次点击Document Center、Announcements,进入Announcements列表页面。  2、在Announcements列表界面…

监控神器-Prometheus(原理和实践)

特点 Prometheus 具有以下特点: 强大的多维度数据模型:时间序列数据通过 metric 名和键值对来区分。所有的 metrics 都可以设置任意的多维标签。数据模型更随意,不需要刻意设置为以点分隔的字符串。可以对数据模型进行聚合,切割…