
Openshift - Quem fez o quê? (Audioria)
Descobrir quem fez o quê nos recursos do cluster. Por exemplo: quem pausou um deploymentconfig?
Caso de uso
Se alguém pausar um dc, algo como oc rollout pause dc/app-master com o nível de log padrão não é possível saber quem fez essa operação.
Vamos ver como é possível rastrear isso.
Níveis de log
O Openshift possui 4 níveis de log: Default, WriteRequestBodies, AllRequestBodies e None. O nível setado por padrão é o Default.
Para listar alterações é suficiente definir para WriteRequestBodies.
Para mais dealhes sobre cada nível de log ver aqui.
Alterando o nível de log
Basta ditar o APIServer e alterar o valor do path spec.audit.profile para WriteRequestBodies.
| |
Salvar e sair, em seguida a configuração começará a ser aplicada e isso pode levar um tempo. Para monitorar que nós do cluster já estão com a nova configuração, executar:
| |
Pesquisando nos logs
São três tipos de log, OpenShift API server logs, Kubernetes API server logs e OpenShift OAuth API server logs.
O local deles pode ser cosultado assim, respectivamente:
Os arquivos de log podem ser visualizados assim, respectivamente:
Cenário de teste
Vamos pesquisar nos logs. Imagine que:
- Alguém pausou um
dc, ex:oc rollout pause dc/app-master - Existem 3 nós do Openshift de acordo com o comando executado anteriormente, esse:
oc adm node-logs --role=master --path=xxx
Basta pesquisar em todos os audit.log. No caso vamos pesquisar pela palavra pause. Seria algo como:
| |
E então teremos um json que represena a linha de log, com informações como:
- ip que fez a alteração
- que recurso foi alerado
- o que do recurso foi alterado
- quem alterou
- horário da alteração
- etc
Abaixo um exemplo de log:


Notas / Dicas 📋 ⚠️
- Aumentar a verbosidade do log também faz consumir mais largura de banda de rede, disco e CPU.
- Configure para que os logs de auditoria possam ser consumidos pelo Kibana, facilitando assim a consulta.
MhagnumDw