摘要: 在puppet中,资源就是指我们要操作被管控端主机的对象;puppet中的资源概念有点类似ansible中的模块,在ansible中不同模块有着不同的功能,比如用户管理,我们就要用user模块,文件管理就要用file模块,执行命令有shell模块和command模块;puppet中的资源也是类似的作用,不同的是puppet中资源是高度抽象的;所谓高度抽象就是指用户无需关心底层操作系统接口;比如我们要在被管控端安装一个nginx软件,如果用puppet来实现,我们直接使用package这个资源即可完成,用户不用考虑底层到底是windows还是centos或者ubuntu,puppet它能够自动识别,然后采用不同的安装方法; 阅读全文
posted @ 2020-12-01 23:50 Linux-1874 阅读(16) 评论(0) 推荐(0) 编辑
摘要: puppet是一个IT基础设施自动化运维工具,它能够帮助系统管理员管理基础设施的整个生命周期;比如,安装服务,提供配置文件,启动服务等等一系列操作;基于puppet,可实现自动化重复任务、快速部署关键性应用以及在本地或云端完成主动变更和快速扩展架构规模等;它遵循GPL协议(2.7.0以前),基于ruby语言开发,2.7.0以后使用apache 2.0协议; 阅读全文
posted @ 2020-11-28 23:10 Linux-1874 阅读(303) 评论(0) 推荐(1) 编辑
摘要: 我们试想一个场景,我们要监控一个集群,这个集群有100台物理主机,每个物理主机都要监控cpu,内存,磁盘等等,一台服务器平均监控项为20个,那么100台服务器就要2000个socket连接;这意味着zabbix server要有2000个socket连接需要维持;这样一来无疑对zabbix server性能有很大的影响;为了降低zabbix server连接socket数量过大而带来的性能消耗,此时zabbix server就应该委托其他主机来代理收集数据;这个代理就是zabbix proxy; 阅读全文
posted @ 2020-11-25 23:58 Linux-1874 阅读(327) 评论(0) 推荐(0) 编辑
摘要: SNMP的工作机制SNMP网络元素分为NMS和Agent两种: NMS(Network Management Station,网络管理站)是运行SNMP客户端程序的工作站,能够提供非常友好的人机交互界面,方便网络管理员完成绝大多数的网络管理工作。 Agent是驻留在设备上的一个进程,负责接收、处理来自NMS的请求报文。在一些紧急情况下,如接口状态发生改变等,Agent也会主动通知NMS。 NMS是SNMP网络的管理者,Agent是SNMP网络的被管理者。NMS和Agent之间通过SNMP协议来交互管理信息。 阅读全文
posted @ 2020-11-24 23:48 Linux-1874 阅读(266) 评论(0) 推荐(0) 编辑
摘要: 在zabbix中描述主动监控和被动监控都是站在agent的一方来描述的;我们把agent主动将数据发送给zabbix server这种方式采集数据,叫做主动监控;把zabbix server 向zabbix agent获取数据的方式叫做被动监控,这种方式只有zabbix server周期性的请求zabbix agent,zabbix agent才会响应对应的数据给zabbix server ,如果zabbix server 不请求,则zabbix agent不会发送数据给zabbix server ;而主动监控不管zabbix server请不请求agent,agent它都会以指定时间频率向server推送数据;默认zabbix 是使用的被动监控,这也意味着zabbix server 要不停的去请求各zabbix agent去采集数据,否则就没有数据; 阅读全文
posted @ 2020-11-23 20:22 Linux-1874 阅读(280) 评论(0) 推荐(0) 编辑
摘要: 简单说zabbix的网络发现功能,它能帮助我们在我们指定的网段内扫描主机,当扫描到对应网段有符合我们定义的扫描规则时,它就会触发一个discovery事件,而对应action监听到对应的事件发生后,就能触发action的操作,比如把某主机添加到zabbix,然后链接指定的模板等等;这样一来我们要想去监控一个集群,我们只需要定义怎么去发现主机的规则和监听对应discovery事件的action,就能够完成一个集群的快速监控; 阅读全文
posted @ 2020-11-22 21:20 Linux-1874 阅读(252) 评论(0) 推荐(0) 编辑
摘要: 在zabbix中宏分内建宏和自定义宏,所谓内建宏就是zabbix中原生就有的宏,我们可以直接调用;自定义宏就是我们自己按照需求定义的一个宏;除了按照这种方式划分宏,我们也可以按照宏的作用范围来划分;比如定义在某一个主机之上,其作用域仅对该主机生效的宏我们叫主机宏,这种宏作用范围小,但优先级很高;除了主机宏还有模板宏,全局宏;所谓模板宏就是定义在某个模板上的宏,其作用域是针对链接了该模板的所有主机,其优先级要略小主机宏;全局宏是指作用整个zabbix的宏,其优先级最小,生效范围是zabbix上的所有调用了该宏主机; 阅读全文
posted @ 2020-11-21 00:31 Linux-1874 阅读(248) 评论(0) 推荐(1) 编辑
摘要: 在zabbix中监控项(item)是一个核心的东西,所有监控都是围绕监控项展开的,可以说没有监控项就没有我们想要的指标数据;所以简单讲监控项就是被监控对象的指标数据,通常这个被监控的对象我们称为主机(host),它可以是一个网络设备或一台服务器,用ip地址或dns域名指定;一台主机可以是属于一个或多个主机组(host group),所谓主机组就是多台主机的相同集合,用来逻辑的将主机分组,方便统一标识和管理;比如一台server它可以是tomcat主机组,也可以是nginx主机组,不同主机组可能有不同的监控项; 阅读全文
posted @ 2020-11-20 02:00 Linux-1874 阅读(285) 评论(0) 推荐(0) 编辑
摘要: 首先zabbix的配置、管理以及展示都是通过zabbix web GUI这个组件进行的,管理员通过zabbix web GUI把要监控的主机、监控项、触发器等等一系列配置写进zabbix-database,然后zabbix-server到数据库中拿到对应的配置,进行应用;zabbix-server通过配置信息定义的各个信道,去采集对应主机或设备上要监控的指标数据,将采集到的数据进行处理以后存放到数据库,最后通过web GUI到数据库取数据进行展示; 阅读全文
posted @ 2020-11-18 01:11 Linux-1874 阅读(353) 评论(1) 推荐(0) 编辑
摘要: 使用mongodump/mongorestore这组工具来逻辑的备份数据,它备份出来的数据是BSON格式,BSON是一种二进制格式,通常无法使用文本编辑器直接打开查看其内容,对人类的可读性较差,但它的优点是保存的文件体积要小;使用这组命令导出的数据,在恢复是依赖mongodb版本,不同版本导出的BSON格式略有不同,所以恢复时,可能存在版本不同而导致恢复数据失败的情况;另外一组是mongoexport/mongoimport,这组工具导出的数据是json格式的数据,通常我们可以使用文本编辑器打开直接查看,对人类的可读性较好,但体积相对BSON格式的数据要大,恢复时不依赖版本; 阅读全文
posted @ 2020-11-16 10:18 Linux-1874 阅读(276) 评论(0) 推荐(1) 编辑
摘要: 简单讲访问控制就是指,哪些用户可以访问哪些资源,对资源有哪些操作(权限);在mongodb中我们把数据库、或者集合叫做资源;也就说访问控制是用来限制某些用户对数据库或集合的操作;我们在mysql数据库中,我们通过给账号授权的方式达到控制哪些用户可以从哪些主机访问数据库,对数据库有哪些操作;其中账号由用户名称和主机地址构成;在mongodb中采用的不是用户+主机地址的方式,而是通过给用户赋予一个或多个角色,这个角色或多个角色的所有权限就是这个用户拥有的权限;默认情况mongodb是没有启用访问控制的,所以只要能够连接上mongodb实例,我们就可以在其上做任何操作,在某种程度上,这是一种极为不安全的方式,为了杜绝这种不安全的访问方式,我们需要对mongodb进行访问控制; 阅读全文
posted @ 2020-11-14 23:05 Linux-1874 阅读(247) 评论(0) 推荐(1) 编辑
摘要: 在mongodb分片集群中,通常有三类角色,第一类是router角色,router角色主要用来接收客户端的读写请求,主要运行mongos这个服务;为了使得router角色的高可用,通常会用多个节点来组成router高可用集群;第二类是config server,这类角色主要用来保存mongodb分片集群中的数据和集群的元数据信息,有点类似mogilefs中的tracker的作用;为了保证config server的高可用性,通常config server也会将其运行为一个副本集;第三类是shard角色,这类角色主要用来存放数据,类似mogilefs的数据节点,为了保证数据的高可用和完整性,通常每个shard是一个副本集; 阅读全文
posted @ 2020-11-12 01:12 Linux-1874 阅读(291) 评论(0) 推荐(0) 编辑
摘要: 在mongodb中对数据做冗余的方式有两种,一种是主从架构(master/slave),这种架构和mysql中的主从架构没有什么不同,但是在mongodb中,主从架构的方式几乎没有人用,处于废弃的状态。。另外一种是副本集(replica set),副本集本质上也是主从架构的一种,它和我们刚才说的主从架构,有一个显著的区别,副本及支持故障自动转移,不需要人工干预;所谓的故障自动转移是指当一个副本集中主节点因各种原因宕机或者从节点在一定时间内没有收到主节点发送到心跳信息,此时就会触发从节点重新选举主节点的操作;在多个从节点中选举出来一个主节点以后,其他从节点能够自动指向新选举的主节点同步数据,从而完成这次故障转移; 阅读全文
posted @ 2020-11-10 22:36 Linux-1874 阅读(248) 评论(0) 推荐(0) 编辑
摘要: 我们在某个字段构建好索引以后,用户在写数据时,通常会额外多一次写io;对于写请求,在没有索引的情况,用户只需要写一次io,有了索引用户每写一条数据,都会对应有一次写索引的io;这样一来在一定程度上对用户的写性能会有影响;但通常我们构建索引都是在读多写少的场景中使用;在写请求不是特别多的场景其实多一次写io,比起读请求的压力我们是可以接受的;更何况有些数据库支持延迟写索引,所谓延迟写索引是指用户在插入数据时,它不立即写索引,而是等一段时间再写,这样一来就有效的降低写索引对用户的写请求性能的影响; 阅读全文
posted @ 2020-11-09 23:48 Linux-1874 阅读(270) 评论(0) 推荐(0) 编辑
摘要: 在mongdb中的数据库和关系型数据库中的数据库类似,都是用来存放多张表格,但在mongodb中,没有表的概念,只有collection(对文档的集合);对于关系型数据库中的行,就相当于mongodb中的document(文档);在关系型数据库中多行数据组成一张表,多张表组成一个库;而在mongodb中是多个文档组成一个collection,多个collection组成一个库; 阅读全文
posted @ 2020-11-08 10:12 Linux-1874 阅读(287) 评论(0) 推荐(0) 编辑
摘要: 对于cinder来讲,它主要由三个组件组成,cinder-api、cinder-scheduler、cinder-volume;其中cinder-api和cinder-scheduler这两个组件通常部署在在控制节点,cinder-volume通常部署在storage节点;cinder-volume主要作用是通过接收openstack控制节点上cinder-scheduler发送过来的请求,进行卷管理;cinder-api主要作用是接收请求,并将请求负责丢到对应的队列中去;cinder-scheduler主要负责调度后面的cinder-volume来完成管理卷; 阅读全文
posted @ 2020-11-03 00:09 Linux-1874 阅读(243) 评论(0) 推荐(0) 编辑
摘要: openstack是iaas(Infrastructure as a Service)服务模型,所谓iaas指基础设施及服务;它的意思就是把基础设施用服务的方式通过网络对外提供;比如,我们要10台虚拟机;我们可以在openstack的web界面上点点鼠标就能给我们启动10台虚拟机,至于这些虚拟机在哪里,怎么启动的我们不用关心;我们只需要关心我们期望的10台虚拟机是不是能够正常使用,是不是我们期望的配置,网络是不是通畅;简单点讲iaas就是把基础设施以服务的方式对外提供,对用户来讲,它隐藏了基础设施的构建过程;常用的还有其他服务模型,比如saas,paas,lbaas,fwaas等等,这些都是在讲把什么抽象成服务的形式对外提供;这些服务模型的出现,大大简化了传统从底层开始构建的复杂过程; 阅读全文
posted @ 2020-11-02 00:15 Linux-1874 阅读(279) 评论(0) 推荐(0) 编辑
摘要: 在创建虚拟机之前,用户要选择创建的虚拟机用那个模板进行创建,用那个镜像来安装系统,选择什么网络,安全组策略等等;这些都必须事先创建好;用户选择好必要的组件后;用户就可以把创建虚拟机的需求发送给openstack 控制节点,由openstack的控制节点间的各服务调用,最后创建一个虚拟机实例;这里需要强调一点,在openstack上创建虚拟机不能像我们使用kvm-qemu工具创建虚拟机指定要使用的虚拟cpu,内存,磁盘等等信息;在openstack上创建虚拟机,它是通过模板来定义虚拟机的基础信息的;专业术语叫flavor; 阅读全文
posted @ 2020-11-01 12:11 Linux-1874 阅读(275) 评论(3) 推荐(1) 编辑
摘要: neutron的主要作用是在openstack中为启动虚拟机实例提供网络服务,对于neutron来讲,它可以提供两种类型的网络;第一种是provider network,这种网络就是我们常说的桥接网络,虚拟机内部网络通常是通过bridge的方式直接桥接到宿主机的某块物理网卡上,从而实现虚拟机可以正常的访问外部网络,同时虚拟机外部网络也可以访问虚拟机的内部网络;第二种是self-service networks,这种网络就是nat网络;nat网络的实现是通过在虚拟机和宿主机之间实现了虚拟路由器,在虚拟机内部可以是一个私有地址连接至虚拟路由器的一个接口上,而虚拟路由器的另外一端通过网桥桥接到宿主机的某一张物理网卡; 阅读全文
posted @ 2020-10-31 16:11 Linux-1874 阅读(259) 评论(0) 推荐(1) 编辑
摘要: 当nova-api接收到用户的请求,比如创建一个虚拟机实例,nova-api会把这个请求放到消息队列中,并把用户的请求信息写入到nova数据库中,然后继续接收其他用户的请求;nova-api把用户请求放到未调度的消息队列中,nova-scheduler会从未调度的消息队列中取出用户的请求进行调度,把调度结果又返回给对应计算节点所订阅的消息队列中,同时它也会把调度结果写到nova数据库中,然后由对应的数据节点nova-computer取出调度后的消息进行处理;nova-computer的处理就是调用本地的hypervisor来创建虚拟机,最后把创建成功的消息,丢给消息队列,然后由nova-api到消息队列中取得虚拟机实例创建成功的消息,nova-api再把消息返回给用户; 阅读全文
posted @ 2020-10-30 01:54 Linux-1874 阅读(380) 评论(19) 推荐(2) 编辑
摘要: glance服务主要有四部分组成,其中glance-api主要提供服务接口,负责接收对image service api中的镜像文件的查看、下载以及存储请求;glance-registry主要用来存储、处理及获取镜像文件中的元数据信息;比如虚拟机镜像文件大小、类型、创建时间、名称等等;glance database主要用来存储虚拟机镜像文件的元数据信息;不同于glace-registry,它不处理元数据信息,而是将glance-registry处理以后的信息保存下来,我们可以理解glance-registry是将虚拟机的镜像元数据信息通过某种格式写入到glance database中进行存储;最后是存放镜像文件的存储仓库; 阅读全文
posted @ 2020-10-29 14:58 Linux-1874 阅读(337) 评论(5) 推荐(1) 编辑
摘要: 用户在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拿到镜像启动虚拟机; 阅读全文
posted @ 2020-10-28 21:06 Linux-1874 阅读(335) 评论(8) 推荐(1) 编辑
摘要: 简单说openstack是云计算管理平台,主要对云环境中的虚拟机做增删查改;它能够将多台物理设备的资源(cpu/内存等)整合成一个大的资源池,然后根据openstack提供的api接口向用户提供使用;用户可以根据openstack提供的资源池接口来启动虚拟机,管理虚拟机;openstack 主要组成由控制节点和计算节点组成;其中控制节点由多个组件组成,每个组件都是以api的形式向外提供服务,这多个组件共同组成了控制节点,所以控制节点上运行了很多服务;计算节点通常是指提供物理硬件,用于启动虚拟机的物理设备; 阅读全文
posted @ 2020-10-27 23:59 Linux-1874 阅读(431) 评论(2) 推荐(1) 编辑
摘要: 今天我们来聊一款和openvpn有类似功能的软件jumpserver;jumpserver和openvpn都可以让用户从互联网连接公司内网服务器;但通常jumpserver都不会放在互联网;它主要用作运维、开发、以及测试相关人员来利用它连接公司内网服务器,从而实现集中管理公司内网服务器;同时jumpserver还具有权限管理,用户管理,以及监控回放等等功能; 阅读全文
posted @ 2020-10-25 21:44 Linux-1874 阅读(389) 评论(0) 推荐(0) 编辑
摘要: 我们要连接公司内部服务器,而公司内部服务不能直接从互联网连接进去,我们需要通过openvpn实现把用户流量引入到openvpn上,然后由openvpn服务器再做转发,从而实现外部互联网用户能够通过openvpn连接到公司内网服务器;其核心原理就是利用隧道网络的特性,把用户的请求报文,通过封装两个ip首部,在到达openvpn时,由openvpn解包,在把用户原生的请求报文转发给内网服务器,从而实现从互联网连接公司内网服务器的需求; 阅读全文
posted @ 2020-10-23 19:47 Linux-1874 阅读(151) 评论(0) 推荐(0) 编辑
摘要: kafka是基于发布/订阅模式的一个分布式消息队列系统,用java语言研发,是ASF旗下的一个开源项目;类似的消息队列服务还有rabbitmq、activemq、zeromq;kafka最主要的优势具备分布式功能,并且结合zookeeper可以实现动态扩容;kafka对消息保存是通过Topic进行分类,发送消息一方称为producer(生产者),接收消息一方称为consumer(消费者);一个kafka集群有多个kafka server组成,我们把每个kafka server称为broker(消息掮客); 阅读全文
posted @ 2020-10-21 21:42 Linux-1874 阅读(369) 评论(0) 推荐(0) 编辑
摘要: Zab协议是为分布式协调服务Zookeeper专门设计的一种 支持崩溃恢复的原子广播协议; 主要作用是在zk集群leader崩溃以后,能够基于此协议选举新leader,并且保证数据最终一致性和完整性;zk客户端连接zk集群中的任何一个节点,发起请求,如果客户端发送读请求,则直接由当前节点响应;如果客户端发送的是写请求,且当前节点不是leader节点,则由当前节点把写请求,转发给leader,由leader进行写事务广播,只有超过集群节点半数的响应允许写,该事务才会被并提交;只有当leader写成功后,leader会通知各follower来同步数据; 阅读全文
posted @ 2020-10-19 22:32 Linux-1874 阅读(418) 评论(0) 推荐(0) 编辑
摘要: sonarqube和扫描器sonar-scanner是可以不在同一主机的;结合sonarqube和扫描器sonar-scanner的工作逻辑,扫描器只需要配置连接sonarqube的相关地址以及对应项目的相关属性,然后扫描器就可以正常工作了;我们可以理解为一个sonarqube平台对应多台server上的sonar-scanner;只要sonar-scanner能够正常的连接到sonarqube,就能把本地server上的项目代码扫描结果写到sonarqube指定的数据库中,通过sonarqube的web平台给予展示; 阅读全文
posted @ 2020-10-17 18:02 Linux-1874 阅读(311) 评论(0) 推荐(0) 编辑
摘要: sonarqube是一款用java语言编写的程序,它主要作用是提供一个web界面,展示扫描分析结果以及系统管理,插件管理等;扫描代码还是sonar-scanner这个插件做的,它的工作原理是sonar-scanner通过识别项目中的sonar-project.properties配置文件中定义的内容,把对应的项目源码进行扫描,把扫描后的结果保存到指定的数据库;然后sonarqube通过连接配置的数据库,把sonar-scanner存入数据库中的数据加载到web界面,从而用户就可以通过web界面查看扫描的项目源码的结果; 阅读全文
posted @ 2020-10-16 00:57 Linux-1874 阅读(551) 评论(2) 推荐(0) 编辑
摘要: pipline 是帮助 Jenkins 实现 CI 到 CD 转变的重要角色,是运行在 jenkins 2.X 版本的核心插件,简单来说 Pipline 就是一套运行于 Jenkins 上的工作流框架,将原本独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂发布流程,从而实现单个任务很难实现的复杂流程编排和任务可视化,Pipeline 的实现方式是一套 Groovy DSL,任何发布流程都可以表述为一段 Groovy 脚本。 阅读全文
posted @ 2020-10-14 22:11 Linux-1874 阅读(282) 评论(0) 推荐(0) 编辑