亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何通過Splunk監控Kubernetes運行性能

發布時間:2022-02-19 14:00:44 來源:億速云 閱讀:142 作者:小新 欄目:開發技術

這篇文章主要介紹如何通過Splunk監控Kubernetes運行性能,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

Splunk是業界領先的機器數據收集、處理、分析和管理平臺。機器數據是指那些能夠為企業業務發展提供動力的應用、服務器、存儲、網絡設備、安全設備以及其他相關設備制造出來的數據。機器數據可以反映客戶、交易、應用、服務器、網絡等的行為或活動。機器數據的范圍遠遠超越了日志。

如何通過Splunk監控Kubernetes運行性能

部署架構

下圖是該方案的部署架構,主要包括:

利用Heapster收集K8s的性能數據,包含CPU,Memory,Network,File System等

利用Heapster的Statsd Sink,發送數據到Splunk的Metrics Store

利用Splunk的搜索命令和儀表盤功能對性能數據進行監控 如何通過Splunk監控Kubernetes運行性能

前期準備

前期主要要準備好兩件事:

編譯最新的Heapster的鏡像,并上傳到某個公共的Docker鏡像倉庫,例如docker hub

在Splunk中配置Metrics Store和對應的網絡輸入(Network Input UDP/TCP)

這里主要要做的選擇是Statsd的傳輸協議用UDP還是TCP。這里我推薦使用TCP。 最新的Heapster代碼支持不同的Backend,包含了log, influxdb, stackdriver, gcp monitoring, gcp logging, statsd, hawkular-metrics, wavefront, openTSDB, kafka, riemann, elasticsearch等等。因為Splunk的Metrics Store支持statsd協議,所以可以很容易的和Heapster集成。

首先我們需要利用最新的heapster代碼,編譯一個容器鏡像,因為docker hub上的heapsterd的官方鏡像的版本比較舊,并不支持statsd。所以需要自己編譯。

mkdir myheapster
mkdir myheapster/srcexport GOPATH=myheapstercd myheapster/src
git clone https://github.com/kubernetes/heapster.gitcd heapster
make container

運行以上的命令來編譯最新的heapster鏡像。

注意,heapster缺省使用udp協議,如果想要使用tcp,需要修改代碼

https://github.com/kubernetes/heapster/blob/master/metrics/sinks/statsd/statsd_client.go

func (client *statsdClientImpl) open() error {
var err error
client.conn, err = net.Dial("udp", client.host)if err != nil {
 glog.Errorf("Failed to open statsd client connection : %v", err)
} else {
 glog.V(2).Infof("statsd client connection opened : %+v", client.conn)
}return err
}

把udp改成tcp。

我在docker hub上放了兩個鏡像,分別對應udp版本的tcp版本,大家可以直接使用

naughtytao/heapster-amd64:v1.5.0-beta.3 udp

naughtytao/heapster-amd64:v1.5.0-beta.4 tcp

然后需要在Splunk中配置Metrics Store,參考這個文檔 如何通過Splunk監控Kubernetes運行性能

安裝配置Heapster

在K8s上部署heapster比較容易,創建對應的yaml配置文件,然后用kubectl命令行創建就好了。

以下是Deployment和Service的配置文件:

deployment.yaml

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
 name: heapster
 namespace: kube-system
spec:
 replicas: 1
 template:
   metadata:
     labels:
       task: monitoring
       k8s-app: heapster
       version: v6
   spec:
     containers:
     - name: heapster
       image: naughtytao/heapster-amd64:v1.5.0-beta.3
       imagePullPolicy: Always
       command:
       - /heapster
       - --source=kubernetes:https://kubernetes.default
       - --sink=statsd:udp://ip:port?numMetricsPerMsg=1

service.yaml

apiVersion: v1
kind: Service
metadata:
 labels:
   task: monitoring
   # For use as a Cluster add-on (https://github.com/kubernetes/kubernetes/tree/master/cluster/addons)   # If you are NOT using this as an addon, you should comment out this line.   kubernetes.io/cluster-service: 'true'   kubernetes.io/name: Heapster
 name: heapster
 namespace: kube-system
spec:
 ports:
 - port: 80
   targetPort: 8082
 selector:
   k8s-app: heapster

注意這里deployment的–sink的配置,ip是Splunk的IP或者主機名,port的對應的Splunk的data input的端口號。當使用udp協議的時候,需要配置的numMetricsPerMsg的值比較小,當這個值比較大的時候,會出message too long的error。當使用tcp的時候可以配置較大的數值。

運行 kubectl apply -f *.yaml 來部署heapster

如果正常運行,對應的heapster pod的日志如下

I0117 18:10:56.054746       1 heapster.go:78] /heapster --source=kubernetes:https://kubernetes.default --sink=statsd:udp://ec2-34-203-25-154.compute-1.amazonaws.com:8124?numMetricsPerMsg=10
I0117 18:10:56.054776       1 heapster.go:79] Heapster version v1.5.0-beta.4
I0117 18:10:56.054963       1 configs.go:61] Using Kubernetes client with master "https://kubernetes.default" and version v1
I0117 18:10:56.054978       1 configs.go:62] Using kubelet port 10255
I0117 18:10:56.076200       1 driver.go:104] statsd metrics sink using configuration : {host:ec2-34-203-25-154.compute-1.amazonaws.com:8124 prefix: numMetricsPerMsg:10 protocolType:etsystatsd renameLabels:map[] allowedLabels:map[] customizeLabel:0x15fc8c0}
I0117 18:10:56.076248       1 driver.go:104] statsd metrics sink using configuration : {host:ec2-34-203-25-154.compute-1.amazonaws.com:8124 prefix: numMetricsPerMsg:10 protocolType:etsystatsd renameLabels:map[] allowedLabels:map[] customizeLabel:0x15fc8c0}
I0117 18:10:56.076272       1 heapster.go:202] Starting with StatsD Sink
I0117 18:10:56.076281       1 heapster.go:202] Starting with Metric Sink
I0117 18:10:56.090229       1 heapster.go:112] Starting heapster on port 8082

在Splunk中進行監控

好了如果一切正常的化,heapster會用statsd的協議和格式發送metrics到Splunk的metrics store。

然后就可以用利用SPL的mstats和mcatalog命令來分析,監控metrics數據了。

以下搜索語句列出所有的Metrics

| mcatalog values(metric_name)
如何通過Splunk監控Kubernetes運行性能

以下搜索語句列出整個cluster的CPU使用,我們可以用Area或者Line Chart來可視化搜索結果。

| mstats avg(_value) WHERE metric_name=cluster.cpu/usage_rate span=30m
如何通過Splunk監控Kubernetes運行性能

kube-system namespace的對應內存使用情況

| mstats avg(_value) WHERE metric_name=namespace.kube-system.memory/usage span=30m
如何通過Splunk監控Kubernetes運行性能

大家可以把自己感興趣的分析結果放在Dashboard中,利用Realtime設置進行監控。 如何通過Splunk監控Kubernetes運行性能


以上是“如何通過Splunk監控Kubernetes運行性能”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

珠海市| 嘉善县| 依安县| 兰溪市| 乐清市| 墨玉县| 井研县| 唐海县| 泸溪县| 汉阴县| 新昌县| 钟山县| 雷山县| 察哈| 奈曼旗| 井冈山市| 得荣县| 察隅县| 新疆| 同江市| 泰和县| 九龙坡区| 察雅县| 余庆县| 汕尾市| 深圳市| 富锦市| 阜平县| 武威市| 姚安县| 新昌县| 冕宁县| 罗田县| 庆安县| 望城县| 喀喇沁旗| 白河县| 建湖县| 宾阳县| 于田县| 运城市|