EFK 7.12.1 安装部署

一、Elasticsearch

创建项目目录:mkdir /opt/elastic

进入目录:cd /opt/elastic

下载地址:https://www.elastic.co/cn/start

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.12.1-linux-x86_64.tar.gz

下载完成后,解压 tar zxvf elasticsearch-7.12.1-linux-x86_64.tar.gz

创建数据和日志目录 mkdir data logs

修改配置文件 vim elasticsearch-7.12.1/config/elasticsearch.yml

//数据保存位置
path.data: /opt/elastic/data
//日志位置
path.logs: /opt/elastic/logs
//可以访问elasticsearch服务的地址
network.host: 127.0.0.1

elasticsearch先这样,暂时未启动。

二、Kibana

下载地址:https://www.elastic.co/cn/start

wget https://artifacts.elastic.co/downloads/kibana/kibana-7.12.1-linux-x86_64.tar.gz

下载完成后,解压 tar zxvf kibana-7.12.1-linux-x86_64.tar.gz

重命名 mv kibana-7.12.1-linux-x86_64 kibana-7.12.1

修改配置文件 vim kibana-7.12.1/config/kibana.yml

把默认的loaclhost改为0.0.0.0,表示允许其他人访问而非只能在本机访问
server.host: "0.0.0.0"
修改界面为中文
i18n.locale: "zh-CN"

三、启动

Elasticsearch和Kibana都不能使用root用户启动。

创建一个新用户es用于Elastic

创建用户组
groupadd es
创建用户到用户组
useradd es -g es
给用户权限
chown -R es:es /opt/elastic/*

使用es用户启动Elasticsearch和Kibana

//切换es用户
root@LA:/opt/elastic# su es
//后台启动elasticsearch
es@LA:/opt/elastic$ ./elasticsearch-7.12.1/bin/elasticsearch -d
//检查是否成功。elasticsearch默认使用9200端口,成功如下
es@LA:/opt/elastic$ ss -tnl|grep 9200
LISTEN     0      4096      ::ffff:127.0.0.1:9200                    :::*  

//启动kibana,不输出日志
es@LA:/opt/elastic$ nohup kibana-7.12.1/bin/kibana >/dev/null 2>&1 &
//检查是否成功。kibana默认使用5601端口,成功如下
es@LA:/opt/elastic$ ss -tnl|grep 5601
LISTEN     0      511          *:5601                     *:*          

浏览器中输入 http://ip:5601

四、

### Kubernetes 上部署 EFK 堆栈的指南 要在 Kubernetes (k8s) 中成功部署 EFK(Elasticsearch, Fluentd, Kibana)堆栈,以下是详细的说明: #### 1. 准备工作 在开始之前,确保已准备好以下环境: - 已经配置好的 Kubernetes 集群。 - 安装并初始化 `kubectl` 和 Helm(可选),用于管理和扩展集群。 #### 2. 导入镜像 根据引用中的描述[^2],需要先导入所需的 Docker 镜像至节点中。具体操作如下: ```bash ctr -n=k8s.io images import elasticsearch-7-12-1.tar.gz ctr -n=k8s.io images import kibana-7-12-1.tar.gz ctr -n=k8s.io images import fluentd-containerd.tar.gz ``` 这些命令会将本地压缩包中的镜像加载到容器运行时环境中。 --- #### 3. 创建 Elasticsearch 资源 创建一个名为 `elasticsearch.yaml` 的文件来定义 Elasticsearch 的服务和 Pod: ```yaml apiVersion: apps/v1 kind: Deployment metadata: name: elasticsearch spec: replicas: 1 selector: matchLabels: app: elasticsearch template: metadata: labels: app: elasticsearch spec: containers: - name: elasticsearch image: elasticsearch:7.12.1 ports: - containerPort: 9200 --- apiVersion: v1 kind: Service metadata: name: elasticsearch-svc spec: type: ClusterIP selector: app: elasticsearch ports: - port: 9200 targetPort: 9200 ``` 应用此 YAML 文件以启动 Elasticsearch 实例: ```bash kubectl apply -f elasticsearch.yaml ``` --- #### 4. 配置 Fluentd 数据流 为了使 Fluentd 收集日志并将它们发送给 Elasticsearch,需编写相应的 ConfigMap 来指定过滤器和输出目标。下面是一个简单的例子: ```yaml apiVersion: v1 kind: ConfigMap metadata: name: fluentd-config data: fluent.conf: | <source> @type tail path /var/log/containers/*.log pos_file /var/log/fluentd-containers.log.pos tag kubernetes.* read_from_head true </source> <match **> @type copy <store> @type elasticsearch host elasticsearch-svc port 9200 logstash_format true </store> </match> ``` 接着,利用 DaemonSet 将 Fluentd 运行于每个节点之上: ```yaml apiVersion: apps/v1 kind: DaemonSet metadata: name: fluentd spec: selector: matchLabels: app: fluentd template: metadata: labels: app: fluentd spec: containers: - name: fluentd image: fluentd:latest volumeMounts: - name: varlog mountPath: /var/log - name: config-volume mountPath: /fluentd/etc/ volumes: - name: varlog hostPath: path: /var/log - name: config-volume configMap: name: fluentd-config ``` 执行以下指令完成部署: ```bash kubectl create configmap fluentd-config --from-file=fluent.conf=./fluentd-conf.conf kubectl apply -f fluentd-daemonset.yaml ``` --- #### 5. 启动 Kibana 并暴露端口 最后一步是设置 Kibana 用户界面供访问。同样地,准备一份 YAML 描述文档: ```yaml apiVersion: apps/v1 kind: Deployment metadata: name: kibana spec: replicas: 1 selector: matchLabels: app: kibana template: metadata: labels: app: kibana spec: containers: - name: kibana image: kibana:7.12.1 env: - name: ELASTICSEARCH_URL value: http://elasticsearch-svc:9200 ports: - containerPort: 5601 --- apiVersion: v1 kind: Service metadata: name: kibana-service spec: type: NodePort selector: app: kibana ports: - protocol: TCP port: 5601 nodePort: 30000 ``` 提交以上配置后即可查看外部 IP 地址及其关联的服务端口号: ```bash kubectl get svc kibana-service -o wide ``` 通过浏览器打开形如 `<Node_IP>:<Node_Port>` 的 URL 即能进入 Kibana 控制台[^1]。 --- ### 总结 上述过程涵盖了从基础架构搭建到最终可视化的全部环节。每部分都紧密联系在一起形成完整的解决方案链路——即所谓的 EFK stack。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值