2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Filebeat+ELK rakenne- ja tulkintaviite
Linkki:k8s-oppiminen – yksityiskohtainen ELK-lokinkeruuprosessi k8s-pohjaisena
Tämä luku ei toista kuvausta
virtuaalikone
Ip | CPU:n nimi | prosessori | Muisti | kiintolevy |
---|---|---|---|---|
192.168.10.11 | mestari01 | 2 cpu kaksiytiminen | 4G | 100G |
192.168.10.12 | työntekijä01 | 2 cpu kaksiytiminen | 4G | 100G |
192.168.10.13 | työntekijä02 | 2 cpu kaksiytiminen | 4G | 100G |
192.168.10.17 | HIRVI | 1 cpu kaksiytiminen | 4G | 100G |
Versio centos7.9
K8s-1.27 käytössä
ELK-palvelin on ottanut käyttöön Filebeat+ELK:n
Se on toteutettu suorittamalla filebeat (sivuvaunu) sovelluksessa Pod Tällä kertaa havainnollistamiseen käytetään Tomcatia.
Oletuksena tomcat-säilössä ei ole verkkosivuston kotisivutiedostoa. Jos sitä ei lisätä, kotelossa oleva säilö ei toimi normaalisti.
work01 isäntätoiminto
mkdir /opt/tomcatwebroot
echo "tomcat is running" > /opt/tomcatwebroot/index.html
pääisäntätoiminto
vim tomcat-logs.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: tomcat-demo
namespace: default
spec:
replicas: 2
selector:
matchLabels:
project: www
app: tomcat-demo
template:
metadata:
labels:
project: www
app: tomcat-demo
spec:
nodeName: worker01
containers:
- name: tomcat
image: tomcat:latest
imagePullPolicy: IfNotPresent
ports:
- containerPort: 8080
name: web
protocol: TCP
resources:
requests:
cpu: 0.5
memory: 500Mi
limits:
cpu: 1
memory: 1Gi
livenessProbe:
httpGet:
path: /
port: 8080
initialDelaySeconds: 60
timeoutSeconds: 20
readinessProbe:
httpGet:
path: /
port: 8080
initialDelaySeconds: 60
timeoutSeconds: 20
volumeMounts:
- name: tomcat-logs
mountPath: /usr/local/tomcat/logs
- name: tomcatwebroot
mountPath: /usr/local/tomcat/webapps/ROOT
- name: filebeat
image: docker.io/elastic/filebeat:7.17.2
imagePullPolicy: IfNotPresent
args: [
"-c", "/etc/filebeat.yml",
"-e",
]
resources:
limits:
memory: 500Mi
requests:
cpu: 100m
memory: 100Mi
securityContext:
runAsUser: 0
volumeMounts:
- name: filebeat-config
mountPath: /etc/filebeat.yml
subPath: filebeat.yml
- name: tomcat-logs
mountPath: /usr/local/tomcat/logs
volumes:
- name: tomcat-logs
emptyDir: {}
- name: tomcatwebroot
hostPath:
path: /opt/tomcatwebroot
type: Directory
- name: filebeat-config
configMap:
name: filebeat-config
---
apiVersion: v1
kind: ConfigMap
metadata:
name: filebeat-config
namespace: default
data:
filebeat.yml: |-
filebeat.inputs:
- type: log
paths:
- /usr/local/tomcat/logs/catalina.*
fields:
app: www
type: tomcat-catalina
fields_under_root: true
multiline:
pattern: '^['
negate: true
match: after
setup.ilm.enabled: false
setup.template.name: "tomcat-catalina"
setup.template.pattern: "tomcat-catalina-*"
output.logstash:
hosts: ['192.168.10.17:5056']
Tämä yaml määrittelee Tomcat- ja Filebeat-käyttöönotto- ja Filebeat-määritystiedostot. Selitämme ne vuorotellen.
Käyttöönotto-osio
apiVersion: apps/v1
kind: Deployment
metadata:
name: tomcat-demo
namespace: default
spec:
replicas: 2
selector:
matchLabels:
project: www
app: tomcat-demo
template:
metadata:
labels:
project: www
app: tomcat-demo
spec:
nodeName: worker01
containers:
- name: tomcat
image: tomcat:latest
imagePullPolicy: IfNotPresent
ports:
- containerPort: 8080
name: web
protocol: TCP
resources:
requests:
cpu: 0.5
memory: 500Mi
limits:
cpu: 1
memory: 1Gi
livenessProbe:
httpGet:
path: /
port: 8080
initialDelaySeconds: 60
timeoutSeconds: 20
readinessProbe:
httpGet:
path: /
port: 8080
initialDelaySeconds: 60
timeoutSeconds: 20
volumeMounts:
- name: tomcat-logs
mountPath: /usr/local/tomcat/logs
- name: tomcatwebroot
mountPath: /usr/local/tomcat/webapps/ROOT
- name: filebeat
image: docker.io/elastic/filebeat:7.17.2
imagePullPolicy: IfNotPresent
args: [
"-c", "/etc/filebeat.yml",
"-e",
]
resources:
limits:
memory: 500Mi
requests:
cpu: 100m
memory: 100Mi
securityContext:
runAsUser: 0
volumeMounts:
- name: filebeat-config
mountPath: /etc/filebeat.yml
subPath: filebeat.yml
- name: tomcat-logs
mountPath: /usr/local/tomcat/logs
volumes:
- name: tomcat-logs
emptyDir: {}
- name: tomcatwebroot
hostPath:
path: /opt/tomcatwebroot
type: Directory
- name: filebeat-config
configMap:
name: filebeat-config
metatiedot: määrittää käyttöönoton nimen ja nimitilan.
spec: Sisältää käyttöönoton yksityiskohtaiset tiedot.
replikat: määrittää replikoiden määrän, toisin sanoen ajettaessa kahta Tomcat-instanssia.
valitsin: määrittää valitsimen pod-etikettien yhteensovittamista varten.
malli: kuvaa Pod-mallia, mukaan lukien metatiedot ja tekniset tiedot.
nodeName: määrittää solmun nimen (työntekijä01), jossa Pod on käynnissä.
kontit: Kaksi säilöä on määritelty: Tomcat ja Filebeat.
Tomcat-säiliö:
kuva: Käytä tomcat:uusinta kuvaa.
portit: Näytä portti 8080.
resurssit: Määrittää resurssipyynnöt ja -rajat.
elävyysProbe ja valmiusProbe: käytetään terveystarkastuksiin.
volumeMounts: Kaksi taltiota on asennettu.
Filebeat-säilö:
kuva: Käytä filebeat:7.17.2-kuvaa.
args: Määrittää käynnistysparametrit.
resurssit: Määrittää resurssipyynnöt ja -rajat.
securityContext: Suorita pääkäyttäjänä.
volumeMounts: Kaksi taltiota on asennettu.
määrät:
tomcat-logs: Käytä emptyDir-taltioita.
tomcatwebroot: Käytä hostPath-taltiota.
filebeat-config: Käytä ConfigMap-taltioita.
Asetustiedosto (ConfigMap) -osio
apiVersion: v1
kind: ConfigMap
metadata:
name: filebeat-config
selittää
metatiedot: määrittää ConfigMapin nimen.
data: pitäisi sisältää Filebeatin määrityssisällön (jätetty pois tästä).
hirvi-isäntäkokoonpano
Kirjoita logstash-määritystiedostoja vaikuttamatta aiempiin asetustiedostoihin
vim /etc/logstash/conf.d/tomcat-logstash-to-elastic.conf
input {
beats {
host => "0.0.0.0"
port => "5056"
}
}
filter {
}
output {
elasticsearch {
hosts => "192.168.10.17:9200"
index => "tomcat-catalina-%{+yyyy.MM.dd}"
}
}
juosta
/usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/tomcat-logstash-to-elastic.conf --path.data /usr/share/logstash/data3 &
Varmista, että portti on päällä
ss -anput | grep ":5056"
pääisäntätoiminto
kubectl apply -f tomcat-logs.yaml
Odota hetki, koska sinun on ladattava kuva
Tarkista sitten kotelo
Huomautus: VPN vaaditaan
kubectl get deployment.apps
kubectl get pods
Näytä tomcatin luomat lokit (-c: kontti)
Näytä filebeat-kokoelmalokit
kubectl logs tomcat-demo-664584f857-k8whd -c filebeat
Isäntäselaimen käyttöoikeus
192.168.10.17:5601
Voit nähdä, että olet nähnyt lokin
Suorittaa loppuun
Jos se auttaa sinua, napsauta ja seuraa