11 2020 档案
摘要:
puppet是一个IT基础设施自动化运维工具,它能够帮助系统管理员管理基础设施的整个生命周期;比如,安装服务,提供配置文件,启动服务等等一系列操作;基于puppet,可实现自动化重复任务、快速部署关键性应用以及在本地或云端完成主动变更和快速扩展架构规模等;它遵循GPL协议(2.7.0以前),基于ruby语言开发,2.7.0以后使用apache 2.0协议;
阅读全文
摘要:
我们试想一个场景,我们要监控一个集群,这个集群有100台物理主机,每个物理主机都要监控cpu,内存,磁盘等等,一台服务器平均监控项为20个,那么100台服务器就要2000个socket连接;这意味着zabbix server要有2000个socket连接需要维持;这样一来无疑对zabbix server性能有很大的影响;为了降低zabbix server连接socket数量过大而带来的性能消耗,此时zabbix server就应该委托其他主机来代理收集数据;这个代理就是zabbix proxy;
阅读全文
摘要:
SNMP的工作机制SNMP网络元素分为NMS和Agent两种: NMS(Network Management Station,网络管理站)是运行SNMP客户端程序的工作站,能够提供非常友好的人机交互界面,方便网络管理员完成绝大多数的网络管理工作。 Agent是驻留在设备上的一个进程,负责接收、处理来自NMS的请求报文。在一些紧急情况下,如接口状态发生改变等,Agent也会主动通知NMS。 NMS是SNMP网络的管理者,Agent是SNMP网络的被管理者。NMS和Agent之间通过SNMP协议来交互管理信息。
阅读全文
摘要:
在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去采集数据,否则就没有数据;
阅读全文
摘要:
简单说zabbix的网络发现功能,它能帮助我们在我们指定的网段内扫描主机,当扫描到对应网段有符合我们定义的扫描规则时,它就会触发一个discovery事件,而对应action监听到对应的事件发生后,就能触发action的操作,比如把某主机添加到zabbix,然后链接指定的模板等等;这样一来我们要想去监控一个集群,我们只需要定义怎么去发现主机的规则和监听对应discovery事件的action,就能够完成一个集群的快速监控;
阅读全文
摘要:
在zabbix中宏分内建宏和自定义宏,所谓内建宏就是zabbix中原生就有的宏,我们可以直接调用;自定义宏就是我们自己按照需求定义的一个宏;除了按照这种方式划分宏,我们也可以按照宏的作用范围来划分;比如定义在某一个主机之上,其作用域仅对该主机生效的宏我们叫主机宏,这种宏作用范围小,但优先级很高;除了主机宏还有模板宏,全局宏;所谓模板宏就是定义在某个模板上的宏,其作用域是针对链接了该模板的所有主机,其优先级要略小主机宏;全局宏是指作用整个zabbix的宏,其优先级最小,生效范围是zabbix上的所有调用了该宏主机;
阅读全文
摘要:
在zabbix中监控项(item)是一个核心的东西,所有监控都是围绕监控项展开的,可以说没有监控项就没有我们想要的指标数据;所以简单讲监控项就是被监控对象的指标数据,通常这个被监控的对象我们称为主机(host),它可以是一个网络设备或一台服务器,用ip地址或dns域名指定;一台主机可以是属于一个或多个主机组(host group),所谓主机组就是多台主机的相同集合,用来逻辑的将主机分组,方便统一标识和管理;比如一台server它可以是tomcat主机组,也可以是nginx主机组,不同主机组可能有不同的监控项;
阅读全文
摘要:
首先zabbix的配置、管理以及展示都是通过zabbix web GUI这个组件进行的,管理员通过zabbix web GUI把要监控的主机、监控项、触发器等等一系列配置写进zabbix-database,然后zabbix-server到数据库中拿到对应的配置,进行应用;zabbix-server通过配置信息定义的各个信道,去采集对应主机或设备上要监控的指标数据,将采集到的数据进行处理以后存放到数据库,最后通过web GUI到数据库取数据进行展示;
阅读全文
摘要:
使用mongodump/mongorestore这组工具来逻辑的备份数据,它备份出来的数据是BSON格式,BSON是一种二进制格式,通常无法使用文本编辑器直接打开查看其内容,对人类的可读性较差,但它的优点是保存的文件体积要小;使用这组命令导出的数据,在恢复是依赖mongodb版本,不同版本导出的BSON格式略有不同,所以恢复时,可能存在版本不同而导致恢复数据失败的情况;另外一组是mongoexport/mongoimport,这组工具导出的数据是json格式的数据,通常我们可以使用文本编辑器打开直接查看,对人类的可读性较好,但体积相对BSON格式的数据要大,恢复时不依赖版本;
阅读全文
摘要:
简单讲访问控制就是指,哪些用户可以访问哪些资源,对资源有哪些操作(权限);在mongodb中我们把数据库、或者集合叫做资源;也就说访问控制是用来限制某些用户对数据库或集合的操作;我们在mysql数据库中,我们通过给账号授权的方式达到控制哪些用户可以从哪些主机访问数据库,对数据库有哪些操作;其中账号由用户名称和主机地址构成;在mongodb中采用的不是用户+主机地址的方式,而是通过给用户赋予一个或多个角色,这个角色或多个角色的所有权限就是这个用户拥有的权限;默认情况mongodb是没有启用访问控制的,所以只要能够连接上mongodb实例,我们就可以在其上做任何操作,在某种程度上,这是一种极为不安全的方式,为了杜绝这种不安全的访问方式,我们需要对mongodb进行访问控制;
阅读全文
摘要:
在mongodb分片集群中,通常有三类角色,第一类是router角色,router角色主要用来接收客户端的读写请求,主要运行mongos这个服务;为了使得router角色的高可用,通常会用多个节点来组成router高可用集群;第二类是config server,这类角色主要用来保存mongodb分片集群中的数据和集群的元数据信息,有点类似mogilefs中的tracker的作用;为了保证config server的高可用性,通常config server也会将其运行为一个副本集;第三类是shard角色,这类角色主要用来存放数据,类似mogilefs的数据节点,为了保证数据的高可用和完整性,通常每个shard是一个副本集;
阅读全文
摘要:
在mongodb中对数据做冗余的方式有两种,一种是主从架构(master/slave),这种架构和mysql中的主从架构没有什么不同,但是在mongodb中,主从架构的方式几乎没有人用,处于废弃的状态。。另外一种是副本集(replica set),副本集本质上也是主从架构的一种,它和我们刚才说的主从架构,有一个显著的区别,副本及支持故障自动转移,不需要人工干预;所谓的故障自动转移是指当一个副本集中主节点因各种原因宕机或者从节点在一定时间内没有收到主节点发送到心跳信息,此时就会触发从节点重新选举主节点的操作;在多个从节点中选举出来一个主节点以后,其他从节点能够自动指向新选举的主节点同步数据,从而完成这次故障转移;
阅读全文
摘要:
我们在某个字段构建好索引以后,用户在写数据时,通常会额外多一次写io;对于写请求,在没有索引的情况,用户只需要写一次io,有了索引用户每写一条数据,都会对应有一次写索引的io;这样一来在一定程度上对用户的写性能会有影响;但通常我们构建索引都是在读多写少的场景中使用;在写请求不是特别多的场景其实多一次写io,比起读请求的压力我们是可以接受的;更何况有些数据库支持延迟写索引,所谓延迟写索引是指用户在插入数据时,它不立即写索引,而是等一段时间再写,这样一来就有效的降低写索引对用户的写请求性能的影响;
阅读全文
摘要:
在mongdb中的数据库和关系型数据库中的数据库类似,都是用来存放多张表格,但在mongodb中,没有表的概念,只有collection(对文档的集合);对于关系型数据库中的行,就相当于mongodb中的document(文档);在关系型数据库中多行数据组成一张表,多张表组成一个库;而在mongodb中是多个文档组成一个collection,多个collection组成一个库;
阅读全文
摘要:
对于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来完成管理卷;
阅读全文
摘要:
openstack是iaas(Infrastructure as a Service)服务模型,所谓iaas指基础设施及服务;它的意思就是把基础设施用服务的方式通过网络对外提供;比如,我们要10台虚拟机;我们可以在openstack的web界面上点点鼠标就能给我们启动10台虚拟机,至于这些虚拟机在哪里,怎么启动的我们不用关心;我们只需要关心我们期望的10台虚拟机是不是能够正常使用,是不是我们期望的配置,网络是不是通畅;简单点讲iaas就是把基础设施以服务的方式对外提供,对用户来讲,它隐藏了基础设施的构建过程;常用的还有其他服务模型,比如saas,paas,lbaas,fwaas等等,这些都是在讲把什么抽象成服务的形式对外提供;这些服务模型的出现,大大简化了传统从底层开始构建的复杂过程;
阅读全文
摘要:
在创建虚拟机之前,用户要选择创建的虚拟机用那个模板进行创建,用那个镜像来安装系统,选择什么网络,安全组策略等等;这些都必须事先创建好;用户选择好必要的组件后;用户就可以把创建虚拟机的需求发送给openstack 控制节点,由openstack的控制节点间的各服务调用,最后创建一个虚拟机实例;这里需要强调一点,在openstack上创建虚拟机不能像我们使用kvm-qemu工具创建虚拟机指定要使用的虚拟cpu,内存,磁盘等等信息;在openstack上创建虚拟机,它是通过模板来定义虚拟机的基础信息的;专业术语叫flavor;
阅读全文