
Métricas FortiGate com Prometheus e Grafana
Para todos nós que temos um ou mais FortiGates nas nossas mãos, se quisermos ver as métricas em tempo real desses dispositivos com o Prometheus, Em poucos passos teremos ele totalmente funcional. Métricas que visualizaremos em belos dashboards Grafana!
O que foi dito há alguns dias, Este ano vamos dar um impulso à recolha de métricas, Logs e rastreamentos com diferentes soluções, Hoje é hora de algo simples (realmente), é apenas tomar as métricas do FortiGate, armazená-los em Prometheus e visualizá-los em Grafana, por isso, Precisar A base que vimos anteriormente.
Aqui estão alguns exemplos de imagens do tipo de informação que você pode obter, com métricas no 1 segundo, 5 Segundos… No final deste post, Você terá essa mesma informação. Carregar dados, CPU, Memória, Sessões…
Status e uso da interface de rede de firewall em tempo real,
Usando regras de firewall em tempo real, e muitas outras coisas…
Início, neste caso, utilizaremos FortiGate Exportador, um exportador de métricas para Prometheus, neste caso, implantaremos rapidamente em um contêiner do Docker. Em primeiro lugar, precisaremos criar um usuário em nosso FortiGate que tenha permissões de leitura do sistema. Para fazer isso,, a partir do FortiGate, criaremos um 'REST API Admin’ do Sistema > Administradores. No 'Perfil de administrador'’ indicaremos que é «super_admin_readonly’ e sem Grupo PKI; cuidado que quando você clicar em OK ele vai nos dar o seu Token que devemos anotar.
Vamos começar, Download do FortiGate Exporter:
cd git clone https://github.com/bluecmd/fortigate_exporter.git CD fortigate_exporter
Dentro da pasta criamos o arquivo 'fortigate-key.yaml’ com o siguiente contenido, tendo em conta para indicar o endereço IP do FortiGate, O token que obtivemos, e poderemos comentar métricas que não usamos para que não tente obtê-las:
"https (em inglês)://DIRECCION_IP_FORTIGATE": Símbolo: TOKEN_DEL_ADMIN_READ_ONLY sondas: Excluir: - Wi-Fi - Sistema/SDNConnector #- Log/Fortianalyzer/Status #- Log/Fortianalyzer/Fila - Log/Fortianalyzer - WAN Virtual - Mudar #- Switch/ManagedSwitch - Sistema/SensorInfo
E terminamos criando o arquivo de definição do contêiner que vamos implantar, Criámos 'docker-compose.yml’
Versão: '3'
services:
prometheus_fortigate_exporter:
construir: ./
Portas:
- 9710:9710
Volumes:
- ./fortigate-key.yaml:/comando config/fortigate-key.yaml: ["-arquivo auth", "/config/fortigate-key.yaml", "-Inseguro"]
Recomeçar: a menos que redes paradas:
fortigate_exporter_default:
Redes:
fortigate_exporter_default:
motorista: Ponte
E com isso temos tudo pronto, Agora só temos que implantar o contêiner executando:
sudo docker compor -d
Depois que o contêiner é implantado, ele se conectará ao FortiGate e exporá suas métricas na porta 9710tcp, podemos confirmar isso se abrirmos um navegador contra o IP do Docker, algo como: Referências HTTP://DIRECCION_IP_DOCKER:9710/A pergunta será, que devemos agora indicar ao nosso Prometeu, que se conecta a esse exportador e armazena suas métricas.
Para fazer isso,, enquanto editamos o arquivo de configuração do nosso Prometheus (nano~/prometheus/prometheus/prometheus.yml) e adicionaremos o trabalho na seção scrape_configs:
global: scrape_interval: 5scrape_timeout: 5evaluation_interval: 5scrape_configs: - job_name: 'fortigate_exporter' metrics_path: /Eu tentei static_configs: - Objetivos: - https (em inglês)://DIRECCION_IP_FORTIGATE #- https (em inglês)://meu-outro-fortigate:8443 relabel_configs: - source_labels: [__address__] target_label: __param_target - source_labels: [__param_target] target_label: instância # Solte o https:// e porto (se especificado) for the 'instance=' label regex: '(?:.+)(?::\/\/)([^:]*).*' - target_label: __address__ substituição: 'DIRECCION_IP_DOCKER_FORTIGATE_EXPORTER:9710'
E para Prometheus recarregar os dados, Não se esqueça de reiniciar Prometheus:
sudo Docker Reiniciar Prometheus
Com isso, já temos as métricas FortiGate armazenadas em nosso servidor Prometheus, O que nos restaria, É a parte bonita. Neste caso, visualize essas métricas do Grafana. Para fazer isso,, Será suficiente importar um dashboard já desenvolvido pela comunidade (Obrigado) que podemos usar num instante. De Grafana, clicando em criar um painel, vamos dizer-lhe que queremos importá-lo e indicar o ID 14011. Com isso teremos tudo pronto!
Como de costume, Espero que lhe seja útil, e que corra bem e se comporte melhor 🤠, A verdade é que há muitas coisas curiosas que podemos explorar, Espero levar tempo e, pelo menos, colocar coisas que sejam rápidas e fáceis de implementar. Um abraço!