Elasticsearch (n):Logstash的安装 和 使用

这里是在windows下的安装方式。

首先在Elasticsearch 官网下载logstash的zip包,与ES和Kibana相同,都是开箱可用的软件。

下载以后,若需要使用同步数据库到ES。那么至少需要两个配置。

  1. 在Logstash安装路径下导入一个Java的jdbc的据jar包(建议在路径下新建一个文件夹)。
  2. 需要配置一个.conf文件,这样就会连接到数据库(建议将配置文件放在与jar包相同的目录下,当然也可以放在Logstash的config目录下,并无影响,因为使用时还要再次输入config文件的路径)。

我是用的是,ES6.3.0 kibana和logstash版本需要和ES保持一致。logstash对于mysql的配置文件如下jdbc.conf:


input {
  jdbc {
    jdbc_driver_library => "D:\software6.3.0\logstash-6.3.0\mysql\mysql-connector-java-5.1.47.jar"
    jdbc_driver_class => "com.mysql.jdbc.Driver"
    jdbc_connection_string => "jdbc:mysql://localhost:3307/db05"
    jdbc_user => "root"
    jdbc_password => "gaowei"
    schedule => "* * * * *"
    jdbc_default_timezone => "Asia/Shanghai"
    statement => "select * from goodsinfo"
    use_column_value  => false
    last_run_metadata_path => "D:\software6.3.0\logstash-6.3.0\last.txt"
  }
}
output {
    elasticsearch {
        hosts => ["127.0.0.1:9200"]
        index => "goods"
        document_id => "%{goodsid}"
        document_type => "goodsinfo"
    }
    stdout {
        codec => json_lines
    }
}


配置好以后就可以使用Logstash来同步数据库了。

这里值得注意的是,Logstash与ES和Kibana不同的是,只能在cmd模式下运行,而其他两个有相应的启动程序。

打开命令行,切换到Logstash的bin目录下:输入:logstash -f  .config的相对或者绝对路径

<think>嗯,用户想了解如何在Kubernetes上部署单机Logstash,并且配置连接带有密码的Elasticsearch。我需要先理清楚步骤,确保每一步都正确。首先,应该考虑创建Logstash的配置文件,特别是处理密码的部分。可能需要使用Kubernetes的Secret来管理敏感信息,比如ES的密码。 接下来,需要确定Logstash的Deployment配置,挂载配置文件Secret。然后,可能还需要Service或者其他的Kubernetes资源。不过用户提到的是单机部署,所以Deployment的replica可能设为1。 还要注意Logstash的Docker镜像版本,用户可能需要指定合适的版本。另外,Elasticsearch的地址端口是否正确,是否需要使用Kubernetes的内部DNS,比如通过服务名访问。 密码部分,Logstash的配置文件里应该使用环境变量或者Secret来注入,避免硬编码。可能需要用到Kubernetes的环境变量从Secret中获取。例如,在Logstash的配置文件中使用${ES_PASSWORD}这样的变量,然后在Deployment中设置env.valueFrom.secretKeyRef。 另外,需要确保Elasticsearch的证书是否被信任,如果ES启用了SSL,Logstash可能需要配置CA证书。这部分可能需要额外的Volume挂载。 用户可能遇到的问题包括配置文件错误、Secret未正确挂载、网络连接问题或者认证失败。在步骤中需要提醒用户检查这些点,比如用kubectl logs查看日志,或者exec进入Pod测试连接。 可能还需要解释每个步骤的作用,比如为什么使用Secret,如何创建ConfigMap,以及Deployment各部分的意义。这样用户能更好地理解配置,方便后续调整。 最后,测试部分也很重要,确保Logstash能够正确连接到Elasticsearch,并且数据传输正常。可能需要通过发送测试数据,然后在ES中查询来验证。</think>以下是在Kubernetes中部署单节点Logstash并连接带密码认证的Elasticsearch的详细步骤: ----- ### 一、准备配置文件 #### 1. 创建Logstash配置文件(logstash.conf) ```bash input { beats { port => 5044 } } output { elasticsearch { hosts => ["http://elasticsearch:9200"] # ES服务地址 index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}" user => "elastic" # ES账号 password => "${ES_PASSWORD}" # 密码通过环境变量注入 ssl => false # 根据实际SSL配置调整 } } ``` #### 2. 创建Kubernetes ConfigMap ```yaml apiVersion: v1 kind: ConfigMap metadata: name: logstash-config data: logstash.conf: | # 此处粘贴上述配置文件内容 ``` ----- ### 二、创建Secret存储密码 ```yaml apiVersion: v1 kind: Secret metadata: name: es-credentials type: Opaque data: es-password: <BASE64编码密码> # 示例:echo -n "your_password" | base64 ``` ----- ### 三、部署Logstash ```yaml apiVersion: apps/v1 kind: Deployment metadata: name: logstash spec: replicas: 1 selector: matchLabels: app: logstash template: metadata: labels: app: logstash spec: containers: - name: logstash image: docker.elastic.co/logstash/logstash:8.7.1 env: - name: ES_PASSWORD valueFrom: secretKeyRef: name: es-credentials key: es-password ports: - containerPort: 5044 volumeMounts: - name: config-volume mountPath: /usr/share/logstash/pipeline/ volumes: - name: config-volume configMap: name: logstash-config ``` ----- ### 四、创建Service暴露端口 ```yaml apiVersion: v1 kind: Service metadata: name: logstash spec: selector: app: logstash ports: - protocol: TCP port: 5044 targetPort: 5044 ``` ----- ### 五、验证部署 #### 1. 检查Pod状态 ```bash kubectl get pods -l app=logstash ``` #### 2. 查看日志 ```bash kubectl logs <logstash-pod-name> -f ``` ----- ### 六、常见问题排查 1. **认证失败**: - 检查Secret是否已正确创建 - 验证BASE64编码是否正确:`echo '<encoded-string>' | base64 -d` 2. **连接问题**: - 执行`kubectl exec`进入容器测试ES连通性: ```bash curl -u elastic:${ES_PASSWORD} http://elasticsearch:9200 ``` 3. **配置更新**: ```bash kubectl rollout restart deployment/logstash # 修改配置后重启生效 ``` ----- ### 七、补充说明 1. 生产建议: - 增加资源限制(resources.limits) - 启用持久化存储 - 配置健康检查探针 2. 安全增强: - 使用SSL/TLS加密通信 - 定期轮换密码 - 启用RBAC权限控制 如需更详细的Elasticsearch集群部署配置,可告知具体需求补充说明。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值