Myluzh Blog

Strive to become a dream architect.

K8S部署Fluentd日志采集并推送到Elastic

2023-12-19 myluzh Kubernetes

0x01 前言 使用 fluentd 可以从每个容器收集 stdout/stderr 日志,以及在每个主机上 /var/log/containers/ 路径下的日志文件,日志将被发送到被选择的目标服务。 这里主要记录下Fluentd的部署过程,如何通过Fluentd把K8S集群Pod日志推送到Elastic上,Elastic和Kibana的部署不在这里赘述。 0x02 部署 Fluentd 1、fluentd-config-map.yaml 配置Fluentd日志收集器的配置文件。 apiVersion: v1 data: fluent.conf: |- <source> @type tail #path /var/log/containers/*.log path /var/log/containers/*xfshcloud-dxp*.log pos_file fluentd-docker.pos tag kubernetes.* #<parse> ...

阅读全文>>

标签: fluentd elastic kibana

评论(0) (280)

清理Docker容器日志bash

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) (136)

Zabbix通过"Nginx by Zabbix agent"模板,监控Nginx状态

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) (142)

Nginx健康检查(被动检查、主动检查)

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) (206)

在使用Rancher2.5管理的K8S集群中,解决Rancher不可用时通过kubectl进行集群管理的问题

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) (152)

K8S使用NodePort时,无法在主机上看到监听的端口 - 探究原因

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) (504)