Este tipo de item permite a coleta de dados usando o protocolo HTTP/HTTPS. Trapping tamb¨¦m ¨¦ poss¨ªvel usando o Áú»¢¶Ä²© sender ou o protocolo Áú»¢¶Ä²© sender.
A verifica??o de item HTTP ¨¦ executada pelo servidor Áú»¢¶Ä²©. No entanto, quando os hosts s?o monitorados por um proxy Áú»¢¶Ä²©, as verifica??es de itens HTTP s?o executadas pelo proxy.
As verifica??es de itens HTTP n?o exigem nenhum agente em execu??o no host que est¨¢ sendo monitorado.
O agente HTTP suporta tanto HTTP quanto HTTPS. O Áú»¢¶Ä²© seguir¨¢ opcionalmente redirecionamentos (veja a op??o Seguir redirecionamentos abaixo). O n¨²mero m¨¢ximo de redirecionamentos ¨¦ fixado em 10 (usando a op??o cURL CURLOPT_MAXREDIRS).
O servidor/proxy Áú»¢¶Ä²© deve ser configurado inicialmente com suporte a cURL (libcurl).
Para configurar um item HTTP:
Todos os campos obrigat¨®rios est?o marcados com um asterisco vermelho.
Os campos que exigem informa??es espec¨ªficas para itens HTTP s?o:
Par?metro | Descri??o |
---|---|
Tipo | Selecione HTTP agent aqui. |
Chave | Insira uma chave ¨²nica para o item. |
URL | URL para conectar-se e recuperar dados. Por exemplo: https://www.example.com http://www.example.com/download Nomes de dom¨ªnio podem ser especificados em caracteres Unicode. Eles s?o automaticamente convertidos para ASCII em punycode ao executar a verifica??o HTTP. O bot?o Parse pode ser usado para separar campos de consulta opcionais (como ?name=Admin&password=mypassword) da URL, movendo os atributos e valores para Campos de consulta para codifica??o autom¨¢tica de URL. Limitado a 2048 caracteres. Macros suportados: {HOST.IP}, {HOST.CONN}, {HOST.DNS}, {HOST.HOST}, {HOST.NAME}, {ITEM.ID}, {ITEM.KEY}, {ITEM.KEY.ORIG}, macros de usu¨¢rio, macros de descoberta de baixo n¨ªvel. Isso define a op??o cURL . |
Campos de consulta | Vari¨¢veis para a URL (veja acima). Especificados como pares de atributos e valores. Valores s?o codificados automaticamente na URL. Valores de macros s?o resolvidos e, em seguida, codificados automaticamente na URL. Macros suportados: {HOST.IP}, {HOST.CONN}, {HOST.DNS}, {HOST.HOST}, {HOST.NAME}, {ITEM.ID}, {ITEM.KEY}, {ITEM.KEY.ORIG}, macros de usu¨¢rio, macros de descoberta de baixo n¨ªvel. Isso define a op??o cURL. |
Tipo de solicita??o | Selecione o tipo de m¨¦todo de solicita??o: GET, POST, PUT ou HEAD |
Timeout | O Áú»¢¶Ä²© n?o gastar¨¢ mais do que o tempo definido para processar a URL (1-60 segundos). Esse par?metro define o tempo m¨¢ximo para estabelecer uma conex?o com a URL e o tempo m¨¢ximo para executar uma solicita??o HTTP. Portanto, o Áú»¢¶Ä²© n?o gastar¨¢ mais do que 2 x Timeout segundos em uma verifica??o. Sufixos de tempo s?o suportados, como 30s, 1m. Macros suportados: macros de usu¨¢rio, macros de descoberta de baixo n¨ªvel. Isso define a op??o cURL cURL. |
Tipo de corpo da solicita??o | Selecione o tipo de corpo da solicita??o: Dados brutos - corpo de solicita??o HTTP personalizado, macros s?o substitu¨ªdos, mas nenhuma codifica??o ¨¦ realizada Dados JSON - corpo da solicita??o HTTP em formato JSON. Macros podem ser usados como string, n¨²mero, true e false; macros usados como strings devem estar entre aspas duplas. Valores de macros s?o resolvidos e, em seguida, escapados automaticamente. Se "Content-Type" n?o for especificado nos cabe?alhos, ele ser¨¢ definido como "Content-Type: application/json" por padr?o. Dados XML - corpo da solicita??o HTTP em formato XML. Macros podem ser usados como n¨® de texto, atributo ou se??o CDATA. Valores de macros s?o resolvidos e, em seguida, escapados automaticamente em um n¨® de texto e atributo. Se "Content-Type" n?o for especificado nos cabe?alhos, ele ser¨¢ definido como "Content-Type: application/xml" por padr?o. Note que a sele??o de Dados XML requer libxml2. |
Corpo da solicita??o | Insira o corpo da solicita??o. Macros suportados: {HOST.IP}, {HOST.CONN}, {HOST.DNS}, {HOST.HOST}, {HOST.NAME}, {ITEM.ID}, {ITEM.KEY}, {ITEM.KEY.ORIG}, macros de usu¨¢rio, macros de descoberta de baixo n¨ªvel. |
Cabe?alhos | Cabe?alhos HTTP personalizados que ser?o enviados ao realizar uma solicita??o. Especificados como pares de atributos e valores. Macros suportados: {HOST.IP}, {HOST.CONN}, {HOST.DNS}, {HOST.HOST}, {HOST.NAME}, {ITEM.ID}, {ITEM.KEY}, {ITEM.KEY.ORIG}, macros de usu¨¢rio, macros de descoberta de baixo n¨ªvel. Isso define a op??o cURL . |
C¨®digos de status esperados | Lista de c¨®digos de status HTTP esperados. Se o Áú»¢¶Ä²© receber um c¨®digo que n?o esteja na lista, o item se tornar¨¢ n?o suportado. Se estiver vazio, nenhuma verifica??o ¨¦ realizada. Por exemplo: 200,201,210-299 Macros suportados na lista: macros de usu¨¢rio, macros de descoberta de baixo n¨ªvel. Isso usa a op??o cURL . |
Seguir redirecionamentos | Marque a caixa de sele??o para seguir redirecionamentos HTTP. Isso define a op??o cURL . |
Modo de recupera??o | Selecione a parte da resposta que deve ser recuperada: Corpo - somente corpo Cabe?alhos - somente cabe?alhos Corpo e cabe?alhos - corpo e cabe?alhos |
Conventer para JSON | Cabe?alhos s?o salvos como pares de atributos e valores sob a chave "header". Se 'Content-Type: application/json' for encontrado, o corpo ser¨¢ salvo como um objeto, caso contr¨¢rio, ser¨¢ armazenado como string, por exemplo: ![]() |
Proxy HTTP | Voc¨º pode especificar um proxy HTTP a ser usado, usando o formato [protocol://][username[:password]@]proxy.example.com[:port] .O prefixo opcional protocol:// pode ser usado para especificar protocolos de proxy alternativos (por exemplo, https, socks4, socks5; consulte ; o suporte ao prefixo do protocolo foi adicionado no cURL 7.21.7). Se nenhum protocolo for especificado, o proxy ser¨¢ tratado como um proxy HTTP. Se voc¨º especificar o protocolo errado, a conex?o falhar¨¢ e o item se tornar¨¢ n?o suportado.Por padr?o, a porta 1080 ser¨¢ usada. Se especificado, o proxy substituir¨¢ as vari¨¢veis de ambiente relacionadas ao proxy, como http_proxy, HTTPS_PROXY. Se n?o for especificado, o proxy n?o substituir¨¢ as vari¨¢veis de ambiente relacionadas ao proxy. O valor inserido ¨¦ passado "como ¨¦", nenhuma verifica??o de sanidade ¨¦ realizada. Note que apenas autentica??o simples ¨¦ suportada com proxy HTTP. Macros suportados: {HOST.IP}, {HOST.CONN}, {HOST.DNS}, {HOST.HOST}, {HOST.NAME}, {ITEM.ID}, {ITEM.KEY}, {ITEM.KEY.ORIG}, macro de usu¨¢rio, macros de descoberta de baixo n¨ªvel. Isso define a op??o cURL cURL. |
Atentica??o HTTP | Tipo de autentica??o: Nenhuma - nenhuma autentica??o usada. µþ¨¢²õ¾±³¦²¹ - autentica??o b¨¢sica usada. NTLM - autentica??o NTLM ( ¨¦ usada. Kerberos - autentica??o Kerberos ¨¦ usada. Veja tamb¨¦m: Configuring Kerberos with Áú»¢¶Ä²©. Digest - Autentica??o Digest ¨¦ usada. Selecionar um m¨¦todo de autentica??o fornecer¨¢ dois campos adicionais para inserir um nome de usu¨¢rio e senha, onde macros de usu¨¢rio e macros de descoberta de baixo n¨ªvel s?o suportados. Isso define a op??o cURL . |
Verifica??o de par SSL | Selecione a caixa de sele??o para verificar o certificado SSL do servido da web. O certificado do servidor ser¨¢ automaticamente obtido da localiza??o da autoridade de certifica??o (CA) do sistema. Voc¨º pode substituir a localiza??o dos arquivos CA usando o par?metro de configura??o do servidor ou proxy do Áú»¢¶Ä²©, SSLCALocation. Isso define a op??o cURL . |
SSL verify host | Marque a caixa de sele??o para verificar se o campo Common Name ou o campo Subject Alternate Name do certificado do servidor web corresponde. Isso define a op??o cURL . |
Arquivo de certificado SSL | Nome do arquivo de certificado SSL usado para autentica??o do cliente. O arquivo de certificado deve estar no formato PEM1. Se o arquivo de certificado tamb¨¦m contiver a chave privada, deixe o campo do arquivo de chave SSL vazio. Se a chave estiver criptografada, especifique a senha no campo de senha da chave SSL. O diret¨®rio que cont¨¦m este arquivo ¨¦ especificado pelo par?metro de configura??o do servidor ou proxy do Áú»¢¶Ä²© SSLCertLocation. Macros suportados: {HOST.IP}, {HOST.CONN}, {HOST.DNS}, {HOST.HOST}, {HOST.NAME}, {ITEM.ID}, {ITEM.KEY}, {ITEM.KEY.ORIG}, macros de usu¨¢rio, macros de descoberta de baixo n¨ªvel. Isso define a op??o cURL cURL. |
Arquivo de chave SSL | Nome do arquivo de chave privada SSL usado para autentica??o do cliente. O arquivo da chave privada deve estar no formato PEM1. O diret¨®rio que cont¨¦m este arquivo ¨¦ especificado pelo par?metro de configura??o do Áú»¢¶Ä²© server ou proxy, SSLKeyLocation. Macros suportados: {HOST.IP}, {HOST.CONN}, {HOST.DNS}, {HOST.HOST}, {HOST.NAME}, {ITEM.ID}, {ITEM.KEY}, {ITEM.KEY.ORIG}, macros de usu¨¢rio, macros de descoberta de baixo n¨ªvel. Isso define a op??o cURL . |
Senha da chave SSL | Senha do arquivo de chave privada. Macros suportados: macros de usu¨¢rio, macros de descoberta de baixo n¨ªvel. Isso define a op??o cURL . |
Habilitar trapping | Com esta caixa de sele??o marcada, o item tamb¨¦m funcionar¨¢ como um trapper item e aceitar¨¢ dados enviados para este item pelo Áú»¢¶Ä²© sender ou usando o protocolo Áú»¢¶Ä²© sender. |
Hosts permitidos | Vis¨ªvel apenas se a caixa de sele??o Habilitar trapping estiver marcada. Lista de endere?os IP delimitados por v¨ªrgula, opcionalmente em nota??o CIDR, ou nomes DNS. Se especificado, as conex?es recebidas ser?o aceitas apenas dos hosts listados aqui. Se o suporte a IPv6 estiver habilitado, ent?o '127.0.0.1', '::127.0.0.1', '::ffff:127.0.0.1' ser?o tratados de forma igual e '::/0' permitir¨¢ qualquer endere?o IPv4 ou IPv6. '0.0.0.0/0' pode ser usado para permitir qualquer endere?o IPv4. Note "endere?os IPv6 compat¨ªveis com IPv4" (prefixo 0000::/96) s?o suportados, mas descontinuados pelo . Exemplo: 127.0.0.1, 192.168.1.0/24, 192.168.3.1-255, 192.168.1-10.1-255, ::1,2001:db8::/32, mysqlserver1, zabbix.example.com, {HOST.HOST} Espa?os e user macros n?o s?o permitidos nesse campo. Macros de host: {HOST.HOST}, {HOST.NAME}, {HOST.IP}, {HOST.DNS}, {HOST.CONN} s?o permitidos nesse campo. |
Se o campo HTTP proxy estiver vazio, aoutra maneira de usar um proxy HTTP ¨¦ definir vari¨¢veis de ambiente relacionadas ao proxy.
Para HTTP - definia a vari¨¢vel de ambiente http_proxy
para o servidor do usu¨¢rio Áú»¢¶Ä²©. Por exemplo:
http_proxy=http://proxy_ip:proxy_port
.
Para HTTPS - defina a vari¨¢vel de ambiente HTTPS_PROXY
. Por exemplo:
HTTPS_PROXY=http://proxy_ip:proxy_port
. Mais detalhes est?o dispon¨ªveis ao executar um comando shell: # man curl.
[1] O Áú»¢¶Ä²© suporta apenas arquivos de certificado e chave privada no formato PEM. Caso voc¨º tenha os dados do certificado e da chave privada em um arquivo no formato PKCS #12 (geralmente com extens?o *.p12 ou *.pfx), voc¨º pode gerar o arquivo PEM a partir dele usando os seguintes comandos:
Envie solicita??es GET simples para recuperar dados de servi?os como o Elasticsearch:
localhost:9200/?pretty
{
"name" : "YQ2VAY-",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "kH4CYqh5QfqgeTsjh2F9zg",
"version" : {
"number" : "6.1.3",
"build_hash" : "af51318",
"build_date" : "2018-01-26T18:22:55.523Z",
"build_snapshot" : false,
"lucene_version" : "7.1.0",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You know, for search"
}
$.version.number
Envie solicita??es POST simples para recuperar dados de servi?os como o Elasticsearch:
http://localhost:9200/str/values/_search?scroll=10s
{
"query": {
"bool": {
"must": [{
"match": {
"itemid": 28275
}
}],
"filter": [{
"range": {
"clock": {
"gt": 1517565836,
"lte": 1517566137
}
}
}]
}
}
}
{
"_scroll_id": "DnF1ZXJ5VGhlbkZldGNoBQAAAAAAAAAkFllRMlZBWS1UU1pxTmdEeGVwQjRBTFEAAAAAAAAAJRZZUTJWQVktVFNacU5nRHhlcEI0QUxRAAAAAAAAACYWWVEyVkFZLVRTWnFOZ0R4ZXBCNEFMUQAAAAAAAAAnFllRMlZBWS1UU1pxTmdEeGVwQjRBTFEAAAAAAAAAKBZZUTJWQVktVFNacU5nRHhlcEI0QUxR",
"took": 18,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"skipped": 0,
"failed": 0
},
"hits": {
"total": 1,
"max_score": 1.0,
"hits": [{
"_index": "dbl",
"_type": "values",
"_id": "dqX9VWEBV6sEKSMyk6sw",
"_score": 1.0,
"_source": {
"itemid": 28275,
"value": "0.138750",
"clock": 1517566136,
"ns": 25388713,
"ttl": 604800
}
}]
}
}
$.hits.hits[0]._source.value
Verificando se a API Áú»¢¶Ä²© est¨¢ dispon¨ªvel, usando apiinfo.version.
Note o uso do m¨¦todo POST com dados JSON, configurando cabe?alhos da requisi??o e solicitando o retorno de apenas cabe?alhos:
Obtendo informa??es de clima pela conex?o ao servi?o p¨²blico Openweathermap.
Note o uso de macros nos campos da requisi??o. Tome como refer¨ºncia a para saber como preench¨º-los.
Exemplo de JSON retornado como resposta ao agente HTTP:
{
"body": {
"coord": {
"lon": 40.01,
"lat": 56.11
},
"weather": [{
"id": 801,
"main": "Clouds",
"description": "few clouds",
"icon": "02n"
}],
"base": "stations",
"main": {
"temp": 15.14,
"pressure": 1012.6,
"humidity": 66,
"temp_min": 15.14,
"temp_max": 15.14,
"sea_level": 1030.91,
"grnd_level": 1012.6
},
"wind": {
"speed": 1.86,
"deg": 246.001
},
"clouds": {
"all": 20
},
"dt": 1526509427,
"sys": {
"message": 0.0035,
"country": "RU",
"sunrise": 1526432608,
"sunset": 1526491828
},
"id": 487837,
"name": "Stavrovo",
"cod": 200
}
}
A pr¨®xima tarefa ¨¦ configurar os itens dependentes para extrair dados do JSON.
Outras m¨¦tricas como 'Temperatura' s?o adicionados da mesma forma.
Conectando-se ¨¤ p¨¢gina de status do Nginx e obtendo suas m¨¦tricas em massa.
Exemplo de sa¨ªda do status de stub do Nginx:
Active connections: 1 Active connections:
server accepts handled requests
52 52 52
Reading: 0 Writing: 1 Waiting: 0
A pr¨®xima tarefa ¨¦ configurar itens dependentes que extraem os dados.
server accepts handled requests\s+([0-9]+) ([0-9]+) ([0-9]+)
: