Elasticsearch maximum shards open 的问题
https://www.elastic.co/guide/en/elasticsearch/reference/7.10/modules-cluster.html
修改 yml 文件:
cluster.max_shards_per_node 的配置
或者
PUT _cluster/settings
1 | { |
https://www.elastic.co/guide/en/elasticsearch/reference/7.10/modules-cluster.html
修改 yml 文件:
cluster.max_shards_per_node 的配置
或者
PUT _cluster/settings
1 | { |
@JsonFormat(pattern = “yyyy-MM-dd HH:mm:ss”) : 后端 =>前端的转换
@DateTimeFormat(pattern = “yyyy-MM-dd’T’HH:mm:ss”) : 前端 => 后端的转换
@JsonDeserialize(using = LocalDateTimeDeserializer.class) : jackson 反序列化
@JsonSerialize(using = LocalDateTimeSerializer.class): jackson 序列化
注意:
当 @JsonFormat 和 @JsonDeserialize 或者 @JsonSerialize 同时存在时, @JsonFormat 优先级更高
@JsonFormat不仅可以完成后台到前台参数传递的类型转换,还可以实现前台到后台类型转换。
当content-type为application/json时,优先使用@JsonFormat的pattern进行类型转换。而不会使用@DateTimeFormat进行类型转换。
设置环境变量:
1 | env: |
此时 NGINX 进行反向代理的配置:
1 | location /grafana/ { |
fdisk -l
查看本机磁盘分区情况1 | [root@localhost core]# fdisk -l |
CentOS 默认挂载盘无法超过 2T, 需要挂载超过 2T 的磁盘,需要先对磁盘的分区方式进行转换成 GPT
转换方式:
1 | parted /dev/vdb |
可以看到一个 /dev/vdb 的设备没有使用
1 | [root@localhost core]# fdisk /dev/vdb |
通知内核重新读取分区信息 partprobe /dev/vdb
先执行 blkid 查看磁盘的格式
如果是 xfs 格式,执行下面的命令
mkfs -t xfs /dev/vdb1
如果是 ext4 的话
mkfs -t ext4 /dev/vdb1
1 | [root@localhost core]# mkfs -t xfs /dev/vdb1 |
1 | [root@localhost core]# mkdir /data |
vim /etc/fstab
在最后添加如下一行:
1 | /dev/vdb1 /data xfs defaults 0 0 |
保存生效: mount -a
lsblk -f
1 | [root@localhost core]# lsblk -f |
比如在虚拟机情况下,原来给虚拟机分配的磁盘大小是 100G,后来发现不够用了,在虚拟机操作界面将 100G 扩容到了 200G,然后多出来的 100G, 扩容到现有系统的 /home 目录下
按以下操作即可实现
fdisk -l
1 | fdisk /dev/sda |
partprobe
pvcreate /dev/sda3
使用 pvdisplay
可查看当前物理卷的相关信息
vgextend centos /dev/sda3
使用 vgdisplay
可查看卷组的信息
lvextend /dev/mapper/centos-home /dev/sda3
使用 lvdisplay
可查看逻辑卷的信息
xfs_growfs /dev/mapper/centos-home
使用 df -kh
和 lsblk
查看磁盘挂载情况
在现有的环境中 /data 目录下挂载一块 1T 的存储盘, 非 LVM 格式,现在,新加了一块 2T 的硬盘,想要扩展到 /data 目录下,如下:
1 | [root@server-62 ~]# lsblk |
简单说下处理方式,还是转为 LVM 格式,将 2 块硬盘都加入逻辑卷,然后将原来数据花园
备份现有 /data 目录的数据,注意原先目录的权限, 比如cp -a /data/ /home/backup/
卸载原先磁盘,并删除分区
1 | umout /dev/vdc1 |
编辑 /etc/fstab 注释掉目录挂载
创建物理卷
1 | pvcreate /dev/vdd |
创建卷组, 并命名为 vg_data
1 | vgcreate vg_data /dev/vdd |
将物理卷 /dev/vdc 加入卷组
1 | vgextend vg_data /dev/vdc |
查看信息
1 | pvdisplay |
创建逻辑卷, 并命名为 lv_data, 100% 使用
1 | lvcreate -l 100%VG -n lv_data vg_data |
查看信息
1 | lvdisplay |
格式化
1 | mkfs -t xfs /dev/vg_data/lv_data |
最后,创建目录挂载
1 | vim /etc/fstab |
如果 mount -a
发现挂载不上, 可执行 systemctl daemon-reload
或重启解决
使用 docker run -p 或者 docker compose 启动暴露的端口的容器, 会直接穿透防火墙, 不受系统防火墙的 firewalld 的管控
docker 容器会在启动的时候向 iptables 添加转发的规则
而 firewalld 也是通过操作 iptables 来实现的防火墙的功能
1 | [root@centOS7 es-test]# iptables -L DOCKER |
可以看到是 anywhere
在 /etc/docker/daemon.json 配置禁用 iptables:
1 | {"iptables": false} |
之后重启 docker 服务, 可以看到 docker 不会自动往 iptables 里添加规则了
这种方式有个弊端: 就是容器之间无法互相访问, 而且容器里的程序也无法访问外部网络
解决方式:
在防火墙里开始 net 转发:
配置 /etc/firewalld/zones/public.xml
1 | <zone> |
或者使用下面的方式添加 iptables 规则
1 | firewall-cmd --zone=public --add-masquerade |
之后使用 firewall-cmd –restart 或者 systemctl restart firewalld 使配置生效即可
但是这样做还有个问题, 就是所有访问容器的程序对于容器来说 IP 的变成的网关的 IP
这样的问题对于一些需要特定限制一些 IP 地址来源的应用和使用 IP 地址来作区分的应用来说就有很大问题, 比如注册中心
目前没有找到什么方式解决这个问题
docker run 的时候不显式暴露端口 -p 什么的, 使用 –net host 的形式直接将容器的端口绑定到宿主机上
docker compose 运行的时候使用:
1 | version: '3.2' |
同事在 Nexus3 私服的宿主机上部署了一个服务, 结果因为网络问题导致服务打印大量的日志信息, 将宿主机的磁盘撑爆了,经过一系列排除, 删除了大日志文件
重启 Nexus3 容器,发现无法启动了, 报错如下:
1 | com.orientechnologies.orient.core.exception.OStorageException: Cannot open local storage '/nexus-data/db/config' with mode=rw |
先对该目录分配用户和用户组:
1 | chown -R 200 /home/transport/maven-repos-data |
分别删除 db/config 目录下和 db/component 目录下的所有的 .wal 文件
1 | cd /home/transport/maven-repos-data/db/config |
1 | find / -name nexus-orient-console.jar |
进入上述目录, 我这里是: /var/lib/docker/overlay2/3b9c8d7685a03dcbb9ee69c33cd8fd9b487d980731596da27e7639854c0bb6e1/diff/opt/sonatype/nexus/lib/support
执行 java -jar nexus-orient-console.jar
, 来连接数据库
1 | connect plocal:/home/transport/maven-repos-data/db/component admin admin |
执行下列命令进行修复, 修复完成并退出:
1 | rebuild index * |
1 | chmod 777 -R /home/transport/maven-repos-data/db |
如上述步骤描述的, 运行 nexus-orient-console.jar
进入 security 数据库:
1 | connect plocal:/home/transport/maven-repos-data/db/security admin admin |
将 admin 用户密码重置为 admin123
1 | update user SET password="$shiro1$SHA-512$1024$NE+wqQq/TmjZMvfI7ENh/g==$V4yPw8T64UQ6GfJfxYq2hLsVrBY8D1v+bktfOxGdt4b/9BthpWPNUy/CBk6V9iA0nHpzYzJFWO8v/tZFtES8CA==" UPSERT WHERE id="admin" |
数据目录重新授权
1 | chmod 777 -R /home/transport/maven-repos-data/db |