部署harbor服务器(https_http)
1、下载官方的harbor离线包https://github.com/goharbor/harbor/releases
2、下载后上传到服务器并解压
3、修改harbor.yml4、https需要生成签证mkdir ssl
#生成私有key
openssl genrsa -out ~/harbor-install/harbor/ssl/harbor-ca.key
ll ssl/
touch /root/.rnd
#签证
openssl req -x509 -new -nodes -key ~/harbor-install/harbor/ssl/harbor-ca.key -subj "/CN=harbor.dujie.com" -days 7120 -out ~/harbor-install/harbor/ssl/harbor-ca.crt
5、安装docker-composecurl -L "https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname ...
rsync+inotify 实时同步备份
rsync+inotify 实时备份目标服务器:
yum -y install rsync
vim /etc/rsyncd.conf
log file = /var/log/rsyncd.log
pidfile = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
secrets file = /etc/rsync.password
[backup]
path = /mnt2/backup/39.97.84.214
comment = sync etc from client
uid = root
gid = root
port = 873
ignore errors
use chroot = no
read only = no
list = no
max connections = 200
timeout = 600
auth users = root
#说明:
vim /etc/rsyncd.conf //增加以下内容
log file = /var/log/rsyncd.log #日志文件位置,启动rsync后自动产生 ...
服务器压力测试
服务器压力测试是检验服务器性能稳定性的最有效方式。在利旧场景中,业务还未部署的情况下,可以通过对服务器进行简单压力测试,提前暴露硬件问题。本文以基于3.10内核的Linux CentOS 7操作系统下压力测试为例
注意:不要在生产服务器或已经部署业务的服务器上操作,可能会造成业务不可用、数据丢失,请谨慎操作。
一、下载测试工具
CPU测试工具stress下载地址:https://fossies.org/linux/privat/stress-1.0.4.tar.gz
磁盘测试工具fio下载地址:https://brick.kernel.dk/snaps/fio-2.1.10.tar.gz
内存测试工具memtester下载地址:https://fossies.org/linux/misc/memtester-4.5.0.tar.gz
1、安装cpu测试工具stress
tar xf stress-1.0.4.tar.gz
cd stress-1.0.4
./configure
make
make install
...
ab命令压测
yum -y install httpd-tools
ab命令参数:
-n 即requests,用于指定压力测试总共的执行次数。
-c 即concurrency,用于指定的并发数。
-t 即timelimit,等待响应的最大时间(单位:秒)。
-b 即windowsize,TCP发送/接收的缓冲大小(单位:字节)。
-p 即postfile,发送POST请求时需要上传的文件,此外还必须设置-T参数。
-u 即putfile,发送PUT请求时需要上传的文件,此外还必须设置-T参数。
-T 即content-type,用于设置Content-Type请求头信息,例如:application/x-www-form-urlencoded,默认值为text/plain。
-v 即verbosity,指定打印帮助信息的冗余级别。
-w 以HTML表格形式打印结果。
-i 使用HEAD请求代替GET请求。
-x 插入字符串作为table标签的属性。
-y 插入字符串作为tr标签的属性。
-z 插入字符串作为td标签的属性。
-C 添加cookie信息,例如:" ...
centos7 安装svn服务器
一、安装svn服务器[root@svnserver ~]# yum -y install subversion
查看svn 安装位置,可以用以下命令:
[root@svnserver ~]# rpm -ql subversion
/etc/subversion
/etc/sysconfig/svnserve
/run/svnserve
/usr/bin/svn
/usr/bin/svnadmin
/usr/bin/svndumpfilter
/usr/bin/svnlook
/usr/bin/svnrdump
/usr/bin/svnserve
/usr/bin/svnsync
/usr/bin/svnversion
/usr/lib/systemd/system/svnserve.service
/usr/lib/tmpfiles.d/svnserve.conf
/usr/share/bash-completion/completions/svn
...
..
...
二、创建版本库目录(此仅为目录,为后面创建版本库提供存放位置选择在var路径下创建版本库,当前处于根目录下,一次性创 ...
iptables相关规则
一、表与链
filter表
主要和主机自身相关,真正负责主机防火墙功能的(过滤流入流出主机的数据包)filter表示iptbales默认使用的表,这个表定义了3个链(chains)
INPUT
负责过滤所有目标地址是本机地址的数据包,就是过滤进入主机的数据包
FORWARD
负责转发流经主机的数据包。起转发的作用。NAT模式,net.ipv4.ip_forward=0
OUTPUT
处理所有源地址是本机地址的数据包,就是处理从主机发出去的数据包
NAT表:
负责网络地址转换的,即来源与目的IP地址和port的转换。 应用:和主机本身无关,一般用于局域网共享上网或者特殊的端口转换服务相 关。使用场景:
用于企业路由(zebra)或网关(iptables),共享上网 (POSTROUTING)
做内部外部IP地址一对一映射(dmz),硬件防火墙映射IP到内部服务 器,ftp服务(PREROUTING)
WEB,单个端口的映射,直接映射80端口(PREROUTING) 这个表定义 了3个链,nat功能相当于网络的acl控制。和网络交换机acl类似。
...
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 ...