Как исправить этот агент Elasticsearch на ВМ Azure Kubernetes Services? - PullRequest
0 голосов
/ 06 февраля 2020

Я установил Elasticsearch agent на ВМ АКС. Нет данных для отправки в облако Kibana (которое не устанавливается вне AKS). Когда я тестировал модули Elastecsearch, возникает ошибка:

azureuser@aks-agentpool-yyyyyy-0:/var/log/elasticsearch$ sudo metricbeat test modules

Error getting metricbeat modules: 
    module initialization error: 
        5 errors: 
        reading bearer token file: 
        open /var/run/secrets/kubernetes.io/serviceaccount/token: no such file or directory; reading bearer token file: 
        open /var/run/secrets/kubernetes.io/serviceaccount/token: no such file or directory; reading bearer token file: 
        open /var/run/secrets/kubernetes.io/serviceaccount/token: no such file or directory; reading bearer token file: 
        open /var/run/secrets/kubernetes.io/serviceaccount/token: no such file or directory; reading bearer token file: 
        open /var/run/secrets/kubernetes.io/serviceaccount/token: no such file or directory

Проверено, что ошибка должна основываться на приведенном ниже коде в kubernetes.yml

bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
ssl.certificate_authorities:
  - /var/run/secrets/kubernetes.io/serviceaccount/service-ca.crt

Как создать секрет на Azure VM для решения этой проблемы?


Дополнения

Я следую https://docs.microsoft.com/en-us/azure/aks/ssh, чтобы подключиться к VMSS / VM, а затем уже установить Metricbeat , Но данных для отправки в Кибану нет.

Ниже приведены шаги, которые я выполнил:

# CLUSTER_RESOURCE_GROUP=$(az aks show --resource-group XXX --name YYY --query nodeResourceGroup -o tsv)
# SCALE_SET_NAME=$(az vmss list --resource-group $CLUSTER_RESOURCE_GROUP --query [0].name -o tsv)

# az vmss extension set  \
--resource-group $CLUSTER_RESOURCE_GROUP \
--vmss-name $SCALE_SET_NAME \
--name VMAccessForLinux \
--publisher Microsoft.OSTCExtensions \
--version 1.4 \
--protected-settings "{\"username\":\"azureuser\", \"ssh_key\":\"$(cat ~/.ssh/id_rsa.pub)\"}"

# az vmss update-instances --instance-ids '*' \
--resource-group $CLUSTER_RESOURCE_GROUP \
--name $SCALE_SET_NAME

# kubectl get nodes -o wide
# az vm list --resource-group $CLUSTER_RESOURCE_GROUP -o table
# az vm list-ip-addresses --resource-group $CLUSTER_RESOURCE_GROUP -o table
# kubectl run --generator=run-pod/v1 -it --rm aks-ssh --image=debian

// Inside aks-ssh
apt-get update && apt-get install openssh-client -y

// Open another terminal then copy SSH key
# kubectl cp ~/.ssh/id_rsa $(kubectl get pod -l run=aks-ssh -o jsonpath='{.items[0].metadata.name}'):/id_rsa

// Inside aks-ssh again
#chmod 0600 id_rsa
// Connect to vmss/VM:
#ssh -i id_rsa azureuser@10.240.0.4

// -- in VMSS --
// Download Metricbeat(use deb)
# curl -L -O https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-7.5.0-amd64.deb
# sudo dpkg -i metricbeat-7.5.0-amd64.deb

// Modify metricbeat.yml:
# sudo nano /etc/metricbeat/metricbeat.yml
// Add below in “Elastic Cloud” section
cloud.id: "<--id-->"
cloud.auth: "<--auth-->"

// Enable Kubernetes
# sudo metricbeat modules enable kubernetes

// Modify kubernetes.yml
# sudo nano /etc/metricbeat/modules.d/kubernetes.yml

// Start Metricbeat
# sudo metricbeat setup
# sudo service metricbeat start
...