logstash

从ELK到EFK

冷暖自知 提交于 2020-03-05 12:49:02
背景 作为中国最大的在线教育站点,目前沪江日志服务的用户包含沪江网校,交易,金融,CCtalk(直播平台) 等多个部门的多个产品的日志搜索分析业务,每日产生的各类日志有好十几种,每天处理约10亿条(1TB)日志,热数据保留最近7天数据,冷数据永久保存。 为什么做日志系统 首先,什么是日志? 日志就是程序产生的,遵循一定格式(通常包含时间戳)的文本数据 通常日志由服务器生成,输出到不同的文件中,一般会有系统日志、 应用日志、安全日志。这些日志分散地存储在不同的机器上。 通常当系统发生故障时,工程师需要登录到各个服务器上,使用 grep / sed / awk 等 Linux 脚本工具去日志里查找故障原因。在没有日志系统的情况下,首先需要定位处理请求的服务器,如果这台服务器部署了多个实例,则需要去每个应用实例的日志目录下去找日志文件。每个应用实例还会设置日志滚动策略(如:每天生成一个文件),还有日志压缩归档策略等。 这样一系列流程下来,对于我们排查故障以及及时找到故障原因,造成了比较大的麻烦。因此,如果我们能把这些日志集中管理,并提供集中检索功能,不仅可以提高诊断的效率,同时对系统情况有个全面的理解,避免事后救火的被动。 我认为,日志数据在以下几方面具有非常重要的作用: 数据查找:通过检索日志信息,定位相应的 bug ,找出解决方案 服务诊断:通过对日志信息进行统计、分析

Windows环境利用Elasticsearch+Kibana+Logstash搭建搜索引擎并实现实时同步MySQL数据,超详细步骤

前提是你 提交于 2020-03-05 11:56:26
背景:博主在做的一个项目是wamp环境下的电商平台,其搜索方式为sql查询,效率低下,准确率也非常感人,所以就尝试着在Windows环境下搭建一套搜索引擎,经过多方查阅,发现Elasticsearch(简称ES)是一个比较好的搜索引擎,也支持JDBC与MYSQL对接,并可以利用RESTful API CURL方式提供搜索服务,独立性强,扩展性好,于是就决定用它来做开发了。 Step 1:Windows下的JAVA环境配置 首先:下载JDK。 然后,按照自己的系统环境安装JDK,网上很多教程,这里就略过了。顺便说一句Elasticsearch至少需要java8,官方建议高于1.8.0_131。这里也不建议安装java10,不然你有可能会遇到这样的bug。 Unrecognized VM option 'UseParNewGC' Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit. 博主装的是jdk-8u181-windows-x64.exe。 安装的时候还有两个坑需要数一下,第一,不要安装JRE,不然它会覆盖掉tools.jar。第二,jdk不要一路点下去,要提前建立个文件夹,要求路径里不能有中文,不能有空格

ELK 7.6分析 Nginx 日志 并启用x-pack权限认证

寵の児 提交于 2020-03-04 19:01:01
安装之前先附上Kibana配置效果图 Nginx 服务器日志的log_format格式如下: log_format main_cookie '$remote_addr\t$host\t$time_local\t$status\t$request_method\t$uri\t$query_string\t$body_bytes_sent\t$http_referer\t$http_user_ag ent\t$bytes_sent\t$request_time\t$upstream_response_time\t$aoji_uuid\t$aoji_session_uuid'; 软件包如下: 1、elasticsearch 7.6 安装及配置 elasticsearch-7.6.0-linux-x86_64.tar.gz 解压到 /data/ 目录 tar xf elasticsearch-7.6.0-linux-x86_64.tar.gz && mv elasticsearch-7.6.0 /data/ 配置文件所在目录:/data/elasticsearch-7.6.0/config 修改配置文件elasticsearch.yml node.name: es-1 network.host: 172.31.0.14 http.port: 9200 xpack.security

linux命令(二)linux常用命令

懵懂的女人 提交于 2020-03-02 02:16:06
运行脚本命令 bash -c "cmd string" 等价于|| /bin/bash cmd string 文件操作命令 # 1)、从本地复制到远程 scp local_file remote_username@remote_ip:remote_folder # 2)、复制目录命令格式 scp -r local_folder remote_username@remote_ip:remote_folder 网络命令 # 查看磁盘io iotop -oP # 打包 tar zcf target.tar.gz ./source # ssh密钥生成 ssh-keygen -t rsa # 端口占用查看 netstat -anp|grep 80 # 查看网络配置 cat /etc/sysconfig/network-script/ifcfg-eth0 # 查看进程 ps -aux| grep logstash # 查看shell执行过程 sh -x test.sh 硬件信息查看命令 # 物理cpu个数 grep 'physical id' /proc/cpuinfo | sort -u # 物理cpu核数 grep 'core id' /proc/cpuinfo | sort -u | wc -l # 逻辑cpu个数 grep 'processor' /proc/cpuinfo |

Logstash收集日志

蹲街弑〆低调 提交于 2020-02-29 09:32:07
Logstash 的介绍 logstash 是一种分布式日志收集框架,开发语言是JRuby,当然是为了与Java平台对接,不过与Ruby语法兼容良好,非常简洁强大,经常与ElasticSearch,Kibana配置,组成著名的ELK技术栈,非常适合用来做日志数据的分析。 当然它可以单独出现,作为日志收集软件,你可以收集日志到多种存储系统或临时中转系统,如MySQL,redis,kakfa,HDFS, lucene,solr等并不一定是ElasticSearch。 官网下载地址: https://www.elastic.co/downloads/logstash 官网文档地址: https://www.elastic.co/guide/en/logstash/current/index.html 中文文档地址: http://udn.yyuap.com/doc/logstash-best-practice-cn/index.html Logstash 的安装 Logstash 的安装非常简单,直接官网下载对应的版本(需要和 Elasticsearch 的版本匹配)解压缩即可 # tar -zxvf logstash-2.3.2.tar.gz 测试启动 # cd logstash/ # cd bin/ # ./logstash -e 'input { stdin { } }

从ELK到EFK

余生长醉 提交于 2020-02-29 01:46:18
https://my.oschina.net/itshare/blog/775466 http://blog.51cto.com/467754239/1700828 日志系统 日志就是程序产生的,遵循一定格式(通常包含时间戳)的文本数据 通常日志由服务器生成,输出到不同的文件中,一般会有系统日志、 应用日志、安全日志。这些日志分散地存储在不同的机器上。 通常当系统发生故障时,工程师需要登录到各个服务器上,使用 grep / sed / awk 等 Linux 脚本工具去日志里查找故障原因。在没有日志系统的情况下,首先需要定位处理请求的服务器,如果这台服务器部署了多个实例,则需要去每个应用实例的日志目录下去找日志文件。每个应用实例还会设置日志滚动策略(如:每天生成一个文件),还有日志压缩归档策略等。 这样一系列流程下来,对于我们排查故障以及及时找到故障原因,造成了比较大的麻烦。因此,如果我们能把这些日志集中管理,并提供集中检索功能,不仅可以提高诊断的效率,同时对系统情况有个全面的理解,避免事后救火的被动。 日志数据在以下几方面具有非常重要的作用: 数据查找:通过检索日志信息,定位相应的 bug ,找出解决方案 服务诊断:通过对日志信息进行统计、分析,了解服务器的负荷和服务运行状态 数据分析:可以做进一步的数据分析,比如根据请求中的课程 id ,找出 TOP10 用户感兴趣课程。

手把手教你搭建 ELK 实时日志分析平台

扶醉桌前 提交于 2020-02-28 06:24:37
本篇文章主要是手把手教你搭建 ELK 实时日志分析平台,那么,ELK 到底是什么呢? ELK 是三个开源项目的首字母缩写,这三个项目分别是:Elasticsearch、Logstash 和 Kibana。 Elasticsearch 是一个 搜索和分析引擎 。 Logstash 是 服务器端数据处理管道 ,能够同时从多个来源采集数据,转换数据,然后将数据发送到诸如 Elasticsearch 等存储库中。 Kibana 则可以让用户在 Elasticsearch 中 使用图形和图表对数据进行可视化 。 Elasticsearch 的核心是搜索引擎,所以用户开始将其用于日志用例,并希望能够轻松地对日志进行采集和可视化。有鉴于此,Elastic 引入了强大的采集管道 Logstash 和灵活的可视化工具 Kibana。 ELK日志系统数据流图如下: 简短了解 ELK 是个啥后,让我们一起动手搭建 ELK 实时日志分析平台,首先安装 Elasticsearch。 注: ELK 环境搭建版本很关键,建议统一版本,避免错误无处下手 ,我在这里选用的是 7.1.0 版本。 ElasticSearch 介绍与安装 ElasticSearch 的介绍与安装在上一篇文章已经讲过了,这里就不进行赘述了,大家可以点击下方链接查看: 全文搜索引擎 Elasticsearch 入门:集群搭建

Beats:使用Elastic Stack监控RabbitMQ

旧巷老猫 提交于 2020-02-28 02:31:50
RabbitMQ是一个开放源消息代理,创建于2007年以实现AMQP,并且在过去的十二年中,通过不断增加的插件列表,它已包括HTTP,STOMP,SMTP和其他协议。它也是Kafka的一个强劲的竞争者。在今天的文章中,我们将详述如何使用Elastic Stack来监控RabbitMQ。 RabbitMQ简介 RabbitMQ是消息队列软件,也称为消息代理或队列管理器。 简单地说; 它是定义队列的软件,应用程序连接到该队列以传输一条或多条消息。 一条消息可以包含任何种类的信息。 例如,它可能具有有关应在另一个应用程序(甚至可能在另一个服务器上)上启动的过程或任务的信息,或者可能只是一条简单的文本消息。 队列管理器软件存储消息,直到接收应用程序连接并从队列中取出消息为止。 接收应用程序然后处理该消息。 消息队列的基本体系结构很简单-有一些称之为生产者(producers)的客户端应用程序,它们可以创建消息并将其传递到代理(消息队列)。 其他应用程序(称为消费者,也即consumers)连接到队列并订阅要处理的消息。 软件可以充当消息的生产者或消费者,或者既充当消息的消费者又充当生产者。 存储在队列中的消息将被存储,直到消费者检索到它们为止。 在下面我们来具体介绍如何使用Elastic Stack来把我们想要的RabbitMQ日志导入到Elastic Stack中,并对日志进行分析。

使用logstash同步至ES的几个坑

眉间皱痕 提交于 2020-02-27 20:58:59
1.前言 记录使用logstash从sqlserver同步数据到ES中遇到的几点问题。使用的版本是es6.8.3+logstash6.8.3 2.logstash配置文件 2.1input input { jdbc { jdbc_driver_library => "/usr/local/logstash-6.8.3/logstashconfs/sqljdbc4.jar" #sqlserver的驱动jar包 jdbc_driver_class => "com.microsoft.sqlserver.jdbc.SQLServerDriver" jdbc_connection_string => "jdbc:sqlserver://192.168.1.101:1433;databaseName=test;" jdbc_user => "sa" jdbc_password => "123456" jdbc_default_timezone => "Asia/Shanghai" jdbc_paging_enabled => "true" #分页 record_last_run => true #记录上一次运行的值 use_column_value => true #使用数据库中的字段追踪 tracking_column => "update_time" #追踪的字段名称 tracking

CentOS7安装Logstash7.3从mysql导数据到ES

穿精又带淫゛_ 提交于 2020-02-27 13:08:41
1. 下载 官网: https://www.elastic.co/downloads/logstash 7.3.0链接: https://pan.baidu.com/s/1SnIcXBNjWRBpnZJ1b3NUyA 提取码:lids 2. rz上传到/usr/local并解压 3. 测试 cd /usr/local/logstash-7.3.0 ./bin/logstash -e "" 4. 安装logstash-input-jdbc gem -v yum install gem ./bin/logstash-plugin install logstash-input-jdbc 如果不成功可参考: https://blog.csdn.net/chenguihua5/article/details/90316484 5. 从mysql导入数据到es 下载mysql-connector-java驱动包(也可以从maven库找:repository\mysql\mysql-connector-java) 上传到/usr/local/lib(或者其他位置) 进入config目录设置配置文件 cd config/ 配置mysql查询语句 vim jdbc.sql 例: select * from flower_shop 配置模板 vim template.json 例: {