Kubernetes (OCI)
Escrito por Hitfy
Template: Template_OCI_OKE_Kubernetes_Padrao
As coletas de dados da aplicação Kubernetes OCI são feitas através de comandos KUBECTL, via OCI-CLI.
Configuração do Proxy
Antes de executar as configurações do Proxy, é importante salientar que existem duas opções de configuração para esse monitoramento. Por isso, deve-se verificar a seção "Configuração do Host" no fim deste documento.
Instalar OCI CLI
Executar o comando para baixar e instalar:
bash -c "$(curl -L https://raw.githubusercontent.com/oracle/oci-cli/master/scripts/install/install.sh)"
Instalar em um diretório público, onde o usuário "zabbix" terá acesso (Ex: /usr/local/lib/oracle-cli)
===> In what directory would you like to place the install? (leave blank to use '/root/lib/oracle-cli'): /usr/local/lib/oracle-cli
-- Creating directory '/usr/local/lib/oracle-cli'.
-- We will install at '/usr/local/lib/oracle-cli'.
===> In what directory would you like to place the 'oci' executable? (leave blank to use '/root/bin'): /usr/local/bin
-- The executable will be in '/usr/local/bin'.
===> In what directory would you like to place the OCI scripts? (leave blank to use '/root/bin/oci-cli-scripts'): /usr/local/bin/oci-cli-scripts
-- Creating directory '/usr/local/bin/oci-cli-scripts'.
-- The scripts will be in '/usr/local/bin/oci-cli-scripts'.
Configurar OCI
Será necessário ter as informações da OCI, como User OCID, Tenancy OCID, Fingerprint, Region e arquivo chave.pem e então executar o comando:
oci setup config
Testar instalação
oci os ns get 2>/dev/null
Instalar KUBECTL Client
Baixar a aplicação:
curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl"
Ajustar permissões:
chmod +x ./kubectl
Mover para um diretório acessível pelo usuário "zabbix":
sudo mv ./kubectl /usr/local/bin/kubectl
Verificar instalação e versão:
kubectl version --client
Configurar OCI OKE Context
Atenção para as variáveis nos comandos, pois será necessário substituir os valores.
{$IT_PERFIL} - Nome do Perfil/Tenancy
{$IT_TENANCY} - Tenancy OCID (ocid1.tenancy.oc1..aa[...])
{$IT_COMPARTIMENT} - Compartiment OCID (ocid1.compartment.oc1..aa[...])
{$IT_OKE_CLUSTER} - Cluster OCID (ocid1.cluster.oc1.sa-saopaulo-1.aa[...])
{$IT_REGION} - Região do Tenancy (sa-saopaulo-1)
{$HOST} - Hostname configurado
Listar todos compartimentos OCI
oci iam --profile {$IT_PERFIL} compartment list --compartment-id {$IT_TENANCY} --all --query 'data[*].{Name:name, ID:id}' --output table 2>/dev/null
Listar todos os Clusters OKE OCI
oci ce --profile {$IT_PERFIL} cluster list --compartment-id {$IT_COMPARTIMENT} --query 'data[*].{Name:name, ID:id}' --output table 2>/dev/null
Configurar OCI OKE Context
oci ce --profile {$IT_PERFIL} cluster create-kubeconfig --cluster-id {$IT_OKE_CLUSTER} --region {$IT_REGION} --file /usr/local/.kube/kubeconfig-{$IT_PERFIL}.yaml
Renomear Context (Opcional - Será o hostname)
Obter o nome atual do contexto:
KUBECONFIG=/usr/local/.kube/kubeconfig-{$IT_PERFIL}.yaml kubectl config get-contexts
Renomear:
KUBECONFIG=/usr/local/.kube/kubeconfig-{$IT_PERFIL}.yaml kubectl config rename-context {$NOME_ANTIGO} {$HOST}
Atenção: este nome será utilizado como hostname no ativo. Com isso, é necessário verificar se ainda não existe cadastrado.
Listar todos Contexts do Perfil
KUBECONFIG=/usr/local/.kube/kubeconfig-{$IT_PERFIL}.yaml kubectl config get-contexts
Testar coleta
KUBECONFIG=/usr/local/.kube/kubeconfig-{$IT_PERFIL}.yaml kubectl --context={$HOST} get nodes -o wide 2>/dev/null
Configuração do Host
Este monitoramento pode ser configurado de forma manual ou de forma automática via descoberta do monitoramento OCI.
Automático
Depois de fazer a configuração do Proxy, implantar monitoramento OCI seguindo a documentação.
A Descoberta de Kubernetes Contexts irá adicionar o o host de monitoramento Kubernetes.
No host do monitoramento OCI, validar:
- Se a macro {$IT_PERFIL} está com o mesmo nome utilizado na configuração do proxy;
- Se as configurações de Host Prototype da descoberta estão corretos (Hostname e Grupos (adicionar grupo do cliente)).
Manual
Hostname
O hostname do ativo deve ter o mesmo nome do context do Kubernetes (Utilizado na configuração do Proxy)
Macros
{$IT_PERFIL} - Nome do Perfil/Tenancy (Utilizado na configuração do Proxy)