K8s / fluentd / graylog
... / K8s / fluentd / graylog
BMPCreated with Sketch.BMPZIPCreated with Sketch.ZIPXLSCreated with Sketch.XLSTXTCreated with Sketch.TXTPPTCreated with Sketch.PPTPNGCreated with Sketch.PNGPDFCreated with Sketch.PDFJPGCreated with Sketch.JPGGIFCreated with Sketch.GIFDOCCreated with Sketch.DOC Error Created with Sketch.
question

K8s / fluentd / graylog

Par
BaptisteM3
Créé le 2019-03-16 18:14:10 (edited on 2024-09-04 12:06:25) dans Erreur connexion SSL

Bonjour,

je suis actuellement en train de tenter de faire fonctionner fluentd depuis mon cluster k8s OVH.
Le problème étant le suivant: seulement les logs relatif à kubelet apparaissent correctement dans la console graylog d'OVH, tous les logs relatifs aux container n'apparaissent pas dans la console graylog.
Je cherche depuis un moment où j'ai bien pu faire une erreur, mais je ne trouve pas.
A noter que j'ai activé fluentd en mode "trace" et que je n'ai aucune erreur.

Voici mon YAML:

---
apiVersion: v1
kind: ServiceAccount
metadata:
name: fluentd
namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRole
metadata:
name: fluentd
namespace: kube-system
rules:
- apiGroups:
- ""
resources:
- pods
- namespaces
verbs:
- get
- list
- watch
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
name: fluentd
roleRef:
kind: ClusterRole
name: fluentd
apiGroup: rbac.authorization.k8s.io
subjects:
- kind: ServiceAccount
name: fluentd
namespace: kube-system
---
apiVersion: v1
kind: ConfigMap
metadata:
name: fluentd-ovh
namespace: kube-system
data:
ovh.conf: |-

@type record_modifier

X-OVH-TOKEN "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"


---
apiVersion: extensions/v1beta1
kind: DaemonSet
metadata:
name: fluentd
namespace: kube-system
labels:
k8s-app: fluentd-graylog
version: v1
kubernetes.io/cluster-service: "true"
spec:
template:
metadata:
labels:
k8s-app: fluentd-graylog
version: v1
kubernetes.io/cluster-service: "true"
spec:
serviceAccount: fluentd
serviceAccountName: fluentd
tolerations:
- key: node-role.kubernetes.io/master
effect: NoSchedule
containers:
- name: fluentd
image: fluent/fluentd-kubernetes-daemonset:v1.3-debian-graylog-1
env:
- name: FLUENT_GRAYLOG_HOST
value: "gra2.logs.ovh.com"
- name: FLUENT_GRAYLOG_PORT
value: "2202"
resources:
limits:
memory: 200Mi
requests:
cpu: 100m
memory: 200Mi
volumeMounts:
- name: varlog
mountPath: /var/log
- name: varlibdockercontainers
mountPath: /var/lib/docker/containers
readOnly: true
- name: fluentd-ovh
mountPath: /fluentd/etc/conf.d/ovh.conf
subPath: ovh.conf
terminationGracePeriodSeconds: 30
volumes:
- name: varlog
hostPath:
path: /var/log
- name: varlibdockercontainers
hostPath:
path: /var/lib/docker/containers
- name: fluentd-ovh
configMap:
name: fluentd-ovh
items:
- key: ovh.conf
path: ovh.conf

j'ai juste un doute sur le fait que le log des container est en JSON, et que le champs X-OVH-TOKEN est ajouté dans le JSON, mais je suppose que le parser json le rajoute normalement.

Merci pour toute aide.


2 réponses ( Latest reply on 2019-04-08 16:43:27 Par
BaptisteM3
)

Salut,

le ovh.conf est bien inclus vu que j'ai les logs de kubelet (non json) mais pas ceux des containers (json).
Pour les autres configs, j'utilise l'image officielle de fluentd daemonset: les confs sont ici: https://github.com/fluent/fluentd-kubernetes-daemonset/tree/master/docker-image/v1.3/debian-graylog/conf

Merci

Salut et merci pour le retour.
Pour le FLUENT_UID=0, depuis plusieurs version les images sont lancées en root: https://github.com/fluent/fluentd-kubernetes-daemonset/blob/master/docker-image/v1.3/debian-graylog/Dockerfile
Donc ce paramètre n'est plus pertinent.

Je testerai les logs pour mon cluster rapidement, mais ça veut dire que je n'ai pas besoin de fluentd pour avoir les logs des containers, c'est nativement fait par OVH ?

Merci

Les réponses sont actuellement désactivées pour cette question.