Как да

Изпращайте регистрационни файлове до Splunk на Kubernetes с помощта на Splunk Forwarder

Изпращайте регистрационни файлове до Splunk на Kubernetes с помощта на Splunk Forwarder

Регистрацията е полезен механизъм както за разработчиците на приложения, така и за администраторите на клъстери. Помага при мониторинг и отстраняване на проблеми с приложенията. Контейнерните приложения по подразбиране записват в стандартен изход. Тези дневници се съхраняват в локалното краткотрайно хранилище. Те се губят веднага след като контейнерът. За да се реши този проблем, често се използва регистриране в постоянно съхранение. След това може да се извърши маршрутизация към централна система за регистриране като Splunk и Elasticsearch.

В този блог ще разгледаме използването на splunk универсален спедитор за изпращане на данни към splunk. Той съдържа само основните инструменти, необходими за препращане на данни. Той е проектиран да работи с минимален процесор и памет. Следователно той може лесно да бъде разположен като страничен контейнер за автомобил в клъстер kubernetes. Универсалният спедитор има конфигурации, които определят кои и къде се изпращат данни. След като данните бъдат препратени към индексаторите на splunk, те са достъпни за търсене.

Фигурата по-долу показва архитектура на високо ниво за това как работи splunk:

Предимства от използването на универсален спедитор

Предпоставки:

Преди да продължим се изисква следното:

  1. Работещ клъстер на платформа за контейнери Kubernetes или Openshift
  2. Kubectl или ок инструмент за команден ред, инсталиран на вашата работна станция. Трябва да имате административни права
  3. Работещ клъстер с два или повече индексатора

СТЪПКА 1: Създайте постоянен том

Първо ще разположим постоянния том, ако той вече не съществува. Конфигурационният файл по-долу използва клас за съхранение cephfs. Ще трябва да промените съответно конфигурацията си. Следните ръководства могат да се използват за настройване на клъстер ceph и разполагане на клас за съхранение:

Създайте постоянното искане за обем:

$ vim pvc_claim.yaml kind: PersistentVolumeClaim apiVersion: v1 метаданни: име: cephfs-спецификация на искане: accessModes: - ReadWriteOnce storageClassName: cephfs ресурси: заявки: съхранение: 1Gi 

Създайте постоянното искане за обем:

$ kubectl се прилага -f pvc_claim.ямъл

Погледнете PersistentVolumeClaim:

$ kubectl получите pvc cephfs-претенция ИМЕ СТАТУТ ОБЕМ КАПАЦИТЕТ ДОСТЪП РЕЖИМИ СЪХРАНЕНИЕ КЛАС ВЪЗРАСТ cephfs-претенция Обвързани pvc-19c8b186-699b-456e-afdc-bcbaba633c98 1Gi RWX cephfs 3s

СТЪПКА 2: Разгърнете приложение и монтирайте постоянния том

След това ще разгърнем нашето приложение. Забележете, че монтираме пътя “/ usr / share / nginx / html” към постоянния том. Това са данните, от които се нуждаем, за да продължим.

$ vim nginx.yaml apiVersion: v1 вид: Pod метаданни: име: nginx спецификация: томове: - име: съхранение persistentVolumeClaim: исканеName: cephfs-искане контейнери: - име: nginx-приложение изображение: nginx портове: - containerPort: 80 име: "http-сървър "volumeMounts: - mountPath:" / usr / share / nginx / html "име: съхранение 

СТЪПКА 3: Създайте configmap

След това ще разположим configmap, който ще бъде използван от нашия контейнер. Configmap има две ключови конфигурации:

Ще трябва да промените конфигурациите на configmap, за да отговарят на вашите нужди.

$ vim configmap.yaml вид: ConfigMap apiVersion: v1 метаданни: име: configs данни: изходи.conf: | - [indexAndForward] index = false [tcpout] defaultGroup = splunk-uat forwardedindex.филтър.деактивирайте = true indexAndForward = false [tcpout: splunk-uat] сървър = 172.29.127.2: 9997 # Използване на IP и порт на индексатора SplunkACK = вярно autoLB = истински входове.conf: | - [monitor: /// var / log / *.log] # Когато данните се четат от disabled = false sourcetype = log index = sfc_microservices_uat # Този индекс вече трябва да бъде създаден в средата на splunk

Разгънете configmap:

$ kubectl приложи -f configmap.ямъл

СТЪПКА 4: Разгърнете универсалния спедитор.

И накрая, ще разположим в него контейнер до универсалния контейнер за спедитор. Това ще помогне с копирането на конфигурационното съдържание на configmap в универсалния контейнер за препращане.

$ vim splunk_forwarder.yaml apiVersion: apps / v1 вид: Разполагане на метаданни: име: splunkforwarder етикети: приложение: splunkforwarder спецификация: реплики: 2 селектор: matchLabels: app: splunkforwarder шаблон: метаданни: етикети: приложение: splunkforwarder спецификация: initContainers: - име: том image: busybox imagePullPolicy: IfNotPresent команда: ['sh', '-c', 'cp / configs / * / opt / splunkforwarder / etc / system / local /'] volumeMounts: - mountPath: / configs name: configs - name: confs mountPath: / opt / splunkforwarder / etc / system / local container: - name: splunk-uf image: splunk / universalforwarder: latest imagePullPolicy: IfNotPresent env: - name: SPLUNK_START_ARGS value: --accept-license - name: SPLUNK_PASSWORD value: ***** - name: SPLUNK_USER value: splunk - name: SPLUNK_CMD value: add monitor / var / log / volumeMounts: - name: container-logs mountPath: / var / log - name: confs mountPath: / opt / splunkforwarder / etc / system / local volume: - name: container-logs persistentVolumeClaim: исканеName: cephfs-искане - name: confs emptyDir:  - name: configs configMap: name: configs defaultMode: 0777

Разгънете контейнера:

$ kubectl прилага -f splunk_forwarder.ямъл

Проверете дали се изпълняват универсалните модули за спедитор:

$ kubectl получи шушулки | grep splunkforwarder splunkforwarder-6877ffd464-l5bvh 1/1 Работи 0 30s splunkforwarder-6877ffd464-ltbdr 1/1 Работи 0 31s

СТЪПКА 5: Проверете дали регистрационните файлове са записани за излизане

Влезте в splunk и направете търсене, за да проверите дали регистрационните файлове се вливат.

Би трябвало да можете да виждате дневниците си.

Курсове на OpenShift:

Практически OpenShift за разработчици - нов курс 2021

Ultimate Openshift (2021) Bootcamp от School of Devops

Свързани ръководства:

Сигурен достъп до Linux системи и Kubernetes с Teleport

Как да изпращате регистрационни файлове и събития на OpenShift до Splunk

Как да предаваме дневници в AWS от CloudWatch към ElasticSearch

Как да изпращаме регистрационните файлове на Kubernetes до външно търсене на еластично

Apple ще проведе WWDC 2020 само за онлайн поради COVID-19
В лицето на коронавируса, наречен COVID-19, много големи събирания отмениха тазгодишните предложения в отговор. Голямото игрално събитие за годината, ...
Търсенето в домашни условия причинява прекъсване на работата на екипите на Microsoft
С избухването на коронавирус COVID-19 страните по света призовават хората да работят от вкъщи, ако не го правят законодателно. Като такива широколенто...
Използването на интернет в САЩ почти се удвоява след предупрежденията за COVID-19
На 10 март светът изпадна в състояние на паника заради разпространението на коронавирус. Правителствата съветват своите цивилни да стоят на закрито, д...