、elk解释

ELK分别是Elasticsearch、Logstash、Kibana三个开源框架缩写

Elasticsearch    开源分布式搜索引擎,提供存储、分析、搜索功能。特点:分布式、基于reasful风格、支持海量高并发的准实时搜索场景、稳定、可靠、快速、使用方便等。    接收搜集的海量结构化日志数据,并提供给kibana查询分析

Logstash    开源日志搜集、分析、过滤框架,支持多种数据输入输出方式。    用于收集日志,对日志进行过滤形成结构化数据,并转发到elasticsearch中

Kibana    开源日志报表系统,对elasticsearch以及logstash有良好的web页面支持。    对elasticsearch提供的数据进行分析展示

ELK经典架构

Logstash部署至服务主机,对各个服务的日志进行采集、过滤、推送。

Elasticsearch存储Logstash传送的结构化数据,提供给Kibana。

Kibana提供用户UIweb页面进行,数据展示和分析形成图表等

logs 指各种日志文件以及日志信息:windows,negix,tomcat,webserver等

由于Logstash消耗资源大,而服务器资源相当宝贵,所以引进另一个轻量级日志采集框架Beats,其中包含以下6种

Packetbeat    用于搜集网络流量数据

Heartbeat       用于运行时间监控

Filebeat    用于搜集文件数据

Winlogbeat    用于搜集winodws事件数据

Metricbeat    用于指标

Auditbeat    用于审计数据

高并发场景

由于logstash消耗性能,所以高并发场景容易遇到流量上的瓶颈,及时使用logstash集群也是如此,所以可以添加中间件进行日志缓存处理。由于logstash数据源具有多种方式,所有中间件也可以很多选择,常见的有kafka,redis

logback出现的业务数据可以通过写入redis或者kafka等中间件进行缓存,再通过合理限制流量阀值输送至logstash进行过滤

beats 如果是filebeat其日志若无实时性要求,可以通过控制log文件更新速度限制Beats传输日志流量

、ELK搭建(非集群)

2.1、下载ELK(保持版本一致)

Elasticsearch    官网elasticsearch-6.3..tar

Kibana        官网kibana-6.3.0下载 linux64位

Logstash    官网logstash-6.3..tar

Filebeat    官网filebeat-6.3. linux64位

环境:centos7.5系统

ip地址:192.168.0.91

通过rz命令上传安装包至centos7虚拟机home目录下

解压

cd /home

tar -zxvf elasticsearch-6.3..tar.gz
tar -zxvf kibana-6.3.-linux-x86_64.tar.gz
tar -zxvf filebeat-6.3.-linux-x86_64.tar.gz
tar -zxvf logstash-6.3..tar.gz 2.2、java环境搭建 请参照:https://www.cnblogs.com/effortsing/p/10012211.html 推荐使用jdk1.8jdk环境配置 2.3、安装elasticsearch 修改配置文件 vi /home/elasticsearch-6.3./config/elasticsearch.yml # ---------------------------------- Network -----------------------------------
#
# Set the bind address to a specific IP (IPv4 or IPv6):
#
network.host: 192.168.0.91 ##服务器ip地址,必须写成ip,默认的localhost是无法通过浏览器访问的,localhost意思是只能从本地访问
#
# Set a custom port for HTTP:
#
http.port: ##服务端口
#
# For more information, consult the network module documentation.
# 创建elsearch用户 groupadd elsearch
useradd elsearch -g elsearch -p elasticsearch
chown -R elsearch:elsearch elasticsearch-6.3. 修改系统配置文件限制 sed -i '$a\vm.max_map_count = 655360' /etc/sysctl.conf 修改安全限制配置文件 cat> /etc/security/limits.conf<<EOF # End of file
elsearch hard nofile
elsearch soft nofile
* soft nproc
* hard nproc
EOF 重启linux系统,否则不生效 reboot 启动elasticsearch su elsearch /home/elasticsearch-6.3./bin/elasticsearch #命令窗运行 /home/elasticsearch-6.3./bin/elasticsearch -d #后台线程运行 启动报错问题请参照:https://www.cnblogs.com/effortsing/p/10363107.html 说明: 等几分钟,启动比较慢 用后台来启动后就不用管了,等一会查看到elsearch端口后就可以按ctrl+c 停止了,端口会继续存在 关闭elasticsearch ctrl+c #命令窗关闭 ps -ef | grep elastic #后台线程关闭 kill - ##pid 4442为查处线程的pid 查看elasticsearch端口 [root@bogon ~]# netstat -tnlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0.0.0.0: 0.0.0.0:* LISTEN /sshd
tcp 127.0.0.1: 0.0.0.0:* LISTEN /master
tcp6 192.168.0.91: :::* LISTEN /java
tcp6 192.168.0.91: :::* LISTEN /java
tcp6 ::: :::* LISTEN /sshd
tcp6 ::: :::* LISTEN /master 验证elasticsearch启动 http://192.168.0.91:9200/ {
"name" : "lKlZCZf",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "Cz7ma1ZBQxmLlEqSn0to1A",
"version" : {
"number" : "6.3.0",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "424e937",
"build_date" : "2018-06-11T23:38:03.357887Z",
"build_snapshot" : false,
"lucene_version" : "7.3.1",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
} 出现上面这个报错是正常的,因为还没有安装es的管理插件,es官方提供一个用于管理es的插件,可清晰直观看到es集群的状态,以及对集群的操作管理, 下面开始安装es管理插件 首先安装npm 下载网址:https://nodejs.org/dist/latest-v8.x/ rz node-v8.15.0-linux-x86.tar.xz 解压安装包 tar -xf /root/node-v8.15.0-linux-x86.tar.xz -C /usr/local/ 重命名为node cd /usr/local/ mv node-v8.15.0-linux-x86 node 添加环境变量 cat>> /etc/profile<<EOF
#set for nodejs
export NODE_HOME=/usr/local/node
export PATH=$NODE_HOME/bin:$PATH
EOF
source /etc/profile 必须重启系统 reboot 查看版本 node -v 缺少libstdc++.so.6库报错解决请参照:https://www.cnblogs.com/effortsing/p/10363921.html npm -v 安装es的管理插件 下载 elasticsearch-head mv elasticsearch-head /home/ 下面所有操作需要进入elasticsearch-head文件目录 cd /home/elasticsearch-head/ 安装grunt命令行工具grunt-cli npm install -g grunt-cli 安装grunt及其插件 npm install grunt --save-dev npm install grunt@latest
npm install grunt-cli@latest
npm install grunt-contrib-copy@latest
npm install grunt-contrib-concat@latest
npm install grunt-contrib-uglify@latest
npm install grunt-contrib-clean@latest
npm install grunt-contrib-watch@latest
npm install grunt-contrib-connect@latest
npm install grunt-contrib-jasmine@latest 安装最后这个插件时候会卡住不动,这个时候就已经可以启动elasticsearch-head,不用管它,ctrl+c停止即可 时间比较漫长,要等一会 查看安装版本情况 grunt -version 修改head的连接地址 修改 http://localhost:9200 为 http://192.168.0.91:9200, 这是elasticsearch的地址 vi /home/elasticsearch-head/_site/app.js (function( app, i18n ) { var ui = app.ns("ui");
var services = app.ns("services"); 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.0.91:9200"; 修改服务器的监听地址 添加:hostname: 192.168.0.91, 这是grunt所在的地址 cp /home/elasticsearch-head/Gruntfile.js /home/elasticsearch-head/Gruntfile.js.bak vi /home/elasticsearch-head/Gruntfile.js connect: {
server: {
options: {
hostname: 192.168.0.91,
port: ,
base: '.',
keepalive: true
}
}
} }); 修改elasticseach的配置文件elasticsearch.yml, 修改对应的ip以及跨域的设置,添加: http.cors.enabled: true
http.cors.allow-origin: "*" cat>> /home/elasticsearch-6.3./config/elasticsearch.yml<<EOF
http.cors.enabled: true
http.cors.allow-origin: "*"
EOF 重启es kill - su elsearch
/home/elasticsearch-6.3./bin/elasticsearch -d 启动head cd /home/elasticsearch-head/ grunt server 测试 在浏览器输入 http://192.168.0.91:9100 连接elasticsearch 点击浏览器最上表栏里面的连接可以看到下面出现许多文字,表示连接成功 2.4、安装kibana 修改配置文件 vi /home/kibana-6.3.-linux-x86_64/config/kibana.yml server.port: ##服务端口
server.host: "192.168.0.91" ##服务器ip 本机地址 elasticsearch.url: "http://192.168.0.91:9200" ##elasticsearch服务地址 与elasticsearch对应 启动kibana su elsearch /home/kibana-6.3.-linux-x86_64/bin/kibana #命令窗启动 nohup /home/kibana-6.3.-linux-x86_64/bin/kibana & #后台线程启动 说明: 需要使用和启动elasticsearch同一个用户来启动,否则启动失败 启动有些慢,需要一分钟 查看kibana端口: [root@bogon home]# netstat -tnlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 192.168.0.91: 0.0.0.0:* LISTEN /node
tcp 192.168.0.91: 0.0.0.0:* LISTEN /grunt
tcp 0.0.0.0: 0.0.0.0:* LISTEN /sshd
tcp 127.0.0.1: 0.0.0.0:* LISTEN /master
tcp6 192.168.0.91: :::* LISTEN /java
tcp6 192.168.0.91: :::* LISTEN /java
tcp6 ::: :::* LISTEN /sshd
tcp6 ::: :::* LISTEN /master 查看kibana进程 [elsearch@bogon root]$ ps -ef | grep kibana
elsearch : pts/ :: /home/kibana-6.3.-linux-x86_64/bin/../node/bin/node --no-warnings /home/kibana-6.3.-linux-x86_64/bin/../src/cli
elsearch : pts/ :: grep --color=auto kibana 关闭kibana ctrl+c #命令窗关闭 ps -ef | grep kibana #后台线程关闭 kill - ##pid 为查处线程的pid 验证kibana启动 http://192.168.0.91:5601 出现图形界面表示成功 2.5、安装logstash 新建logback-es.conf配置文件 cat> /home/logstash-6.3./config/logback-es.conf<<EOF
input {
tcp {
port =>
codec => json_lines
}
}
output {
elasticsearch {
hosts => "192.168.0.91:9200"
}
stdout { codec => rubydebug }
}
EOF 说明: 上述文件复制时必须去除多余空格,保持yml文件规范。 上面文件解释: input { ##input 输入源配置
tcp { ##使用tcp输入源 官网有详细文档
port => ##服务器监听端口9061 接受日志 默认ip localhost
codec => json_lines ##使用json解析日志 需要安装json解析插件
}
}
filter { ##数据处理

output { ##output 数据输出配置
elasticsearch { ##使用elasticsearch接收
hosts => "192.168.0.91:9200" ##集群地址 多个用,隔开,这里不能写localhost,否则无法启动
}
stdout { codec => rubydebug} ##输出到命令窗口
} 检查配置文件是否有语法错 /home/logstash-6.3./bin/logstash -f /home/logstash-6.3./config/logback-es.conf --config.test_and_exit 正确执行结果: [root@bogon ~]# /home/logstash-6.3./bin/logstash -f /home/logstash-6.3./config/logback-es.conf --config.test_and_exit
Sending Logstash's logs to /home/logstash-6.3.0/logs which is now configured via log4j2.properties
[--12T01::,][WARN ][logstash.config.source.multilocal] Ignoring the 'pipelines.yml' file because modules or command line options are specified
Configuration OK
[--12T01::,][INFO ][logstash.runner ] Using config.test_and_exit mode. Config Validation Result: OK. Exiting Logstash 安装logstash json插件 /home/logstash-6.3./bin/logstash-plugin install logstash-codec-json_lines [root@bogon ~]# /home/logstash-6.3./bin/logstash-plugin install logstash-codec-json_lines
Validating logstash-codec-json_lines
Installing logstash-codec-json_lines
Installation successful 启动logstash su root /home/logstash-6.3./bin/logstash -f /home/logstash-6.3./config/logback-es.conf #命令窗形式 nohup /home/logstash-6.3./bin/logstash -f /home/logstash-6.3./config/logback-es.conf & #后台启动 说明:启动Logstash需要使用root启动,elsearch用户无法启动,试过多次,都不行 查看logstash端口: [root@bogon ~]# netstat -tnlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 192.168.0.91: 0.0.0.0:* LISTEN /node
tcp 0.0.0.0: 0.0.0.0:* LISTEN /sshd
tcp 127.0.0.1: 0.0.0.0:* LISTEN /master
tcp6 127.0.0.1: :::* LISTEN /java
tcp6 ::: :::* LISTEN /java
tcp6 192.168.0.91: :::* LISTEN /java
tcp6 192.168.0.91: :::* LISTEN /java
tcp6 ::: :::* LISTEN /sshd
tcp6 ::: :::* LISTEN /master 查看logstash进程 [root@bogon ~]# ps -ef | grep logstash
root : pts/ :: /usr/bin/java -Xms1g -Xmx1g -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction= -XX:+UseCMSInitiatingOccupancyOnly -Djava.awt.headless=true -Dfile.encoding=UTF- -Djruby.compile.invokedynamic=true -Djruby.jit.threshold= -XX:+HeapDumpOnOutOfMemoryError -Djava.security.egd=file:/dev/urandom -cp /home/logstash-6.3./logstash-core/lib/jars/commons-compiler-3.0..jar:/home/logstash-6.3./logstash-core/lib/jars/google-java-format-1.1.jar:/home/logstash-6.3./logstash-core/lib/jars/guava-19.0.jar:/home/logstash-6.3./logstash-core/lib/jars/jackson-annotations-2.9..jar:/home/logstash-6.3./logstash-core/lib/jars/jackson-core-2.9..jar:/home/logstash-6.3./logstash-core/lib/jars/jackson-databind-2.9..jar:/home/logstash-6.3./logstash-core/lib/jars/jackson-dataformat-cbor-2.9..jar:/home/logstash-6.3./logstash-core/lib/jars/janino-3.0..jar:/home/logstash-6.3./logstash-core/lib/jars/jruby-complete-9.1.13.0.jar:/home/logstash-6.3./logstash-core/lib/jars/log4j-api-2.9..jar:/home/logstash-6.3./logstash-core/lib/jars/log4j-core-2.9..jar:/home/logstash-6.3./logstash-core/lib/jars/log4j-slf4j-impl-2.9..jar:/home/logstash-6.3./logstash-core/lib/jars/logstash-core.jar:/home/logstash-6.3./logstash-core/lib/jars/org.eclipse.core.commands-3.6..jar:/home/logstash-6.3./logstash-core/lib/jars/org.eclipse.core.contenttype-3.4..jar:/home/logstash-6.3./logstash-core/lib/jars/org.eclipse.core.expressions-3.4..jar:/home/logstash-6.3./logstash-core/lib/jars/org.eclipse.core.filesystem-1.3..jar:/home/logstash-6.3./logstash-core/lib/jars/org.eclipse.core.jobs-3.5..jar:/home/logstash-6.3./logstash-core/lib/jars/org.eclipse.core.resources-3.7..jar:/home/logstash-6.3./logstash-core/lib/jars/org.eclipse.core.runtime-3.7..jar:/home/logstash-6.3./logstash-core/lib/jars/org.eclipse.equinox.app-1.3..jar:/home/logstash-6.3./logstash-core/lib/jars/org.eclipse.equinox.common-3.6..jar:/home/logstash-6.3./logstash-core/lib/jars/org.eclipse.equinox.preferences-3.4..jar:/home/logstash-6.3./logstash-core/lib/jars/org.eclipse.equinox.registry-3.5..jar:/home/logstash-6.3./logstash-core/lib/jars/org.eclipse.jdt.core-3.10..jar:/home/logstash-6.3./logstash-core/lib/jars/org.eclipse.osgi-3.7..jar:/home/logstash-6.3./logstash-core/lib/jars/org.eclipse.text-3.5..jar:/home/logstash-6.3./logstash-core/lib/jars/slf4j-api-1.7..jar org.logstash.Logstash -f /home/logstash-6.3./config/logback-es.conf
root : pts/ :: grep logstash 关闭logstash ctrl+c #命令窗关闭 ps -ef | grep logstash #后台线程关闭
kill - ##pid 为查处线程的pid 2.6、elk收集tomcat日志请参照 https://www.cnblogs.com/kakarott/p/8118906.html 参照文档: https://blog.sctux.com/2015/11/14/elkkafka-e4-bc-81-e4-b8-9a-e6-97-a5-e5-bf-97-e6-94-b6-e9-9b-86-e5-b9-b3-e5-8f-b0-e4-b8-80/ https://blog.sctux.com/2015/11/14/elkkafka-e4-bc-81-e4-b8-9a-e6-97-a5-e5-bf-97-e6-94-b6-e9-9b-86-e5-b9-b3-e5-8f-b0-e4-ba-8c/ https://blog.csdn.net/qq_22211217/article/details/80764568 zookeeper、kafka 参照: http://blog.51cto.com/qiangsh/2112675 head插件安装参照: https://blog.csdn.net/u014516601/article/details/82687895 https://www.cnblogs.com/--1024/p/9306661.html https://www.cnblogs.com/shanhm1991/p/9903866.html https://blog.csdn.net/weixin_40271036/article/details/79597083

elk、kafka、zookeeper 安装的更多相关文章

  1. elk+kafka+zookeeper+filebeat安装

    ElasticSearch6.0 ElasticSearch6.0安装 #依赖jdk8 rpm -ivh elasticsearch-.rpm vim /etc/elasticsearch/elast ...

  2. canal 环境搭建 kafka Zookeeper安装(二)

    第一步 创建Zookeeper 下载完成后 修改 Zookeeper中的 zoo.cfg 修改 dataDir .dataLogDir 集群模式 server.1=ServerIP:2888:3888 ...

  3. ELK+Filebeat+Kafka+ZooKeeper 构建海量日志分析平台(elk5.2+filebeat2.11)

    ELK+Filebeat+Kafka+ZooKeeper 构建海量日志分析平台 参考:http://www.tuicool.com/articles/R77fieA 我在做ELK日志平台开始之初选择为 ...

  4. ELK+Filebeat+Kafka+ZooKeeper 构建海量日志分析平台

    日志分析平台,架构图如下: 架构解读 : (整个架构从左到右,总共分为5层) 第一层.数据采集层 最左边的是业务服务器集群,上面安装了filebeat做日志采集,同时把采集的日志分别发送给两个logs ...

  5. ELK+KAFKA安装部署指南

    一.ELK 背景 通常,日志被分散的储存不同的设备上.如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志.这样是不是感觉很繁琐和效率低下.当务之急我们使用集中化的日志管理,例如: ...

  6. linux 安装 kafka&zookeeper

    安装kafka 1,下载kafka. #cd /usr/local #wget wget https://mirrors.tuna.tsinghua.edu.cn/apache/kafka/2.1.1 ...

  7. centos php Zookeeper kafka扩展安装

    如题,系统架构升级引入消息机制,php 安装还是挺麻烦的,网上各种文章有的东拼西凑这里记录下来做个备忘,有需要的同学可以自行参考安装亲测可行 1 zookeeper扩展安装 1.安装zookeeper ...

  8. zookeeper和PHP zookeeper和kafka 扩展安装

    http://blog.csdn.net/fenglailea/article/details/52458737#t3   目录(?)[-] 安装zookeeper 1直接安装zookeeper无须编 ...

  9. Kafka单机安装Version1.0.1(自带Zookeeper)

    1.说明 Kafka单机安装,基于版本1.0.1, 使用kafka_2.12-1.0.1.tgz安装包, 其中2.12是编译工具Scala的版本. 而且不需要另外安装Zookeeper服务, 使用Ka ...

  10. ELK+Kafka集群日志分析系统

    ELK+Kafka集群分析系统部署 因为是自己本地写好的word文档复制进来的.格式有些出入还望体谅.如有错误请回复.谢谢! 一. 系统介绍 2 二. 版本说明 3 三. 服务部署 3 1) JDK部 ...

随机推荐

  1. linux syslog支持 ubuntu

    linux  syslog支持 linux  syslog支持 linux  syslog支持 ??????? https://wenku.baidu.com/view/8cc6b50a0202074 ...

  2. Redis 与 MQ 的区别

    Redis是一个高性能的key-value数据库,它的出现很大程度补偿了memcached这类key-value存储的不足.虽然它是一个数据库系统,但本身支持MQ功能,完全可以当做一个轻量级的队列服务 ...

  3. 决策树--CART树详解

    1.CART简介 CART是一棵二叉树,每一次分裂会产生两个子节点.CART树分为分类树和回归树. 分类树主要针对目标标量为分类变量,比如预测一个动物是否是哺乳动物. 回归树针对目标变量为连续值的情况 ...

  4. springboot整合jetty(转)

    jdk1.8 springboot替换容器在网上搜索只需要两步如果不是可能就会报错Unable to start EmbeddedWebApplicationContext due to missin ...

  5. springboot整合mongodb问题1-Decimal128和BigDecimal的转换之mongodb转换器使用(转)

    转自:https://blog.csdn.net/weixin_41792559/article/details/79575524 1.Decimal128的了解由于mongodb4.3以上新加了De ...

  6. 【leetcode】1215.Stepping Numbers

    题目如下: A Stepping Number is an integer such that all of its adjacent digits have an absolute differen ...

  7. Qbxt 模拟赛&&day-8

    /* 今天的题目还是比较不错的. 今天考的很烂还是依旧的弱. 快考试了加油吧. Bless all. */ 注:所有题目的时间限制均为 1s,内存限制均为 256MB. 1.第K小数 (number. ...

  8. CodeForces 707D Persistent Bookcase ——(巧妙的dfs)

    一个n*m的矩阵,有四种操作: 1.(i,j)处变1: 2.(i,j)处变0: 3.第i行的所有位置1,0反转: 4.回到第k次操作以后的状态: 问每次操作以后整个矩阵里面有多少个1. 其实不好处理的 ...

  9. python如何实现一个类似重载的功能

    def post(): print("this is post") print("想不到吧") class Http(): @classmethod def g ...

  10. LeetCode 80. 删除排序数组中的重复项 II(Remove Duplicates from Sorted Array II)

    题目描述 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成 ...