diff --git a/kafka/50kafka.yml b/kafka/50kafka.yml index dff4a79f..60a55318 100644 --- a/kafka/50kafka.yml +++ b/kafka/50kafka.yml @@ -43,11 +43,15 @@ spec: env: - name: KAFKA_LOG4J_OPTS value: -Dlog4j.configuration=file:/etc/kafka/log4j.properties + - name: JMX_PORT + value: "5555" ports: - name: inside containerPort: 9092 - name: outside containerPort: 9094 + - name: jmx + containerPort: 5555 command: - ./bin/kafka-server-start.sh - /etc/kafka/server.properties diff --git a/monitoring/10-monitoring-config.yml b/monitoring/10-monitoring-config.yml new file mode 100644 index 00000000..6c6e62d7 --- /dev/null +++ b/monitoring/10-monitoring-config.yml @@ -0,0 +1,14 @@ +kind: ConfigMap +metadata: + name: monitoring-config + namespace: kafka +apiVersion: v1 +data: + cluster-prometheus-jmx.yml: |+ + #lowercaseOutputName: true + jmxUrl: service:jmx:rmi:///jndi/rmi://cluster-jmx:5555/jmxrmi + ssl: false + whitelistObjectNames: + - kafka.server:type=ReplicaManager,* + rules: + - pattern: kafka.server<>(Value|Count) diff --git a/monitoring/brokers-prometheus.yml b/monitoring/brokers-prometheus.yml new file mode 100644 index 00000000..006037d7 --- /dev/null +++ b/monitoring/brokers-prometheus.yml @@ -0,0 +1,49 @@ +apiVersion: apps/v1beta2 +kind: Deployment +metadata: + name: brokers-prometheus + namespace: kafka +spec: + replicas: 1 + selector: + matchLabels: + role: metrics + type: exporter + target: kafka-broker + level: cluster + template: + metadata: + labels: + role: metrics + type: exporter + target: kafka-broker + level: cluster + annotations: + prometheus.io/scrape: "true" + prometheus.io/port: "5556" + spec: + containers: + - name: exporter + image: solsson/kafka-prometheus-jmx-exporter@sha256:40a6ab24ccac0ed5acb8c02dccfbb1f5924fd97f46c0450e0245686c24138b53 + command: + - java + - -jar + - jmx_prometheus_httpserver.jar + - "5556" + - /etc/kafka/cluster-prometheus-jmx.yml + ports: + - containerPort: 5556 + resources: + requests: + cpu: 0m + memory: 40Mi + limits: + cpu: 100m + memory: 80Mi + volumeMounts: + - name: config + mountPath: /etc/kafka + volumes: + - name: config + configMap: + name: monitoring-config diff --git a/monitoring/cluster-jmx-service.yml b/monitoring/cluster-jmx-service.yml new file mode 100644 index 00000000..0ce5e624 --- /dev/null +++ b/monitoring/cluster-jmx-service.yml @@ -0,0 +1,12 @@ +--- +apiVersion: v1 +kind: Service +metadata: + name: cluster-jmx + namespace: kafka +spec: + ports: + - name: jmx + port: 5555 + selector: + app: kafka