前言
正文
Elastic Cloud on Kubernetes 簡化了在 Kubernetes 中運行 Elasticsearch 和 Kibana 的作業,包括設置、升級、快照、擴展、高可用性、安全性等
istio 安裝時,開log
istioctl manifest install -f loadBalancerSourceRange.yaml --set meshConfig.accessLogFile=/dev/stdout
或是更改yaml ,加上 meshConfig這段
kind: IstioOperator
apiVersion: install.istio.io/v1alpha1
metadata:
annotations:
install.istio.io/ignoreReconcile: 'true'
name: istio-external
namespace: istio-system
spec:
meshConfig:
accessLogFile: /dev/stdout
ECK
Kubernetes before 1.16以上版本
kubectl create -f https://download.elastic.co/downloads/eck/1.9.1/crds.yaml
kubectl apply -f https://download.elastic.co/downloads/eck/1.9.1/operator.yaml
需先安裝 elasticsearch Operator
ref.Elasticsearch (ECK) Operator
- 佈署 elasticsearch
cat <<EOF | kubectl apply -f -
apiVersion: elasticsearch.k8s.elastic.co/v1
kind: Elasticsearch
metadata:
name: quickstart
spec:
version: 7.15.0
nodeSets:
- name: default
count: 1
config:
node.store.allow_mmap: false
EOF
檢查狀態
kubectl get elasticsearch
到pod裡面測試elastic是否正常
密碼需使用 kubectl get secret 取得
curl https://10.107.201.126:9200 -u 'elastic:J1fO9bu8adfsepYK8rIu91a73o' -k
正常的話,會顯示
- 佈署kibana
cat <<EOF | kubectl apply -f -
apiVersion: kibana.k8s.elastic.co/v1
kind: Kibana
metadata:
name: quickstart
spec:
version: 7.15.0
count: 1
elasticsearchRef:
name: quickstart
EOF
檢查狀態
kubectl get kibana
登入
帳號:elastic
密碼:kubectl get secret quickstart-es-elastic-user -o=jsonpath=’{.data.elastic}’ | base64 --decode; echo
kubectl port-forward service/quickstart-kb-http 5601
url : https://localhost:5601
beat
Beats 其實是一系列工具的總稱,可以解決下列的問題:
- 讀取檔案
- 提取指標
- 提取網路資料
- 測試服務可用性
有這些 Filebeat, Metricbeat,Heartbeat,Packetbeat…等
查詢目前有哪些index了
到DevTools執行
GET _cat/indices?s=index
ref.
Beats
【ES新手,破門而入!】Day9 - 我見故我在!Observability 基礎之趴特睡
【ES新手,破門而入!】Day13 - 關於 Metrics 的 23456 事
Filebeat
日誌處理工具,只要會產生日誌的地方都可以使用它,它可以幫助你將日誌傳送到 Elasticsearch 或其他的系統。
log 位置
/var/log/containers
查詢傳了哪些資料到elastic search裡面。
同樣使用 Devtools
GET filebeat-*/_search
[[57.filebeat 補充說明]]
ref.
Elastic Logging X Filebeat 深入理解
Metricsbeat
將指標傳送到 Elasticsearch 分析,並搭配 Kibana 做視覺化。
指標著重在資訊的週期性測量,讓我們可以瞭解系統的狀態如硬碟空間、CPU使用率等等。
ref. ES新手,破門而入!】Day10 - 眼見為憑!Observability 基礎之趴特佛
APM
APM 的全名是 Application Performance Monitoring(應用程式效能監控),是用來回答下面兩個主要的問題:
- 應用程式要花多久時間來答覆請求(request)?
- 應用程式遇到什麼種類的錯誤?
Elastic APM 是由下列 4 個組件所構成:
- APM Agents
- APM Server
- Elasticsearch
- Kibana
佈署APM server
cat <<EOF | kubectl apply -f -
apiVersion: apm.k8s.elastic.co/v1
kind: ApmServer
metadata:
name: apm-server-quickstart
namespace: default
spec:
version: 7.15.0
count: 1
elasticsearchRef:
name: quickstart
kibanaRef:
name: quickstart
config:
output:
elasticsearch:
host: [quickstart-es-http.default:9200]
username: elastic
password: "E1R10XXXXXXfr40"
protocol: "http"
EOF
這邊的password要直接下指令查詢,這個是前面登入kibana的密碼。
kubectl get secret quickstart-es-elastic-user -o=jsonpath='{.data.elastic}' | base64 --decode; echo
為了環境單純,所以只使用http,要用https請參考連結 Reference an existing Elasticsearch cluster。
ref.
Elastic APM 基礎教學
ES新手,破門而入!】Day10 - 眼見為憑!Observability 基礎之趴特佛
Run APM Server on ECK
GO-APM agent
在建立 apm-server的時候,
會同時建立好 secret token ,這個同樣需要下指令取得,
之後在 agent上面設定完,才能將資料傳到 APM server上面。
這邊取config name為 ( [apm name]apm-token )
kubectl get secret apm-server-quickstart-apm-token -o=jsonpath='{.data.secret-token}' | base64 --decode; echo
設定APM server環境變數,由於我的服務都是docker image,
所以要把變數寫在Dockerfile裡面,當打包時,一併設定好環境變數。
...
ENV ELASTIC_APM_SERVER_URL=https://apm-server-quickstart-apm-http.default:8200
ENV ELASTIC_APM_SERVICE_NAME=webhook
ENV ELASTIC_APM_SECRET_TOKEN=9m9XXXXXXGjwdIk41
ENV ELASTIC_APM_VERIFY_SERVER_CERT=false
ENV ELASTIC_APM_ENVIRONMENT=qa
...
然後再 main.go ,加上下面幾行。
這份go的程式,本身使用了 gorilla/mux的web框架
所以照官方文件的說明,加上下面幾行。
import (
"github.com/gorilla/mux"
"go.elastic.co/apm/module/apmgorilla"
)
func main() {
router := mux.NewRouter()
apmgorilla.Instrument(router)
http.ListenAndServe(":80", router)
}
主要只有 apmgorilla.Instrument(router) 這行,
然後只要有經過80 port的資料就通通都會進入到APM裡面了。
這張圖裡面的TPS意思,可參考 [[45.網站效能指標一覽(未)]]
ref.
APM Server secret token
如何使用 Elastic APM Go 代理為 Go 應用裝載測量工具
[Docker 環境變數使用筆記](https://myapollo.com.tw/zh-tw/docker-env/)
Elastic APM-Go Agent介紹(中文翻譯)
connect to the APM Server
Solutions:安全的APM服務器訪問
vue-APM agent
安裝依賴套件
Kibana
![[61. kibana 查詢語法]]
沒有留言:
張貼留言