τα στοιχεία επικοινωνίας μου
Ταχυδρομείο[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Αναφορά κατασκευής και ερμηνείας Filebeat+ELK
Σύνδεσμος:Εκμάθηση k8s – λεπτομερής διαδικασία συλλογής αρχείων καταγραφής ELK με βάση τα k8s
Αυτό το κεφάλαιο δεν θα επαναλάβει την περιγραφή
εικονική μηχανή
Ip | Όνομα CPU | ΕΠΕΞΕΡΓΑΣΤΗΣ | Μνήμη | σκληρός δίσκος |
---|---|---|---|---|
192.168.10.11 | master01 | 2cpu διπλού πυρήνα | 4G | 100 γρ |
192.168.10.12 | εργάτης01 | 2cpu διπλού πυρήνα | 4G | 100 γρ |
192.168.10.13 | εργάτης02 | 2cpu διπλού πυρήνα | 4G | 100 γρ |
192.168.10.17 | ΜΕΓΑΛΗ ΕΛΑΦΟΣ | 1cpu διπλού πυρήνα | 4G | 100 γρ |
Έκδοση centos7.9
Αναπτύχθηκε k8s-1.27
Ο διακομιστής ELK έχει αναπτύξει το Filebeat+ELK
Υλοποιείται εκτελώντας το filebeat (sidecar) στην εφαρμογή Pod Αυτή τη φορά, το Tomcat θα χρησιμοποιηθεί ως παράδειγμα.
Από προεπιλογή, δεν υπάρχει αρχείο αρχικής σελίδας ιστότοπου στο κοντέινερ Tomcat Εάν δεν το προσθέσετε, το κοντέινερ στο pod δεν θα λειτουργήσει κανονικά.
λειτουργία κεντρικού υπολογιστή work01
mkdir /opt/tomcatwebroot
echo "tomcat is running" > /opt/tomcatwebroot/index.html
κύρια λειτουργία κεντρικού υπολογιστή
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']
Αυτό το yaml ορίζει τα αρχεία διαμόρφωσης Tomcat και Filebeat Deployment και Filebeat.
Ενότητα ανάπτυξης
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
μεταδεδομένα: ορίζει το όνομα και τον χώρο ονομάτων της Ανάπτυξης.
spec: Περιέχει τις λεπτομερείς προδιαγραφές της Ανάπτυξης.
replicas: καθορίζει τον αριθμό των αντιγράφων, δηλαδή την εκτέλεση δύο παρουσιών Tomcat.
επιλογέας: ορίζει έναν επιλογέα για αντιστοίχιση ετικετών Pod.
πρότυπο: περιγράφει το πρότυπο Pod, συμπεριλαμβανομένων των μεταδεδομένων και των προδιαγραφών.
nodeName: καθορίζει το όνομα του κόμβου (worker01) όπου εκτελείται το Pod.
κοντέινερ: Ορίζονται δύο κοντέινερ: Tomcat και Filebeat.
Δοχείο Tomcat:
εικόνα: Χρησιμοποιήστε το tomcat:πιο πρόσφατη εικόνα.
θύρες: Εκθέστε τη θύρα 8080.
πόροι: Καθορίζει τα αιτήματα και τα όρια πόρων.
livenessProbe και ReadinessProbe: χρησιμοποιείται για υγειονομικούς ελέγχους.
volumeMounts: Έχουν τοποθετηθεί δύο τόμοι.
Κοντέινερ Filebeat:
image: Χρησιμοποιήστε filebeat:7.17.2 image.
args: Καθορίζει τις παραμέτρους εκκίνησης.
πόροι: Καθορίζει τα αιτήματα και τα όρια πόρων.
SecurityContext: Εκτελείται ως χρήστης root.
volumeMounts: Έχουν τοποθετηθεί δύο τόμοι.
τόμοι:
tomcat-logs: Χρησιμοποιήστε κενούς τόμουςDir.
tomcatwebroot: Χρησιμοποιήστε τον τόμο hostPath.
filebeat-config: Χρησιμοποιήστε τόμους ConfigMap.
Ενότητα αρχείου διαμόρφωσης (ConfigMap).
apiVersion: v1
kind: ConfigMap
metadata:
name: filebeat-config
εξηγώ
μεταδεδομένα: ορίζει το όνομα του ConfigMap.
δεδομένα: πρέπει να περιέχει το περιεχόμενο διαμόρφωσης του Filebeat (παραλείπεται εδώ).
διαμόρφωση κεντρικού υπολογιστή elk
Γράψτε αρχεία διαμόρφωσης logstash χωρίς να επηρεάζετε τα προηγούμενα αρχεία διαμόρφωσης
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}"
}
}
τρέξιμο
/usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/tomcat-logstash-to-elastic.conf --path.data /usr/share/logstash/data3 &
Βεβαιωθείτε ότι η θύρα είναι ανοιχτή
ss -anput | grep ":5056"
κύρια λειτουργία κεντρικού υπολογιστή
kubectl apply -f tomcat-logs.yaml
Περιμένετε λίγο γιατί πρέπει να κάνετε λήψη της εικόνας
Στη συνέχεια, ελέγξτε το λοβό
Σημείωση: Απαιτείται VPN
kubectl get deployment.apps
kubectl get pods
Προβολή αρχείων καταγραφής που δημιουργήθηκαν από tomcat (-c: κοντέινερ)
Προβολή αρχείων καταγραφής συλλογής αρχείου
kubectl logs tomcat-demo-664584f857-k8whd -c filebeat
Πρόσβαση στο πρόγραμμα περιήγησης κεντρικού υπολογιστή
192.168.10.17:5601
Μπορείτε να δείτε ότι έχετε δει το αρχείο καταγραφής
Φινίρισμα
Εάν σας βοηθά, κάντε κλικ και ακολουθήστε