Scripting com LUA
O Monsta permite que você crie lógicas personalizadas de coleta de dados, processamento de métricas e regras complexas de alertas utilizando a linguagem de programação Lua.
Se os templates padrão ou as expressões nativas não forem suficientes para a sua necessidade (como parsing de strings complexas, cálculos matemáticos avançados ou loops), o motor de scripting em Lua oferece total flexibilidade para estender a plataforma.
Por que Lua?
Seção intitulada “Por que Lua?”Lua é uma linguagem de script brasileira, amplamente utilizada na indústria de tecnologia (especialmente em jogos e sistemas embarcados) por três motivos principais:
- Extrema Velocidade: É uma das linguagens de script mais rápidas do mundo, garantindo que seus scripts rodem em milissegundos sem sobrecarregar o servidor do Monsta.
- Leveza: O interpretador ocupa pouquíssimo espaço em memória, permitindo execuções simultâneas em larga escala.
- Sintaxe Simples: É muito fácil de ler e aprender, mesmo para quem tem pouca experiência com programação.
Guia Rápido de Sintaxe Lua
Seção intitulada “Guia Rápido de Sintaxe Lua”Para ajudar você a começar a criar seus primeiros scripts no Monsta, aqui estão os conceitos fundamentais da linguagem:
Variáveis e Tipos de Dados
Seção intitulada “Variáveis e Tipos de Dados”Em Lua, você não precisa definir o tipo da variável antes (tipagem dinâmica). Use sempre a palavra-chave local para garantir que a variável exista apenas dentro daquele script (evitando conflitos de memória).
local nome_dispositivo = "Servidor Core" -- Stringlocal latencia = 45 -- Numberlocal ativo = true -- BooleanEstruturas Condicionais (if / else)
Seção intitulada “Estruturas Condicionais (if / else)”A sintaxe usa as palavras-chave then, elseif e fecha o bloco obrigatoriamente com um end.
if latencia > 100 then print("Alerta: Latência Alta!")elseif latencia > 50 then print("Aviso: Latência Moderada.")else print("Status: OK.")endTabelas (Dicionários e Arrays)
Seção intitulada “Tabelas (Dicionários e Arrays)”Tabelas são a única estrutura de dados complexa em Lua. Elas servem tanto como listas indexadas quanto como objetos com chave e valor.
-- Exemplo de Array/Listalocal sensores = {"Ping", "CPU", "Memória"}
-- Exemplo de Dicionário (Chave/Valor)local dados_coleta = { ip = "192.168.1.50", status = "Online", portas_abertas = 4}Como o Monsta interage com o Script?
Seção intitulada “Como o Monsta interage com o Script?”Geralmente, o Monsta injeta variáveis globais ou tabelas pré-definidas para dentro do seu script (contendo os dados coletados do dispositivo) e espera que o seu script retorne um valor específico (como um número, texto ou booleano) usando o comando return.
-- Exemplo de uma consulta de SNMPlocal load_linux = snmp.get("1.3.6.1.4.1.2021.10.1.3.2.0") -- Função do Monstareturn load_linuxRecursos e Manuais Completos
Seção intitulada “Recursos e Manuais Completos”Para se aprofundar na linguagem, consulte a documentação oficial da linguagem Lua.
O Monsta possui funções próprias que são utilizadas nos scripts. Para conhecer os módulos internos específicos que o Monsta disponibiliza (funções de rede, manipulação de strings e conexão), verifique os próximos artigos desta área (Módulos de Script com Lua).