首页 文章 精选 留言 我的

精选列表

搜索[企业级在线文档编辑解决方案],共10000篇文章
优秀的个人博客,低调大师

在线日志分析项目解读

1,日志的采集 从flume agent 上的数据一般分到两条线上一条是kafka 集群 ,后期可以用流式处理(spark streaming 或storm 等等)一条是到hdfs,后期可以用hive处理, 业界叫lambda架构 architecture (一般公司的推荐系统,就是用这种架构) flume-ng agent 采集收集日志后,聚合在一个节点上(也可以不聚合) 为什么要聚合?为什么不直接写到kafka集群? 假如公司规模比较大,有无数个flume节点,这么多都连kafka,会增加复杂度,有个聚合节点(会是多个节点组成,防止单节点挂了),还可以对日志格式统一处理,筛选不要的数据 hdfs 可以永久保存数据,mr 可以处理多久数据都行 kafka 集群数据可以存储一定时间不能长期存储,sparkstreaming 只能处理一定时间访问内数据 storm 流 数据源 nginx 日志,mysql 日志,tomcat 日志等等-> flume -> kafka 消息件 消息发送到这里缓存数据一段时间 -> spark streaming+spark sql on yarn cluster (实时计算) -> 存储 1.->redis adminLTE + flask 前端组件 + echarts3 集成到监控的系统上 2.->influxdb 时序分布式数据库 grafana 可视化组件(这两种结合比较好) (elk kibana ) 存储+可视化分析 画图工具 http://www.processon.com/ 本文转自 skinglzw 51CTO博客,原文链接:http://blog.51cto.com/skinglzw/1967271,如需转载请自行联系原作者

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

在线升级glance镜像技巧

0.背景 我们经常需要更新glance镜像,比如上传的镜像可能有配置问题,或者我们需要对已有的镜像进行软件包升级或者预装一些新的软件包等。当时着手这件事是由于我们对cloud-init进行了大量的patch,需要同步到glance镜像中,如果重新制作镜像然后传输到生产环境再上传,不仅工作非常繁琐,还非常消耗时间,我们希望能够在原来的镜像基础之上直接升级cloud-init。 1.通过快照方式更新镜像 最简单的方式是通过创建一个云主机,然后更新cloud-init后创建快照形成新的镜像(注意删除/var/lib/cloud下的文件,否则cloud-init下次启动时不会重新拉取metadata)。可是我们遇到的问题是,老版本的cloud-init在L版中注入密码和密钥都失败,并且安装的qemu-guest-agent不支持修改密码,因此完全没有办法登录云主机。因此必须另辟蹊径。 2.glance存储后端使用本地文件系统 于是我们想到把镜像挂载到本地文件系统中,然后chroot到镜像文件系统环境中进行升级配置。如果glance镜像使用本地文件系统作为存储后端,镜像格式为raw,挂载镜像就非常简单了: losetup/dev/loop0image.img kpartx-a/dev/loop0 mount/dev/mapper/loop0p1/mnt/image 如果是qcow2格式,需要安装qemu-nbd工具包,并且加载nbd内核模块: modprobenbdmax_part=63 qemu-nbd-c/dev/nbd0image.img mount/dev/nbd0p1/mnt/image 如果镜像文件系统中使用LVM,可以使用以下方法初始化: vgscan vgchange-ay mount/dev/VolGroupName/LogVolName/mnt/image chroot进行后执行相关操作后,卸载镜像文件系统: umount/mnt/image vgchange-anVolGroupName killallqemu-nbd kpartx-d/dev/loop0 losetup-d/dev/loop0 以上方法参考Mounting-raw-and-qcow2-vm-disk-images。 本文重点不在于基于本地文件系统作为存储后端的情况,重点介绍基于Ceph存储后端的操作方法,下文将详细介绍过程。 3.基于Ceph存储后端的更新方法 我们知道使用ceph作为存储后端时,镜像首先会生成一个以snap命名的快照,比如glance有一个镜像id为35fcb79c-43a1-4b59-83d7-f4e46a524419,则在rbd中有对应的image,命名与glance镜像id一致,我们查看其快照: rbdsnapls--imageopenstack-images/35fcb79c-43a1-4b59-83d7-f4e46a5244192>/dev/null 输出: SNAPIDNAMESIZE 94604snap20480MB 我们不能直接修改快照snap,因为它是protect的,只能读不能写。直接修改镜像的话不能同步到快照中,并且出错也不好回滚。 因此我们的做法是先复制一个rbd image副本. 首先使用glance命令行工具获取需要更新的镜像的id: IMAGE_ID=$(glanceimage-list--name"CentOS7.164bit2>/dev/null|awk--re-interval'/\w{8}-.*/{print$2}') 使用rbd命令拷贝一份镜像副本,假设POOL变量为glance使用的ceph池: rbdcp$POOL/${IMAGE_ID}$POOL/${IMAGE_ID}_copy 挂载镜像到本地文件系统中: rbdmap$POOL/${IMAGE_ID}_copy #/dev/rbd0 mount/dev/rbd0p1/mnt 注意由于镜像是Linux文件系统,因此通常只有一个根分区,如果是windows镜像,第一个分区通常是隐藏分区,C盘是第二个分区,因此挂载时注意选择rbd0p2,其中p表示partition。 挂载到本地后,可以拷贝软件包、配置模板等到镜像文件系统中,比如/mnt/root/,然后chroot到镜像文件系统中: cd/mnt#/mnt是我们需要chroot的根目录 #mount-tprocprocproc/#挂载proc #TouseaninternetconnectioninthechrootenvironmentcopyovertheDNSdetails: cp/etc/resolv.confetc/resolv.conf#覆盖即可,生成云主机会自动覆盖 #Tochangerootintoabashshell: chroot/mntbash#chroot到/mnt中,如果提示bash命令找不到,使用绝对路径试试chroot/mnt/bin/bash #初始化环境变量 source/etc/profile source~/.bashrc #如果提示找不到ls等命令,需要手动设置PATH变量:PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/bin #Tip:Optionally,createauniqueprompttobeabletodifferentiateyourchrootenvironment: exportPS1="(chroot)$PS1" 接下来就可以执行命令对镜像进行更新了,比如更新cloud-init: yumremovecloud-init#Removetheoldversionpackage rpm-icloud-init-0.7.6-bzr1.el7.centos.noarch.rpm#Installthepacakge 升级qemu-guest-agent: yuminstall-yqemu-guest-agent rpm-aq|grepqemu-guest-agent #qemu-guest-agent-2.3.0-4.el7.x86_64 执行完所有的更新操作后,完成以下清理工作: yumcleanall rm-rf/root/*#危险!!!删除根目录下拷贝的临时文件,执行前确认无有用文件! exit#退出chroot环境 cd#切换到家目录,工作目录不能位于/mnt,否则卸载不了 umount--recursive/mnt/#如果busy怎么办?lsof查看哪个进程占用,如果还是不行试试使用--lazy参数 rbdunmap/dev/rbd0#从rbd中卸载 最后需要更新glance,我们的方法是先创建一个glance空镜像实例,不需要指定镜像文件,只是占个坑,拿到新镜像id: NEW_IMAGE_ID=`glanceimage-create|grepid|awk'{print$4}'`||{echo'Error:glanceimage-createfailed!';exit1;} 接下来更新我们的rbd image,命名为新创建镜像实例id并设置快照: rbdmv$POOL/${IMAGE_ID}_copy$POOL/${NEW_IMAGE_ID} rbd--pool=$POOL--image=${NEW_IMAGE_ID}--snap=snapsnapcreate rbd--pool=$POOL--image=${NEW_IMAGE_ID}--snap=snapsnapprotect 最后更新glance镜像元数据: glanceimage-update--name="$DISPLAY_NAME"--disk-format=raw--container-format=bare--is-public=True${NEW_IMAGE_ID} glanceimage-update--propertyimage_meta="$image_meta"${NEW_IMAGE_ID} glanceimage-update--propertyhw_qemu_guest_agent=yes$IMAGE_ID #... #updateimagelocation FSID=`ceph-s|grepcluster|awk'{print$2}'` glanceimage-update--locationrbd://$FSID/$POOL/$IMAGE_ID/snap${NEW_IMAGE_ID} if[[$IMAGE_LABEL=="Windows"||$IMAGE_LABEL=="windows"]];then glanceimage-update--propertyhw_video_model=qxl--propertyhw_video_ram=64--propertyos_admin_user=Administrator$IMAGE_ID fi 最后对新镜像进行功能验证,如果没有问题,就可以安全的删除老的镜像了。 作者:付广平 来源:51CTO

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

互联网医院系统开发解决方案:AI问诊、在线医疗、患者管理一体化平台开发详解

随着互联网技术与人工智能技术的快速发展,医疗服务模式正在发生深刻变化。从过去“患者到医院找医生”,逐渐转变为“医生通过数字化平台连接患者”。互联网医院系统作为智慧医疗的重要组成部分,正在帮助医疗机构、医生团队以及健康服务企业实现线上诊疗、患者管理、医疗服务数字化升级。

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

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

Rocky Linux

Rocky Linux

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

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册