PostgreSQL DB / EDB Monitoring
# useradd -c "LPAR2RRD user" -m lpar2rrd # chmod 755 /home/lpar2rrd
# chdev -l sys0 -a maxuproc=2000 # chuser nofiles=32768 data=-1 stack=-1 rss=-1 lpar2rrd # chuser data=-1 stack=-1 rss=-1 apache
# vi /etc/security/limits.conf lpar2rrd hard stack -1 lpar2rrd soft stack -1 lpar2rrd hard data -1 lpar2rrd soft data -1 lpar2rrd hard nofile 32768 lpar2rrd soft nofile 32768 lpar2rrd hard nproc 5000 lpar2rrd soft nproc 5000 apache hard stack -1 apache soft stack -1 apache hard data -1 apache soft data -1
# ARCH=$( /bin/arch ) # subscription-manager repos --enable "codeready-builder-for-rhel-8-${ARCH}-rpms"
# yum config-manager --set-enabled PowerTools or # dnf config-manager --set-enabled powertoolsYou can also just open /etc/yum.repos.d/CentOS-Linux-PowerTools.repo with a text editor and set enabled= to 1 instead of 0
# umask 0022 # yum install perl rrdtool rrdtool-perl httpd mod_ssl # yum install epel-release # yum install perl-TimeDate perl-HTTP-Date perl-Env perl-CGI perl-Data-Dumper perl-LWP-Protocol-https perl-libwww-perl perl-Time-HiRes perl-IO-Tty # yum install perl-PDF-API2 perl-JSON-XS perl-XML-Simple perl-XML-NamespaceSupport perl-URI perl-XML-SAX-Base perl-XML-SAX perl-XML-LibXML # yum install ed bc libxml2 sharutil
# umask 0022 # apt-get install apache2 perl rrdtool ed bc # apt-get install librrdp-perl libxml-sax-perl libxml-simple-perl libtimedate-perl libenv-sanctify-perl libcgi-pm-perl libdata-dumper-simple-perl libpdf-api2-perl libxml2-utils # apt-get install liblwp-protocol-https-perl libcrypt-ssleay-perl libio-socket-ssl-perl libmozilla-ldap-perl libxml-parser-perl libjson-xs-perl
# zypper install rrdtool perl-rrdtool apache2 # zypper install perl-TimeDate perl-XML-Simple perl-XML-SAX perl-XML-LibXML perl-CGI perl-LWP-Protocol-https perl-libwww-perl perl-IO-Tty # zypper install perl-PDF-API2 perl-JSON-XS # zypper install ed bc libxml2-2 sharutils
# /opt/csw/bin/pkgutil -y -i pm_xml_simple pm_libxml_perl pm_xml_sax rrdtool
# yum install httpd
# apt-get install httpd
# apachectl restart # /opt/freeware/apache/sbin/apachectl restart # /etc/init.d/httpd restart # service apache2 restart
# firewall-cmd --add-service=http --permanent # firewall-cmd --add-service=https --permanent # firewall-cmd --add-port=8162/tcp --permanent # firewall-cmd --reload
# vi /etc/httpd/conf/httpd.conf AddHandler cgi-script .sh # DocumentRoot "/home/lpar2rrd/lpar2rrd/www/" Alias /lpar2rrd "/home/lpar2rrd/lpar2rrd/www/" <Directory "/home/lpar2rrd/lpar2rrd/www/"> AllowOverride Options Indexes FollowSymLinks Require all granted </Directory> # CGI-BIN ScriptAlias /lpar2rrd-cgi/ "/home/lpar2rrd/lpar2rrd/lpar2rrd-cgi/" <Directory "/home/lpar2rrd/lpar2rrd/lpar2rrd-cgi"> AllowOverride SetHandler cgi-script Options ExecCGI FollowSymLinks Require all granted </Directory>
# a2enmod cgi # a2enmod ssl
# vi /etc/apache2/apache2.conf AddHandler cgi-script .sh Alias /lpar2rrd "/home/lpar2rrd/lpar2rrd/www/" <Directory "/home/lpar2rrd/lpar2rrd/www/"> Options Indexes FollowSymLinks Require all granted </Directory> # CGI-BIN ScriptAlias /lpar2rrd-cgi/ "/home/lpar2rrd/lpar2rrd/lpar2rrd-cgi/" <Directory "/home/lpar2rrd/lpar2rrd/lpar2rrd-cgi"> AllowOverride None Options +ExecCGI +SymLinksIfOwnerMatch Require all granted SetHandler cgi-script </Directory>
# vi /etc/apache2/httpd.conf AddHandler cgi-script .sh Alias /lpar2rrd "/home/lpar2rrd/lpar2rrd/www/" <Directory "/home/lpar2rrd/lpar2rrd/www/"> Options Indexes FollowSymLinks Require all granted </Directory> # CGI-BIN ScriptAlias /lpar2rrd-cgi/ "/home/lpar2rrd/lpar2rrd/lpar2rrd-cgi/" <Directory "/home/lpar2rrd/lpar2rrd/lpar2rrd-cgi"> AllowOverride None Options +ExecCGI +SymLinksIfOwnerMatch Require all granted SetHandler cgi-script </Directory>
LoadModule alias_module /opt/freeware/lib/httpd/modules/mod_alias.so LoadModule cgi_module /opt/freeware/lib/httpd/modules/mod_cgi.so
LoadModule mpm_prefork_module /opt/freeware/lib/httpd/modules/mod_mpm_prefork.so # LoadModule mpm_worker_module /opt/freeware/lib/httpd/modules/mod_mpm_worker.so # LoadModule mpm_event_module modules/mod_mpm_event.so <IfModule mpm_prefork_module> LoadModule cgi_module /opt/freeware/lib/httpd/modules/mod_cgi.so </IfModule>
AddHandler cgi-script .sh Alias /lpar2rrd "/home/lpar2rrd/lpar2rrd/www/" <Directory "/home/lpar2rrd/lpar2rrd/www/"> Options Indexes FollowSymLinks Require all granted </Directory> # CGI-BIN ScriptAlias /lpar2rrd-cgi/ "/home/lpar2rrd/lpar2rrd/lpar2rrd-cgi/" <Directory "/home/lpar2rrd/lpar2rrd/lpar2rrd-cgi"> AllowOverride None SetHandler cgi-script Options ExecCGI FollowSymLinks Require all granted </Directory>
# vi /etc/opt/freeware/apache/httpd.conf Alias /lpar2rrd "/home/lpar2rrd/lpar2rrd/www/" <Directory "/home/lpar2rrd/lpar2rrd/www/"> Options Indexes FollowSymLinks Order allow,deny Allow from all </Directory> # CGI-BIN ScriptAlias /lpar2rrd-cgi/ "/home/lpar2rrd/lpar2rrd/lpar2rrd-cgi/" <Directory "/home/lpar2rrd/lpar2rrd/lpar2rrd-cgi"> AllowOverride None Options ExecCGI FollowSymLinks Order allow,deny Allow from all </Directory>
Step 1. Query for the Boolean value you need to change: # getsebool -a | grep httpd_dis httpd_disable_trans --> off Step 2. Disable the SELinux protection: # setsebool -P httpd_disable_trans=1 Step 3. Verify that the Boolean has changed: # getsebool -a | grep httpd_dis httpd_disable_trans --> on
# setenforce Permissive # vi /etc/sysconfig/selinux SELINUX=disabled
host all lpar2rrd monitoring machine IP/hostname md5Running this command on your DB can help you locate pg_hba.conf
SHOW hba_file;After you complete this step restart the PostgresSQL service
$ rpm -q perl-DBI perl-DBD-Pg perl-DBI-1.627-4.el7.x86_64 perl-DBD-Pg-2.19.3-4.el7.x86_64
# yum install perl-DBD-Pg
# apt-get install libdbd-pg-perl
# yum install postgresql-libs # rpm -i perl-DBI-1.623-1.aix5.1.ppc.rpm # rpm -i perl-DBD-Pg-3.7-4.ppc.rpm
$ perl /home/lpar2rrd/lpar2rrd/bin/conntest.pl 192.168.1.1 5432 Connection to "192.168.1.1" on port "5432" is ok
CREATE ROLE lpar2rrd WITH PASSWORD 'your_passw0rd' LOGIN; GRANT SELECT ON TABLE pg_stat_bgwriter TO lpar2rrd; GRANT SELECT ON TABLE pg_stat_database TO lpar2rrd; GRANT SELECT ON TABLE pg_stat_activity TO lpar2rrd; GRANT SELECT ON TABLE pg_locks TO lpar2rrd; GRANT SELECT ON TABLE pg_cursors TO lpar2rrd; GRANT SELECT ON TABLE pg_stat_progress_vacuum TO lpar2rrd; GRANT SELECT ON TABLE pg_stat_replication TO lpar2rrd; GRANT SELECT ON TABLE pg_stat_wal_receiver TO lpar2rrd;
![]() |
$ crontab -l | grep "load_postgres.sh" $
$ crontab -e # PostgreSQL support 0,5,10,15,20,25,30,35,40,45,50,55 * * * * /home/lpar2rrd/lpar2rrd/load_postgres.sh > /home/lpar2rrd/lpar2rrd/load_postgres.out 2>&1
# su - lpar2rrd $ tar xvf lpar2rrd-7.XX.tar $ cd lpar2rrd-7.XX $ ./install.sh $ cd /home/lpar2rrd/lpar2rrd
$ crontab -l | grep load.sh $
$ crontab -e # LPAR2RRD UI 0,30 * * * * /home/lpar2rrd/lpar2rrd/load.sh > /home/lpar2rrd/lpar2rrd/load.out 2>&1Assure there is just one such entry in crontab.
# echo "lpar2rrd" >> /var/adm/cron/cron.allow
$ crontab -l | grep "load_postgres.sh" $
$ crontab -e # PostgreSQL support 0,5,10,15,20,25,30,35,40,45,50,55 * * * * /home/lpar2rrd/lpar2rrd/load_postgres.sh > /home/lpar2rrd/lpar2rrd/load_postgres.out 2>&1
$ cd /home/lpar2rrd/lpar2rrd $ ./load.sh
tail /var/log/httpd/error_log # Apache error log tail /var/log/httpd/access_log # Apache access log tail /var/tmp/lpar2rrd-realt-error.log # STOR2RRD CGI-BIN log tail /var/tmp/systemd-private*/tmp/lpar2rrd-realt-error.log # STOR2RRD CGI-BIN log when Linux has enabled private temp
umask 022 cd /home/lpar2rrd/lpar2rrd/ cp bin/test-healthcheck-cgi.sh lpar2rrd-cgi/go to the web browser: http://<your web server>/lpar2rrd/test.html