informasi kontak saya
Surat[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Referensi konstruksi dan interpretasi Filebeat+ELK
Tautan:pembelajaran k8s – proses mendetail pengumpulan log ELK berdasarkan k8s
Bab ini tidak akan mengulangi deskripsinya
mesin virtual
Aku p | nama CPU | prosesor | Penyimpanan | harddisk |
---|---|---|---|---|
192.168.10.11 | master01 | 2cpu inti ganda | Jaringan Jaringan Jaringan Jaringan 4G | 100 GRAM |
192.168.10.12 | pekerja01 | 2cpu inti ganda | Jaringan Jaringan Jaringan Jaringan 4G | 100 GRAM |
192.168.10.13 | pekerja02 | 2cpu inti ganda | Jaringan Jaringan Jaringan Jaringan 4G | 100 GRAM |
192.168.10.17 | RUSA BESAR | 1cpu inti ganda | Jaringan Jaringan Jaringan Jaringan 4G | 100 GRAM |
Versi centos7.9
K8s-1.27 yang dikerahkan
Server ELK telah menerapkan Filebeat+ELK
Hal ini diimplementasikan dengan menjalankan filebeat (sidecar) di aplikasi Pod. Kali ini, Tomcat akan digunakan sebagai contoh ilustrasi.
Secara default, tidak ada file beranda situs web di container Tomcat. Kegagalan menambahkannya akan menyebabkan container di pod gagal berjalan secara normal.
operasi host work01
mkdir /opt/tomcatwebroot
echo "tomcat is running" > /opt/tomcatwebroot/index.html
operasi tuan rumah utama
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 ini mendefinisikan file konfigurasi Tomcat dan Filebeat Deployment dan Filebeat. Mari kita jelaskan secara bergantian.
Bagian penerapan
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
metadata: mendefinisikan nama dan namespace Deployment.
spec: Berisi spesifikasi detail Deployment.
replika: menentukan jumlah replika, yaitu menjalankan dua instance Tomcat.
selector: mendefinisikan selector untuk mencocokkan label Pod.
templat: menjelaskan templat Pod, termasuk metadata dan spesifikasi.
nodeName: menentukan nama node (worker01) dimana Pod sedang berjalan.
container: Dua container didefinisikan: Tomcat dan Filebeat.
Wadah Tomcat:
gambar: Gunakan Tomcat: gambar terbaru.
port: Buka port 8080.
sumber daya: Mendefinisikan permintaan dan batasan sumber daya.
livenessProbe dan kesiapanProbe: digunakan untuk pemeriksaan kesehatan.
volumeMounts: Dua volume dipasang.
Wadah filebeat:
gambar: Gunakan filebeat:7.17.2 gambar.
args: Menentukan parameter startup.
sumber daya: Mendefinisikan permintaan dan batasan sumber daya.
securityContext: Jalankan sebagai pengguna root.
volumeMounts: Dua volume dipasang.
volume:
Tomcat-logs: Gunakan volume kosongDir.
Tomcatwebroot: Gunakan volume hostPath.
filebeat-config: Gunakan volume ConfigMap.
Bagian file konfigurasi (ConfigMap).
apiVersion: v1
kind: ConfigMap
metadata:
name: filebeat-config
menjelaskan
metadata: mendefinisikan nama ConfigMap.
data: harus berisi konten konfigurasi Filebeat (dihilangkan di sini).
konfigurasi host rusa
Tulis file konfigurasi logstash tanpa memengaruhi file konfigurasi sebelumnya
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}"
}
}
berlari
/usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/tomcat-logstash-to-elastic.conf --path.data /usr/share/logstash/data3 &
Pastikan port sudah habis
ss -anput | grep ":5056"
operasi tuan rumah utama
kubectl apply -f tomcat-logs.yaml
Tunggu beberapa saat karena Anda perlu mendownload gambarnya
Kemudian periksa podnya
Catatan: VPN diperlukan
kubectl get deployment.apps
kubectl get pods
Lihat log yang dihasilkan kucing jantan (-c: container)
Lihat log koleksi filebeat
kubectl logs tomcat-demo-664584f857-k8whd -c filebeat
Akses browser tuan rumah
192.168.10.17:5601
Anda dapat melihat bahwa Anda telah melihat log
Menyelesaikan
Jika ini membantu Anda, silakan klik dan ikuti