ansible
ansible:是基于python开发集合了众多运维工具(puppet,cfengine,chef,func,fabric)的优点,实现了批量系统配置管理,批量程序部署,批量运行命令等功能。不需要客户端
几种常用运维工具比较
puppet:基于ruby开发,采用c/s架构,扩展性墙,基于ssl远程命令执行行对较弱
saltstack:基于python开发,采用c/s架构,相对puppet更轻量级,配置语法使用yaml,使用配置脚本更简单。
anslible:基于python paramiko开发,分布式无需客户端,轻量级,配置语法使用yaml及jinja2模板语言,更墙的远程执行操作
ansible特性:
no agents:不需要在被管控主机上安装任何客户端,更新时,只需在操作机上进行一次更新即可
no server:无服务器端,使用时直接运行命令即可
modules in any languages:基于模块工作,可使用任意语言开发模块
yaml,not code:使用yaml语言定制剧本playbook
ssh by default:基于ssh工作
strong multi-tier solution:可实现多级指挥
lnventory(主机清单):清查;存货清单;财产目录;主机清单
ad-hos(点对点模式):临时的,在ansible中是指需要快速执行的命令行的单条命令,并且不需要保存命令。对于复杂的命令则为playbook。
yaml(非标记语言):列表,字典模式,通过yaml编写一个简单的剧本。
roles(角色扮演):是在ansible中,playbooks的目录组织结构,而模块化之后,成为roles的组织结构,容易读,代码可重写,层次清晰。
git:
git定义:记录开发时间的机器,更好的开发,晚会代码错误带来的损失。
git分类:
1.本地版本控制系统
2.集中化的版本控制系统cvs。Subversion。(svn)
3.分布式版本控制系统
git属于分布式版本控制系统:
1,客户端并不只提取最新版本的文件快照,而是办原始的代码仓库完整的镜像下来。
优点:a.由于任何人每次提取操作,实际上都是一次对代码仓库完整备份,因此近几乎所有的操作都可以在
本地执行,速度就是相当的快,并且可以在网络断开的时候操作任然不受影响,可以频繁的进行提交,更新,等到有网络的时候在上传到远程的镜像仓库就可以了。
b.文档很详细,并且命令行的提示也很到位,用起来比较的新应手,而且很多的设置与操作跟linux操作很相近(不亏是linux之父创作的)。
c.git的分支模型,相当的轻量级,被称为”必杀技“。缺点:
a.每个开发人员都拥有所有的代码,不利于核心代码的保密(如果有重要代码需要保密,则不建议使用git)
集中是版本控制系统最大的毛病就是必须联网菜能工作,如果在局域网内还好,带宽够大,速度够快,如果在互联网上,遇到网速慢的话,肯能10M的文件需要5分钟,者还不的把人憋死啊。
版本库:
又名仓库,可以简单理解成一个目录,这个目录里面的所有文件都可以被git管理起来,没个文件的修改删除,git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”
1.gitk
gitk是一个历史记录的图形化查看器
2.git gui
git-gui 主要是一个用来制作提交的工具
3.gitg
功能跟git-gui类似,可以修改缓存,提交
jenkins
client--->git---->web(git)
rd(开发功能代码--git)---->git(主库)--->编译打包---->运维--->部署到线上
rd(开发功能代码--git)--->git(主库)--->maven(编译打包测试)--->ssh push(发送代码到线上
服务器)--->远程执行线上服务器的发布脚本
开发git--->git主库--->jenkins(git+jdk+tomcat+maven打包+测试)--->发布到tomcat服务器
jenkins:是版我们将代码进行统一的编译打包,还可以放到tomcat容器中进行发布。意思是我们通过配置将以前:编译,打包,上传部署到tomcat中过程交由jemkins,jenkins通过给定的黛米地址URL,将代码拉去到其“宿主服务器”(jenkins的安装位置),进行编译,打包和发布到web容器中
是一个开源的,提供好友操作界面的持续集成(ci)工具,主要用于持续,自动的建构/测试软件项目,监控一些定时执行的任务,jenkins用java语言编写,可在tomcat等流行的servlet容器中运行,也可以独立运行
通长与版本管理工具(scm),构建工具结合使用;常用 的版本控制工具有svn,git构建工具有maven,ant,gradle。
jenkins的主要目标:
是监控软件开发流程快速显示问题,所以能保证开发人员以及相关人员省时省力提高开发效率。
jenkins特性
1,易于安装
2,易于配置
3,生成junit或testng的测试报告
4,文件识别:jenkins能追踪每次建构生成哪些jar包以及使用哪个版本的jar包
5,分布式构建:支持Jenkins能够让多台计算机一起构建/测试
6,插件支持:jenkins可以通过第三方插件扩展,也可以根据团队需要开发插件
7,jenkins中的任务(job)和构建(build):任务是Jenkins的一个执行计划,是一些类操作的结合,构建是jiekins的任务的一次运行
8,Jenkins系统各个组成流程:
1>.开发者检入代码到源码仓库。
2>.CI系统会为每一个项目创建了一个单独工作区,
3>.CI系统会在对应的工作区执行构建过程。
4>.完成够出发通知
5>.构建成功后,这个构建会被打爆并转移到一个部署目标
6>.CI系统通常会根据请求发起相应的操作,即使构建,生成报告,或者检索一些构建高的构建
使用jenkins的理由:
是所有ci产品中在安装和配置上最简单的。
基于web访问,用户界面友好,灵活,还能即使反馈
是基于java开发的
用偶大量的插件。都是开源的,而且可以通过web界面直接安装与管理
keepalived
keepalived:
是集群管理中保证集群高可用的一个服务软件,用来防止单节点故障
keepalived的工作原理:
是vrrp协议为实现基础的,vrrp全程virtual router redundancy protocol,即虚拟路由冗余协议
将N台提供相同功能的服务器组成一个服务器,这个组里面有一个master和多个backup,master上面有一个对外提供服务的vip(该服务器所在局域网内其他机器的默认路由为该vip),master会发组播,当backup收不到vrrp包时就认为master宕掉了,这时就需要根据vrrp的优先级来选举一个backup当master
vrrp协议:
虚拟机路由冗余协议,可以认为是实现路由器高可用的协议,即将N台提供相同功能的路由器组,这个组里面有一个master和多个backup,master上面有一个对外提供服务的vip(该路由器所在局域网内其他机器的默认路由/网关为该vip),master会发组播,当backup收不到vrrp包时就认为master宕掉了,这时就需要根据vrrp的优先级来选举一个backup当master。这样的话就可以保证路由器的高可用了。
keepalived的主要三个模块:
core:模块为keepalived的核心,负责主进程的启动,维护以及全局配置文件的加载和解析。
check:负责健康检查,包括常见的各种检查方式
vrrp:实现vrrp协议的
lvs
lvs的模式分类:
nat模式:后端服务器支持数量10-20台,使用最少两个网段,可以说是3层负载均衡
dr:后端服务器支持数量100+台,使用一个网段,可以说是2层负载均衡
隧道模式:后端服务器支持数量100台左右,异地负载均衡,realserver必须使用公网ip,还得需要服务器支持ip隧道协议
full-nat:数据流向
nginx
1,常用的web服务器有哪些
unix和linux平台下的常用web服务器apache,nginx,lighttpd。tomcat,ibm websphere等。其中目前应用最广泛的web服务i其是apache。windows平台下最常用的服务器则是微软公司的IIS
2,nginx:是一个高性能的http和反向代理服务器,也是一个imap/pop3/smtp服务器
3,nginx的优势:io多路复用
方法有:
1,最传统的多进程并发模型(每进来一个新的i/o流会分配一个新的进程管理。)
2,i/o多路复用(单个线程,通过记录跟踪每个i/o流(sock)的转台,同时管理多个i/o流。)发明他的原因,是尽量多的提高服务器的吞吐能力,在同一个线程里面,通过包开关的方式,来同4,时传输多个i/o流
技术类型有:
1,select,select只能监视1024个链接,
2,poll,去掉了1024链接的显示
3,epoll,epoll可以说是i/o多路复用最新的一个实现,epoll修复了poll和select绝大部分问题,比如epoll现在是线程安全的,不仅告诉你sock组里面数据,还会告诉你具体哪个sock有数据
5,epoll的特点:异步,非阻塞:没进来一个(request)请求,会有一个worker(工人)进程去处理,但是不是全程的处理,这就是异步,如果再有request 进来,他就可以很快再按这种方式处理。这就是非阻塞和IO多路复用。而一旦上游服务器返回了,就会触发这个事件,worker才会来接手,这个request才会接着往下走。这就是异步回调。
6,nginx和apache区别:
静态页面并发,nginx比apache大的多
轻量级的web服务器,速度快
都能做反向代理,但是nginx做反向代理性能好,用的多
apache稳定性高
nginx配置简洁
7,http协议详解:http请求的内容通称为“资源”。“资源”者一概念飞创宽泛,它可以是你能够想到的格式。每个资源都由一个(url)来进行行表示。url及统一资源定位符,他是url的一种。一份文档,一张图片,或所有其他。url包含url,urn
8,url:rul的最常见形式是统一资源定位符(url),它也被称作web地址。
9,urn:urn仅用于命名,而不指定地址
10,统一资源标识符的语法(url):1,协议 2,主机 3,端口 4,路径 5,查询 6,片段
11,HTTP protocol(协议) 概述:http是一种能够获取如html这样的网络资源的通讯协议。他是web上数据交换的基础,是一种client-server协议,也就是说请求通常是由像浏览器这样的接受方发起的。一个完整的web文档是由不同的子文档重新组建而成的,像是文本,布局描述,图片视频,脚本 等等。
客户端:user-agent(代理人):user-agent就是任何能为用户发起行为的工具。
web服务端:就是一个wen server来服务并提供客户端请求的文档。
server只是虚拟意义上:它可以是许多共同分担负载(负载均衡)的一组服务器组成的计算集群,也可以是一种复杂的软件通过向其他计算机发起请求来获取部分或全部资源的软件。proxies(代理):在浏览器和服务器之间,有许多计算机和其他设备转发了http的消息。因为web栈层次结构的原因,他们大多数都出现在传输层,网络层和物理层上,对于http的应用层来说就是透明的(虽然他们可能会对应用层的性能有重要影响)。而还有一部分表现在应用层上的,就叫做proxies了。proxies即可以表现的透明,又可以不透明(看请求是否通过他们),主要表现在这个功能上;
12,HTTP headers (请求头):能够找到Content-Range(内容范围)响应头则表明服务器支持断电续传。nginx服务器默认支持断电续传的,无需做任何额外配置
13,nginx长连接--keepalive:当使用nginx作为反向代理时,为了支持长连接,需要做到两点
从client(客户)到nginx的链接是长连接
从nginx到server的链接是长连接
nginx 专业的web服务器,带有专业的反向代理功能应用率相当高
lvs 专业的web服务,性能优于nginx但是有些功能没有nginx的反向代理好,nginx可以把把坏掉后端服务器剔除,而且在一台后端服务器不能使用的情况下会自动把请求发给下一个后端服务器
haproxy 专业的七层负载均衡 之做负载均衡 只反向代理
proxy配置nginx_http_proxy_module
正向代理 是为客户端做代理
反向代理 是为服务做代理
文件句柄:
在文件i/o中,要从一个文件读取数据,应用程序首先要调用操作系统函数并传送文件名,并选取一个到该文件的路径来打开文件。该函数取回一个顺序号,即文件句柄(file handle),该文件句柄对于打开的文件是唯一的识别依据。要从文件中读取一块数据,应用程序需要调用函数readfile,并将文件句柄在内存中的地址和要拷贝的字节数据传输给操作系统。当完成任务后,在通过调用系统函数累关闭文件。
什么是:rewrite(重写)
rewrite对称url rewrite,即url重写,就是把传入web的请求重定向到其他url的过程。
url rewite最常见的应用是url伪静态化,是将动态页面显示为静态页面方式的一种技术。
通过https访问nginx一般会比http访问慢30%(https方式访问主要是耗nginx服务器的cpu)
优化:
nginx默认使用dhe算法来产生密钥,该加密算法效率很低。可以通过如下命令,删掉了kedh算法。ssl_ciphers all:!keh!adh:rc4+rsa:+high:exp;
zabbix
zabbix监控对象:
数据库:mysql,mariadb,oracle,sql server,db2
应用软件:nginx,apache,php,tomcat
虚拟化:lvs,keepalived,haproxy,rhcs,f5
操作系统:vmware,kvm,xen
硬件:服务器,存储,网络设备
网络:网络环境
监控收集信息方式:
被动模式,代理上报,节约资源
主动模式,服务器手机,及时性
zabbix和nagios的区别
1,nagios图形不是特别好,也可以安装图形插件,但是也不怎么好看
2,nagios一般情况下如果需要图形可以和cacti配合使用
3,cacti
-------------------------------------------------------------张金阳老哥贡献