通过openresty拦截掉危险的操作。配置文件如下:$ cat docker-compose.yaml version: '3' networks: monitor: driver: bridge services: cerebro: image: lmenezes/cerebro container_name: cerebro
该脚本的功能,类似于 elasticsearch-dump ,二者都是基于scroll来实现的(包括reindex底层也是scroll)。依赖包pip install elasticsearch==7.13.1配置文件vim configs.py# -*- coding: utf-8 -*- # es数据源的信息 es_source_host = ['127.0.0.1:9200'] # 支持
这里简单的罗列了些关于ES的自动化运维过程中可能用到的脚本DEMO创建索引并设置shards数# 省略部分代码 from elasticsearch import Elasticsearch src_es = Elasticsearch(hosts = configs.es_source_host,maxsize=16) dest_es = Elasticsearch(hosts = conf
简单介绍下FEDERATED的使用
最近接管了一套sql server alwayson集群,需要加些监控和告警,简单研究了下github的方案,发现了这种sql_exporter这种更简单,扩展性也超级强。(另一种是通过nodejs的方案监控,费事点,可扩展性也不太好,这里直接pass掉)。github地址:https://github.com/free/sql_exporter wget https://github.com
之前有几台sql server 只有最基础的主机监控,db层面的监控基本为0。这里简单的补充几个,用python包装一下即可集成到数据库巡检任务平台。查询锁等待 use master; WITH CTE_SID ( BSID, SID, sql_handle,name ) AS ( SELECT a.[Blocking_Sess
PG中获取表结构不像MySQL那样show create table xxx \G 那么便捷。1、pg_dump获取表结构2、使用第三方的插件这里介绍下插件的使用方法,具体如下:项目地址: https://github.com/lacanoid/pgddl # 安装插件(我这里使用的是编译安装方式) cd postgresql-14.0/contrib unzip pgddl-master.zi
所有的 Python 开发者都清楚,Python 之所以如此受欢迎,能够在众多高级语言中,脱颖而出,除了语法简单,上手容易之外,更多还要归功于 Python 生态的完备,有数以万计的 Python 爱好者愿意以 Python 为基础封装出各种有利于开发的第三方工具包。这才使用我们能够以最快的速度开发出一个满足基本需要的项目,而不是每次都重复造轮子。Python 从1991年诞生到现在,已经过去28
使用 pyarmor 加密脚本
原文地址个人认为这篇写的特别好,列出了 Production Rediness Review 需要注意的各个潜在风险点。下面是全文内容,对极少部分无关紧要的地方做了删减。Production Readiness生产准备对于生产中的功能或服务的任何新的或更改,本指南中的问题将有助于使这些更改在 GitLab.com 上启用时更加健壮。 在开始之前,请查看手册中的生产准备审查文件。 此问题作为跟踪问题
注意事项:参考官方文档 https://github.com/shayonj/pg-osc DDL变更逻辑,和 pt-osc基本类似:1. 创建一个审计表来记录对父表所做的更改。 2. 获取一个简短的ACCESS EXCLUSIVE锁以将父表上的触发器(用于插入、更新、删除)添加到审计表。 3. 创建一个新的影子表并在影子表上运行 ALTER/migration。 4. 复制旧表中的所有
生产上有几套MSSQL2014alwayson集群,很少需要维护,对此也不太熟悉。最近有个加账号和授权的操作,下面是添加方法备忘。1 在primary节点 执行 创建login CREATE LOGIN user_aaa WITH PASSWORD ='hNhrKSs49DHRgft5', DEFAULT_DATABASE =[master], CHECK_POLICY=OFF, CHECK
对于pxc, 为了避免流控, 可以在导入.sql文件时, 先对文件做处理awk '1;NR%1000==0{print "select sleep(1);"}' xxx.sql > xxx_dba.sql上面的命令每1000行增加一行select sleep(1);, 这样执行频率是1k/s对于mysqldump产生的sql文件, 则需要在导出是指定mysqldump --skip-
使用Python写了个最基本的表结构比对告警脚本, 目前这个版本只能做到发现表结构存在差异的表。后续考虑再迭代下,看如何把差异的表和列的明细也报出来。configs.py 内容如下:# MySQL数据源的信息mysql_source_host = "localhost"mysql_source_port = "3306"mysql_source_user = "dts"mysql_source_p
MySQL版本信息和sql_mode[sb1]> \s--------------mysql Ver 8.0.29 for Linux on x86_64 (MySQL Community Server - GPL)Connection id: 21Current database: sb1Current user: root@localhostSSL: Not i
1、发行版Chrome的改版有很多,除官方Chrome外,个人更喜欢国内改版的 Cent Browser 百分浏览器, 比原生的多了些功能(最喜欢它的鼠标手势)。2、插件推荐AdGuard , 广告拦截,强烈推荐ChromeKeePass ,对接本地KeePass本地密码本,推荐Chrono下载管理器,推荐Clutter Free - Prevent duplicate tabs
周末外面太冷,在家搞了下Prometheus的白屏化运维DEMO。目前只是把后端简单的几个接口搞出来,校验之类的还没加。。。这里先记录下。 后续等后端完成后,把前端也尝试写一下。重点:1、prometheus的target,是存在数据库里面的,只要符合一定的格式即可。 prometheus很早之前就支持了http接口方式动态target发现机制。格式类似这样:2、告警的rules,也是存在数据库里
使用python3.9+django4.1.2 开发程序,部署上线后,admin后台post修改操作有保错。提提示CSRF验证失败. 请求被中断看了下settings.py ,middleware中的csrf校验已经是关闭状态的MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.
MySQL和PG的数据校对
python发送邮件
在群里看到的一个Redis 快速删除数据 小技巧。之前我一直用scan出来再删方式,比较慢,不如本文下面这个方法。 造些测试数据 for i in {1..1000};do echo "set age_$i $i" | redis-cli -c -p 7000 ;done单机 查找数据(每行显示10条记录) redis-cli -c -p 7000 --scan --pattern "age_*"
官方文档https://docs.starrocks.io/zh-cn/latest/administration/deploy_with_docker在使用官方文档的安装的时候,遇到些问题(主要是jdk yum安装的版本变动导致的)。 我这里稍微优化了下,具体记录如下。准备好离线安装包mkdir /usr/local/starrocks -pvcd /usr/local/starrock
参考https://www.modb.pro/db/60164 在PG里面查看表结构,不如mysql那样show create table xx 这样方便。 在PG里面常用如下3种方法:第一种,最朴实的方法就是 pg_dump --schema-only 导出全部的表结构第二种,创建一个function,具体如下:CREATE OR
默认情况下,pt-kill (3.3.1版本) 的执行记录如果是输出到log文件的话,日志里面是不会带上 库名、客户端地址的,类似如下:我们可以简单修改下代码, 让其支持该属性的输出。$ cd /usr/bin/$ pt-kill --versionpt-kill 3.3.1$ cp pt-kill pt-kill_20221028_bak修改前: foreach my $quer
coroot-pg-agent 和 postgres_exporter 的不同之处在于, coroot-pg-agent 主要是根据 pg_stat_statements 这个extension来采集sql维度的指标。 而 postgres_exporter 更关注的是metrics维度的指标。coroot-pg-agent 的部署也很简单,参考官方github即可。
说明: pgenv只能做到单机单实例PG。如果你要搞PG流复制等环境,需要多台机器上部署pgenv,然后各自启动一个PG实例。它做不到单机启动多个PG实例(从这点看的话 不如自行编译的PG 可以改改路径和端口随便启动多个实例出来)适用于临时起个测试实例。仓库地址:https://github.com/theory/pgenv部署很简单:su - postgres (不支持用root启动)
假设有个场景,数据库或者其它中间件的运行时文件句柄等参数设置过低,导致服务不可用或者间歇性不可用。 但是重启服务的代价可能很大,那么我们也可以不重启进程,做到修改某个进程的 limits范围。这里可以使用 prlimit 命令来实现。这里我以MySQL服务为例 $ ps auxf | grep -v grep | grep mysqld mysql 1204 1.3 3.4 7
常见的方法,直接把新的节点加入到现有的MongoDB集群中,让它自己去同步数据,这个方法最简单省事。但是,也会存在一些缺点:1、全量同步期间,集群的负载会变高,如果业务程序的read_timeout write_timeout 设置的比较低可能会有感知。对此可以调大业务程序链接mongodb的几个timeout参数。2、需要事先估算下oplog的大小,防止出现新的节点还处于全量同步的过程中,现有集
kettle 数据抽取
最近有套测试数据库需要从5.6迁移到8.x,用的是逻辑备份迁移方式。试了下pt-show-grants,发现它导出的账号授权语句在8.x里面不再那么好用了。因为8.x下用户和授权被拆分成了create user和grant 这2个步骤。工具不好直接搞,我们还可以用sql拼接下。1 获取待迁移的账号列表SELECT CONCAT('create user "',USER,'"@"',HOST,'";
Copyright © 2005-2025 51CTO.COM 版权所有 京ICP证060544号