34.3. Installation de l'opérateur d'observabilité du réseau
L'installation de Loki est une condition préalable à l'utilisation de l'opérateur d'observabilité du réseau. Il est recommandé d'installer Loki à l'aide de l'opérateur Loki ; par conséquent, ces étapes sont documentées ci-dessous avant l'installation de l'opérateur d'observabilité du réseau.
L'opérateur Loki intègre une passerelle qui met en œuvre l'authentification multi-tenant & avec Loki pour le stockage des flux de données. La ressource LokiStack ressource gère Lokiqui est un système d'agrégation de logs évolutif, hautement disponible et multitenant, et un proxy web avec l'authentification OpenShift Container Platform. Le proxy LokiStack utilise l'authentification OpenShift Container Platform pour renforcer le multi-tenant et faciliter l'enregistrement et l'indexation des données dans les magasins de logs Loki magasins de logs.
L'opérateur Loki peut également être utilisé pour la journalisation avec la LokiStack. L'opérateur d'observabilité du réseau nécessite une LokiStack dédiée, séparée de la journalisation.
34.3.1. Installation de l'opérateur Loki
Il est recommandé d'installer Loki en utilisant la version 5.6 de Loki Operator. Cette version permet de créer une instance de LokiStack en utilisant le mode de configuration openshift-network
tennant. Elle fournit également un support d'authentification et d'autorisation entièrement automatique au sein du cluster pour Network Observability.
Conditions préalables
- Log Store pris en charge (AWS S3, Google Cloud Storage, Azure, Swift, Minio, OpenShift Data Foundation)
- OpenShift Container Platform 4.10 .
- Noyau Linux 4.18 .
Il y a plusieurs façons d'installer Loki. L'une des façons d'installer l'opérateur Loki est d'utiliser la console web Operator Hub de OpenShift Container Platform.
Procédure
Installer l'opérateur
Loki Operator
:-
Dans la console web d'OpenShift Container Platform, cliquez sur Operators
OperatorHub. - Choisissez Loki Operator dans la liste des opérateurs disponibles, et cliquez sur Install.
- Sous Installation Modesélectionner All namespaces on the cluster.
-
Vérifiez que vous avez installé l'opérateur Loki. Visitez le site Operators
Installed Operators et cherchez Loki Operator. - Vérifiez que Loki Operator est listé avec Status comme Succeeded dans tous les projets.
-
Dans la console web d'OpenShift Container Platform, cliquez sur Operators
Créez un fichier YAML
Secret
. Vous pouvez créer ce secret dans la console web ou dans le CLI.-
À l'aide de la console web, naviguez jusqu'à l'écran Project
All Projects et sélectionnez Create Project. Nommez le projet netobserv
et cliquez sur Create. -
Naviguez jusqu'à l'icône d'importation , dans le coin supérieur droit. Déposez votre fichier YAML dans l'éditeur. Il est important de créer ce fichier YAML dans l'espace de noms
netobserv
qui utiliseaccess_key_id
etaccess_key_secret
pour spécifier vos informations d'identification. Une fois le secret créé, vous devriez le voir apparaître sous la rubrique Workloads
Secrets dans la console web. Voici un exemple de fichier YAML secret :
-
À l'aide de la console web, naviguez jusqu'à l'écran Project
apiVersion: v1 kind: Secret metadata: name: loki-s3 namespace: netobserv stringData: access_key_id: QUtJQUlPU0ZPRE5ON0VYQU1QTEUK access_key_secret: d0phbHJYVXRuRkVNSS9LN01ERU5HL2JQeFJmaUNZRVhBTVBMRUtFWQo= bucketnames: s3-bucket-name endpoint: https://s3.eu-central-1.amazonaws.com region: eu-central-1
Pour désinstaller Loki, reportez-vous à la procédure de désinstallation correspondant à la méthode que vous avez utilisée pour installer Loki. Il se peut que vous ayez encore ClusterRoles
et ClusterRoleBindings
, des données stockées dans le magasin d'objets et des volumes persistants qui doivent être supprimés.
34.3.1.1. Créer une ressource personnalisée LokiStack
Il est recommandé de déployer la LokiStack dans le même espace de noms que celui référencé par la spécification FlowCollector, spec.namespace
. Vous pouvez utiliser la console web ou le CLI pour créer un espace de noms, ou un nouveau projet.
Procédure
-
Naviguer vers Operators
Installed Operators. -
Dans les détails, sous Provided APIssélectionnez
LokiStack
et cliquez sur Create LokiStack. Veillez à ce que les champs suivants soient spécifiés soit dans Form View ou YAML view:
apiVersion: loki.grafana.com/v1 kind: LokiStack metadata: name: loki namespace: netobserv spec: size: 1x.small storage: schemas: - version: v12 effectiveDate: '2022-06-01' secret: name: loki-s3 type: s3 storageClassName: gp3 1 tenants: mode: openshift-network
- 1
- Utilisez un nom de classe de stockage disponible sur le cluster pour le mode d'accès
ReadWriteOnce
. Vous pouvez utiliseroc get storageclasses
pour voir ce qui est disponible sur votre cluster.
ImportantVous ne devez pas réutiliser la même LokiStack que celle utilisée pour la journalisation des clusters.
34.3.1.1.1. Dimensionnement du déploiement
Le dimensionnement de Loki suit le format suivant N<x>.<size>
où la valeur <N>
est le nombre d'instances et <size>
spécifie les capacités de performance.
1x.extra-small est utilisé à des fins de démonstration uniquement et n'est pas pris en charge.
1x.extra-petit | 1x.petit | 1x.moyen | |
---|---|---|---|
Data transfer | Utilisation à des fins de démonstration uniquement. | 500GB/jour | 2TB/jour |
Queries per second (QPS) | Utilisation à des fins de démonstration uniquement. | 25-50 QPS à 200ms | 25-75 QPS à 200ms |
Replication factor | Aucun | 2 | 3 |
Total CPU requests | 5 vCPU | 36 vCPUs | 54 vCPUs |
Total Memory requests | 7.5Gi | 63Gi | 139Gi |
Total Disk requests | 150Gi | 300Gi | 450Gi |
34.3.1.2. Limites d'ingestion et alertes sanitaires de LokiStack
L'instance de LokiStack est livrée avec des paramètres par défaut en fonction de la taille configurée. Il est possible de remplacer certains de ces paramètres, tels que les limites d'ingestion et de requête. Vous pourriez vouloir les mettre à jour si vous obtenez des erreurs Loki dans le plugin Console, ou dans les journaux flowlogs-pipeline
. Une alerte automatique dans la console web vous notifie lorsque ces limites sont atteintes.
Voici un exemple de limites configurées :
spec: limits: global: ingestion: ingestionBurstSize: 40 ingestionRate: 20 maxGlobalStreamsPerTenant: 25000 queries: maxChunksPerQuery: 2000000 maxEntriesLimitPerQuery: 10000 maxQuerySeries: 3000
Pour plus d'informations sur ces paramètres, voir la référence de l'API LokiStack.
34.3.2. Créer des rôles pour l'authentification et l'autorisation
Spécifiez les configurations d'authentification et d'autorisation en définissant ClusterRole
et ClusterRoleBinding
. Vous pouvez créer un fichier YAML pour définir ces rôles.
Procédure
- Dans la console web, cliquez sur l'icône d'importation, .
Déposez votre fichier YAML dans l'éditeur et cliquez sur Create:
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: loki-netobserv-tenant rules: - apiGroups: - 'loki.grafana.com' resources: - network resourceNames: - logs verbs: - 'get' - 'create' --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: loki-netobserv-tenant roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: loki-netobserv-tenant subjects: - kind: ServiceAccount name: flowlogs-pipeline 1 namespace: netobserv
- 1
- Le site
flowlogs-pipeline
écrit à Loki. Si vous utilisez Kafka, cette valeur estflowlogs-pipeline-transformer
.
34.3.3. Installation de Kafka (optionnel)
L'Opérateur Kafka est pris en charge pour les environnements à grande échelle. Vous pouvez installer l'Opérateur Kafka en tant que Red Hat AMQ Streams à partir de l'Operator Hub, tout comme l'Opérateur Loki et l'Opérateur Network Observability ont été installés.
Pour désinstaller Kafka, reportez-vous à la procédure de désinstallation correspondant à la méthode utilisée pour l'installation.
34.3.4. Installation de l'opérateur d'observabilité du réseau
Vous pouvez installer l'opérateur d'observabilité réseau à l'aide de la console web Operator Hub de OpenShift Container Platform. Lorsque vous installez l'opérateur, il fournit la définition de ressource personnalisée (CRD) FlowCollector
. Vous pouvez définir des spécifications dans la console web lorsque vous créez le FlowCollector
.
Conditions préalables
- Installation de Loki. Il est recommandé d'installer Loki en utilisant la version 5.6 de l'Opérateur Loki.
Cette documentation part du principe que le nom de votre instance LokiStack
est loki
. L'utilisation d'un nom différent nécessite une configuration supplémentaire.
Procédure
-
Dans la console web d'OpenShift Container Platform, cliquez sur Operators
OperatorHub. - Choisissez Network Observability Operator dans la liste des opérateurs disponibles dans la fenêtre OperatorHubet cliquez sur Install.
-
Cochez la case
Enable Operator recommended cluster monitoring on this Namespace
. Naviguer vers Operators
Installed Operators. Sous Provided APIs for Network Observability, sélectionnez le lien Flow Collector lien. Naviguez jusqu'à l'onglet Flow Collector et cliquez sur Create FlowCollector. Effectuez les sélections suivantes dans la vue du formulaire :
-
spec.agent.ebpf.Sampling taille d'échantillonnage : Spécifier une taille d'échantillonnage pour les flux. Des tailles d'échantillonnage plus faibles auront un impact plus important sur l'utilisation des ressources. Pour plus d'informations, voir la référence de l'API
FlowCollector
, sous spec.agent.ebpf. - spec.deploymentModel: Si vous utilisez Kafka, vérifiez que Kafka est sélectionné.
spec.exporters: Si vous utilisez Kafka, vous pouvez éventuellement envoyer des flux de réseau à Kafka, afin qu'ils puissent être consommés par tout processeur ou stockage prenant en charge l'entrée Kafka, comme Splunk, Elasticsearch ou Fluentd. Pour ce faire, définissez les spécifications suivantes :
-
Réglez le type sur
KAFKA
. -
Régler le address comme
kafka-cluster-kafka-bootstrap.netobserv
. -
Régler le topic comme
netobserv-flows-export
. L'opérateur exporte tous les flux vers le sujet Kafka configuré. Définir les spécifications suivantes tls les spécifications :
certFile:
service-ca.crt
, name:kafka-gateway-ca-bundle
, et type:configmap
.Vous pouvez également configurer cette option ultérieurement en modifiant directement le fichier YAML. Pour plus d'informations, voir Export enriched network flow data.
-
Réglez le type sur
-
loki.url: L'authentification étant spécifiée séparément, cette URL doit être mise à jour comme suit
https://loki-gateway-http.netobserv.svc:8080/api/logs/v1/network
. La première partie de l'URL, "loki", doit correspondre au nom de votre LokiStack. -
loki.statusUrl: Réglez cette valeur sur
https://loki-query-frontend-http.netobserv.svc:3100/
. La première partie de l'URL, "loki", doit correspondre au nom de votre LokiStack. -
loki.authToken: Sélectionnez la valeur
FORWARD
. - tls.enable: Vérifiez que la case est cochée et qu'elle est donc activée.
statusTls: La valeur
enable
est fausse par défaut.Pour la première partie du certificat, les noms de référence :
loki-gateway-ca-bundle
,loki-ca-bundle
, etloki-query-frontend-http
,loki
, doivent correspondre au nom de votreLokiStack
.
-
spec.agent.ebpf.Sampling taille d'échantillonnage : Spécifier une taille d'échantillonnage pour les flux. Des tailles d'échantillonnage plus faibles auront un impact plus important sur l'utilisation des ressources. Pour plus d'informations, voir la référence de l'API
- Cliquez Create.
Vérification
Pour confirmer que l'opération s'est déroulée correctement, lorsque vous naviguez vers Observe vous devriez voir Network Traffic dans les options.
En l'absence de Application Traffic dans le cluster OpenShift Container Platform, les filtres par défaut peuvent indiquer qu'il n'y a pas de résultats, ce qui ne permet pas de visualiser le flux. À côté des sélections de filtres, sélectionnez Clear all filters pour voir le flux.
Si vous avez installé Loki en utilisant l'Opérateur Loki, il est conseillé de ne pas utiliser querierUrl
, car cela peut casser l'accès à la console de Loki. Si vous avez installé Loki en utilisant un autre type d'installation de Loki, ceci ne s'applique pas.
Ressources supplémentaires
- Pour plus d'informations sur les spécifications du collecteur de flux, voir la référence API du collecteur de flux et la ressource d'exemple du collecteur de flux.
- Pour plus d'informations sur l'exportation de données de flux vers Kafka à des fins de traitement par des tiers, voir Exportation de données de flux réseau enrichies.
34.3.5. Désinstallation de l'opérateur d'observabilité du réseau
Vous pouvez désinstaller l'opérateur d'observabilité réseau à l'aide de la console web Operator Hub d'OpenShift Container Platform, en travaillant dans l'espace de travail Operators
Procédure
Supprimer la ressource personnalisée
FlowCollector
.- Cliquez Flow Collectorqui se trouve à côté de l'icône Network Observability Operator dans la colonne Provided APIs colonne.
- Cliquez sur le menu des options pour l'option cluster et sélectionnez Delete FlowCollector.
Désinstaller l'opérateur d'observabilité du réseau.
-
Retournez à la page Operators
Installed Operators dans l'espace. - Cliquez sur le menu des options à côté de l'icône Network Observability Operator et sélectionnez Uninstall Operator.
-
Home
Projects et sélectionner openshift-netobserv-operator
- Naviguez jusqu'à Actions et sélectionnez Delete Project
-
Retournez à la page Operators
Supprimez la définition de ressource personnalisée (CRD) de
FlowCollector
.-
Naviguer vers Administration
CustomResourceDefinitions. - Cherchez FlowCollector et cliquez sur le menu des options .
Sélectionner Delete CustomResourceDefinition.
ImportantL'opérateur Loki et Kafka restent en place s'ils ont été installés et doivent être supprimés séparément. En outre, vous pouvez avoir des données restantes stockées dans un magasin d'objets et un volume persistant qui doivent être supprimés.
-
Naviguer vers Administration