10 2020 档案
摘要:
neutron的主要作用是在openstack中为启动虚拟机实例提供网络服务,对于neutron来讲,它可以提供两种类型的网络;第一种是provider network,这种网络就是我们常说的桥接网络,虚拟机内部网络通常是通过bridge的方式直接桥接到宿主机的某块物理网卡上,从而实现虚拟机可以正常的访问外部网络,同时虚拟机外部网络也可以访问虚拟机的内部网络;第二种是self-service networks,这种网络就是nat网络;nat网络的实现是通过在虚拟机和宿主机之间实现了虚拟路由器,在虚拟机内部可以是一个私有地址连接至虚拟路由器的一个接口上,而虚拟路由器的另外一端通过网桥桥接到宿主机的某一张物理网卡;
阅读全文
摘要:
当nova-api接收到用户的请求,比如创建一个虚拟机实例,nova-api会把这个请求放到消息队列中,并把用户的请求信息写入到nova数据库中,然后继续接收其他用户的请求;nova-api把用户请求放到未调度的消息队列中,nova-scheduler会从未调度的消息队列中取出用户的请求进行调度,把调度结果又返回给对应计算节点所订阅的消息队列中,同时它也会把调度结果写到nova数据库中,然后由对应的数据节点nova-computer取出调度后的消息进行处理;nova-computer的处理就是调用本地的hypervisor来创建虚拟机,最后把创建成功的消息,丢给消息队列,然后由nova-api到消息队列中取得虚拟机实例创建成功的消息,nova-api再把消息返回给用户;
阅读全文
摘要:
glance服务主要有四部分组成,其中glance-api主要提供服务接口,负责接收对image service api中的镜像文件的查看、下载以及存储请求;glance-registry主要用来存储、处理及获取镜像文件中的元数据信息;比如虚拟机镜像文件大小、类型、创建时间、名称等等;glance database主要用来存储虚拟机镜像文件的元数据信息;不同于glace-registry,它不处理元数据信息,而是将glance-registry处理以后的信息保存下来,我们可以理解glance-registry是将虚拟机的镜像元数据信息通过某种格式写入到glance database中进行存储;最后是存放镜像文件的存储仓库;
阅读全文
摘要:
用户在openstack上创建一个虚拟机内部验证的过程;首先用户要登入openstack上要把用户的用户名和密码发送给keystone进行验证,如果在keystone中验证通过后,keystone会给用户返回一个token,此时用户就可以拿着这个返回的token去计算节点请求nova服务,进行创建虚拟机请求,在nova服务接受到用户的请求后,nova它不能直接相信用户的token是否是keystone给的,它会把这个token发送给keystone进行验证,如果keystone验证通过,此时nova才会拿着这个token去请求glance进行虚拟机镜像请求,同样的glance也不相信nova拿到这个token,它会去找keystone验证,只有keystone通过后,glance才会把镜像发送给nova,nova拿到镜像启动虚拟机;
阅读全文
摘要:
简单说openstack是云计算管理平台,主要对云环境中的虚拟机做增删查改;它能够将多台物理设备的资源(cpu/内存等)整合成一个大的资源池,然后根据openstack提供的api接口向用户提供使用;用户可以根据openstack提供的资源池接口来启动虚拟机,管理虚拟机;openstack 主要组成由控制节点和计算节点组成;其中控制节点由多个组件组成,每个组件都是以api的形式向外提供服务,这多个组件共同组成了控制节点,所以控制节点上运行了很多服务;计算节点通常是指提供物理硬件,用于启动虚拟机的物理设备;
阅读全文
摘要:
今天我们来聊一款和openvpn有类似功能的软件jumpserver;jumpserver和openvpn都可以让用户从互联网连接公司内网服务器;但通常jumpserver都不会放在互联网;它主要用作运维、开发、以及测试相关人员来利用它连接公司内网服务器,从而实现集中管理公司内网服务器;同时jumpserver还具有权限管理,用户管理,以及监控回放等等功能;
阅读全文
摘要:一、openvpn简介 什么是vpn?vpn是Virtual Private Network的缩写,翻译成中文就是虚拟私有网络;主要用于在一些非安全的网络环境中使用它来安全的传输数据;openvpn是实现vpn的一个开源软件;它支持ssl/tls安全、ethernet bridging、经由代理的T
阅读全文
摘要:
kafka是基于发布/订阅模式的一个分布式消息队列系统,用java语言研发,是ASF旗下的一个开源项目;类似的消息队列服务还有rabbitmq、activemq、zeromq;kafka最主要的优势具备分布式功能,并且结合zookeeper可以实现动态扩容;kafka对消息保存是通过Topic进行分类,发送消息一方称为producer(生产者),接收消息一方称为consumer(消费者);一个kafka集群有多个kafka server组成,我们把每个kafka server称为broker(消息掮客);
阅读全文
摘要:
Zab协议是为分布式协调服务Zookeeper专门设计的一种 支持崩溃恢复的原子广播协议; 主要作用是在zk集群leader崩溃以后,能够基于此协议选举新leader,并且保证数据最终一致性和完整性;zk客户端连接zk集群中的任何一个节点,发起请求,如果客户端发送读请求,则直接由当前节点响应;如果客户端发送的是写请求,且当前节点不是leader节点,则由当前节点把写请求,转发给leader,由leader进行写事务广播,只有超过集群节点半数的响应允许写,该事务才会被并提交;只有当leader写成功后,leader会通知各follower来同步数据;
阅读全文
摘要:
sonarqube和扫描器sonar-scanner是可以不在同一主机的;结合sonarqube和扫描器sonar-scanner的工作逻辑,扫描器只需要配置连接sonarqube的相关地址以及对应项目的相关属性,然后扫描器就可以正常工作了;我们可以理解为一个sonarqube平台对应多台server上的sonar-scanner;只要sonar-scanner能够正常的连接到sonarqube,就能把本地server上的项目代码扫描结果写到sonarqube指定的数据库中,通过sonarqube的web平台给予展示;
阅读全文
摘要:
sonarqube是一款用java语言编写的程序,它主要作用是提供一个web界面,展示扫描分析结果以及系统管理,插件管理等;扫描代码还是sonar-scanner这个插件做的,它的工作原理是sonar-scanner通过识别项目中的sonar-project.properties配置文件中定义的内容,把对应的项目源码进行扫描,把扫描后的结果保存到指定的数据库;然后sonarqube通过连接配置的数据库,把sonar-scanner存入数据库中的数据加载到web界面,从而用户就可以通过web界面查看扫描的项目源码的结果;
阅读全文
摘要:
pipline 是帮助 Jenkins 实现 CI 到 CD 转变的重要角色,是运行在 jenkins 2.X 版本的核心插件,简单来说 Pipline 就是一套运行于 Jenkins 上的工作流框架,将原本独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂发布流程,从而实现单个任务很难实现的复杂流程编排和任务可视化,Pipeline 的实现方式是一套 Groovy DSL,任何发布流程都可以表述为一段 Groovy 脚本。
阅读全文
摘要:
在上一篇博客中,我们主要介绍了DevOps理念以及java环境和jenkins的安装,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/13805666.html;今天我们主要来看看jenkins常用插件的安装、配置使用;
我们知道在安装jenkins的过程中,激活jenkins后,首先是让我们安装一些插件,我们选择的是推荐插件;推荐插件一般都是很常用的基础插件,也是我们使用jenkins的必须品,但这样安装好的jenkins在很多功能上都达不到我们使用的需求,于是我们需要额外安装其他插件来丰富jenkins的功能;
阅读全文
摘要:
devops理念主要是针对企业中的研发人员、运维人员和测试人员的工作理念,是他们在应用开发、代码部署和质量测试等整条生命周期中协作和沟通的最佳实践DevOps 强调整个组织的合作以及交付和基础设施变更的自动化、从而实现持续集成、持续部署和持续交付。传统的模式的开发人员只顾开发程序,运维只负责基础环境管理和代码部署及监控等,其并不是为了一个共同的目标而共同实现最终的目的,而DevOps 则实现团队作战,即无论是开发、运维还是测试,都为了最终的代码发布、持续部署和业务稳定而付出各自的努力,从而实现产品设计、开发、测试和部署的良性循环,实现产品的最终持续交付。
阅读全文
摘要:
GitLab 是一个用于仓库管理系统的开源项目,使用git作为代码管理工具,并在此基础上搭建起来的web服务。类似github,常用在企业内部做git私有仓库使用;
阅读全文
摘要:
我们知道对于git的仓库来讲,不外乎就是一个文件服务器,也就说git仓库可以使用传输文件的协议来把用户本地仓库中的代码推送到远程仓库进行保存,同时用户也可以从远处仓库拖代码到本地仓库;这是git仓库的最基本功能;常用的传输文件的协议有http、https、ftp、ssh等等,当然也有git本身的协议git来传输文件;好了下面我们来看一下基于httpd来搭建git的私有仓库对过程吧;
阅读全文
摘要:
git版本控制系统主要由本地工作空间,本地仓库和远程仓库三部分组成;本地工作空间中包含本地仓库,本地仓库中主要有索引和对象库;用户在本地空间初始化一个项目,就相当于在本地创建了一个本地git仓库,其表现形式上在用户的工作目录下有一个.git的隐藏目录;用户要把本地的文件提交到远程仓库,首先得将文件添加到本地仓库中的索引中去,然后再把索引中的内容提交到本地对象库中存储;然后再从本地push一份到远程仓库;用户提交项目到远程仓库的过程就是这样;当然用户从远程仓库可以直接克隆远程仓库到本地;
阅读全文
摘要:
之前的博客一直在聊ELK集群中的存储、日志收集相关的组件的配置,但通常我们给用户使用不应该是一个黑黑的shell界面,通过接口去查询搜索;今天我们来聊ELK中的前端可视化组件kibana;kibana主要作用是用来展示、搜索、查看、分析、整合elasticsearch中存储的日志的一个web用户界面;使得让用户使用ELK更加直观;
阅读全文
摘要:
前面我们了解了elk集群中的logstash的用法,使用logstash处理日志挺好的,但是有一个缺陷,就是太慢了;当然logstash慢的原因是它依赖jruby虚拟机,jruby虚拟机就是用java语言开发的ruby虚拟机,本身java程序运行在jvm上就已经很慢了,而logstash还要运行在用java语言开发的ruby虚拟机上,就相当于虚拟机上跑一个虚拟机,可想而知;如果我们只需要收集和处理日志,在agent端如果运行logstash,显得格外的消耗资源;为了解决这种问题,elastic开发了一款更加轻量级的日志收集器beats;而filebeat只是其中的一种,它是基于收集本地日志文件中的内容,然后输出到某个地方;中间不会对日志做过多的处理;有点类似rsyslog,只做日志转发;
阅读全文
摘要:
前文我们了解了logstash的工作流程以及基本的收集日志相关配置,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/13761906.html;今天我们来了解下logstash的常用input插件和filter插件的相关配置;
先说filter插件吧,继续上一篇博客的环境,我们配置logstash收集httpd的访问日志;
示例:配置logstash收集日志的时间戳为日志生成时的时间戳
阅读全文
摘要:
logstash的工作原理类似Linux里的rsyslog,首先logstash会有一个数据输入源,也就是logstash去哪里采集数据,它的采集数据来源很多,比如从文件中采集,从某个tcp/udp端口采集,从redis的消息队列中采集,kafka啊、标准输入等等;它和rsyslog不同的是,rsyslog是把日志数据从一个地方转到另一个地方,中间不会去处理日志的格式,采集回来是什么样就是什么样;而logstash不一样,logstash它可以把采集回来的日志做格式化,以不同的编码形式向外输出;比如把nginx的日志采集回来,它可以以json格式输出;同时它还可以处理采集回来的日志,比如忽略某些字段的输出,把原有日志格式做切分;把原来不是json格式的日志,通过输出规则转换为json格式的日志;
阅读全文
摘要:
什么是ELK?ELK是Elasticsearch、Logstash、Kibana这三个软件的首字母缩写;其中elasticsearch是用来做数据的存储和搜索的搜索引擎;logstash是数据收集处理平台,它能够对特定的数据做分析、切词、收集、过滤等等处理,通常用于对日志的处理;kibana是用于把处理后的数据做可视化展示,提供一个web界面,方便我们去elasticsearch中检索想要的数据;elasticsearch是一个高度可扩展的开源全文搜索和分析引擎,它可实现数据的实时全文搜索,支持分布式实现高可用,提供RESTfull风格的API接口,可以处理大规模日志数据;
阅读全文