# kubeeye
**Repository Path**: hackerwjz/kubeeye
## Basic Information
- **Project Name**: kubeeye
- **Description**: https://github.com/kubesphere/kubeeye.git
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: release-1.0
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2024-08-30
- **Last Updated**: 2024-08-30
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
> English | [中文](README_zh.md)
KubeEye 是为 Kubernetes 设计的云原生集群巡检工具,用于根据自定义规则发现 Kubernetes 集群中存在的问题及风险。
## 快速开始
### 安装
可从 [Releases](https://github.com/kubesphere/kubeeye/releases) 中下载安装包(其中包含helm chart,demo rules 以及 供离线环境部署的镜像)
```shell
VERSION=v1.0.0
wget https://github.com/kubesphere/kubeeye/releases/download/${VERSION}/kubeeye-offline-${VERSION}.tar.gz
tar -zxvf kubeeye-offline-${VERSION}.tar.gz
cd kubeeye-offline-${VERSION}
# 如需离线安装,请自行将images中的镜像导入本地仓库,并修改 chart/kubeeye/values.yaml 中的镜像地址。
helm upgrade --install kubeeye chart/kubeeye -n kubeeye-system --create-namespace
```
### 使用
#### 导入规则
> 安装包中的rule目录下提供了demo规则,可根据需求自定义规则。
> 注意 prometheus 规则需提前为规则设置prometheus的endpoint。
```shell
kubectl apply -f rule
```
#### 创建巡检计划
按需配置巡检计划
```shell
cat > plan.yaml << EOF
apiVersion: kubeeye.kubesphere.io/v1alpha2
kind: InspectPlan
metadata:
name: inspectplan
spec:
# 需要执行检查的计划时间,仅支持cron表达式,例:"*/30 * * * ?"表示每30分钟执行一次巡检。
# 如果仅需单次巡检,则将该参数移除。
schedule: "*/30 * * * ?"
# 巡检结果最大保留数量,不填写则是保留全部
maxTasks: 10
# 是否暂停巡检计划, 仅作用于周期巡检,true 或 flase (默认false)
suspend: false
# 巡检超时时间, 默认 10m
timeout: 10m
# 巡检规则列表,用于关联对应的巡检规则,填写 inspectRule 名称
# 可通过 kubectl get inspectrule 查看集群中巡检规则
ruleNames:
- name: inspect-rule-filter-file
- name: inspect-rule-node-info
- name: inspect-rule-node
- name: inspect-rule-sbnormalpodstatus
- name: inspect-rule-deployment
- name: inspect-rule-sysctl
- name: inspect-rule-prometheus
- name: inspect-rule-filechange
- name: inspect-rule-systemd
# nodeName: master
# nodeSelector:
# node-role.kubernetes.io/master: ""
# 多集群巡检(目前仅支持 KubeSphere 多集群巡检)
# clusterName:
# - name: host
EOF
kubectl apply -f plan.yaml
```
#### 巡检报告获取
##### 查询巡检结果
```shell
# 查看巡检结果名称,用于后续巡检报告下载
kubectl get inspectresult
```
##### 获取巡检报告
###### 命令行方式下载
```shell
## 获取 kubeeye-apiserver svc地址和端口
kubectl get svc -n kubeeye-system kubeeye-apiserver -o custom-columns=CLUSTER-IP:.spec.clusterIP,PORT:.spec.ports[*].port
## 下载巡检报告, 注意替换 <> 为环境中查询到的实际信息
curl http://:9090/kapis/kubeeye.kubesphere.io/v1alpha2/inspectresults/\?type\=html -o inspectReport.html
## 下载后可使用浏览器打开html文件查看
```
###### 浏览器查看
```shell
## 为 kubeeye-apiserver 创建 nodePort 类型svc
kubectl -n kubeeye-system expose deploy kubeeye-apiserver --port=9090 --type=NodePort --name=ke-apiserver-node-port
## 浏览器输入巡检报告url查看, 注意替换 <> 为环境中查询到的实际信息
http://:/kapis/kubeeye.kubesphere.io/v1alpha2/inspectresults/?type=html
```
## 支持规则清单
* OPA 规则
* PromQL 规则
* 文件变更规则
* 内核参数配置规则
* Systemd 服务状态规则
* 节点基本信息规则
* 文件内容检查规则
* 服务连通性检查规则