pipeline分布式构建和pipline基础语法
一、pipeline官方介绍: http://jenkins.io/2.0
pipeline是帮助Jenkins实现CI到CD转变的重要角色,是运行在jenkins2.x版本的核心插件,简单来说,pipeline就是一套运行与Jenkins上的工作流框架,将原本独立运行与单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂发布流程,从而实现单个任务很难实现的复杂流程编排和任何可视化,pipeline的实现方式是一套GroovyDSL,任何发布流程都可以表述为一段Groovy脚本。
1、pipeline优势
可持续性:jenkins的重启或者中断后不影响已经执行的pipeline Job支持暂停:pipeline可以选择停止并等待人工输入或批准后再继续执行。可扩展:通过groovy的变成更容易的扩展插件。并行执行:通过groovy脚本可以实现step,stage间的并行执行,和更复杂的相互依赖关系。
2、pipeline语法Stage:阶段,一个pipeline可以划分为若干个stage,每个stage都是一个操作,比如clone代码、代码编译、代码测试和代码部署,阶段是一个 ...
promehteus+grafana
一、Promethes和zabbix对比
对比项
Prometheus
zabbix
Prometheus优势
zabbix优势
管理
二进制文件启动
LNMP+编译
轻量级server,便于迁移和维护
配置
配置文件
图形化
更好的支持自动化配置
成本低
client
丰富的client库
zabbix_agent自定义脚本
为各种中间件、应用提供专业的exporter,监控项更全面
支持自定义监控项,对监控涉及者的格局要求较高
数据存储方式
Prometheus TSDB
MySQL
监控数据以时间维度统计情况较多,时序数据库更实用与监控数据的次敦促,按时间索引性能更高
Mysql比较常用
数据处理
PromQl
MySQL
PromQL计算函数丰富,统计维度广
同上
二次开发
丰富的SDK
api
提供了Go、Java/Scala、Python、Ruby等sdk二次开发更便捷
api适配较为常用
对云环境的支持
原生支持容器监控
更适合物理机监控
自动发现容器,更好的适配k8s
告警方式
可按照标签分组,收敛
在次数上收敛
告警 ...
生成随机数
1、通过系统环境变量($RANDOM)实现
[root@i-1pbhgm8j ~]# echo $RANDOM | md5sum | cut -c 5-11
3edb8e2
urandomNum=`tr -dc 'a-z' </dev/urandom | head -c 10; echo`
2、通过openssl产生随机数
[root@i-1pbhgm8j ~]# openssl rand -base64 30
K2M6kqd//nWnOcn0l+jZdQPLhojKwuiqKJmZjj5H
这里后面的数字30是产生随机数的位数
3、通过时间data产生随机数
[root@i-1pbhgm8j ~]# date +%s%N
1507534201869428907
4、通过/dev/urandom配合chksum生成随机数
[root@i-1pbhgm8j ~]# head /dev/urandom | cksum
3529852297 1731
5 ...
SonarQube代码扫描
一、代码质量测试 1. 代码测试工具 SonarQube:
官方网站:https://www.sonarqube.org/
SonarQube 是一个用于代码质量管理的开放平台,通过插件机制,SonarQube 可以集成不同的测试工具,代码分析工具,以及持续集成工具。与持续集成工具(例如 Hudson/Jenkins等)不同,SonarQube并不是简单的把不同的代码检查工具结果(例如FindBugs,PMD等)直接显示在web页面上,而是通过不同的插件针对这些结果进行再加工处理,通过量化的方式度量代码质量的变化,从而可以方便的对不同规模和种类的工程进行代码质量管理。在对其他工具的支持方面,Sonar不仅提供了对IDE的支持,可以在Eclipse和Interlij IDEA 这些工具里联机查看结果,同时Sonar还对大量的持续集成工具提供了接口支持,可以很方便的在持续集成中使用SnoarQube的插件还可以对java以外的其他编程语言提供支持,对国际化以及报告文档化也有良好的支持。 2. 安装sonarqube在jenkins-master中安装sonarqube
[r ...
扩容根分区
基本的逻辑卷管理概念:
PV(Physical Volume)- 物理卷物理卷在逻辑卷管理中处于最底层,它可以是实际物理硬盘上的分区,也可以是整个物理硬盘,也可以是raid设备。
VG(Volumne Group)- 卷组卷组建立在物理卷之上,一个卷组中至少要包括一个物理卷,在卷组建立之后可动态添加物理卷到卷组中。一个逻辑卷管理系统工程中可以只有一个卷组,也可以拥有多个卷组。
PE(Physical Extent)- 物理块
LVM 默认使用4MB的PE区块,而LVM的LV最多仅能含有65534个PE (lvm1的格式),因此默认的LVM的LV最大容量为4M*65534/(1024M/G)=256G。PE是整个LVM最小的储存区块,也就是说,其实我们的资料都是由写入PE 来处理的。简单的说,这个PE 就有点像文件系统里面的block 大小。所以调整PE会影响到LVM 的最大容量!不过,在 CentOS 6.x 以后,由于直接使用 lvm2 的各项格式功能,因此这个限制已经不存在了。
一、增加新硬盘并分区[root@test ~]# df -h
...
MySQL 日志管理
一、工具日志管理1. 错误日志配置:默认文件存放在数据目录下,HOSTNAME.err手动指定路径:
vim /etc/my.cnf
log_error=/data/mysql/data/mysql.log
2. 二进制日志二进制形式,记录MySQL 工作过程中,所有变更类(除了select和show)的操作日志可以理解为记录的是SQL语句,逻辑性质日志。配置:
server_id=51
log_bin=/data/binlog/mysql-bin
binlog_format=row
sync_binlog=1
说明:/data/binglog 提前创建好,并且授权,和数据目录放在不同的位置 mysql-bin 叫做文件名前缀
binlog_format=row 二进制日志记录格式
sync_binlog=1 双一标准,每次事务提交立即刷写binlog
[root@db01 ~] ...
MySQL MHA 高可用
一、MHA架构结构
Manager
masterha_manger 启动MHA
masterha_check_ssh 检查MHA的SSH配置状况
masterha_check_repl 检查MySQL复制状况
masterha_master_monitor 检测master是否宕机
masterha_check_status 检测当前MHA运行状态
masterha_master_switch 控制故障转移(自动或者手动)
masterha_conf_host 添加或删除配置的server信息
Node
save_binary_logs 保存和复制master的二进制日志
apply_diff_relay_logs 识别差异的中继日志事件并将其差异的事件应用于其他的
purge_relay_logs 清除中继日志(不会阻塞SQL线程)
二、MHA Failover的过程
通过masterha_manager ...
MySQL 优化
一、优化工具1.1 OS
CPU : top , htop, PS ,w ,glanceMEM : top , htop ,vmstat ,sar ,freeIO : iotop ,iostat ,iftopFS : xfs_info ,df -Th , fdisk -l
1.2 数据库
show statusshow variablesshow indexshow processlistshow slave statusshow engine innodb status\Gdesc /explainslowlogmysqladmin扩展类深度优化:pt系列mysqlslapsysbenchtpc-cinformation_schemaperformance_schemasys
1.3 工具使用方法介绍1)top
H
zsc
[root@db01 ~]# cat /data/mysql/data/db01.pid
1856
[root@db01 ~]# top -p 1856
%Cpu(s):
0.0 us : 用户 ...
MySQL主从复制(Replication)
一、主从复制1.主从复制介绍两台MySQL实例,通过binlog 自动 “实时” 同步数据通常可以用作:辅助备份+ 架构演变
2.主从复制搭建
两台以上MySQL实例(server_id不同,port,socket等),确认主从身份
mysql> select @@server_id;
主库开启二进制(binlog)日志
mysql> select @@log_bin;
主库开启复制专用用户:replication slave
mysql> grant replication slave on *.* to repl@'10.0.0.5%' identified by '123';
主库备份恢复到从库
mysqldump -uroot -p456 -S /data/3307/mysql.sock -A --master-data=2 --single-transaction >/tmp/full.sql
mysql -S /data ...
MySQL 备份恢复(mysqldump)
一、mysqldump[root@db01 ~]# mkdir /data/backup -p
[root@db01 ~]# mysqldump -uroot -p123456 -S /tmp/mysql.sock xxxxx
1. 备份基础参数 1)全备 -A
[root@db01 ~]# mysqldump -uroot -p123456 -S /tmp/mysql.sock -A >/data/backup/full.sql
mysqldump: [Warning] Using a password on the command line interface can be insecure.
Warning: A partial dump from a server that has GTIDs will by default include the GTIDs of all transactions,
even those that changed suppressed p ...