docker基于静态路由实现跨宿主机访问
原理与背景在默认情况下,Docker 安装在不同宿主机上时,默认网桥 docker0 的网段通常都是 172.17.0.1/16。这就导致了两个问题: IP 冲突:不同主机上的容器 IP 可能完全一样。 路由不可达:宿主机 A 不知道宿主机 B 的容器网段在哪里,数据包出了宿主机网卡就被丢弃了。 实现原理:本方案的核心思想是**“直连路由”**。 规划网段:手动修改每台宿主机 Docker 的默认网段,保证互不冲突。 添加路由:在宿主机 A 上添加一条静态路由规则,告诉操作系统:“如果你想访问 B 主机的容器网段,请把数据包发给 B 主机的 IP 地址”。 前提条件:宿主机 A 和 宿主机 B 必须在同一个物理网络(或二层网络)中,且宿主机之间可以互通。 环境准备准备两台 Linux 服务器,确保它们之间可以 Ping 通。 主机名 宿主机 IP (eth0) 规划 Docker 网段 (docker0) Node-1 192.168.1.100 172.17.1.1/24 Node-2 192.168.1.101 172.17.2.1...
zabbix升级后图形文字不显示
原版本 升级后版本 6.4.7 6.4.13 问题现象更新小版本后zabbix数据图形都有,只有下方文字不显示 处理方式下载win字体根据自己选择,上传至/usr/share/zabbix/assets/fonts目录下,修改文件名为jianti.ttf 修改默认字体配置文件/usr/share/zabbix/include/defines.inc.php 123bash-5.1$ grep -E "*_FONT_NAME" /usr/share/zabbix/include/defines.inc.phpdefine('ZBX_GRAPH_FONT_NAME', 'NotoSansCJKjp-Regular'); // font file namedefine('ZBX_FONT_NAME', 'NotoSansCJKjp-Regular'); 修改为: 12...
zabbix6.4自带模板监控mysql
6.4添加自带的mysql模板报错,显示不支持12Preprocessing failed for: Cannot fetch data: Error 1045: Access denied for user 'root'@'172.20.0.1' (using password: NO).1. Failed: cannot extract value from json by path "$.Aborted_connects": cannot convert value to string 创建用于监视的 MySQL 用户12CREATE USER 'zbx_monitor'@'%' IDENTIFIED BY '<password>';GRANT REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO 'zbx_monitor'@'%'...
zabbix清理数据库ibdata1文件
zabbix经过长时间的运行导致ibdata1文件的数据持续增加,mysql之前是没有配置表空间,InnoDB 默认会将所有的数据库InnoDB引擎的表数据存储在一个共享空间中:ibdata1,久而久之给后续的维护带来障碍 表结构 含义 history 历史监控记录,存放数值(int)类型的的监控采集结果相关主要字段含义 history_text 历史监控记录,存放字符无限制长度的监控采集结果 history_uint 存放非整形的历史监控信息 查看文件大小1234567891011121314151617[root@zabbix ~]# ll -h /var/lib/mysql/ibdata1 -rw-rw---- 1 mysql mysql 39G Mar 23 15:26 /var/lib/mysql/ibdata1&查看表数据,基本也就是history的数据比较多,可以选择清空MariaDB [zabbix]> select table_name, (data_length+index_length)/1024/1024 as tot...
Dockerfile构建安装zabbix
docker-commpose传送门: zbx_server || zbx_web || zbx_mysq || zbx_gateway. 使用特权模式启动一个centos容器1234567891011121314151617FROM centos:centos7.9.2009WORKDIR /root/RUN rm -f /etc/yum.repos.d/*ADD ./CentOS-Base.repo /etc/yum.repos.d/ADD ./sql /root/ADD ./simkai.ttf /root/RUN yum clean all \ && yum makecache \ && yum install wget less curl gcc gcc-c++ vim kde-l10n-Chinese net-tools -yRUN yum reinstall glibc-common -yRUN echo " LANG=zh_CN.UTF-8" > /etc/locale.conf &...
zabbix基于jmx监控jvm内存
配置YUM源123456789[root@zabbix ~]# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm[root@zabbix ~]# yum -y install zabbix-java-gateway[root@zabbix ~]# vi /etc/zabbix/zabbix_java_gateway.conf LISTEN_IP="0.0.0.0" 监听所有地址LISTEN_PORT=10052 监听端口START_POLLERS=5 启动线程TIMEOUT=3 超时时长(秒)[root@zabbix ~]# systemctl start zabbix-java-gateway[root@zabbix ~]# systemctl enable zabbix-java-gateway 配置被监控端开启jmx不用配置catalina.sh,将如下配置写到/etc/profile设置全局...
zabbix钉钉告警
钉钉机器人创建添加通过webhook自定义机器人 添加shell脚本编辑通过zabbix_server.conf找到AlertScriptsPath字段配置路径 用curl以http形式获取机器人webhook 传送门:告警脚本-dingding 配置zabbix界面配置脚本管理–>报警媒介与脚本添加对用的脚本名称及脚本参数{ALERT.SENDTO}{ALERT.SUBJECT}{ALERT.MESSAGE} 配置用户告警管理–>选择告警用户(我用admin)–>报警媒介收件人可以随意填写,将所有严重性都与告警,启用时间为每天 配置动作动作: 触发器级别&& 主机群组等于,可以根据自己不同的要求配置不同的告警动作, 操作:告警标题告警内容及其持续时长 12345678910告警标题变量:服务器:{HOST.NAME}发生: {TRIGGER.NAME}故障!告警内容变量:告警主机: {HOST.NAME1} \n告警地址: {HOST.IP} \n告警时间:...
zabbix自定义监控类型错误
获取数值类型错误zabbix调用shell脚本报错 Value ““ of type “string“ is not suitable for value type “Numeric (unsigned) shell脚本输出值方式由: echo $CESHI 修改为 echo $LOG|awk ‘{print int($0)}’ 数据类型string转换int zabbix获取自定义key timeout将zabbix-server和对应的zabbix-agent中配置Timeout=3修改为Timeout=15(最大设置30秒) zabbix获取自定义key 正常但为空后台报错Permission denied 修改zabbix-agentd.conf AllowRoot=1(0默认使用zabbix用户) 2. 系统级别提权 /etc/sudoers 使用zabbix ALL=(ALL) NOPASSWD:ALL
zabbix自定义监控nginx性能
1zabbix-agentd.conf最下方添加 UserParameter=<key>,<shell command> 检测nginx进程是否存在function ping { /sbin/pidof nginx | wc -l} 检测nginx性能vi nginx.sh 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253#!/bin/bashDAY=`date -d yesterday +%Y%m%d`IP=$(ip a | grep "10.96.6.*" |awk '{print $2}' | awk -F '/' '{print $1}')活动连接数function active { /usr/bin/curl "http:...
jenkins声明式流水线语法详解
最基本的语法包含 pipeline:所有有效的声明式流水线必须包含在一个 pipeline 块中 stages:包含一系列一个或多个stage指令 stage:stage包含在stages中进行,比如某个阶段 steps:在阶段中具体得执行操作,一个或多个步骤 agent指定了整个流水线特定的机器,比如多台slave节点,可以被定义在pipeline块顶层也可以根据stage层定义使用(jenkins提供比较常用的流水线语法生成,输入对应的参数会自动生产) any:在任意可用代理上执行流水线阶段。agent any label:在配置标签得jenkins环境中可用代理上执行。agent {label ‘my slave’} node:agent { node { label ‘labelName’ } } 和 agent { label ‘labelName’ } 一样, 但是 node 允许额外的选项 (比如 customWorkspace ) pipeline定义: 1234567891011121314pipeline { agent {...














