首页 文章 精选 留言 我的

精选列表

搜索[学习],共10000篇文章
优秀的个人博客,低调大师

Elastic Stack实战学习教程~日志数据的收集、分析与可视化

Elastic Stack介绍 近几年,互联网生成数据的速度不断递增,为了便于用户能够更快更精准的找到想要的内容,站内搜索或应用内搜索成了不可缺少了的功能之一。同时,企业积累的数据也再不断递增,对海量数据分析处理、可视化的需求也越来越高。 在这个领域里,开源项目ElasticSearch赢得了市场的关注,比如,去年Elastic公司与阿里云达成合作伙伴关系提供阿里云 Elasticsearch 的云服务、今年10月Elastic公司上市,今年11月举行了Elastic 中国开发者大会、目前各大云厂商几乎都提供基于Elasticsearch的云搜索服务,等等这些事件,都反映了Elasticsearch在企业的应用越来越普遍和重要。 先来看看官网的介绍,ok,核心关键字:搜索、分析。 Elasticsearch is a distributed, RESTful search and analytics enginecapable of solving a growing number of use cases. As the heart of theElastic Stack, it centrally stores your data so you can discover theexpected and uncover the unexpected.Elasticsearch 是一个分布式的 RESTful 风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。作为 ElasticStack 的核心,它集中存储您的数据,帮助您发现意料之中以及意料之外的情况。 产品优势:速度快、可扩展性、弹性、灵活性。在某些应用场景中,不仅会使用Elasticsearch,还会使用Elastic旗下的其他产品,比如Kibana、Logstash等,常见的ELK指的就是Elasticsearch、Logstash、Kibana这三款产品,Elastic Stack指的是Elastic旗下的所有开源产品。 应用场景:(图片截于Elastic官网) 场景实战 接下来,我们来实战一个应用场景。 场景:一个后端应用部署在一台云服务器中,后端应用会以文件形式记录日志。需求为:收集日志内容,对每行日志解析,得到结构化数据,便于搜索、处理与可视化。 方案:使用Filebeat转发日志到Logstash,后者解析或转换数据,然后转发到Elasticsearch储存,接着数据就任君处理了,这里我们把日志数据根据某些需求进行可视化,可视化的活就交给Kibana完成。(另种方案也可:通过Filebeat将日志数据直接转发到Elasticsearch,由Elasticsearch Ingest node负责数据的数据处理) 所需软件 本案例使用的产品版本如下:系统:CentOS,这里分开部署了,也可以放在一起。1、Kibana_v6.2.3 (IP: 192.168.0.26)2、Elasticsearch_v6.2.3 (IP: 192.168.0.26)3、Filebeat_v6.2.3 (IP: 192.168.0.25)4、Logstash_v6.2.3 (IP: 192.168.0.25) 日志内容 假设一行日志内容如下:(日志文件放在/root/logs目录下) 其中一行日志内容如下: 2018-11-08 20:46:25,949|https-jsse-nio-10.44.97.19-8979-exec-11|INFO|CompatibleClusterServiceImpl.getClusterResizeStatus.resizeStatus=|com.huawei.hwclouds.rds.trove.api.service.impl.CompatibleClusterServiceImpl.getResizeStatus(CompatibleClusterServiceImpl.java:775) 一行日志中可得到5个字段,以“|”分割 2018-11-08 20:46:25,949| #时间 https-jsse-nio-10.44.97.19-8979-exec-11| # 线程名称 INFO| # 日志级别 CompatibleClusterServiceImpl.getClusterResizeStatus.resizeStatus=| # 日志内容 trove.api.service.impl.CompatibleClusterServiceImpl.getResizeStatus(CompatibleClusterServiceImpl.java:775) # 类名 文件目录如下:(Elasticsearch和Kibana在另一台服务器,且已启动) Logstash配置 logs目录存放需要收集的应用日志,logstash.conf 为Logstash准备的配置文件。 logstash.conf内容如下: input { beats { port => 5044 } } filter { grok { match => { "message" => "%{GREEDYDATA:Timestamp}\|%{GREEDYDATA:ThreadName}\|%{WORD:LogLevel}\|%{GREEDYDATA:TextInformation}\|%{GREEDYDATA:ClassName}" } } date { match => [ "Timestamp", "yyyy-MM-dd HH:mm:ss,SSS" ] } } output { elasticsearch { hosts => "192.168.0.26:9200" manage_template => false index => "java_log" } } 接下来启动Logstash(启动成功,监听5044端口,等待日志数据传入): Filebeat配置 接下来看下Filebeat的配置文件: filebeat.prospectors: - type: log enabled: true # 配置日志目录的路径或者日志文件的路径 paths: - /root/logs/*.log filebeat.config.modules: path: ${path.config}/modules.d/*.yml reload.enabled: false setup.template.settings: index.number_of_shards: 3 #index.codec: best_compression #_source.enabled: false setup.kibana: host: "192.168.0.26:5601" # 配置output为logstash output.logstash: # The Logstash hosts hosts: ["localhost:5044"] 启动Filebeat:(当日志文件有更新时,会被Filebeat监听到,被转发出去。) 日志查询和可视化 最后来看看Kibana,进行日志的可视化。在Kibana创建好index pattern,这里命名为:java_log。在Discover页面中对日志数据进行查询。 在Visualize中创建可视化图形。 在Dashboard中组合我们的图形。 到此,就完成一个简单的日志数据的收集、分析、可视化。 Elastic Stack还有很多强大的功能,后面我们来一个应用内搜索案例。 参考资料 https://www.elastic.co/cn/blog/alibaba-cloud-to-offer-elasticsearch-kibana-and-x-pack-in-china 阿里云与Elastic公司合作 https://www.elastic.co/guide/en/beats/libbeat/6.2/getting-started.html beat入门 https://www.elastic.co/guide/en/logstash/current/plugins-filters-grok.html grok插件 公众号:码农阿呆 (欢迎关注和交流)

优秀的个人博客,低调大师

[雪峰磁针石博客]python计算机视觉深度学习2图像基础

构建自己的图像分类器之前需要了解图像是什么。 像素:图像的元素 像素是图像的基本元素。每个图像都由一组像素组成。没有比像素更细的粒度。 通常像素是光的“颜色”或“强度”。 下图的分辨率为1,000×750,这意味着它是1,000像素宽750像素高。我们可以将图像概念化为(多维)矩阵。图片中总共有1,000×750 = 750,000像素。 大多数像素以两种方式表示:1.灰度/单通道2.颜色 在灰度图像中,每个像素是0到255之间的标量值,其中零对应为“黑色”,255为“白色”。 彩色像素通常在RGB颜色空间中表示(其他颜色空间通常要转成RGB)。 黑色:(0, 0, 0)红色:(255, 0, 0) RGB色彩空间的主要缺点包括:•不使用“颜色选择器”工具时表示颜色不直观•它不像人类看待颜色的方式。 图像坐标系统 OpenCV和scikit-image用多维NumPy数组表示RGB。 import cv2 image = cv2.imread("example.png") print(image.shape) cv2.imshow("Image", image) cv2.waitKey(0) 执行结果: $ python load_display.py (248, 300, 3) 像素访问 (b, g, r) = image[20, 100] # accesses pixel at x=100, y=20 (b, g, r) = image[75, 25] # accesses pixel at x=25, y=75 (b, g, r) = image[90, 85] # accesses pixel at x=85, y=90 OpenCV的存储顺序:Blue, Green, Red 技术支持qq群144081101 591302926 567351477 钉钉免费群:21745728 缩放 多数神经网络和卷积神经网络应用于图像任务分类要求固定大小的输入,意味着你通过的所有图像的尺寸必须相同。输入的宽度和高度图像尺寸的常见选择卷积神经网络包括32×32,64×64,224×224,227×227,256×256和299×299。

优秀的个人博客,低调大师

docker学习系列16 使用过程的一些经验总结

COPY 和 ADD 命令具有相同的特点:只复制目录中的内容而不包含目录自身。 比如 backend 目录的结构如下: --- backend -- model -- controller 如果执行 WORKDIR /app COPY backend . 容器内app底下会是model和controller目录,并不是backend目录。 如果要拷贝整个目录,应该:COPY backend ./backend 如果修改了 Dockerfile,记得要重新执行build,即生成新的镜像。这样启动后才能看到效果。 打包node项目中的node_modules问题。 某node项目结构: src node_modules package.json package-lock.json dockerfile部分代码 FROM node:8.12-alpine RUN mkdir -p /app WORKDIR /app COPY package.json . COPY package-lock.json . RUN npm install ... 我们在容器内生成了项目所依赖的node_modules文件。这是docker的build阶段。 之后在run启动阶段时,在mouted共享目录时要特别小心,如果挂载整个项目,容器内的node_modules会被项目中的覆盖。 最好把需要挂载的文件单独放到一个目录中。 关于项目目录是挂载好,还是COPY ADD好,stackoverflow上有人也问过 COPY/ADD 文件是镜像的一部分,在docker构建阶段执行。比较适合项目的生产环境,比如自动化。对于成熟稳定的项目,把编译后的可以直接运行的代码打包进镜像内也利于分发。 volumn 是在docker运行阶段,本地文件变化能方便的反应到容器中,比较适合项目的开发阶段。 要根据实际情况,挂载可以节省空间,便于修改。如果是想文件COPY到容器,每次修改文件都需要重新制作镜像。 关于 docker-compose,对于镜像的版本,数据库密码等不建议直接写死到 docker-compose.yml 中,可以新建.env文件。 docker-compose部分 mysql: build: ./docker-build/mysql ports: - "33060:3306" volumes: - ./docker-build/mysql/data:/var/lib/mysql environment: MYSQL_ROOT_PASSWORD: ${DOCKER_MYSQL_PASSPORD-123456} .env文件DOCKER_MYSQL_PASSPORD=mypassord 比如下面的${DOCKER_MYSQL_PASSPORD-123456}表示优先去.env文件找定义的key值,如果没有则使用默认值,即123456。 docker-compose.yml 受版本控制,.env不受。更多细节参考 在 Laravel 项目中,如果数据库跑在容器里,在宿主机直接执行 php aritsan是不行的, 需要进到容器里执行,或者在宿主机执行docker-compose exec <mycontainer> php artisan或者是docker exec -it <mycontainer> php artisan 如果php项目用的nginx的php-fpm容器,想重启php-fpm,容器内使用kill -USR2 1,容器外执行docker exec -it <mycontainer> kill -USR2 1\ docker-compose down要慎用,他会销毁所有容器和网络等。如果你之前在容器里修改过文件,都会没有。当然docker也不推荐直接在容器动手脚,建议写个shell脚本,启动之后在容器内执行。 还是 mysql 数据库问题,如果容器启动了 mysql,之后通过配置修改了密码,可能会造成重新连接后死活显示"Access denied"。 这是因为如果建立了共享卷volume,里面存的还是老的user信息,需要docker-compose rm -v 清除卷然后重连。 删除日志 find /var/lib/docker/containers/ -type f -name "*.log" -delete

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册