Понедельничное про F::I agent
Утро началось с расследования вот такой строчки в логах:
Oct 3 13:42:14 gw su: pam_acct_mgmt: authentication error
По времени было вычислено, что это fusioninventory-agent
Конкретный виновник - FusionInventory::Agent::Task::Inventory::Virtualization::VirtualBox
Вобщем зацените эту красоту:
# assume all system users with a suitable homedir is an actual human user
my $pattern = $OSNAME eq 'darwin' ?
qr{^/Users} : qr{^/home}; # <- венда традиционно сосёт
my @users;
while (my $user = getpwent()) {
next unless $user->dir() =~ /$pattern/;
push @users, $user->name();
}
# abort if too many users
return if @users > 10; # <- убивать!
foreach my $user (@users) {
my $command = "su '$user' -c 'VBoxManage -nologo list --long vms'"; # <- убивать!
foreach my $machine (_parseVBoxManage(
logger => $logger, command => $command
)) {
$machine->{OWNER} = $user;
$inventory->addEntry(
section => 'VIRTUALMACHINES', entry => $machine
);
}
}
Всплыло это потому, что недавно залочили одного из юзеров. #168
А ещё удивительные вещи можно узнать, если ПОПРОБОВАТЬ в агенте выключить сжатие того что идёт на сервер. Из конструктора модуля FusionInventory::Agent::HTTP::Client::OCS:
# check compression mode
if (Compress::Zlib->require()) {
# RFC 1950
$self->{compression} = 'zlib';
$self->{ua}->default_header('Content-type' => 'application/x-compress-zlib');
$self->{logger}->debug(
$log_prefix .
'Using Compress::Zlib for compression'
);
} elsif (canRun('gzip')) {
# RFC 1952
$self->{compression} = 'gzip';
$self->{ua}->default_header('Content-type' => 'application/x-compress-gzip');
$self->{logger}->debug(
$log_prefix .
'Using gzip for compression'
);
} else {
$self->{compression} = 'none';
$self->{ua}->default_header('Content-type' => 'application/xml');
$self->{logger}->debug(
$log_prefix .
'Not using compression'
);
}
т.е. чтобы оно не сжимало, тебе надо от него спрятать не только Compress::Zlib, но и утилитку gzip. И тогда, так уж и быть, оно сжимать не будет. #169