AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / user-404882

olivierg's questions

Martin Hope
olivierg
Asked: 2025-02-07 22:04:53 +0800 CST

Apache Reverse Proxy: imprima o erro retornado pelo backend em vez de apenas "erro 500"

  • 6

Tenho um servidor apache atuando como proxy reverso para um webservice, com uma configuração parecida com esta:

<VirtualHost *:18010>

 SSLEngine on
 ProxyRequests off
 SSLProxyEngine on
 ProxyPass / https://backend.url:4445/
 ProxyPassReverse / https://backend.url:4445/
 SSLVerifyClient require
 SSLVerifyDepth 10
 SSLCACertificateFile ssl/cacerts.pem

</VirtualHost>

O que está funcionando bem. No entanto, quando os "clientes" executam consultas no WebService em execução por trás da URL, se o backend responde um erro, o proxy mostra apenas que houve um erro 500, como:

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>500 Internal Server Error</title>
</head><body>
<h1>Internal Server Error</h1>
<p>The server encountered an internal error or
misconfiguration and was unable to complete
your request.</p>
<p>Please contact the server administrator at
 [email protected] to inform them of the time this error occurred,
 and the actions you performed just before this error.</p>
<p>More information about this error may be available
in the server error log.</p>
</body></html>

Enquanto que ao consultar o WebService "diretamente" (não via proxy) podemos ver o erro "real" retornado pelo servidor, como:

Error 500: javax.servlet.ServletException: org.codehaus.jackson.map.exc.UnrecognizedPropertyException: Unrecognized field &quot;test&quot; &#40;Class iseries.wsbeans.avews10.PrecheckInput&#41;, not marked
 at [Source: com.ibm.ws.webcontainer.srt.SRTInputStream@6bd1f156&#59; line: 1, column: 11] &#40;through reference chain: iseries.wsbeans.avews10.PrecheckPaymentInput[&quot;test&quot;]&#41;

Então minha pergunta é: existe uma opção para adicionar a configuração do Apache para que ele retorne o erro completo retornado pelo backend, em vez de apenas um erro 500?

obrigado novamente, cumprimentos,

apache-2.4
  • 1 respostas
  • 64 Views
Martin Hope
olivierg
Asked: 2021-08-26 00:54:48 +0800 CST

SMTP autenticado com sendmail na linha de comando

  • 0

estamos enviando e-mails usando sendmail na linha de comando, com um comando como:

cat <email_contents> | sendmail -t

o <email_contents> contém campos como remetente, destinatário etc.:

To: [email protected]
Subject: Testing
From: [email protected]

bem como um arquivo enorme, anexos etc.

agora precisamos usar SMTP autenticado (passar um argumento de login e senha para autenticar no servidor SMTP).

existe uma maneira de fazer isso com este método? (usando argumentos sendmail ou modificando o email_contents levando em consideração os seguintes elementos:

  1. NÃO usando mailx ou qualquer outro cliente de email. precisamos continuar usando o sendmail na linha de comando
  2. NÃO alterando os arquivos de configuração do sendmail (sendmail.cf)

obrigado mais uma vez abraços,

linux email solaris smtp sendmail
  • 1 respostas
  • 1959 Views
Martin Hope
olivierg
Asked: 2020-02-27 05:24:54 +0800 CST

HAProxy registrando o tráfego TCP no syslog

  • 1

Estou tentando configurar meu HAProxy para registrar mais informações do que apenas dizer "proxy backend_xx iniciado" e parece que não estou entendendo como isso funciona.

meu HAProxy é um LB TCP puro (apenas encaminha solicitações do frontend para backends, L4 puro).

eu gostaria de ter os logs mencionados na documentação do HAProxy aqui https://cbonte.github.io/haproxy-dconv/1.8/configuration.html#8.2.2

aqui está minha configuração e problemas no momento, nas "seções globais/padrão", eu tenho:

#---------------------------------------------------------------------
# Global settings
#---------------------------------------------------------------------
global
    daemon
    user                haproxy
    group               haproxy
    log                 /dev/log local6 debug
    maxconn             50000
    chroot              /var/lib/haproxy
    pidfile             /var/run/haproxy.pid

#---------------------------------------------------------------------
# common defaults that all the 'listen' and 'backend' sections will
# use if not designated in their block
#---------------------------------------------------------------------
defaults
    mode                 tcp
    option               tcplog
    log                  global
    option               dontlognull
    timeout connect      5000
    timeout client       50000
    timeout server       50000

eu também tenho essa opção no meu frontend:

frontend main_https_listen
    bind xxxxxxxxxxxxxx:443
    mode                tcp
    option              tcplog
    xxxxxxx

eu configurei um arquivo no meu rsyslog.d com:

[root@xxxxxxx ~]# cat /etc/rsyslog.d/haproxy.conf
# -----------------------------------------------
# Haproxy specific logging configuration
# -----------------------------------------------
local6.debug             /var/log/haproxy-traffic.log
local6.notice            /var/log/haproxy-admin.log
[root@xxxxxxx ~]#

infelizmente, ambos os arquivos contêm as mesmas informações, por exemplo:

[root@xxxxxxx ~]# tail -11 /var/log/haproxy-admin.log
Feb 25 18:05:30 xxxxxxx haproxy[838761]: Proxy stats started.
Feb 25 18:05:30 xxxxxxx haproxy[838761]: Proxy main_https_listen started.
Feb 25 18:05:30 xxxxxxx haproxy[838761]: Proxy backend_SIT_AT35073 started.
Feb 25 18:05:30 xxxxxxx haproxy[838761]: Proxy backend_SIT_AT34305 started.
Feb 25 18:05:30 xxxxxxx haproxy[838761]: Proxy backend_SIT_AT28548 started.
Feb 25 18:05:30 xxxxxxx haproxy[838761]: Proxy backend_SIT_AT28756 started.
Feb 25 18:05:30 xxxxxxx haproxy[838761]: Proxy backend_SIT_AT36702 started.
Feb 25 18:05:30 xxxxxxx haproxy[838761]: Proxy backend_UAT_AT28546 started.
Feb 25 18:05:30 xxxxxxx haproxy[838761]: Proxy backend_PRD_AT28547 started.

[root@xxxxxxx ~]# tail -11 /var/log/haproxy-traffic.log
Feb 25 18:05:30 xxxxxxx haproxy[838761]: Proxy stats started.
Feb 25 18:05:30 xxxxxxx haproxy[838761]: Proxy main_https_listen started.
Feb 25 18:05:30 xxxxxxx haproxy[838761]: Proxy backend_SIT_AT35073 started.
Feb 25 18:05:30 xxxxxxx haproxy[838761]: Proxy backend_SIT_AT34305 started.
Feb 25 18:05:30 xxxxxxx haproxy[838761]: Proxy backend_SIT_AT28548 started.
Feb 25 18:05:30 xxxxxxx haproxy[838761]: Proxy backend_SIT_AT28756 started.
Feb 25 18:05:30 xxxxxxx haproxy[838761]: Proxy backend_SIT_AT36702 started.
Feb 25 18:05:30 xxxxxxx haproxy[838761]: Proxy backend_UAT_AT28546 started.
Feb 25 18:05:30 xxxxxxx haproxy[838761]: Proxy backend_PRD_AT28547 started.

enquanto eu esperaria que o log de tráfego gerasse coisas como na documentação, por exemplo:

Feb  6 12:12:56 localhost \
  haproxy[14387]: 10.0.1.2:33313 [06/Feb/2009:12:12:51.443] fnt \
  bck/srv1 0/0/5007 212 -- 0/0/0/0/3 0/0

alguma idéia sobre o que está errado na minha configuração?

obrigado novamente

Saudações

syslog haproxy
  • 1 respostas
  • 4748 Views
Martin Hope
olivierg
Asked: 2019-11-10 12:21:36 +0800 CST

vincular e atualizações dinâmicas

  • 0

Eu tenho zonas no meu servidor BIND que são atualizadas dinamicamente por alguns servidores DHCP do Windows, com bastante frequência. no entanto, preciso adicionar registros "manualmente" nessas zonas. ainda posso atualizar manualmente essas zonas simplesmente editando-as (usando o vi no meu servidor de ligação, como faço para os outros que não suportam atualizações), adicionando o registro, atualizando o serial e recarregando a coisa? (rndc reload) o que acontece se, durante minha atualização serial, uma atualização for feita ao mesmo tempo por qualquer sistema dinâmico (DHCP no meu caso). obrigado

domain-name-system
  • 1 respostas
  • 817 Views
Martin Hope
olivierg
Asked: 2019-10-16 02:06:38 +0800 CST

HAProxy como balanceador de carga TCP (passagem SSL) não está funcionando?

  • 2

Estou tendo alguns problemas para configurar o HAProxy como um balanceador de carga TCP (camada 4) e gostaria de receber seu conselho sobre isso.

tenho seguido muitos guias na web e cheguei a esta configuração (não mostra nenhum erro nos logs, começa bem):

nota: nomes de domínio reais são mascarados

#---------------------------------------------------------------------
# Global settings
#---------------------------------------------------------------------
global
 daemon
 user                haproxy
 group               haproxy
 log                 /dev/log local6 debug
 maxconn             50000
 chroot              /var/lib/haproxy
 pidfile             /var/run/haproxy.pid

#---------------------------------------------------------------------
# common defaults 
#---------------------------------------------------------------------
defaults
 mode                 tcp
 log                  global
 option               dontlognull
 timeout connect      5000
 timeout client       50000
 timeout server       50000

#---------------------------------------------------------------------
# dedicated stats page
#---------------------------------------------------------------------
listen stats
 mode http
 bind :22222
 stats enable
 stats uri            /haproxy?stats
 stats realm          Haproxy\ Statistics
 stats auth           xxxxxx:xxxxxxxx
 stats refresh        30s

#---------------------------------------------------------------------
# main frontend which proxys to the backends
#---------------------------------------------------------------------
frontend main_https_listen
 bind *:443
 mode                tcp
 option              tcplog

# -------------------------------
# ACLs - SIT
# -------------------------------

acl acl_SIT_CI5      req.ssl_sni -i url1.domain.net
acl acl_SIT_HR8      req.ssl_sni -i url2.domain.net

# -------------------------------
# Conditions - SIT
# -------------------------------

use_backend backend_SIT_CI5 if acl_SIT_CI5
use_backend backend_SIT_HR8 if acl_SIT_HR8

#---------------------------------------------------------------------
# Backends
#---------------------------------------------------------------------

backend backend_SIT_CI5
 mode tcp
 balance source
 option ssl-hello-chk
 server server_SIT_CI5_1 host1.domain.net:443 check
 server server_SIT_CI5_2 host2.domain.net:443 check

backend backend_SIT_HR8
 mode tcp
 balance source
 option ssl-hello-chk
 server server_SIT_HR8_1 host1.domain.net:443 check
 server server_SIT_HR8_2 host2.domain.net:443 check

eu apontei host1.domain.net para o meu haproxy vIP (ele tem uma configuração keepalived por trás com um IP virtual).

agora ao acessar https://url1.domain.net (ou mesmo https://loadbalancerURL mas suponho que isso seja normal nesse) eu tenho um erro Esta página não pode ser exibida. Ative o TLS 1.0, TLS 1.1 e TLS 1.2 em Configurações avançadas e tente conectar-se a https://host1.domain.net novamente .

um único openssl s_client fornece uma falha de handshake SSL (sem certificados blabla).

você tem alguma ideia do que eu fiz de errado? Além disso, preciso configurar alguns certificados enquanto estou ouvindo em 443? (mesmo que eu não queira que esses certificados sejam descriptografados ou qualquer outra coisa, pois só quero que meu HAProxy atue como um proxy).

eu também tentei ativar o modo de depuração para log, mas não mostrou nenhum erro (nem novos logs)

nota : os backends estão localizados atrás de firewalls, a comunicação entre backends para o HAProxy não é aberta no 443 (somente do Haproxy para os backends), precisa ser direcional ? e porque ?

note2: nas estatísticas do haproxy, posso ver todos os back-ends UP

Além disso, existe uma maneira de saber/verificar se um redirecionamento baseado no nome do host (SNI) está funcionando bem ou não? (tenho a impressão de que a conexão fica no load balancer e não é redirecionada para o backend, e é por isso que estou com erro)

um haproxy -vv dá:

HA-Proxy version 1.5.18 2016/05/10
Copyright 2000-2016 Willy Tarreau <[email protected]>

Build options :
  TARGET  = linux2628
  CPU     = generic
  CC      = gcc
  CFLAGS  = -O2 -g -fno-strict-aliasing -DTCP_USER_TIMEOUT=18
  OPTIONS = USE_LINUX_TPROXY=1 USE_GETADDRINFO=1 USE_ZLIB=1 USE_REGPARM=1     USE_OPENSSL=1 USE_PCRE=1

Default settings :
  maxconn = 2000, bufsize = 16384, maxrewrite = 8192, maxpollevents = 200

Encrypted password support via crypt(3): yes
Built with zlib version : 1.2.7
Compression algorithms supported : identity, deflate, gzip
Built with OpenSSL version : OpenSSL 1.0.2k-fips  26 Jan 2017
Running on OpenSSL version : OpenSSL 1.0.2k-fips  26 Jan 2017
OpenSSL library supports TLS extensions : yes
OpenSSL library supports SNI : yes
OpenSSL library supports prefer-server-ciphers : yes
Built with PCRE version : 8.32 2012-11-30
PCRE library supports JIT : no (USE_PCRE_JIT not set)
Built with transparent proxy support using: IP_TRANSPARENT IPV6_TRANSPARENT     IP_FREEBIND

Available polling systems :
      epoll : pref=300,  test result OK
       poll : pref=200,  test result OK
     select : pref=150,  test result OK
Total: 3 (3 usable), will use epoll.
ssl
  • 2 respostas
  • 9630 Views
Martin Hope
olivierg
Asked: 2017-03-17 07:15:58 +0800 CST

Recupere espaço em HP 3Par SAN e VMware ESXi

  • 2

Acabei de recuperar o espaço não utilizado em nosso HP 3Par usando um comando no lado do ESX, como:

esxcli storage vmfs unmap --l DATASTORENAME

funciona bem e, no console 3Par, agora posso ver em meu armazenamento de dados/LUN:

  • Espaço de usuário usado: 26% (era 46% antes da recuperação)
  • Espaço de usuário reservado: 4,7 TB/10 TB (infelizmente não foi alterado)

No entanto, no VMware, o espaço não mudou. Suponho que isso se deva a essa "reserva" (o espaço é mantido reservado no 3Par).

existe uma maneira de remover essa alocação na SAN (suponho que os dados sejam zerados), executando algum tipo de comando de ajuste ou comando compacto?

Vi que eram comandos como compactcpg , mas não parece ser exatamente o que preciso, pois suponho que não balanceará os dados (chunklets) corretamente nos discos? (mas usou menos discos quanto possível e, portanto, diminuiu o desempenho?)

obrigado, cumprimentos,

disk-space-utilization storage-area-network hp vmware-esx
  • 2 respostas
  • 7639 Views
Martin Hope
olivierg
Asked: 2017-03-11 14:27:00 +0800 CST

incapaz de filtrar mensagens mal formatadas no syslog-ng

  • 0

Estou entrando em contato com você sobre um problema que tenho com o syslog-NG. alguns de nossos dispositivos (principalmente switches HP e SANs) estão enviando mensagens syslog que não respeitam o syslog RFC 5424 ao que parece.

para lhe dar alguns exemplos:

se eu farejar a interface de rede do servidor, podemos ver essas mensagens "erradas" assim (como você pode ver, depois do PRI, podemos ver o PROGRAMA, depois fuso horário e campos separados por vírgulas. em resumo, campos mistos, campos ausentes etc. não é uma mensagem syslog padrão):

<190>raslogd: 2017/03/08-16:03:20, [SEC-1203], 53642, WWN 10:00:50:eb:1a:6c:21:38 | FID 128, INFO, cswc-mo8x-SAN01, Login information: Login successful via TELNET/SSH/RSH. IP Addr: 1.2.3.4

portanto, atualmente não consigo filtrar essas mensagens. Tentei definir um filtro regular e imprimir campos como MSGHDR, MSG, PRI etc., mas não consegui ver nada.

a ÚNICA MANEIRA de filtrar esta mensagem é apenas definindo a interface externa e um arquivo como saída, sem nenhum modelo.

por exemplo, se eu fizer um filtro como este:

destination d_INCOMING_ALL   { file("/app/syslog-ng/logs/incoming_all.log"); };

log {
  source(s_EXTERNAL);
  destination(d_INCOMING_ALL);
};

Eu posso ver as mensagens no arquivo de log, mas formatadas, de alguma forma (suponho que o syslog-NG as reformate):

[root@xxxxxxxxxxxx logs]# grep -i cswc incoming_all.log
Mar  9 09:44:20 cswc-mo8x-hpsan01 raslogd: 2017/03/09-08:34:50, [SEC-1203], 53647, WWN 10:00:50:eb:1a:6c:21:38 | FID 128, INFO, cswc-mo8x-SAN01, Login information: Login successful via TELNET/SSH/RSH. IP Addr: 1.2.3.4
[root@xm1p1034vmo logs]#

o problema é que não consigo filtrar essas mensagens assim (recebemos logs de mais de 1000 dispositivos) aí, preciso filtrar as mensagens vindas desses dispositivos! e a única maneira de fazer isso é no nome do host (cswc- ) ou no nome do programa (raslogd )

então tentei exibir os campos adicionando um modelo a esse arquivo, exemplo:

destination d_test { 
    file ("/app/syslog-ng/logs/test_olivier.log" 
    template("pri=${priority} date=${ISODATE} host=${HOST} program=${PROGRAM} message=${MSG}\n") 
    ); 
};

mas nada funciona, nada é exibido. Eu tentei todos os campos, MSG, MESSAGE, MSGHDR etc. não consigo exibir NADA. a única coisa que funciona é a análise sem filtros ou modelos.

naturalmente, se eu passar por todos os tipos de filtros, como esses abaixo, não funciona (pois os campos são misturados):

filter f_is_SAN     {
    host("cswc.*" flags(ignore-case));
};

o mesmo para:

filter f_is_SAN     {
    match(".*cswc.*" flags(ignore-case));
};

alguma dica sobre como criar filtros para essas mensagens provenientes desses dispositivos (no nome do host ou nome do programa)?

obrigado cumprimentos,

syslog syslog-ng filter
  • 2 respostas
  • 1264 Views

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Você pode passar usuário/passar para autenticação básica HTTP em parâmetros de URL?

    • 5 respostas
  • Marko Smith

    Ping uma porta específica

    • 18 respostas
  • Marko Smith

    Verifique se a porta está aberta ou fechada em um servidor Linux?

    • 7 respostas
  • Marko Smith

    Como automatizar o login SSH com senha?

    • 10 respostas
  • Marko Smith

    Como posso dizer ao Git para Windows onde encontrar minha chave RSA privada?

    • 30 respostas
  • Marko Smith

    Qual é o nome de usuário/senha de superusuário padrão para postgres após uma nova instalação?

    • 5 respostas
  • Marko Smith

    Qual porta o SFTP usa?

    • 6 respostas
  • Marko Smith

    Linha de comando para listar usuários em um grupo do Windows Active Directory?

    • 9 respostas
  • Marko Smith

    O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL?

    • 3 respostas
  • Marko Smith

    Como determinar se uma variável bash está vazia?

    • 15 respostas
  • Martin Hope
    Davie Ping uma porta específica 2009-10-09 01:57:50 +0800 CST
  • Martin Hope
    kernel O scp pode copiar diretórios recursivamente? 2011-04-29 20:24:45 +0800 CST
  • Martin Hope
    Robert ssh retorna "Proprietário incorreto ou permissões em ~/.ssh/config" 2011-03-30 10:15:48 +0800 CST
  • Martin Hope
    Eonil Como automatizar o login SSH com senha? 2011-03-02 03:07:12 +0800 CST
  • Martin Hope
    gunwin Como lidar com um servidor comprometido? 2011-01-03 13:31:27 +0800 CST
  • Martin Hope
    Tom Feiner Como posso classificar a saída du -h por tamanho 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent Como determinar se uma variável bash está vazia? 2009-05-13 09:54:48 +0800 CST

Hot tag

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve