Este tópico explica como usar o Nginx como servidor de proxy de encaminhamento e o modo de proxy para coletar logs de servidores on-premises no Simple Log Service.
Pré-requisitos
Crie um Project e um Logstore. Para mais informações, consulte Gerenciar Projects e Criar um Logstore básico.
Instale o Logtail 1.5.0 ou posterior no servidor Linux, ou o Logtail 1.5.0.0 ou posterior no servidor Windows. Para mais informações, consulte Instalar o Logtail em um servidor Linux e Instalar o Logtail em um servidor Windows.
Contexto
Para coletar logs de servidores on-premises sem acesso à Internet pública, use o modo de proxy. Esse modo permite que um servidor com acesso à Internet atue como proxy de encaminhamento e envie logs de outros servidores para o Simple Log Service.
Como funciona
O Logtail troca dados de controle, serviço e monitoramento com o Simple Log Service. Os dados de controle incluem informações como entrega de configuração do Logtail e autenticação. Essa comunicação usa HTTP e HTTPS, mas os dados de serviço e monitoramento são enviados por HTTP por padrão. Portanto, o servidor proxy deve encaminhar tráfego HTTP e HTTPS.
O Nginx é um servidor proxy HTTP open source de alto desempenho. Ele oferece suporte nativo a proxy de tráfego HTTP, mas não encaminha diretamente tráfego HTTPS devido a fatores como autenticação. Para habilitar o proxy HTTPS, aplique um patch HTTPS ao Nginx.
Etapa 1: Configure o servidor proxy
Use o Nginx para configurar um servidor on-premises com acesso à Internet pública como servidor de proxy de encaminhamento.
Faça logon na máquina que atuará como servidor de proxy de encaminhamento.
-
Baixe o Nginx e o patch HTTPS.
-
Baixe o patch HTTPS.
git clone https://github.com/chobits/ngx_http_proxy_connect_module.git -
Baixe e descompacte o Nginx.
Substitua ${version} pela versão do Nginx. Para obter a versão mais recente, consulte nginx: download.
wget http://nginx.org/download/nginx-${version}.tar.gz tar -xzvf nginx-${version}.tar.gz cd nginx-${version}/
-
-
Aplique o patch HTTPS ao Nginx.
No comando, ${patchfile} representa o caminho do arquivo. Selecione o arquivo correspondente à versão do Nginx. Para mais informações, consulte Select patch.
patch -p1 < ../ngx_http_proxy_connect_module/patch/${patchfile}.patch -
Instale o Nginx.
./configure --add-module=../ngx_http_proxy_connect_module make && make install -
Adicione a seguinte configuração ao arquivo nginx.conf.
Substitua ${proxy_server_listening_port} e ${dns_server_address} pelos valores reais.
server { listen ${proxy_server_listening_port}; resolver ${dns_server_address}; # Used to specify the proxy for non-HTTP requests. proxy_connect; proxy_connect_allow 443; proxy_connect_connect_timeout 10s; proxy_connect_data_timeout 10s; # Used to specify the proxy for HTTP requests. location / { proxy_pass http://$host; proxy_set_header Host $host; } } Inicie o servidor Nginx.
Etapa 2: Defina variáveis de ambiente relacionadas ao proxy
Sistemas Linux
Há dois métodos para definir as variáveis de ambiente relacionadas ao proxy.
|
Método |
Vantagens |
Desvantagens |
Caso de uso |
|
Método 1 |
A configuração afeta apenas o processo do Logtail e tem impacto mínimo. |
A configuração é relativamente complexa. |
Ideal para usuários sem familiaridade com a configuração geral de rede do servidor. |
|
Método 2 |
A configuração é simples. |
Esta configuração em nível de servidor tem impacto mais amplo. |
Recomendado para administradores que compreendem totalmente os padrões de solicitação de rede de todos os processos no servidor. |
Método 1
Faça logon em um servidor on-premises.
-
Abra o arquivo
/etc/init.d/ilogtaild, adicione a variável de ambiente necessária à funçãostart()e salve o arquivo.Para mais informações sobre variáveis de ambiente, consulte Apêndice: Variáveis de ambiente de proxy.
start() { cd $BIN_DIR umask $UMASK # Add the proxy-related environment variable before $BIN_DIR/ilogtail. # This example uses ALL_PROXY. Assume the proxy server IP address is 192.168.1.0 and the listening port is 9000. # The on-premises server communicates with the proxy server over HTTP. ALL_PROXY=http://192.168.1.0:9000 $BIN_DIR/ilogtail RETVAL=$? } -
Execute o comando a seguir para reiniciar o Logtail.
/etc/init.d/ilogtaild restart Repita as etapas 1 a 3 para definir variáveis de ambiente relacionadas ao proxy em outros servidores on-premises.
Método 2
Use este método apenas se desejar aplicar proxy a todas as solicitações de rede no servidor on-premises ou se quiser aplicar proxy somente às solicitações do Logtail e compreender totalmente o comportamento de rede dos outros processos no servidor. Caso contrário, use o Método 1.
Faça logon em um servidor on-premises.
-
Use o comando
exportpara adicionar a variável de ambiente relacionada ao proxy ao arquivo de inicialização~/.bash_profileou/etc/profile.Para mais informações sobre variáveis de ambiente, consulte Apêndice: Variáveis de ambiente de proxy.
-
Execute o comando a seguir para aplicar a variável de ambiente.
Este exemplo usa o arquivo de inicialização
~/.bash_profile.source ~/.bash_profile -
Execute o comando a seguir para reiniciar o Logtail.
/etc/init.d/ilogtaild restart Repita as etapas 1 a 4 para configurar variáveis de ambiente relacionadas ao proxy em outros servidores on-premises.
Sistemas Windows
Abra a janela Running, insira regedit e clique em OK.
Na janela Registry Editor, acesse Computer\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\LogtailDaemon e clique em LogtailDaemon.
Clique com o botão direito, selecione e nomeie o novo valor como Environment.
-
Clique duas vezes em Environment. Na caixa de texto Value data, insira a variável de ambiente relacionada ao proxy e clique em OK.
Este exemplo usa ALL_PROXY. O endereço IP do servidor proxy é 192.168.1.0 e a porta de escuta é 9000. O servidor on-premises se comunica com o servidor proxy via HTTP. Para mais informações sobre variáveis de ambiente, consulte Apêndice: Variáveis de ambiente de proxy. Por exemplo, insira
ALL_PROXY=http://192.168.1.0:9000. Abra a janela Running, insira services.msc e clique em OK.
-
Na janela Service, localize o serviço Logtail.
Para Logtail 0.x.x.x, selecione o serviço LogtailWorker.
Para Logtail 1.0.0.0 ou posterior, selecione o serviço LogtailDaemon.
Clique com o botão direito no serviço e selecione Restart.
Etapa 3: Verifique a conectividade de rede
Faça logon em um servidor on-premises.
-
Execute os comandos a seguir.
Nos comandos abaixo, ${region} representa a região do seu Project e ${project_name} é o nome do seu Project. Substitua-os pelos valores reais.
curl http://logtail.${region}.log.aliyuncs.com curl https://logtail.${region}.log.aliyuncs.com curl http://${project_name}.${region}.log.aliyuncs.com curl http://ali-${region}-sls-admin.${region}.log.aliyuncs.comSe uma resposta semelhante à seguinte for retornada, a conexão de rede estará funcionando corretamente.
{"Error":{"Code":"OLSInvalidMethod","Message":"The script name is invalid : /","RequestId":"62591BC7C08B7BD4AA99FCD4"}} Repita as etapas 1 e 2 para verificar a conexão de rede de outros servidores on-premises.
Apêndice: Variáveis de ambiente de proxy
É possível especificar essas variáveis de ambiente em minúsculas, mas as variáveis em maiúsculas têm precedência.
-
Para enviar todo o tráfego HTTP e HTTPS para o mesmo servidor proxy, adicione a variável de ambiente
ALL_PROXY.ALL_PROXY=${address_of_the_forward_proxy_server} -
Para enviar tráfego HTTP e HTTPS para servidores proxy diferentes, adicione as variáveis de ambiente
HTTP_PROXYeHTTPS_PROXY.HTTP_PROXY=${address_of_the_server_that_proxies_HTTP_traffic} HTTPS_PROXY=${address_of_the_server_that_proxies_HTTPS_traffic}O endereço do servidor proxy deve estar no formato
[protocol://[username:password@]]address[:port].protocol (opcional): Especifica o protocolo de comunicação entre o servidor on-premises e o servidor proxy. Os valores válidos são http, https e socks5. Se você não definir esse parâmetro, http será usado por padrão.
username e password (opcionais): As credenciais para fazer logon no servidor proxy.
address (obrigatório): O endereço IP do servidor proxy.
port (opcional): A porta de escuta do servidor proxy configurada no arquivo nginx.conf. Para mais informações, consulte a etapa 5 na seção "Etapa 1: Configure o servidor proxy". Se este parâmetro for omitido, a porta 80 será usada por padrão.
Também é possível adicionar a variável de ambiente NO_PROXY para especificar destinos que devem ignorar o servidor proxy. Separe vários endereços com vírgulas (,). Os formatos suportados incluem:
Endereço IP
Um ponto inicial (.) corresponde ao domínio e seus subdomínios.
(desativa o proxy para todos os destinos)