## 简介
Logstash是一个具有实时pipeline功能的开源数据收集引擎。Logstash可以动态的统一来自不同数据源的数据,并将数据规范化到你选择的目的地。虽然Logstash最初推动了日志收集方面的创新,但它的功能现在更丰富了。任何类型的事件都可以通过丰富的input,filter,output插件进行转换,简化抽取过程。
## 特性
```
1.内部全文检索使用了开源项目ES,是当前流行的开源分布式全文检索引擎,很强大。
2.持久队列提供跨节点故障的保护。
3.可扩展插件生态系统,提供超过200个插件,以及创建和贡献自己的灵活性。
4.对事件字段执行常规转换。可以重命名,删除,替换和修改事件中的字段。
5.
```
## 前置条件
```
Kubernetes 1.6+
helm 2.8+
基础框架PV支持
```
## 参数配置
| 参数 | 描述 | 默认值 |
| ------------------------- | -------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- |
| `clusterName` | logstash标识符 | `logstash` |
| `nodePort` | 启用或禁用对Elastic Search的外部访问 | `enabled` |
| `environment` | 环境 (dev/pre/pro) | `dev` |
| `replicas` | 副本数 | `1` |
| `configReloadAutomatic` | Logstash默认配置类型。如果启用了configReloadAutomatic,则在更新管道配置文件时,Logstash尝试加载管道 | `true` |
| `extraEnvs` | 额外的环境变量,将会附加到env中 | `{}` |
| `secretMounts` | 保密字典挂载 | `{}` |
| `image` | 镜像 | `docker.elastic.co/elasticsearch/elasticsearch` |
| `imageTag` | 镜像版本 | `6.5.3` |
| `imagePullPolicy` | 镜像拉取策略 | `IfNotPresent` |
| `lsJavaOpts` | Jvm大小 | `-Xmx1g -Xms1g` |
| `resources` | 允许为状态集设置资源大小 | `requests.cpu: 100m`
`requests.memory: 2Gi`
`limits.cpu: 1000m`
`limits.memory: 2Gi` |
| `networkHost` | 网络值[主机logstash设置] | `0.0.0.0` |
| `antiAffinityTopologyKey` | 默认情况下,这会阻止多个Elasticsearch节点在同一Kubernetes节点上运行 | `kubernetes.io/hostname` |
| `antiAffinity` | 将此设置为硬执行[反亲和规则] | `hard` |
| `podManagementPolicy` | 默认情况下Kubernetes[连续部署状态集] | `Parallel` |
| `protocol` | 用于准备探测的协议 | `http` |
| `httpPort` | kubernetes用于健康检查及服务的http端口 | `9200` |
| `updateStrategy` | 更新策略 | `RollingUpdate` |
| `maxUnavailable` | 最大不可用 | `1` |
| `fsGroup` | [securityContext.fsGroup]的组ID(GID),以便Elasticsearch用户可以从持久卷中读取 | `1000` |
| `terminationGracePeriod` | 终止宽限期 | `120` |
| `readinessProbe` | 探针 | `failureThreshold: 3`
`initialDelaySeconds: 10`
`periodSeconds: 10`
`successThreshold: 3`
`timeoutSeconds: 5` |
| `imagePullSecrets` | 声明拉取镜像时需要指定密钥 | `[]` |
| `nodeSelector` | 标签 | `{}` |
| `tolerations` | 节点亲和性 | `[]` |
| `ingress` | 访问权 | `enabled: false` |
## 安装部署
```
helm install \
/etc/kubernetes/helm/logstash\
--name=logstash \
--namespace=logstash \
-f /etc/kubernetes/helm/logstash/values.yaml
```
## 卸载
```
helm delete logstash --purge
```
## 升级
```
helm upgrade logstash \
--name=logstash --namespace=logstash \
-f /etc/kubernetes/helm/logstash/values.yaml
```