资源生命周期“学长,帮忙创建几台机器”,“学长,这几台机器的帮忙加下监控”,“学长,这几台机器可以下线了”,”学长…哎…哎…别跑"…这就是运维工作的常态看似杂乱无章的琐碎小事,实则万法归一,殊途同归:资源的生命周期管理。没错,运维工作的本质就是资源的生命周期管理。所谓的资源正是你们所熟知的服务器、db、redis、s3以及流量等计算资源、存储资源和流量资源,而生命周期则大致包含创建、部署
为了实现单点登录的功能,考虑将kubesphere 通过gitlab的oauth2接入单点登录系统, 查看了官网kubesphere的说明,kubesphere3.1已经开始支持oauth登录功能,并且已经集成了github登录方式,但却没有gitlab现成支持,于是,出于偷懒的念头,投机取巧的以github的配置替代,几次折腾下来,gitlab登录失败了,看来只能老老实实的查看源码,按照官方的指
cni plugin
aws的官方硬件维护通告往往会提前几周发出来,让客户选择合适的时间做重启或者迁移等预防措施,从而避免硬切换带来的稳定性损失,但是,这样重要的通知却只值显示在控制台上非常不起眼的地方,很容易被忽略而引发故障,因此通过 Lambda+sns 将维护消息接入到企业微信中大致逻辑: 1.使用CloudEvent定期触发Lambda函数,获取ec2/rds中待维护的实例,将消息发送给sns 2.公司
log-pilot 是阿里开源的一款容器日志收集项目,具有动态伸缩、动态配置等特性。它的核心原理是:监听docker events,自动配置与重载filebeat/fluentd来达到日志收集随容器的动态调度而自动伸缩的效果源码分析整个项目的核心是:Polit 结构体Politer 接口Polit主要监听 docker 容器事件并获取容器日志挂载目录、标签、环境变量等信息,动态生成filebeat
导言对 docker 略有所知的人应该了解,docker ip 是仅存在于宿主机的 nampaces 中,在真实的物理网络中是不配有拥有地位的, 即不存在对应的路由和 mac 地址的,因此就无法进行数据包的转发和路由, 这就造成了分属于不同宿主机上的 docker 无法通信的难题聪明如你可能想到利用 nat 端口映射的方式解决;在服务器数量不多的简单场景下,我们确实可以这样做,一顿操作,将 doc
整体架构mysql由于 mysql slowlog 与cloudwatch log集成,因此只需要在控制台配置RDS,将slowlog 将log 直接输出到cloudwatch log 中即可在 cloudwatch logs 控制台 配置 将cloudwatch logs 输出到 elasticsearch,AWS会自动生成相应的lambda函数,通过Lambda最终将日志传输到elastics
利用AWS Codebuild 从bitbucket获取代码构建并输出到S3上,再通过CodeDeploy 自动部署到测试或者生产环境CodeBuild: 支持分支 支持maven私服 自定义构建规范文件 CodeBuild的运行,需要向代码根目录中添加构建规范文件buildspec.ymlphases: install: commands: - cp ./deploy/settings
笔者在工作中经常接到这样的需求:利用现有的 redis 快照生成一个新的 redis 实例,并提供新实例的域名解析;由于生成 redis 和域名解析记录都是耗时操作;因此,顺理成章的把它构造成一个简单的生产者 - 消费者模型:生产者利用 redis 快照生成新的实例将新实例 id 传入队列消费者接受队列消息中 id 并更新 dns 解析到新的实例上代码如下:# 省略具体的业务逻辑代码,主要实现生产
只赋予用户s3某个bucket的读写权限编程访问{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["s3:ListBucket"], "Resource": ["arn:aws:s3:::test"] }, { "Effe
1.下载 dashboard.yaml文件 我安装的k8s版本为1.5.2,从github下载相近的dashaboard版本 wget https://raw.githubusercontent.com/kubernetes/dashboard/v1.5.0/src/deploy/kubernetes-dashboard.yaml&nbs
众所周知,mysql slow log中很多sql 语句结构和对象是相同,只是其中变量不一样,对于这样的sql,我们完全可以将其归为一类,统计其执行次数、执行时间平均值等参数,而pt-query-digest恰好就是这样一款工具,能够对slow sql 进行归类、分组和分析,统计同一类sql多次运行后的参数:max、min、avg、count等:# Query 6:
Ansible常用的模块路人皆知: copy command raw shell yum…..,但这些模块仅仅只是Ansbile众多模块中的几个核心模块而已,除此之外,Ansible涵盖了更为庞大的额外模块,涉及到网络、监控、服务器硬件、云产品、存储设备等等,甚至还有数据库,几乎涉及到了所有的IT软硬件产品Ansible 的官方文档将庞大的额外模块划分了几个大类1.Cloud
网易云对象存储的访问日志默认按小时生成一个日志文件,不利于统计当日整体数据,于是考虑将多个日志文 件合并到一个文件中 1.安装网易云python sdk pip install nos-python-sdk 2.编辑python 脚本 #!/usr/bin/evn python # -*- coding:utf-8
Docker 的多种网络模式中,bridge的网络模式是用于同一台宿主机上的docker之间的互通,如果要实现多台宿主机上docker之间跨节点的通讯就需要借助overlay网络在 docker swarm 模式中,通过 docker service create 创建的容器默认会使用名为ingress的overlay网络模式,在这种网络模式下,service会在不同节点(宿主机)上建立容器,不同
boto是AWS的Python SDK,可以利用boto自动生成ec2的存储卷快照,实现ec2数据的备份1.安装boot pip install boto ,如果没有安装pip,需要提前安装2.配置boto配置文件 ~/.aws/credentials #设置aws认证凭据 [default] aws_access_key_id&
1.利用casperjs 爬取新浪股市排行数据,生成数据文件//获取新浪股票排行 var casper = require('casper').create({ waitTimeout: 10000, verbose:true,
MaxScale 是 MariaDB 的产品之一,可以很方便的实现读写分离方案;并且提供了读写分离的负载均衡和高可用性保障。一、安装配置前提:先配置好mysql的主从,Maxscale会自动的根据主从复制信息来判断Master和slave注:不能配置mysql互为主从,如果互为主从,两台都会被认为slave,在这种情况下,写请求会被拒绝,只接受读请求。1.1.安装官网下载对应的rpm包,
在centos上使用AWS官方的硬盘和内存监控脚本,会发现脚本出错,无法正常工作,这是因为aws的官方文档中提到该脚本没有在centos上做过测试,并不能保证脚本能正常使用 那么该如何解决呢,需要安装以下软件:yum install -y perl-CPAN exportPERL_MM_USE_DEFAUL
xtrabackup在备份的时候同时读取redolog和bin-log position,最后将redolog应用到数据库文件中,所以能够实现热备不停机、不锁表将master的数据同步到slave前提:安装好xtrabackup,mysql 开启binlog步骤1:创建一个备份并prepareTheMaster$ innobackupex --defaults-file=/opt/mysql/my
python 通过ansible 获取服务器基本信息:利用ansible的 setup 模块可以返回服务器的详细信息 所有的信息都是以字典的格式显示的[root@e tmp]# ansible 192.168.137.152 -m setup 192.168.137.152 | SUCCESS =
目的:利用ansible检查后端服务器数据每天备份情况 平台:Django1.views.py 中添加函数import subprocess import shlex def backup_status(request): arg_mysql = "du -sh /backup/m
首先需要了解ssh 普通用户登陆的做法:1.普通用户ssh 免密码登陆举个例子:[A@source ~]$ssh user@10.0.0.1表示当前用户A以用户user登陆10.0.0.1,如果省略用户, 即:ssh 10.0.0.1,表示以当前用户A登陆这里记住两个用户:A: 当前用户,执行ssh 的用户user:登陆10.0.0.1的用户, 这个用户是属于10.
ELK系统收集的nginx access日志内容默认都是作为一个整体放在messages字段中的,无法对诸如upstream_response_time、upstream_status等重要字段进行单独分析比较,因此,就需要使用logstash的grok功能从access日志中匹配提取各个变量1.首先确定nginx的日志格式 在nginx的配置文件中设置日志格式:&
Django中的常用的函数format_html,用于格式化生成html模板def format_html(format_string, *args, **kwargs): """ Similar to str.format, but 
在logstash的输出中,每行日志开头都会加上timestamp. ,对于mysql的slowlog和tomcat log多行输出格式,就显得画蛇添足了,可读性很差,如:因此需要使用logstash的 multiline 多行合并功能在logstash的配置文件中加入过滤规则:filter { #slowlog每一段完整的日志都是以"#&nb
django orm 关联表数据,即sql的多表查询例如两个表:Apply表中定义了字段position为foreignkey指向job表的id字段1.通过父表job查找子表apply中的字段: job.objects.values( 'id', 'job_type', 'apply__date_created') apply__date_creat
一些工作中用到的命令,用到方恨没记住,所以记录下######MySQL#############初始化mysql,即安装mysql系统表scripts/mysql_install_db --user=mysql --basedir=/opt/mysql --datadir=/opt/mysql/data --defaults-file=/opt/mysql/my.cnf#查看binlo
python中使用了MySQLdb ,执行的时候却报错: cursor.execute("insert into hq_rank_xueqiu(symbol,name,current) values(%s,%s,%.1f)",('12','123',12.2)) MySQLdbTypeError: float argument
nginx缓存配置vim nginx.conf:user nginx;worker_processes 8;error_log /var/log/nginx/error.log;#error_log /var/log/nginx/error.log notice;#error_log /var/lo
Copyright © 2005-2023 51CTO.COM 版权所有 京ICP证060544号