apiVersion: apps/v1
kind: Deployment
metadata:
name: logstash-deployment
namespace: dv-poc
spec:
replicas: 1
selector:
matchLabels:
app: logstash
template:
metadata:
labels:
app: logstash
spec:
containers:
- name: logstash
image: opensearchproject/logstash-oss-with-opensearch-output-plugin:latest
ports:
- containerPort: 5044
volumeMounts:
- name: config-volume
mountPath: /usr/share/logstash/config
- name: logstash-pipeline-volume
mountPath: /usr/share/logstash/pipeline
resources:
limits:
memory: "4Gi"
cpu: "2500m"
requests:
memory: "4Gi"
cpu: "800m"
volumes:
- name: config-volume
configMap:
name: logstash-configmap
items:
- key: logstash.yml
path: logstash.yml
- name: logstash-pipeline-volume
configMap:
name: logstash-configmap
items:
- key: logstash.conf
path: logstash.conf
---
kind: Service
apiVersion: v1
metadata:
name: logstash-service
namespace: dv-poc
annotations:
service.beta.kubernetes.io/aws-load-balancer-internal: "true"
spec:
selector:
app: logstash
ports:
- protocol: TCP
port: 5044
targetPort: 5044
type: LoadBalancer
---
apiVersion: v1
kind: ConfigMap
metadata:
name: logstash-configmap
namespace: dv-poc
data:
logstash.yml: |
http.host: "0.0.0.0"
path.config: /usr/share/logstash/pipeline
logstash.conf: |
input {
kafka{
codec => json
bootstrap_servers => "10.111.178.24:9092"
topics => ["t_events"]
}
}
output {
opensearch {
hosts => ["10.98.55.121:9200"]
user => "admin"
password => "admin"
index => "logstash-logs-%{+YYYY.MM.dd}"
}
}