У меня есть приблизительно 30 серверов, и я просто использую прямо системный журнал для отправки всех журналов в единственный сервер входа. Для резервного копирования все машины также настроены для хранения их собственных журналов локально в течение нескольких дней, с помощью logrotate для заботы о вращении и удалении старых журналов.
Каждый из моих серверов приложений запускает маленький скрипт жемчуга для отправки их журналов в системный журнал, который затем вперед на loghost (сценарий жемчуга ниже).
Затем на loghost у нас есть некоторые пользовательские сценарии, которые подобны logcheck, которые в основном наблюдают входящие журналы за чем-либо подозрительным.
У нас также есть вся электронная почта от каждого хоста, идущего в одно место, так, чтобы, если какая-либо программа жалуется, что путь, мы получаем все сообщения. Это могло теоретически перейти к отдельному почтовому ящику, что программа могла действовать на и проанализировать.
Вот мой сценарий жемчуга входа. Это работает путем передачи по каналу вывода программы в него и затем его системные журналы вывод и слюна, это отступает так, можно отправить его в другое место (я отправляю к мультижурналу). Можно также дать ему-q опцию просто перейти к системному журналу.
#!/usr/bin/perl
use Sys::Syslog;
use Getopt::Long;
$SERVER_NAME = `hostname`;
chomp $SERVER_NAME;
$FACILITY = 'local0';
$PRIORITY = 'info';
GetOptions ('s=s' => \$SERVER_NAME, 'f=s' => \$FACILITY, 'p=s' => \$PRIORITY, 'q+' => \$quiet);
#print "$SERVER_NAME\n$FACILITY\n$PRIORITY\n";
#Sys::Syslog::setlogsock('unix');
openlog ($SERVER_NAME,'ndelay',$FACILITY);
if (!($quiet)) {syslog($PRIORITY,"Logging Started -- Logger version 1.1");}
$| = 1;
while (<>) {
if (!($quiet)) {print $_ unless $_ =~ /^\s+$/};
chomp;
syslog($PRIORITY,$_) if $_;
}
closelog;
$| = 0;
См. также pg-вершину, которая действует как вершина кроме него, показывает действие пост-ГРЭС.
sudo su postgres
)pg_top
SELECT
pid
,datname
,usename
,application_name
,client_hostname
,client_port
,backend_start
,query_start
,query
FROM pg_stat_activity
WHERE state <> 'idle'
AND pid<>pg_backend_pid();
PostgreSQL ASH Viewer (PASH Viewer) предоставляет графическое представление данных истории активных сеансов. https://github.com/dbacvetkov/PASH-Viewer Это бесплатно и с открытым исходным кодом.
Два способа мониторинга в Ubuntu 18. 04, просто для справки
Один с помощью pg_top
:
$ sudo apt-get install ptop
$ pg_top # similar to top as others mentioned
Два с помощью pgAdmin4
:
$ sudo apt-get install pgadmin4 pgadmin4-apache2
# type in password and use default url
$ pgadmin4
На панели приборов проверьте общее/активное значение как