MySQL主从同步配置
主从同步可以相当于实时备份,读写分离还能提高数据库的性能,记录一下主从同步的配置 不停机增加从库可以查看 优雅地给正在运行的MySQL添加从库 一.准备 主从数据库版本最好一致 保证数据库的 uuid 不一致 服务器 ip 地址 MySQL Master 192.168.21.53 MySQL Slave 192.168.21.54 二.操作主数据库操作开启 binlog 这里注意 server-id 主从不能一样, 配置完成重启 mysql 创建用于同步的用户账号登陆数据库 创建用户并授权 授权 未使用的主库主库正在使用(有写入操作)新开一个窗口查看 master 状态 记录二进制文件名 (mysql-bin.000010) 和位置 (747)锁表,禁止写入,当前窗口不能退出,这时候开启另一个终端继续操作 新开一个窗口查看 master 状态 记录二进制文件名 (mysql-bin.000010) 和位置 (747) 将当前数据导出 取消锁表 从服务器操作导入数据(如果需要的话) 修改配置文件 vim /etc/my....
Docker容器间优雅的互联
本文主要介绍如何优雅的让 Docker 容器和 Docker 容器之间相互通信,以及 Docker 容器如何和宿主机进行网络通信。 容器间网络通信docker 容器间通信常见的方式是使用 –link 进行连接,但是 Docker 已经弃用这种方式,并且容器数量一旦一多,–link 会显得很乱。官方推荐使用自定义网络来进行互联。 创建自定义网络 创建容器使用自定义 network比如一个 nginx 容器需要访问 php 容器 这个时候 nginx 可以直接通过 php 来访问 php 容器,打开/etc/hosts 可以发现是 docker 自动帮你添加了解析 容器访问主机服务可以使用容器的网关 IP 来访问(nat 网络),不过使用 ip 不优雅,旧版本的 Docker 可以使用 host.docker.internal 来访问主机,新版本的无法直接访问,可以通过 docker run 增加启动参数来兼容这种方案 之后就可以在容器内通过 host.docker.internal 来访问主机了。 使用固定的 ip 进行通信如果想固定每个容器的 IP,...
Elasticsearch常用API操作
如果有 Kibana 的话,以下所有操作都可以在 Kibana 的 DevTools 页面进行调试,可以免去认证操作。 接口 功能 /_cat/health?v 集群健康状态 /_cat/shards 分片信息 /_cat/nodes 节点信息 /_cat/indices 索引信息 /_cat/allocation?v 磁盘占用 /索引名字/_mapping?pretty 查看 mapping(索引字段类型等) ?v 是详细信息输出 索引查看、创建、删除 索引名字可以通过查看索引接口查看 排序 修改密码 添加角色 查看角色 允许自动创建索引 查看设置 修改设置 修改单个 node 最大分片数 修改索引配置
MySQL常用操作记录
记录一下日常工作中常用到的 MySQL 语句和一些配置等,方便日后查询 用户授权相关创建用户 修改密码 授权 授权的同时修改密码 创建只读账号 创建业务账号 库相关建库 配置文件相关apt 安装的 mysql 配置文件在 /etc/mysql/mysql.conf.d/mysqld.cnf 初始化密码 ubuntu 系统通过 apt 安装的 mysql,需要切换到 root,然后执行 mysql 命令就可以登录(不用密码),对应的用户是 root@localhost当然也可以 cat /etc/mysql/debian.cnf 查看密码。 表名强制转换为小写仅适用于 MySQL 5.7 及以下版本,到了 8.0,只支持初始化时指定该参数,初始化之后,如果修改了该参数,启动就会报错。 配置文件在 [mysqld] 下面新增一行 可以通过执行 sql 查看是否设置成功 查看建库建表语句 binlog查看 binlog 状态 查看 binlog 模式 binlog 配置文件 排序 批量 kill 慢查询 自动 kill 慢 SQL 脚本,并记录...
Kubernetes使用ingress反向代理外部IP
我们平常使用 k8s 的 service 都是自动发现增加 endpoint 的,但是有的时候集群外的服务我们又想用 k8s 的 ingress 来统一做入口,就会涉及到自定义 endpoint 创建 service 创建 endpoint 创建 Ingress
Kafka常用操作记录
经常用到的 Kafka 命令记录以下,方便查找。kafka 的搭建可以参考这篇文章 Kafka和zookeeper搭建 注意: –bootstrap-server 参数配置的 kafka 地址需要根据 kafka 监听地址来判断, 如果监听的是自己的 ip 而不是 0.0.0.0, 那就不要配置 localhost, 改用 ip 地址. Topic 操作 kafka 删除 topic 有可能提示 marked for deletion 这种情况下, 需要停止所有的生产者和消费者 消费组操作 控制台生产消费 控制台查看最新消息查看一个 topic 的每个 partition 的 offset 根据每个 partition 的 offset 来消费最新消息 调整过期时间
编译安装Nginx记录
通常来说编译不通过都是因为系统环境不满足条件,如缺少包等,本文以 CentOS 7 系统为例,其中有些包如 xxx-devel 在 ubuntu 下一般都是叫做 xxx-dev 的,实在找不到可以使用 apt-file 查找文件属于哪个包。 需要准备好这些包(不用监控可以不用准备 nginx-module-vts): 全部解压,然后进入 nginx-1.22.0 目录操作 首先运行一遍 configure 命令 nginx-module-vts 是监控模块,如果不用监控,可以将这一行删除user group prefix 这些参数只是个默认值,是可以被配置文件的配置覆盖的 常见报错解决 ./configure: error: C compiler cc is not found checking for --with-ld-opt="-ljemalloc" ... not found checking for zlib library ... not found You need Perl 5. 开始编译单核心编译多核...
Kubernetes 绑定Hosts的正确姿势
有的时候我们需要在容器里面绑定 hosts,比如我们用 logstash 需要消费 kafka 消息,但是 kafka 监听的地址是 hostname,这个时候就需要绑定 hosts(规范一点是做解析)在容器里面绑定 hosts 常见的方法一种是挂载主机的 hosts 文件,一种是修改容器的启动 CMD,每次启动修改 hosts,这两种方法都有个缺点,就是不受 kubelet 管理了,默认的 hosts 内容也会被覆盖掉在 k8s 环境下有更好的解决方案:那就是让 k8s 自己来管理 使用 hostAliases 来绑定 hosts 进入容器查看 hosts 文件 这个 hosts 包括两个部分,一部分是容器自带的 hosts,另一部分是我们自己添加的 在 docker 下绑定 hosts运行时候修改docker 可以通过 –add-host 参数来添加 hosts 信息到容器的/etc/hosts 文件中 构建时修改Dockerfile 中,可以在 CMD 命令下进行修改,在 RUN 里面修改会提示文件只读无法修改。 在 docker-c...
Nginx Ingress 定义多种日志格式
生产环境有个项目需要打开 nginx 日志的 request_body 日志记录,但是如果把默认的日志格式改掉的话,日志量就太大了,所以查了一下针对某个域名进行搜集不同的日志。 k8s 的 ingress 其实就是 nginx 封装了一层,所以 nginx 可以做的,ingress 也都可以做,nginx 我们知道可以定义不同的日志格式,然后不同的虚拟主机来引用就好了。先查看文档,发现了 nginx-ingress 有一个叫 http-snippet 的参数,意思就是在 http 块下面增加一段原生的 Nginx 配置 在 configmap 里面增加一个新的日志格式配置我们可以在 ingress-nginx 的 configmap 里面添加一个新的日志格式: 然后修改对应的 ingress 资源
使用Systemd Timesyncd服务来同步Linux时间
现代 Linux 发行版都采用 systemd 管理系统,systemd 体系也提供了基础的 timesyncd 服务来实现 SNTP 客户端,可以替代传统的 ntpd 来实现主机 NTP 同步 (客户端)。虽然不能作为 NTP 服务器,但是精简的 systemd-timesyncd 可以实现非常轻量级的时钟同步功能。 systemd-timesyncd 是通过网络提供系统时钟同步的服务,实现了 SNTP client。和 NTP 实现 chrony ntp 服务不同, systemd-timesyncd 只实现客户端功能,而不是实现完整的 NTP,聚焦于从远程服务器查询时间并同步到本地时钟。除非你需要需要为网络中其他 NTP 客户端提供服务或者需要连接本地硬件时钟,否则一个简单的 NTP 客户端,例如 systemd-timesyncd ,往往是最好的解决方案。这个时钟同步客户端运行只需要最小的权限。每次新的 NTP 同步请求发起,timesyncd 服务就把当前时钟保存到磁盘,并使用它来矫正启动时的系统时钟,这样就适合用于缺少 RTC 的设备,例如 Raspberry Pi ...

