Estou agendando spiders implantados via scrapy com cron. Cada aranha uma linha. Agora, com 100 aranhas, isso se torna bastante difícil de planejar e gerenciar. Qual é a maneira recomendada de gerenciar uma grande quantidade de trabalhos? Analisar o tempo de manutenção potencial necessário para pausar/retomar trabalhos, entre outras coisas, como trabalhos sobrepostos, etc.
merlin's questions
Temos uma nova configuração de servidor em que um membro da equipe alterou os direitos para outros usuários e grupos de usuários para todo o diretório raiz.
chmod -R go-rwx /
Isso levou ao fato de que, por exemplo, ninguém exceto o root pode fazer login mais.
Existe uma maneira fácil de reverter isso? Parece-me que isso é impossível, pois há muitas pastas afetadas.
O sistema é o Ubuntu 18.04 LTS
Estou executando o Apache 2.4.18 em um servidor 16.04. Esta versão é corrigida através do Ubuntu apt-get upgrade? Eu estava pronto para alguns problemas de segurança, mas o comando de atualização não atualizará o Apache.
rex:~$ apache2 -v
Server version: Apache/2.4.18 (Ubuntu)
Server built: 2018-06-07T19:43:03
Preciso aplicar patches ou o Ubuntu terá o núcleo dele. Se não, como posso atualizar para a versão 2.4 mais recente?
Instalei recentemente um novo certificado SSL no Apache 2.x com openssl e tenho um relatório de usuário para não conseguir acessar a página. Ele faz o erroNET::ERR_CERT_AUTHORITY_INVALID
Embora eu não tenha conseguido reproduzir o problema, uma verificação no certificado SSL revela alguns problemas com uma cadeia: https://www.ssllabs.com/ssltest/analyze.html?d=static.watchgurus.net
Está faltando algum certificado na minha configuração?
Estou ficando sem espaço em um volume LVM e estou querendo saber onde 10G estão alocados:
df -h
/dev/mapper/vg0-staging 20G 19G 177M 100% /mnt/staging
lvs
staging vg0 -wi-ao---- 30.00g
Existe uma maneira de anexar o espaço livre e aumentar a partição para o tamanho total do volume, mantendo os dados intactos?
Estou trabalhando em um script de backup que cria instantâneos LVM. Depois de criar o instantâneo, ele será compactado via lz4 e, posteriormente, o script deve excluir o instantâneo do VG.
A exclusão do instantâneo falha devido a privilégios ausentes. Prefiro evitar executar este script como root. Existe alguma outra possibilidade de deixar o script criar E remover o instantâneo?
Instalei o solr 6.4.0 no ubuntu 16.04 LTS e quero usar uma configuração usada anteriormente no solr CLOUD 5.2.1
Depois de criar um novo núcleo e vincular os arquivos de configuração, agora posso ver o núcleo na interface da web e os arquivos corretamente na interface de administração do núcleo.
O link de atualização está acinzentado e ao clicar nele exibe a mensagem de erro:
Desculpe, nenhum manipulador de importação de dados definido!
As coisas que verifiquei:
- Solrconfig carrega jar:
<lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-dataimporthandler-.*\.jar" />
<lib dir="/usr/share/java/" regex="mysql-connector-java-.*\.jar" />
Parece funcionar, pois exibe uma mensagem de erro ao alterar o nome do arquivo. Portanto, presumo que o conector mysql esteja carregado
- Manipulador de importação de dados definido:
em solrconfig:
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">dataimport.xml</str>
</lst>
</requestHandler>
- Dataimporthandler em si
o arquivo dataimport.xml está presente e mostra:
<dataConfig>
<dataSource type="JdbcDataSource"
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/test"
user="solr"
password="secret"
convertType="true"
batchSize="-1"
encoding="UTF-8" />
...
O arquivo de log dentro do webadmin não mostra nenhum erro. Presumo que o log não esteja configurado para exibir esse tipo de erro.
Quando altero a senha dentro do dataimport.xml ou o nome do banco de dados, nada de diferente acontece. Mesma mensagem de erro.
Alguma ideia de como diminuir o problema?
Acabei de instalar o ubuntu 16.04 e o apache2. A página de configuração padrão aparece mesmo se eu parar o apache2. Isso é absolutamente estranho, pois não há processo httpd. O servidor continua servindo o arquivo padrão e alterando o arquivo mostra as mudanças.
Esta é a saída no console:
user@rex:~$ sudo /etc/init.d/apache2 stop
[ ok ] Stopping apache2 (via systemctl): apache2.service.
user@rex:~$ ps -ef | grep httpd
user 1855 1642 0 16:03 pts/0 00:00:00 grep --color=auto httpd
user@rex:~$ sudo /etc/init.d/apache2 status
● apache2.service - LSB: Apache2 web server
Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled)
Drop-In: /lib/systemd/system/apache2.service.d
└─apache2-systemd.conf
Active: inactive (dead) since Thu 2017-01-19 16:03:20 CET; 44s ago
Docs: man:systemd-sysv-generator(8)
Process: 1785 ExecStop=/etc/init.d/apache2 stop (code=exited, status=0/SUCCESS)
Process: 1768 ExecStart=/etc/init.d/apache2 start (code=exited, status=0/SUCCESS)
Jan 19 16:03:20 rex apache2[1768]: (98)Address already in use: AH00072: make_sock: could not bind to address 0.0.0.0:80
Jan 19 16:03:20 rex apache2[1768]: no listening sockets available, shutting down
Jan 19 16:03:20 rex apache2[1768]: AH00015: Unable to open logs
Jan 19 16:03:20 rex apache2[1768]: Action 'start' failed.
Jan 19 16:03:20 rex apache2[1768]: The Apache error log may have more information.
Jan 19 16:03:20 rex apache2[1768]: *
Jan 19 16:03:20 rex apache2[1785]: * Stopping Apache httpd web server apache2
Jan 19 16:03:20 rex apache2[1785]: *
Jan 19 16:03:20 rex systemd[1]: Started LSB: Apache2 web server.
Jan 19 16:03:46 rex systemd[1]: Stopped LSB: Apache2 web server.
Qual poderia ser o problema aqui?
Estou tendo problemas com um dos meus servidores sendmail. Os usuários estão me informando que os e-mails de registro não chegam. O arquivo de log afirma que a mensagem foi colocada na fila, mas a fila está vazia:
sudo cat /var/log/mail.log | grep email
(com endereços de e-mail e servidor ofuscados neste exemplo):
Jan 6 23:33:57 fx1 sendmail[9292]: u06MXvuk009292: to=email, ctladdr=sender-email (1001/100), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=38128, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Enviado (u06MXv7o009293 Mensagem aceita para entrega)
Jan 6 23:34:00 fx1 sm-mta[9295]: u06MXv7o009293: to=, delay=00:00:03, xdelay=00:00:03, mailer=esmtp, pri=128308, relay=mx3.hotmail. com. [65.55.37.120], dsn=2.0.0, stat=Enviado ( <70001a6bb8ff80254895632a2c4367fb@myhost> Correio na fila para entrega)
$ mailq
> MSP Queue status...
/var/spool/mqueue-client is empty
Total requests: 0
MTA Queue status...
/var/spool/mqueue (1 request)
-----Q-ID----- --Size-- -----Q-Time----- ------------Sender/Recipient-----------
u04ALref018750* 184 Mon Jan 4 11:21 <[email protected]>
(Deferred: Connection timed out with mail.vtmail.com.)
<[email protected]>
Total requests: 1
O arquivo de log mail.err está vazio.
Como eu poderia rastrear o problema? Isso está acontecendo com bastante frequência.
De alguma forma, estraguei alguns volumes lvm com provisionamento fino no ubuntu 14.04 e agora quero começar do zero excluindo o thinpool com todos os seus volumes e dados internos. Infelizmente, isso falha e não consigo encontrar uma solução.
Os volumes lógicos se parecem com isso:
user@server1:~$ sudo lvs
dm_report_object: report function failed for field data_percent
LV VG Attr LSize Pool Origin Data% Move Log Copy% Convert
project2 vg0 Vwi-i-tz- 22.00g mythinpool
project1 vg0 Vwi---tz- 20.00g mythinpool
project3 vg0 Vwi---tz- 21.00g mythinpool
home vg0 -wi-ao--- 140.00g
mythinpool vg0 twi-i-tz- 78.82g 52.15
root vg0 -wi-ao--- 10.00g
swap vg0 -wi-ao--- 4.00g
tmp vg0 -wi-ao--- 5.00g
Agora quero remover o thinpool com os três lvms dentro:
sudo lvremove /dev/vg0/mythinpool
Removing pool mythinpool will also remove 3 thin volume(s). OK? [y/n]: y
Do you really want to remove and DISCARD logical volume project1? [y/n]: y
device-mapper: message ioctl on failed: Invalid argument
Unable to deactivate open vg0-mythinpool_tdata (252:5)
Unable to deactivate open vg0-mythinpool_tmeta (252:4)
Failed to deactivate vg0-mythinpool-tpool
Failed to resume mythinpool.
Failed to update thin pool mythinpool.
Eu não me importo com os dados dentro do mythinpool, mas o resto do grupo de volumes vg0 DEVE permanecer intacto. Como eu poderia resolver este problema? Obrigado por qualquer ajuda sobre isso.
EDIT 1: Depois de seguir a resposta de shodanshok, consegui remover uma imagem LVM inicializando no CentOS7, mas infelizmente os outros dois volumes, incluindo o thin pool, retornam outra mensagem de erro - transaction_id incompatível:
Também não há espaço disponível para lvconvert --repair
Estou tendo problemas para entregar e-mails para o Google a partir de uma nova instalação do sendmail no Ubuntu 14.04. Os registros DNS parecem estar bem para o ip. Algo mais deve estar errado.
Enviando e-mail a partir da linha de comando:
sudo sendmail -v -Am -i [email protected];
Saída detalhada:
myname@fx1:/etc/mail$ sudo sendmail -v -Am -i [email protected];
[email protected]... Connecting to aspmx.l.google.com. via esmtp...
220 mx.google.com ESMTP v1si55415385wja.21 - gsmtp
>>> EHLO staging.mydomain.com
250-mx.google.com at your service, [2a01:4f8:212:27c8::2]
250-SIZE 35882577
250-8BITMIME
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-CHUNKING
250 SMTPUTF8
>>> STARTTLS
220 2.0.0 Ready to start TLS
>>> EHLO staging.mydomain.com
250-mx.google.com at your service, [2a01:4f8:212:27c8::2]
250-SIZE 35882577
250-8BITMIME
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-CHUNKING
250 SMTPUTF8
>>> MAIL From:<[email protected]>
250 2.1.0 OK v1si55415385wja.21 - gsmtp
>>> RCPT To:<[email protected]>
>>> DATA
250 2.1.5 OK v1si55415385wja.21 - gsmtp
354 Go ahead v1si55415385wja.21 - gsmtp
>>> .
550-5.7.1 [2a01:4f8:212:27c8::2] Our system has detected that this message does
550-5.7.1 not meet IPv6 sending guidelines regarding PTR records and
550-5.7.1 authentication. Please review
550-5.7.1 https://support.google.com/mail/?p=ipv6_authentication_error for more
550 5.7.1 information. v1si55415385wja.21 - gsmtp
myname... Connecting to local...
myname... Sent
Qualquer ajuda é muito apreciada. Agradeço antecipadamente.
Estou executando o Ubuntu 14.04 LTS com imagens LVM. Após uma grande importação de dados para o solr, estou enfrentando a situação de uma partição completa do root.
/dev/mapper/vg0-root 9.8G 9.3G 0 100% /
Descobri que o log solr em /var/solr/logs/ continha mais de 6G e removi todos eles.
De alguma forma, o disco ainda está cheio, nenhuma alteração para esta partição. O que poderia estar causando isso e como eu poderia abordar esse problema para encontrar uma solução?
Obrigado desde já por qualquer ajuda.
Eu preciso redirecionar 301 o conteúdo de um diretório inteiro para outro diretório com nginx. Enquanto minha configuração funciona, infelizmente também expõe o número da porta. Acho que agora é um efeito colateral, já que o tráfego de entrada para o domínio específico é tratado por meio de regras HAProxy ACL para a porta 8000, enquanto o próprio URL é a porta 80.
Este é o meu nginx conf:
server {
listen 8000;
port_in_redirect off;
location ~* ^/data/dir1/(.*)$ {
return 301 /data/dir2/$1;
}
...
Ele redireciona do URL:
domínio.com/data/dir1/...
para:
domínio.com:8000/data/dir2/...
Como eu poderia me livrar do 8000 dentro do redirecionamento de URL?
A solução tmp que tenho é colocar: 80 no redirecionamento, mas temo que isso afete o URL que o Google está listando, pois inclui um número de porta.
Estou executando um MySQL 5.6 Galera Cluster de 3 nós. Tudo está sincronizado e parece bom, mas acabei de descobrir que a tabela de usuários não estava sincronizada.
Um usuário específico não estava presente nos outros nós onde pensei que poderia replicá-lo após a emissão:
mysql -u root -p -e "INSERT INTO mysql.user (Host,User) values ('10.0.0.10','haproxy_check'); FLUSH PRIVILEGES;"
Verifiquei duas vezes o status do wsrep e as tabelas de usuário em todos os nós. Depois de emitir o comando nos outros 2 nodos ele fica disponível e galera parece ainda estar sincronizado.
Estou perdendo alguma coisa aqui? Por que galera não está replicando a tabela de usuários?
Eu quero habilitar o registro lento de consultas no MySQL Galera.
Para fazer isso, habilitei-o através de my.cnf
:
log_slow_queries = /var/log/mysql/mysql-slow.log
long_query_time = 1
log-queries-not-using-indexes
Então, tentei reiniciar um servidor
sudo services mysql restart
O nó galera falha ao reiniciar e grava em error.log:
mysqld_safe WSREP: Falha ao recuperar a posição: 2015-08-29 12:07:37 27805 [Aviso] O uso do prefixo de opção exclusivo myisam-recover em vez de myisam-recover-options está obsoleto e será removido em uma versão futura. Em vez disso, use o nome completo. 2015-08-29 12:07:37 27805 [Nota] O plug-in 'FEDERATED' está desativado. 29/08/2015 12:07:37 27805 [ERRO] A função 'innodb' já existe 29/08/2015 12:07:37 27805 ...
Depois que removo o log de consulta de my.cnf
, o servidor inicia bem e ingressa no cluster OK.
Existe algum procedimento especial para habilitar o log de consultas no Galera? Se for o caso, como fazer?
Eu tinha uma instalação gluster funcionando no ubuntu 14.04. Agora reconectei as portas sata e o tijolo gluster agora está montado na outra porta. Está disponível:
/dev/sda1 236M 38M 186M 17% /boot
/dev/sdc1 20G 7.2G 12G 39% /data/gluster
/dev/sdb1 7.8G 2.9G 4.5G 39% /data/mysql
Infelizmente não consigo mais montar:
~sudo mount gs1:volume1 /data/nfs
nada acontece, o cursor fica na linha em branco. Eu tenho que cancelar com ctrl c ou esperar até obter um tempo limite:
node1:~sudo mount gs1:volume1 /data/nfs
mount.nfs: Connection timed out
informações de volume
Volume Name: volume1
Type: Replicate
Volume ID: 92d9adb8-756b-4138-87a8-23237d21688f
Status: Started
Number of Bricks: 1 x 2 = 2
Transport-type: tcp
Bricks:
Brick1: gs1:/data/gluster/brick
Brick2: gs2:/data/gluster/brick
Não há nada nos logs. O endereço IP dos servidores gluster está em /etc/hosts e posso pingá-los.
Como eu poderia corrigir esse erro?
Enquanto procurava por um erro após falha no rsync inicial de dados para glusterfs, encontrei a seguinte entrada em /var/log/glusterfs/data-nfs.log:
[MSGID: 109066] [dht-rename.c:1410:dht_rename] 0-volume1-dht: renomeando /source/ .filename.jpg.bWVXS4 (hash=volume1-replicate-0/cache=volume1-replicate-0) = > /dest/filename.jpg (hash=volume1-replicate-0/cache=)
Definitivamente não há um nome de arquivo começando com um ponto, eu apenas verifiquei novamente. Do que se trata esta entrada? Existem milhares deles.
Temos uma configuração de três máquinas dedicadas onde um aplicativo LAMP será instalado no ubuntu 14.04. Glusterfs 3.7.x servirá como uma solução de armazenamento compartilhado.
Existem 2 máquinas de alto desempenho e um terceiro servidor com especificações razoáveis. Os dois de alto desempenho serão hospedados por meio do NGINX.
Os arquivos a serem servidos são pequenos (2kB - 30kb). Atualmente o sistema está planejado no modo réplica 2 em dois servidores.
gluster volume create volume1 replica 2 gs1:/data/brick gs2:/data/brick
Haveria um ganho de desempenho se adicionarmos um servidor glusterfs no terceiro nó?
Observe que esta questão é focada em glusterfs e, portanto, não é uma duplicata da postagem mencionada.
Temos 3 pastas em uma máquina Ubuntu 14.04, cada uma contendo 250K imagens com tamanho de 2KB-30KB em cada pasta, esperando crescer até 1M de arquivos por diretório.
Ao tentar dimensionar o aplicativo para vários servidores, estamos procurando no Glusterfs um armazenamento compartilhado. Como arquivos de 250K não são um problema no ext4, parece ser problemático para glusterfs. Tentar copiar os arquivos trava totalmente a máquina.
Estou procurando particionar os arquivos em diretórios em 2 níveis:
mkdir -p {000..255}/{000..255}
/000/000/filename
/001/000/filename
/001/001/filename
...
Isso soa como uma boa maneira razoável? A estrutura inteira conterá milhões de arquivos posteriormente. Isso permitiria que o glusterfs fosse confiável em produção com um bom desempenho, hospedando milhões de arquivos?
Temos o HAProxy instalado na frente do Apache. A configuração funciona, mas o endereço IP do cliente não é encaminhado, apesar da regra "forwardfor".
Eu já investiguei respostas sobre falhas de servidor como esta, por exemplo , haproxy e encaminhando o endereço IP do cliente para os servidores, mas não consegui resolver o problema até agora.
Esta é a configuração:
frontend apache-http
bind 192.168.56.150:80
mode http
option http-server-close
option forwardfor header X-Real-IP
reqadd X-Forwarded-Proto:\ http
default_backend apache-http
stats enable
#stats hide-version
backend apache-http
# redirect scheme https if !{ ssl_fc }
balance roundrobin
cookie SERVERID insert indirect nocache
server www-1 10.0.0.120:80 cookie S1 check
server www-2 10.0.0.130:80 cookie S2 check
As variáveis do PHP Server retornam as informações do HAProxy:
$_SERVER['REMOTE_ADDR'] returns 10.0.0.120
$_SERVER['HTTP_X_FORWARDED_FOR'] returns nothing
O log do Apache também retorna ---
configuração:
LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
Estou faltando alguma coisa na configuração do HAProxy?