2023-12-19 myluzh
Docker
vim clear-docker-loggin.sh
#!/bin/sh
# 清理Docker容器日志文件的脚本
logs=$(find /var/lib/docker/containers/ -name *-json.log)
for log in $logs
do
echo -n "clean logs :"; du -sh $log
cat /dev/null > $log
done
# 清理不再使用的Docker镜像
docker image prune -a -f
# 清理不再运行的Docker容器
docker container prune -f
# 清理所有未被使用的Docker卷
docker volume rm $(docker volume ls -qf dangling=true)
阅读全文>>
标签: 日志 docker log 清理
评论(0)
(267)
2023-12-18 myluzh
Zabbix
0x01 Zabbix启用模板
1、Zabbix面板->“配置”->“主机”->"创建/编辑主机"->添加模板 “Nginx by Zabbix agent”
2、并且修改主机宏
宏
值
描述
{$NGINX.PROCESS_NAME}
nginx
{$NGINX.STUB_STATUS.HOST}
127.0.0.1
{$NGINX.STUB_STATUS.PATH}
basic_status
{$NGINX.STUB_STATUS.PORT}
80
关于“Nginx by Zabbix agent”模板参数详细链接:https://git.zabbix.c...
阅读全文>>
标签: zabbix nginx nginx_agent
评论(0)
(318)
2023-12-15 myluzh
Nginx
0x01 被动检查
通过自带健康检查模块ngx_http_upstream_module实现,当收到访问时才对后端发起探测,请求根据转发规则首次可能落到不可用节点,如多个节点故障则可能出现转发多台后才将请求转到正常的服务,在高并发的时候影响转发效率。
被动健康检查关键参数max_fails与fail_timeout,描述如下:
max_fails:在配置的fail_timeout期间,最大的连接错误数,默认配置为1,如配置为0则表示不启用探测,不管后端服务是否异常仍然会转发,单位次数
fail_timeout:服务被认为不可用的的时间,单位为s
如下配置:在120s内中如果有15次连接失败,则表示该节点不可用,将该节点下线120s后才会再次探测
root@iZbp12bkuvg20e1j3y9gtvZ:/etc/nginx/conf.d# cat prd-all.conf
upstream prd-nginx-server { server 172.30.82.213:80 max_fails=5 fail_timeout=120s;
server 172.30.172.135:80 m...
阅读全文>>
标签: nginx 健康检查 主动检查 被动检查
评论(0)
(584)
2023-12-15 myluzh
Kubernetes
0x00 前言
最近在管理Rancher2.5部署的K8S集群发现一个问题,一旦Rancher Server不可用,直接在K8S master通过kubectl管理集群也会提示连接不到api提示不可用。
分析Rancher UI生成的kubeconfig文件可以发现,当kubectl访问K8S API SERVER的时候,请求是先发送到Rancher,然后再通过cluster agent转发给 K8S API SERVER。
所以需要开启“授权集群访问地址”,这样就算Rancher不可用,也可以通过kubectl --context 切换上下文,直接对集群直接进行管理。
0x01 启用Rancher授权集群访问地址
在rancher web面板中,找到集群,编辑,授权集群访问地址,启用,保存。
0x02 复制kubecfg配置
1、进入rancher面板,选择集群,在右上角打开“Kubeconfig文件”,复制kubeconfig文件内容。
可以看到kubecfg文件里面有两个上下文,第一个上下文就是先到rancher,再通过cluster agent转发到k8s api server的。
第二个上下文就...
阅读全文>>
标签: rancher kubectl 授权集群访问地址 上下文
评论(0)
(320)
2023-12-7 myluzh
Kubernetes
0x00 前言
在新版K8S中,即便 Service 使用 nodeport 暴露,在 node 中使用netstat -anp 或者ss -nlt命令上也看不到 kube-proxy 监听的端口了,但是 nodeport 访问是正常的。
Kubernetes服务不是作为侦听特定端口的进程来实现的。取而代之的是使用iptables (或IPVS),服务基本上是iptables规则。这就是为什么它们不会出现在你的netstat中。
详细查看:https://kubernetes.io/docs/concepts/services-networking/service/#proxy-mode-iptables
0x01 你需要先了解kube-proxy的三种工作模式
1、userspace
userspace模式是 kube-proxy 使用的第一代模式,该模式在 kubernetes v1.0 版本开始支持使用,该模式kube-proxy会为每一个Service创建一个监听端口,发向Cluster IP的请求被Iptables规则重定向到kube-proxy监听的端口上,kube-proxy根据LB算法选择一个...
阅读全文>>
标签: k8s kube-porxy iptables ipvs
评论(0)
(1559)
2023-12-6 myluzh
Zabbix
0x01 配置发送邮件服务器
面板路径:"管理->媒介->Email"。点击"Email"后配置smtp服务器、端口、发信邮箱跟密码。完成后点击右侧"测试"测试下发信是否正常
0x02 配置用户来接受告警信息
面板路径:"管理->用户"。选择默认admin用户,在"报警媒介"中点击"添加",类型选择"Email",添加收件人邮箱,勾选已启用。
0x03设置触发器报警后的动作
面板路径:"配置->动作->触发器工作"。
1、创建动作,名称为”邮件告警“,添加触发条件为"触发器示警度->大于等于->信息"
2、添加操作
(1)添加"操作",选择需要发送给的用户或者用户组,选择仅发送到"Email",自定义消息内容如下
# 主题
故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!
# 消息
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRI...
阅读全文>>
标签: zabbix 邮件告警
评论(0)
(396)