Hoje surgiu a necessidade de monitorar alterações em determinados arquivos no servidor. Existem várias maneiras, como por exemplo, mas como recentemente comecei a usar decidi monitorar arquivos com o Elasticsearch, um de seus .
Não vou descrever a instalação do Elastic Stack e do Auditbeat, tudo está nos manuais, mas, uma vez instalado, edite o arquivo auditbeat.yml,adicionando o caminho ao módulo file_integrity. Adicione o caminho do arquivo que deseja monitorar.
Após a configuração e execução, um índice aparecerá no Kibana: auditbeat-*.

Em seguida, criamos o monitoramento, especificando o nome do monitoramento, o intervalo de verificação, assim como o tipo de monitoramento e o arquivo de índice:

em Defina a consulta de extração. Escreva o seguinte:
Defina a consulta de extração.
{
"query": {
"bool": {
"must": [
{
"match_phrase": {
"file.path": {
"query": ""
}
}
}
],
"filter": [
{
"term": {
"event.action": {
"value": "attributes_modified" # alterações de atributos, possivelmente created ou deleted
}
}
},
{
"range": {
"@timestamp": {
"from": "now-1m" # período em que monitoramos a alteração
}
}
}
],
"adjust_pure_negative": true,
"boost": 1
}
}
}Depois, clique no botão Executar e verifique a consulta; deve aparecer o seguinte:

Tente modificar o arquivo alvo e execute a consulta novamente:

como pode ser visto, os hits mudaram para 2; clique em atualizar e crie um gatilho para a alteração do valor:

Deixe tudo como na imagem.
Em seguida, você pode configurar notificações no Slack ou em outro mensageiro.
Fonte: habr.com
