Azure Kubernetes Service의 Kubernetes에서 Elasticsearch 실행
Elastic Cloud on Kubernetes 은 Kubernetes에서 Elastic Stack을 실행하기 위한 공식 연산자입니다. ECK는 Elastic Stack을 안전하게 관리, 확장, 업그레이드 및 배포하는 데 도움이 됩니다. 아래 단계에서는 AKS에 ECK를 배포한 다음 해당 배포를 사용하여 Azure의 가상 머신에서 로그, 메트릭, 보안 이벤트를 수집합니다.
우리가 할 일은 다음과 같습니다.
AKS, ECK, Elasticsearch 및 Kibana 배포
Note: You need to have Azure Account and the Azure CLI for Microsoft Azure installed to run some platform-specific commands. This helps you to create your cluster using this Azure CLI command.
1단계: AKS 클러스터 만들기
az aks create --resource-group resourceGroupName --name clusterName --node-count 3 --generate-ssh-keys
2단계: AKS 클러스터에 연결
az aks get-credentials --resource-group resourceGroupName --name clusterName
3단계: ECK 연산자 설치
kubectl apply -f https://download.elastic.co/downloads/eck/1.1.2/all-in-one.yamlkubectl -n elastic-system logs -f statefulset.apps/elastic-operator
4단계: 외부 IP로 Elasticsearch 클러스터 생성
Azure Kubernetes Service에서 사용할 수 있는 기본 부하 분산 장치를 사용하고 있습니다.
cat <<EOF | kubectl apply -f -apiVersion: elasticsearch.k8s.elastic.co/v1
kind: Elasticsearch
metadata:
name: quickstart
spec:
version: 7.9.2 #Make sure you use the version of your choice
http:
service:
spec:
type: LoadBalancer #Adds a External IP
nodeSets:
- name: default
count: 1
config:
node.master: true
node.data: true
node.ingest: true
node.store.allow_mmap: false
EOF
5단계: 클러스터 생성 모니터링
kubectl get elasticsearch
kubectl get pods -w
6단계: 생성된 포드의 로그 확인
kubectl logs -f quickstart-es-default-0
kubectl get service quickstart-es-http
7단계: Elasticsearch 클러스터의 비밀번호 검색
PASSWORD=$(kubectl get secret quickstart-es-elastic-user -o=jsonpath='{.data.elastic}' | base64 --decode)
curl -u "elastic:$PASSWORD" -k "https://<IP_ADDRESS>:9200"
Note: The public IP address of Elasticsearch can be picked by running:
kubectl get svc quickstart-es-http
8단계: Kibana 배포
cat <<EOF | kubectl apply -f -
apiVersion: kibana.k8s.elastic.co/v1
kind: Kibana
metadata:
name: quickstart
spec:
version: 7.9.2 #Make sure Kibana and Elasticsearch are on the same version.
http:
service:
spec:
type: LoadBalancer #Adds a External IP
count: 1
elasticsearchRef:
name: quickstart
EOF
9단계: Kibana 배포 모니터링
kubectl get kibana
Azure 메트릭 수집 및 분석
이제 AKS에서 Kibana를 사용하여 Elasticsearch 클러스터를 만들었으므로 계속해서 Azure Cloud 자체에서 일부 관찰 가능성 데이터를 수집해 보겠습니다. Filebeat 및 Metricbeat는 Azure Cloud Platform에서 로그(활동, 로그인, 감사) 및 메트릭(vm, 컨테이너 레지스트리, 청구)을 쉽게 수집할 수 있도록 즉시 사용 가능한 Azure 모듈과 함께 제공되므로 이를 쉽게 수행할 수 있습니다.
이 자습서에서는 Azure VM에 Metricbeat를 설치하고 Azure 클라우드 모듈을 활성화합니다. 그 전에 Azure Resource Manager 인증 모델을 사용하는 Azure Monitor REST API로 인증하기 위한 자격 증명도 필요합니다.
Azure Active Directory 앱을 생성하여 얻을 수 있는
client_id
, client_secret
, subscription_id
, tenant_id
이 필요합니다. 리소스에 액세스할 수 있는 Azure AD 애플리케이션 및 서비스 주체에 대한 이 가이드를 사용할 수 있습니다.1단계: Azure VM 생성 및 VM에 SSH 생성
az vm create \
--resource-group myResourceGroup \
--name myVM \
--image UbuntuLTS \
--admin-username azureuser \
--generate-ssh-keys ssh azureuser@<IP_ADDRESS>
2단계: Metricbeat 설치
wget https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-7.9.2-amd64.deb
3단계: Metricbeat에서 Elasticsearch 및 Kibana 자격 증명 구성
이를 통해 AKS에서 생성된 Elasticsearch 클러스터로 데이터를 배송하고 Kibana에서 대시보드를 로드할 수 있습니다.
vim /etc/metricbeat/metricbeat.yml
setup.kibana:
host: "https://<public_ip_addr>:5601"
Note: The public IP address of Kibana can be picked by running:
kubectl get "kubectl get svc quickstart-kb-http"
vim /etc/metricbeat/modules.d/azure.yml.disabled
yml 파일에 나열된 모든 메트릭 집합에 대해 client_id, client_secret, subscription_id, tenant_id를 바꿉니다. 샘플은 다음과 같을 수 있습니다.
- module: azure
metricsets:
- monitor
enabled: true
period: 300s
client_id: '8dec1ab1-1691-48a6-af43-f87de68e971b'
client_secret: '~fwL-MhOcguaD2yK1e_.OWHhhqwdp-p974'
tenant_id: 'aa40685b-417d-4664-b4ec-8f7640719adb'
subscription_id: '70bd6e77-4b1e-4835-8896-db77b8eef364'
refresh_list_interval: 600s
resources:
- resource_query: "resourceType eq 'Microsoft.DocumentDb/databaseAccounts'"
metrics:
- name: ["DataUsage", "DocumentCount", "DocumentQuota"]
namespace: "Microsoft.DocumentDb/databaseAccounts"
4단계: Azure 모듈 활성화 및 Metricbeat 시작
cd /usr/bin/
./metricbeat modules enable azure
./metricbeat setup --dashboards
./metricbeat -e
5단계: Kibana에서 Azure 메트릭 모니터링
Kibana에 로그인하고 대시보드로 이동합니다. 스토리지, 데이터베이스, 청구와 관련하여 미리 구성된 여러 대시보드를 보려면 "Azure"를 검색하십시오. 샘플 모니터링 대시보드는 다음과 같습니다.

마무리
그리고 그게 다야! 관리형 Kubernetes 서비스에서 안전한 Elastic Stack 배포를 성공적으로 구축했습니다. Elastic APM 또는 Elastic Workplace Search 과 같은 다른 애플리케이션을 배포할 수도 있습니다. 그 외에도 cross-cluster search 및 replication 을 활성화하여 여러 지역의 Kubernetes 클러스터에 Elastic Stack을 배포하여 사용자에게 서비스를 제공할 수 있습니다.
(Kubernetes 서비스에서) try ECK for yourself을 권장하며, 이 블로그 게시물과 관련하여 추가 질문이 있는 경우 언제든지 community discussion forums 또는 Slack workspace으로 연락할 수 있습니다.
Elastic이 Kubernetes 관찰 가능성에 어떤 도움을 줄 수 있는지 자세히 알아보려면 Best of ElasticObservability webinars series을 확인하십시오.
당신은 나를 따라 할 수 있습니다
Reference
이 문제에 관하여(Azure Kubernetes Service의 Kubernetes에서 Elasticsearch 실행), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/aravind/running-elastic-cloud-on-kubernetes-from-azure-kubernetes-service-nke텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)