## 简介 Logstash是一个具有实时pipeline功能的开源数据收集引擎。Logstash可以动态的统一来自不同数据源的数据,并将数据规范化到你选择的目的地。虽然Logstash最初推动了日志收集方面的创新,但它的功能现在更丰富了。任何类型的事件都可以通过丰富的input,filter,output插件进行转换,简化抽取过程。 ## 特性 ``` 1.内部全文检索使用了开源项目ES,是当前流行的开源分布式全文检索引擎,很强大。 2.持久队列提供跨节点故障的保护。 3.可扩展插件生态系统,提供超过200个插件,以及创建和贡献自己的灵活性。 4.对事件字段执行常规转换。可以重命名,删除,替换和修改事件中的字段。 ``` ## 前置条件 ``` 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 ```