MySQL主从同步配置
主从同步可以相当于实时备份,读写分离还能提高数据库的性能,记录一下主从同步的配置 不停机增加从库可以查看 优雅地给正在运行的MySQL添加从库 一.准备 主从数据库版本最好一致 保证数据库的 uuid 不一致 服务器 ip 地址 MySQL Master 192.168.21.53 MySQL Slave 192.168.21.54 二.操作主数据库操作开启 binlog123[mysqld]log_bin=mysql-binserver-id=1 这里注意 server-id 主从不能一样, 配置完成重启 mysql 创建用于同步的用户账号登陆数据库 1mysql -hlocalhost -uroot -ppassword 创建用户并授权 1CREATE USER 'repl'@'%' IDENTIFIED BY 'A4MyDNdzpHvg5M02KRtm'; 授权 12GRANT REPLICATION SLAVE ON *.* TO...
Docker容器间优雅的互联
本文主要介绍如何优雅的让 Docker 容器和 Docker 容器之间相互通信,以及 Docker 容器如何和宿主机进行网络通信。 容器间网络通信docker 容器间通信常见的方式是使用 –link 进行连接,但是 Docker 已经弃用这种方式,并且容器数量一旦一多,–link 会显得很乱。官方推荐使用自定义网络来进行互联。 创建自定义网络1docker network create my-network 创建容器使用自定义 network比如一个 nginx 容器需要访问 php 容器 12docker run -p 80:80 --network my-network nginxdocker run --name php --network my-network php 这个时候 nginx 可以直接通过 php 来访问 php 容器,打开/etc/hosts 可以发现是 docker 自动帮你添加了解析 容器访问主机服务可以使用容器的网关 IP 来访问(nat 网络),不过使用 ip 不优雅,旧版本的 Docker 可以使用...
Elasticsearch常用API操作
如果有 Kibana 的话,以下所有操作都可以在 Kibana 的 DevTools 页面进行调试,可以免去认证操作。 接口 功能 /_cat/health?v 集群健康状态 /_cat/shards 分片信息 /_cat/nodes 节点信息 /_cat/indices 索引信息 /_cat/allocation?v 磁盘占用 /索引名字/_mapping?pretty 查看 mapping(索引字段类型等) ?v 是详细信息输出 索引12345678# 查看有哪些索引curl -u elastic:password localhost:9200/_cat/indices# 创建索引curl -u elastic:password -X PUT "localhost:9200/索引名字?pretty"# 删除索引curl -u elastic:password -s -XDELETE...
MySQL常用操作记录
记录一下日常工作中常用到的 MySQL 语句和一些配置等,方便日后查询 用户授权相关创建用户123-- CREATE USER 'root'@'%' IDENTIFIED BY '123456';CREATE USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; 修改密码123-- ALTER USER 'root'@'%' IDENTIFIED BY '123456';ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; 授权1Grant all privileges on *.* to 'root'@'%' with...
Kubernetes使用ingress反向代理外部IP
我们平常使用 k8s 的 service 都是自动发现增加 endpoint 的,但是有的时候集群外的服务我们又想用 k8s 的 ingress 来统一做入口,就会涉及到自定义 endpoint 创建 service123456789101112apiVersion: v1kind: Servicemetadata: name: kibana namespace: opsspec: type: ClusterIP ports: - name: kibana port: 80 protocol: TCP targetPort: 80 创建 endpoint12345678910111213apiVersion: v1kind: Endpointsmetadata: name: kibana namespace: opssubsets:- addresses: - ip: 10.0.0.12 - ip: 10.0.0.13 ports: - name: kibana port: 5601 protocol: TCP 创建...
Kafka常用操作记录
经常用到的 Kafka 命令记录以下,方便查找。kafka 的搭建可以参考这篇文章 Kafka和zookeeper搭建 注意: –bootstrap-server 参数配置的 kafka 地址需要根据 kafka 监听地址来判断, 如果监听的是自己的 ip 而不是 0.0.0.0, 那就不要配置 localhost, 改用 ip 地址. Topic 操作123456789101112131415161718# 创建topicbin/kafka-topics.sh --bootstrap-server localhost:9092 --create --replication-factor 1 --partitions 3 --topic test_topic# 查看topic具体信息bin/kafka-topics.sh --bootstrap-server localhost:9092 --describe --topic test_topic# 查看所有的topic列表bin/kafka-topics.sh --bootstrap-server...
编译安装Nginx记录
通常来说编译不通过都是因为系统环境不满足条件,如缺少包等,本文以 CentOS 7 系统为例,其中有些包如 xxx-devel 在 ubuntu 下一般都是叫做 xxx-dev 的,实在找不到可以使用 apt-file 查找文件属于哪个包。 需要准备好这些包(不用监控可以不用准备 nginx-module-vts): 1234wget https://nginx.org/download/nginx-1.22.0.tar.gzwget https://github.com/vozlt/nginx-module-vts/archive/refs/tags/v0.2.2.tar.gzwget https://ftp.openssl.org/source/openssl-1.1.1p.tar.gzwget https://ftp.exim.org/pub/pcre/pcre-8.45.tar.gz 全部解压,然后进入 nginx-1.22.0 目录操作 首先运行一遍 configure 命令12345678910111213141516./configure...
Kubernetes 绑定Hosts的正确姿势
有的时候我们需要在容器里面绑定 hosts,比如我们用 logstash 需要消费 kafka 消息,但是 kafka 监听的地址是 hostname,这个时候就需要绑定 hosts(规范一点是做解析)在容器里面绑定 hosts 常见的方法一种是挂载主机的 hosts 文件,一种是修改容器的启动 CMD,每次启动修改 hosts,这两种方法都有个缺点,就是不受 kubelet 管理了,默认的 hosts 内容也会被覆盖掉在 k8s 环境下有更好的解决方案:那就是让 k8s 自己来管理 使用 hostAliases 来绑定 hosts12345678910111213141516171819202122232425apiVersion: apps/v1kind: Deploymentmetadata: name: logstash-k8s namespace: opsspec: replicas: 1 selector: matchLabels: app: logstash-k8s template: metadata: labels: ...
Nginx Ingress 定义多种日志格式
生产环境有个项目需要打开 nginx 日志的 request_body 日志记录,但是如果把默认的日志格式改掉的话,日志量就太大了,所以查了一下针对某个域名进行搜集不同的日志。 k8s 的 ingress 其实就是 nginx 封装了一层,所以 nginx 可以做的,ingress 也都可以做,nginx 我们知道可以定义不同的日志格式,然后不同的虚拟主机来引用就好了。先查看文档,发现了 nginx-ingress 有一个叫 http-snippet 的参数,意思就是在 http 块下面增加一段原生的 Nginx 配置 在 configmap 里面增加一个新的日志格式配置我们可以在 ingress-nginx 的 configmap 里面添加一个新的日志格式: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647kind: ConfigMapapiVersion: v1metadata: name: ingress-nginx-controller ...
使用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...