10 kubernetes 日志收集流程简介、pod日志收集的几种方式

一 elk以及kafka集群 环境准备

1.1 日志收集流程

image

1.2 elk集群准备

1.2.1 es集群环境准备

es版本为7.12https://www.elastic.co/cn/downloads/http://www.pingtaimeng.com/article/detail/id/2151994 7.12安装

1.2.1.1 准备java环境
yum install -y java-1.8.0-*
1.2.1.2 安装es
rpm -ivh elasticsearch-7.12.1-x86_64.rpm  #rpm启动不了,
换成二进制安装即可
1.2.1.3 更改配置文件

配置文件给两外两台节点复制一份,,改下network.host和node.name即可

[es@localhost elasticsearch-7.12.1]$ grep -v "^#" config/elasticsearch.yml 
cluster.name: elk
node.name: node-103
network.host: 172.31.7.103
http.port: 9200
discovery.seed_hosts: ["172.31.7.103", "172.31.7.104","172.31.7.105"] 
cluster.initial_master_nodes: ["172.31.7.103", "172.31.7.104","172.31.7.105"]  #哪些节点可以x选举为master
action.destructive_requires_name: true     #禁止模糊删除数据
1.2.1.4 启动es

默认启动的时候回报两个错误如下以及解决办法:

#报错1
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536] 意思是说你的进程不够用了
解决方案: 切到root 用户:进入到security目录下的limits.conf;执行命令
vim /etc/security/limits.conf 在文件的末尾添加下面的参数值:


* soft nofile 65536
* hard nofile 131072
* soft nproc 4096
* hard nproc 4096


#报错2
2,[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]  需要修改系统变量的最大值
解决方案:切换到root用户修改配置sysctl.conf
sudo vim /etc/sysctl.conf
增加配置值: vm.max_map_count=655360
sudo sysctl -p

启动es必须需要普通用户去启动

useradd es
chown -R es /home/es/elasticsearch-7.12.1
su - es  #必须用普通用户启动

 ./bin/elasticsearch  -d #后台启动
  vim config/jvm.options #修改jvm
 nohup ./bin/elasticsearch > nohup.log &   #后台启动
 启动完成之后,还有9200和9300两个端口号
1.2.1.5 浏览器验证

使用谷歌浏览器,去谷歌商店安装一款elasticsearch head的插件,就可以看到如下信息:
带*号的是主节点

image

1.2.2 kibana安装

使用rpm安装的,

1.2.2.1 kibana配置文件
[root@localhost ~]# grep -v "^#" /etc/kibana/kibana.yml  |grep -v "^$"
server.port: 5601
server.host: "172.31.7.103"
elasticsearch.hosts: ["http://172.31.7.103:9200","http://172.31.7.104:9200","http://172.31.7.105:9200"]
1.2.2.2 启动服务
systemctl start kibana
1.2.2.3 浏览器访问

http://172.31.7.103:5601/app/home#/

image

1.2.3 安装filebeat客户端进行验证

安装一个filebeat客户端,收集/var/log/*.log,然后把收集到的日志给到es集群如下

image


然后到kibana里面创建索引即可

image

选择下面这个选项即可

image

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Pod有以下几种异常状态: 1. Pending: Pod刚创建,还没有被调度 2. Running: Pod正在运行 3. Succeeded: Pod运行成功并终止 4. Failed: Pod运行失败并终止 5. CrashLoopBackOff: Pod因为异常而重复重启 6. Unknown: Kubernetes无法获取Pod的状态 ### 回答2: PodKubernetes 集群中的一个最小调度单位,代表着一组容器、存储资源、网络和其他运行时选项。Pod 可以有不同的状态,以下是其中几种常见的异常状态: 1. Pending(挂起):Pod 处于 Pending 状态表示尚未调度到合适的节点上运行。可能是因为集群中没有足够的资源可用,或者因为 Pod 的调度规则限制导致无法分配到合适的节点。 2. CrashLoopBackOff(崩溃回滚):Pod 处于 CrashLoopBackOff 状态表示其中的一个容器一直在崩溃后尝试重启,但失败超过一定次数。这可能是由于应用程序错误造成的,需要检查容器日志以确定具体原因。 3. ContainerCreating(容器创建中):Pod 处于 ContainerCreating 状态表示容器正在创建中,可能是由于节点上的容器运行时延迟、下载镜像速度缓慢或容器初始化过程较长等原因导致。 4. Terminating(终止中):Pod 处于 Terminating 状态表示正在被删除或终止。可能是因为用户主动删除了 Pod,或者由于节点故障、调度规则变化等原因导致 Pod 被驱逐。 5. ImagePullBackOff(镜像拉取失败):Pod 处于 ImagePullBackOff 状态表示无法拉取所需的容器镜像。可能是由于镜像下载地址无效、网络不可达或认证凭证错误等引起的。 除了以上几种异常状态外,还有其他一些与 Pod 网络、存储或运行时相关的异常状态,如网络不可达、存储卷挂载失败、容器资源不足等。根据具体情况,对于不同的异常状态,我们需要进行相应的排查和处理,以使 Pod 成功运行在集群中。 ### 回答3: Pod有以下几种异常状态: 1. Pending(等待中):当Pod被创建时,它会进入Pending状态,表示它正在等待被调度到某个节点上运行。在此状态下,Pod容器镜像正在下载或者节点资源不足都可能导致Pod无法正常调度。 2. Running(运行中):一旦Pod成功调度到了某个节点,它的状态将变为Running。在此状态下,Pod中的容器正在运行,并且可以处理来自用户的请求。 3. Succeeded(执行成功):某些情况下,一个Pod可能只需执行完一次性任务即可完成。当Pod的所有容器成功执行并且退出时,它的状态将变为Succeeded。在此状态下,Pod处于非活动状态。 4. Failed(执行失败):如果Pod中的容器发生错误或者退出时返回非零的错误码,Pod的状态将变为Failed。在此状态下,Pod容器可能无法正常启动或者运行,需要进行故障排除。 5. Unknown(未知):如果无法获取Pod的当前状态信息,或者Pod控制器无法与Kubernetes API服务器通信,Pod的状态将变为Unknown。这可能是由网络问题或其他不可预测的问题导致的。 除了上述几种异常状态,Pod还可以存在一些其他临时的状态,例如ContainerCreating(容器创建中)、Terminating(正在终止)等。这些状态通常只是作为过渡状态,表示Pod正在进行某些特定的操作,如创建容器、删除Pod等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值