Soru SSSD süreci ölmeyecek


Sorunumu kontrol etmek için zaman ayırdığınız için teşekkürler.

Şu anda sadece bir kez daha önce yayınlanan bir konu üzerinde çalışıyorum. Bu ilk ortaya çıktığında 3 Ocak'ta sunucuyu yeniden başlatmayı başardık ve her şey iyi görünüyordu, ama şimdi geri döndü. Bu bir üretim veritabanı sistemidir, bu nedenle yeniden başlatmak için bir pencere bulmak bazen zor olabilir. Sorunun bir başka tempinin sağlanması için birkaç gün içinde yeniden başlayabilmemiz için bu sefer gerçekten neler olabileceğine dair sağlam bir kavrayış almayı umuyoruz. İşte başlıyoruz...

Söz konusu sistem için kullanıcı kimlik doğrulaması, Red Hat Directory Server 9 üzerinden LDAP ile ele alınmaktadır. Aşağıda açıklanan sorun, yalnızca bu sunucuda görülmektedir ve hatta veritabanını paylaşan, aynı semptomları göstermeyen muadili de bulunmaktadır. Şu an itibariyle, hiçbir LDAP hesabı kimlik doğrulaması yapamaz ve sunucuda oturum açamaz. LDAP yetkisi şu anda durdurulamayan veya yeniden başlatılamayan SSSD tarafından ele alınmaktadır. SSH konsolunu yapmaya çalışırken yanıt vermiyor. (ctrl-c verilen komuttan çıkamaz)

PS, her zamanki sssd ile ilgili süreçlerin çalıştığını gösterir, ancak kill -9 Onlarda hiçbiri başarılı bir şekilde durmuyor gibi görünüyor.

ps aux | grep sss | grep -v grep
root      1150  0.0  0.0 150828  2908 ?        D    09:05   0:00 /usr/libexec/sssd/sssd_nss -d 0 --debug-to-files
root      7025  0.0  0.0  93616  2504 pts/2    D    16:18   0:00 /usr/sbin/sssd -f -D
root     11148  0.0  0.0 179436  5672 ?        D    Jan08  16:22 /usr/libexec/sssd/sssd_be -d 0 --debug-to-files --domain default
root     32700  0.0  0.0 150784  2908 ?        D    10:10   0:00 /usr/libexec/sssd/sssd_pam -d 0 --debug-to-files

kullanma strace getent -s sss passwd Bazı bağlantı girişimlerinin reddedildiğini görebiliyorum, ancak onlar hakkında ne yapacağımı bilemiyorum.

connect(3, {sa_family=AF_FILE, path="/var/lib/sss/pipes/nss"...}, 110) = -1 ECONNREFUSED (Connection refused)
close(3)                                = 0
socket(PF_FILE, SOCK_STREAM, 0)         = 3
fcntl(3, F_GETFL)                       = 0x2 (flags O_RDWR)
fcntl(3, F_SETFL, O_RDWR|O_NONBLOCK)    = 0
fcntl(3, F_GETFD)                       = 0
fcntl(3, F_SETFD, FD_CLOEXEC)           = 0
connect(3, {sa_family=AF_FILE, path="/var/lib/sss/pipes/nss"...}, 110) = -1 ECONNREFUSED     (Connection refused)
close(3)                                = 0
socket(PF_FILE, SOCK_STREAM, 0)         = 3
fcntl(3, F_GETFL)                       = 0x2 (flags O_RDWR)
fcntl(3, F_SETFL, O_RDWR|O_NONBLOCK)    = 0
fcntl(3, F_GETFD)                       = 0
fcntl(3, F_SETFD, FD_CLOEXEC)           = 0
connect(3, {sa_family=AF_FILE, path="/var/lib/sss/pipes/nss"...}, 110) = -1 ECONNREFUSED (Connection refused)

Kontrol etme lsof | head -n1; lsof | grep /var/lib/sss/pipes/ iyi ve kötü sistem arasında daha az açık boru gösterir. Bu borular için PID'ler, rapor edilenlerden aynıdır. ps auxdenemek kill -9 Onlarda da sonuçsuz kaldı.

bozuk sssd

lsof | head -n1; lsof | grep /var/lib/sss/pipes/
COMMAND     PID         USER   FD      TYPE             DEVICE    SIZE/OFF       NODE NAME
sssd_be   11148         root   15u     unix 0xffff8806635911c0         0t0   31817638 /var/lib/sss/pipes/private/sbus-dp_default.11148
sssd_be   11148         root   16u     unix 0xffff880d443d6180         0t0   31783555 /var/lib/sss/pipes/private/sbus-dp_default.11148
sssd_be   11148         root   17u     unix 0xffff880c536d94c0         0t0   31783560 /var/lib/sss/pipes/private/sbus-dp_default.11148

iyi sssd

lsof | head -n1; lsof | grep /var/lib/sss/pipes/
COMMAND     PID         USER   FD      TYPE             DEVICE    SIZE/OFF       NODE NAME
sssd      26793         root   13u     unix 0xffff88030b5d8c40         0t0 3248762734 /var/lib/sss/pipes/private/sbus-monitor
sssd      26793         root   14u     unix 0xffff8808cc064bc0         0t0 3248762735 /var/lib/sss/pipes/private/sbus-monitor
sssd      26793         root   15u     unix 0xffff880a9d9bc840         0t0 3248768164 /var/lib/sss/pipes/private/sbus-monitor
sssd      26793         root   16u     unix 0xffff880040a32f00         0t0 3248768165 /var/lib/sss/pipes/private/sbus-monitor
sssd_be   26794         root   15u     unix 0xffff8808cc064200         0t0 3248767368 /var/lib/sss/pipes/private/sbus-dp_default.26794
sssd_be   26794         root   16u     unix 0xffff880a9d9bd880         0t0 3248763661 /var/lib/sss/pipes/private/sbus-dp_default.26794
sssd_be   26794         root   17u     unix 0xffff8809841b4480         0t0 3248763662 /var/lib/sss/pipes/private/sbus-dp_default.26794
sssd_nss  26795         root   16u     unix 0xffff880a9d9bd200         0t0 3248751954 /var/lib/sss/pipes/nss
sssd_pam  26796         root   16u     unix 0xffff880859e26180         0t0 3248774325 /var/lib/sss/pipes/pam
sssd_pam  26796         root   17u     unix 0xffff880859e27b80         0t0 3248774326 /var/lib/sss/pipes/private/pam

Ayrıca, / var / log / secure birden çok girişi içerir.

sshd[9177]: pam_succeed_if(sshd:auth): error retrieving information about user
su: pam_sss(su-l:session): Request to sssd failed. Connection refuse
crond[29568]: pam_sss(crond:session): Request to sssd failed. Connection refused

Ayrıca, fark ettiğim ilk şeylerden biri / var / log / messages dosyasının veri içermemesiydi. Hem bu hem de / var / log / sssd / logs, bu sabah saat 9:03 civarında toplanmayı durdurdu, / var / log / güvenli veri biriktirmeden veri topladı. Syslog yeniden başlatılması mesages meselesini düzeltti, ancak sssd günlükleri hala çalışmıyor.

En son fark ettiğim şey dmesg gibi mesajlarla dolu audit: backlog limit exceeded  audit: audit_backlog=322 > audit_backlog_limit=320 ve audit_log_start: 122 callbacks suppressed. Bunların, syslog'un düzgün çalışmadığı zamandan geldiğini, ancak henüz doğrulamadığını varsaydım.

Hala bunu araştırıyorum ve bir şey bulacağımı ümit ediyorum, ama insanların önermek istediği her türlü öneri ve geri bildirimi memnuniyetle karşılarız.

Çok teşekkürler!

-Omni


5
2018-02-23 22:58


Menşei


Sssd.conf dosyasında yapılandırılmış birden fazla alanınız var mı? - HTTP500
Conf dosyasında sadece bir alan adı belirtildi. Ldap etki alanına tüm Linux bservers arasındaki özdeş olan ve bu sorun yalnızca bir sunucuda görülmüştür. - omnivir
Herhangi bir çekirdek oops veya benzer? Herhangi bir disk hatası mı? - Dan
Hala arşivlenen eski mesaj dosyalarının bazılarında çalışıyorum, fakat çekirdek panik ya da nankör olarak çığlık atan hiçbir şeye rastlamadım. Şu ana kadar baktığım mesaj dosyalarının her biri, yukarıda bahsettiğim dmesg için benzer olan birden çok girişe sahiptir, ancak panik veya herhangi bir şey görmüyorum. dmesg hiçbir şeyle doldurulmadı, ama bu audit_backlog mesajları, bu yüzden fazla yardımcı olmamıştı. - omnivir
Peki ben bir SSS alan bir LDAP etki alanı düşmüş olabilir belki merak ediyordum. Belki önbelleği temizlemeyi deneyebilirsin? yani "sss_cache -E" - HTTP500


Cevaplar:


Aynı sistemde çalışan pam_ldap ve sssd ile ilgili sorunları yaşadım. Sssd'yi pam ile kullanmayı bırakmak isterseniz, aşağıdakileri çalıştırdığınızdan emin olmalısınız:

pam-config -a --ldap

Bu, platforma LDAP ekleyecek ve ardından şunları çalıştırır:

pam-config -d --sss

pc ile ilgili yapılandırma dosyalarındaki sssd ayarını /etc/pam.d/ dosyasında silecek

Sss'nin kullanılmadığından emin olmak için nsswitch.conf'un ldap'ın doğru yerlere (veya en azından sss değerine sahip olmadığını) kontrol etmek isteyebilirsiniz. Burada sss etkin bir /etc/nsswitch.conf var:

#
# /etc/nsswitch.conf
#
# An example Name Service Switch config file. This file should be
# sorted with the most-used services at the beginning.
#
# The entry '[NOTFOUND=return]' means that the search for an
# entry should stop if the search in the previous entry turned
# up nothing. Note that if the search failed due to some other reason
# (like no NIS server responding) then the search continues with the
# next entry. 
#  
# Legal entries are:
#
#       compat                  Use compatibility setup
#       nisplus                 Use NIS+ (NIS version 3)
#       nis                     Use NIS (NIS version 2), also called YP
#       dns                     Use DNS (Domain Name Service)
#       files                   Use the local files
#       [NOTFOUND=return]       Stop searching if not found so far  
#
# For more information, please read the nsswitch.conf.5 manual page.
#

passwd: compat sss
group:  compat sss

hosts:  files mdns_minimal [NOTFOUND=return] dns
networks:   files dns

services:   files
protocols:  files
rpc:    files
ethers: files
netmasks:   files
netgroup:   files
publickey:  files

bootparams: files
automount:  files
aliases:    files
passwd_compat:  files
group_compat:   files

Bu dosya sss devre dışı ve ldap etkin:

passwd: compat ldap
group:  compat ldap

hosts:  files mdns_minimal [NOTFOUND=return] dns
networks:   files dns

services:   files
protocols:  files
rpc:    files
ethers: files
netmasks:   files
netgroup:   files
publickey:  files

bootparams: files
automount:  files
aliases:    files
passwd_compat:  files
group_compat:   files

0
2017-07-09 17:00