基于滴滴云部署 Elasticsearch + Kibana + Fluentd

一、Elasticsearch + Kibana + Fluentd 简单介绍

EFK 架构可用于日志的收集、存储、搜索和分析。组件的功能说明如下:

  • Fluentd 用以收集日志。
  • Elasticsearch 简称 es 主要用以数据的存储并提供索引与搜索功能。
  • Kibana 搜索与分析。

二、环境准备

滴滴云 官网购买一台 DC2 实例,规格无需太大,需要带 EIP 方便下载和安装。

三、Elasticsearch + Kibana + Fluentd 安装

登陆滴滴云服务器进行如下操作(本例使用的操作系统版本为 CentOS7.4)

1. 安装部署 Fluentd

curl -L 'https://toolbelt.treasuredata.com/sh/install-redhat-td-agent3.sh' | sh
#安装es插件
/usr/sbin/td-agent-gem install fluent-plugin-elasticsearch

2. 修改 Fluentd 配置文件 td-agent.conf(本例以收集nginx的日志为模板)

vim /etc/td-agent/td-agent.conf
<source>
  @type tail
  path /var/log/nginx.log # 要收集的日志文件路径
  pos_file /var/log/td-agent/nginx.log.pos 
  tag nginx.log # 标签
# 分析提取日志信息,最终的正则表达式以nginx的字段为准。
  format /^(?<time>[^\]]*) (?<remote_ip>[^ ]*) (?<user>[^ ]*) "(?<host>[^ ]*)" "(?<method>\S+)(?: +(?<path>[^ ]*) +\S*)?" (?<code>[^ ]*) (?<size>[^ ]*) "(?<referer>[^\"]*)" "(?<agent>[^\"]*)" (?<request_time>[^ ]*) (?<upstream_time>[^ ]*) (?<pipe>[^ ]*)$/
</source>
<match nginx.log>
  @type copy
  <store>
# debug模式 (tail -f /var/log/td-agent/td-agent.log)可以查看日志收集情况
    @type stdout
  </store>
  <store>
    @type elasticsearch # 使用的数据存储的插件
    host dc2实例内网的IP地址 # es服务器地址
    port 9200            # es端口
    logstash_format true 
    flush_interval 10
  </store>
</match>

3. 启动 Fluentd 服务

systemctl start td-agent
systemctl status td-agent

4. 安装部署 Elasticsearch

wget -S 'https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.6.1.rpm'
rpm -ivh elasticsearch-6.6.1.rpm

5. 修改 elasticsearch.yml 配置文件

vim /etc/elasticsearch/elasticsearch.yml
...
network.host: dc2实例内网的IP地址
...
http.port: 9200
...

6. 启动 Elasticsearch 服务

systemctl start elasticsearch
systemctl status elasticsearch

7. 安装 Kibana

wget -S 'https://artifacts.elastic.co/downloads/kibana/kibana-6.6.1-x86_64.rpm'
rpm -ivh kibana-6.6.1-x86_64.rpm

8. 修改 kibana.yml 配置文件

vim /etc/kibana/kibana.yml
...
server.port: 5601
...
server.host: "dc2实例内网的IP地址"
...
elasticsearch.hosts: ["http://dc2实例内网的IP地址:9200"]
...

9. 启动 Kibana 服务

systemctl start kibana
systemctl status kibana

10. 配置滴滴云 SLB 和安全组规则
  • 安全规则设置 :安全组中新增 5601 端口的入方向规则,授权对象为:0.0.0.0/0
11. 服务验证
  • 浏览器中输入 http://EIP:5601 即可看到 Kibana 的主页,在简单的配置之后即可看到收集的 Nginx 日志信息。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31559758/viewspace-2636894/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/31559758/viewspace-2636894/

<think>好的,我现在需要帮助用户了解如何使用Helm部署ElasticsearchKibanaFluentd。首先,我得回忆一下这些组件的作用以及Helm的基本用法。用户提到的Hel可能是指Helm,所以我会假设他们想用Helm来在Kubernetes集群中部署这些服务。 首先,Elasticsearch是一个分布式搜索分析引擎,通常用于日志存储。Kibana是它的可视化工具,而Fluentd则负责日志收集传输。使用Helm部署这些服务可以简化配置管理,因为Helm是Kubernetes的包管理工具,通过charts来定义、安装升级应用。 接下来,我需要考虑步骤。首先,用户需要有一个Kubernetes集群,并且已经安装了Helm。如果用户没有安装Helm,可能需要指导他们安装。不过用户的问题是关于部署的,可能已经具备这些前提条件,但或许应该在回答中提到这些前提。 然后,添加Elasticsearch的Helm仓库。Elastic官方提供了Helm charts,所以需要添加elastic的仓库。接着,安装Elasticsearch,可能需要配置一些参数,比如存储类、资源限制等。同样,Kibana作为Elasticsearch的前端,也需要用Helm安装,并且需要指向正确的Elasticsearch服务。 对于Fluentd,通常使用Fluentd的Helm chart,比如stable/fluentd,但要注意的是,随着Helm仓库的变化,可能需要使用其他仓库,比如bitnami的chart。不过,现在可能更常见的是使用Elastic的Fluentd插件或者Fluent Bit,因为Fluent Bit是轻量级的,更适合Kubernetes环境。但用户明确提到Fluentd,所以应该按照Fluentd来处理。 在配置Fluentd时,需要确保它能够收集日志并发送到Elasticsearch。这可能需要配置Fluentd的output插件,指向Elasticsearch的service名称端口。同时,可能需要设置索引名称、用户认证等信息,如果启用了安全功能的话。 然后需要验证部署,包括检查pod状态,测试日志是否能被收集,并在Kibana中查看。可能需要创建索引模式,以便在Kibana中查看日志。 可能的问题点包括:Helm仓库是否正确添加,chart版本是否兼容,资源配置是否足够(比如Elasticsearch默认的资源请求可能较小,需要调整),持久化存储的配置是否正确,以及网络策略是否允许组件之间的通信。 另外,安全方面,Elasticsearch默认可能没有启用认证,但在生产环境中需要配置安全选项,比如用户名密码、TLS加密等。不过对于测试环境,可能可以暂时禁用这些,以简化部署。 需要确保用户了解这些组件的基本配置,以及如何根据实际环境调整values.yaml文件。可能需要提到自定义values文件,通过-f参数传递给helm install命令。 总结步骤应该是: 1. 安装Helm(如果未安装) 2. 添加Elastic Helm仓库 3. 安装Elasticsearch 4. 安装Kibana 5. 安装Fluentd,配置输出到Elasticsearch 6. 验证各组件运行状态 7. 在Kibana中配置索引模式 可能需要给出具体的命令示例,比如helm repo add,helm install等,并说明常用的参数。同时提醒用户注意版本兼容性,不同版本的ElasticsearchKibanaFluentd可能需要特定的配置。 另外,Fluentd的配置可能需要通过ConfigMap来定义配置文件,或者在values.yaml中指定。例如,在Fluentd的Helm chart中,如何设置output到Elasticsearch的地址。 最后,建议用户查阅官方文档获取最新的配置选项,因为Helm charts可能会有更新,参数名称或默认值可能变化。</think>以下是使用Helm部署Elasticsearch + Kibana + Fluentd的详细步骤: --- ### 一、前置条件 1. **Kubernetes集群**:确保已部署Kubernetes集群 2. **Helm安装**:安装Helm 3.x以上版本 ```bash curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash ``` --- ### 二、部署Elasticsearch 1. 添加Elastic官方Helm仓库: ```bash helm repo add elastic https://helm.elastic.co helm repo update ``` 2. 安装Elasticsearch(自定义参数示例): ```bash helm install elasticsearch elastic/elasticsearch \ --namespace logging \ --create-namespace \ --set replicas=2 \ --set persistence.storageClass=standard \ --set resources.requests.memory=4Gi ``` - 通过`kubectl get svc -n logging`获取Elasticsearch服务地址(通常为`elasticsearch-master`) --- ### 三、部署Kibana 1. 安装Kibana并关联Elasticsearch: ```bash helm install kibana elastic/kibana \ --namespace logging \ --set service.type=NodePort \ --set elasticsearchHosts=http://elasticsearch-master.logging:9200 ``` 2. 访问Kibana: - 使用`kubectl get svc -n logging`获取NodePort端口 - 通过`http://<NodeIP>:<NodePort>`访问Web界面 --- ### 四、部署Fluentd 1. 添加Bitnami Helm仓库(Fluentd Chart): ```bash helm repo add bitnami https://charts.bitnami.com/bitnami helm repo update ``` 2. 创建自定义配置文件`fluentd-values.yaml`: ```yaml config: outputs: | <match **> @type elasticsearch host elasticsearch-master.logging.svc.cluster.local port 9200 logstash_format true logstash_prefix fluentd-logs </match> ``` 3. 安装Fluentd: ```bash helm install fluentd bitnami/fluentd \ --namespace logging \ -f fluentd-values.yaml ``` --- ### 五、验证部署 1. **检查Pod状态**: ```bash kubectl get pods -n logging ``` 输出应包含`elasticsearch`、`kibana``fluentd`的Running状态Pod 2. **测试日志采集**: ```bash # 生成测试日志 kubectl run test-logger --image=busybox -- sh -c "while true; do echo 'Hello Fluentd!'; sleep 5; done" ``` 3. **在Kibana中查看日志**: - 进入Kibana → Management → Stack Management → Index Patterns - 创建索引模式`fluentd-logs-*` - 在Discover页面查看日志 --- ### 六、常见问题处理 1. **存储不足**:调整`persistence.size`参数 2. **资源限制**:优化`resources.requests/limits` 3. **网络连通性**:检查Service域名解析 4. **安全配置**(生产环境必选): - 启用Elasticsearch认证:`--set elasticsearch.security.auth.enabled=true` - 配置TLS证书 --- ### 七、卸载组件 ```bash helm uninstall elasticsearch -n logging helm uninstall kibana -n logging helm uninstall fluentd -n logging ``` --- 通过以上步骤,您可以在Kubernetes集群中快速搭建日志收集分析系统。建议根据实际需求调整资源配置安全策略,生产环境需参考[Elastic官方文档](https://www.elastic.co/guide/index.html)进行深度优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值