Général:InstallationSocleRocky8 : Différence entre versions

De WikiFr_dbSQWare
Aller à : navigation, rechercher
(Configuration du profile du user dbsqware pour SQWareCentral)
 
(52 révisions intermédiaires par 3 utilisateurs non affichées)
Ligne 13 : Ligne 13 :
 
Nous vous conseillons de faire appel à un spécialiste de l’outil afin de définir avec vous quelle est la meilleure architecture d’installation adaptée à votre parc et à votre organisation du travail http://www.dbsqware.com. Des formations sont également disponibles chez des partenaires pour approfondir les différentes parties et les différentes configurations possibles.<br>
 
Nous vous conseillons de faire appel à un spécialiste de l’outil afin de définir avec vous quelle est la meilleure architecture d’installation adaptée à votre parc et à votre organisation du travail http://www.dbsqware.com. Des formations sont également disponibles chez des partenaires pour approfondir les différentes parties et les différentes configurations possibles.<br>
 
<br>
 
<br>
Cette section se base sur une installation du point central sous CentOS 6.7 64bits sur une VM (2 vCPU et 2 Go de RAM) avec 10 Go de disque (50 Go si vous souhaitez historiser les AWR d’une centaine d’instances Oracle sur 60j). Vous pouvez évidemment l’installer sur un autre type de Linux/Unix, il vous faudra alors adapter les commandes système proposées si nécessaire.<br>
+
Cette section se base sur une installation du point central sous Rocky Linux 8.7 64bits sur une VM (2 vCPU et 4 Go de RAM) avec 100 Go de disque (Permet de tenir 2 ans d'historique pour une centaine d'instances). Vous pouvez évidemment l’installer sur un autre type de Linux/Unix, il vous faudra alors adapter les commandes système proposées si nécessaire.<br>
 
Il ne traite que de l’installation du socle central, pour les autres paramétrages, reportez-vous aux sections adéquates.<br>
 
Il ne traite que de l’installation du socle central, pour les autres paramétrages, reportez-vous aux sections adéquates.<br>
 
<br>
 
<br>
 +
Ancienne version : [[Général:InstallationSocleCentOS7|Lien vers le socle CentOS 7]]
  
 
===Rappel de la structure de l’outil===
 
===Rappel de la structure de l’outil===
dbSQWare™ est composé de quatre modules complémentaires :
+
dbSQWare est composé de quatre modules complémentaires :
 
<pre>
 
<pre>
SQWareProduction => scripts shell d’exploitation (souvent en local sur la machine hébergeant le SGBD à gérer
+
SQWareProduction => scripts shell d’exploitation (souvent en local sur la machine hébergeant le SGBD à gérer)
SQWareRepository => référentiel et stockage des indicateurs (database MySQL)
+
SQWareRepository => référentiel et stockage des indicateurs (database MySQL>=5.6 ou MariaDB>=10.1, MariaDB 10.6 conseillé)
 
SQWareCentral => centralisation des sources et lancement des commandes
 
SQWareCentral => centralisation des sources et lancement des commandes
 
SQWareWeb => interface graphique de restitution
 
SQWareWeb => interface graphique de restitution
Ligne 29 : Ligne 30 :
 
==Installation de l’infrastructure centrale==
 
==Installation de l’infrastructure centrale==
 
Pour rappel, ce document ne présente qu’une façon d’installer l’outil. Il existe de multiples configurations possibles.<br>
 
Pour rappel, ce document ne présente qu’une façon d’installer l’outil. Il existe de multiples configurations possibles.<br>
Cette section présente une installation « compacte », c’est-à-dire l’installation des modules SQWareCentral, SQWareRepository et SQWareWeb sur la même machine que nous appellerons vmsqwarebox. Cette machine hébergera également les sources de SQWareProduction.<br>
+
Cette section présente une installation « compacte », c’est-à-dire l’installation des modules SQWareCentral, SQWareRepository et SQWareWeb sur la même machine que nous appellerons vmsqwarebox.<br>
 +
Cette machine hébergera également les sources de SQWareProduction.<br>
 
Pour l’exploitation de MsSql, nous installerons également SQWareProduction MsSql (et FreeTds) sur cette même machine.<br>
 
Pour l’exploitation de MsSql, nous installerons également SQWareProduction MsSql (et FreeTds) sur cette même machine.<br>
Vous pouvez évidemment l’installer sur un autre type de Linux/Unix, il vous faudra alors adapter les commandes système proposées. L’installation peut également être réalisée en mode « distribué », c’est-à-dire chaque module sur sa propre machine ; il faudra alors adapter les configurations.<br>
+
Vous pouvez évidemment l’installer sur un autre type de Linux/Unix, il vous faudra alors adapter les commandes système proposées.<br>
Nous allons voir l’installation pour Oracle (oracle), Sybase (sybase), Sql-Server (mssql) et MySQL (mysql). N’utilisez que les commandes pour le(s) SGBD qui vous intéresse et/ou adaptez les commandes pour les autres SGBD.<br>
+
L’installation peut également être réalisée en mode « distribué », c’est-à-dire chaque module sur sa propre machine ; il faudra alors adapter les configurations.<br>
 +
Nous allons voir l’installation pour Oracle (oracle), Sybase (sybase), Sql-Server (mssql), MySQL (mysql) et PostgreSQL (postgres).<br>
 +
N’utilisez que les commandes pour le(s) SGBD qui vous intéresse et/ou adaptez les commandes pour les autres SGBD.<br>
 +
 
 +
===Caractéristiques de la VM===
 +
Rocky Linux release 8.7 (Green Obsidian) 64 bits. (Ou 8.x >= 8.7)<br>
 +
<br>
 +
Dimensionnement VM:
 +
<pre>
 +
  2 vCPU
 +
  4 Go de RAM
 +
  2 Go de swap
 +
100 Go de disque
 +
</pre>
 +
<br>
  
 
===Vérification / mise en place des pré-requis===
 
===Vérification / mise en place des pré-requis===
Ligne 41 : Ligne 57 :
 
<br>
 
<br>
 
====Vérifications système====
 
====Vérifications système====
Vérification de la version de l’OS
+
Vérification de la version de l’OS :
 
<pre>
 
<pre>
 
[root@vmsqwarebox ~]# cat /etc/redhat-release
 
[root@vmsqwarebox ~]# cat /etc/redhat-release
CentOS release 6.7 (Final)
+
Rocky Linux release 8.7 (Green Obsidian)
[root@vmsqwarebox ~]# uname -a
 
Linux vmsqwarebox 2.6.32-573.el6.x86_64 #1 SMP Thu Jul 23 15:44:03 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
 
 
</pre>
 
</pre>
 
<br>
 
<br>
Vérification que ksh est bien installé (et que ce n’est pas juste un lien vers bash !) :
+
Configuration disque :
 
<pre>
 
<pre>
[root@vmsqwarebox /]# type ksh
+
[root@vmsqwarebox ~]# vgs
ksh is /bin/ksh
+
  VG      #PV #LV #SN Attr  VSize  VFree
[root@vmsqwarebox /]# ll /bin/ksh
+
  data_vg  1  5  0 wz--n- <60.91g  20.83g
lrwxrwxrwx 1 root root 21 Nov 15 09:56 /bin/ksh -> /etc/alternatives/ksh
+
  root_vg  1  4  0 wz--n-  37.50g <20.48g
[root@vmsqwarebox /]# ll /etc/alternatives/ksh
+
 
lrwxrwxrwx 1 root root 10 Nov 15 09:56 /etc/alternatives/ksh -> /bin/ksh93
+
[root@vmsqwarebox ~]# df -h
[root@vmsqwarebox /]# ll /bin/ksh93
+
Filesystem                  Size  Used Avail Use% Mounted on
-rwxr-xr-x 1 root root 1507648 Sep 22 16:58 /bin/ksh93
+
devtmpfs                    1.9G    0  1.9G  0% /dev
 +
tmpfs                        1.9G    0  1.9G  0% /dev/shm
 +
tmpfs                        1.9G  8.7M  1.9G  1% /run
 +
tmpfs                        1.9G    0  1.9G  0% /sys/fs/cgroup
 +
/dev/mapper/root_vg-root     10G  1.7G  8.4G  17% /
 +
/dev/sda2                  1014M  245M  770M  25% /boot
 +
/dev/sda1                    599M  5.8M  594M  1% /boot/efi
 +
/dev/mapper/root_vg-var      5.0G  379M  4.7G  8% /var
 +
/dev/mapper/data_vg-applis  5.0G  69M  5.0G  2% /applis
 +
/dev/mapper/data_vg-data      15G  140M  15G  1% /data
 +
/dev/mapper/data_vg-home      10G  105M  9.9G  2% /home
 +
/dev/mapper/data_vg-backups  10G  105M  9.9G  2% /backups
 +
tmpfs                        374M    0  374M  0% /run/user/0
 +
 
 +
[root@vmsqwarebox ~]# free
 +
              total        used        free      shared  buff/cache  available
 +
Mem:        3825740      314080    1493080        8868    2018580    3237608
 +
Swap:      2097148          0    2097148
 +
</pre>
 +
<br>
 +
Mettre l’OS à la dernière version de patch :
 +
<pre>
 +
[root@vmsqwarebox ~]# dnf update
 +
</pre>
 +
<br>
 +
Desactivation FW et SELinux :
 +
<pre>
 +
# Desactivation du FW !
 +
systemctl disable firewalld
 +
systemctl stop firewalld
 +
 
 +
# Desactivation SELINUX
 +
vi /etc/sysconfig/selinux
 +
SELINUX=enforcing => SELINUX=disabled (reboot)
 +
 
 +
#Sans reboot
 +
/usr/sbin/setenforce 0
 +
 
 +
#Verif
 +
/usr/sbin/getenforce
 +
Disabled
 
</pre>
 
</pre>
 
<br>
 
<br>
 
Préférez un serveur paramétré en anglais, c’est plus facile pour les messages d’erreur (au lieu du classique fr_FR.UTF-8) :
 
Préférez un serveur paramétré en anglais, c’est plus facile pour les messages d’erreur (au lieu du classique fr_FR.UTF-8) :
 
<pre>
 
<pre>
$ cat /etc/sysconfig/i18n
+
#Si besoin installation des locales
LANG="en_US.UTF-8"
+
dnf install langpacks-en glibc-all-langpacks -y
SYSFONT="latarcyrheb-sun16"
+
 
 +
#Passage en anglais (plus facile pour les messages !)
 +
localectl
 +
localectl set-locale LANG=en_US.UTF-8
 +
 
 +
[root@vmsqwarebox ~]# localectl
 +
  System Locale: LANG=fr_FR.UTF-8
 +
      VC Keymap: fr-oss
 +
      X11 Layout: fr
 +
    X11 Variant: oss
 +
[root@vmsqwarebox ~]# localectl set-locale LANG=en_US.UTF-8
 +
[root@vmsqwarebox ~]# localectl
 +
  System Locale: LANG=en_US.UTF-8
 +
      VC Keymap: fr-oss
 +
      X11 Layout: fr
 +
    X11 Variant: oss
 +
 
 +
#Clavier fr (temp)
 +
loadkeys fr
 +
 
 +
#Une petite astuce, si votre clavier est en QWERTY, tapez les touches suivantes de votre clavier
 +
loqdeys fr
 +
 
 +
localectl status
 +
localectl list-keymaps | grep fr
 +
 
 +
localectl set-keymap fr
 +
localectl set-x11-keymap fr
 +
 
 +
[root@vmsqwarebox ~]# localectl status
 +
  System Locale: LANG=en_US.UTF-8
 +
      VC Keymap: fr
 +
      X11 Layout: fr
 +
</pre>
 +
<br>
 +
Install et activation du NTP (on utilise Chrony):
 +
<pre>
 +
#Install et activation de Chrony
 +
dnf install -y chrony
 +
 
 +
#Check config of chronyd (old ntpd)
 +
cat /etc/chrony.conf
 +
 
 +
#Utilisez un pool de serveurs proche, ex:
 +
pool 0.europe.pool.ntp.org iburst
 +
 
 +
#Start et activation du démarrage auto
 +
systemctl enable --now chronyd
 +
 
 +
#If Firewalld is running, allow NTP service. NTP uses [123/UDP].
 +
[root@vmsqwarebox ~]# firewall-cmd --add-service=ntp
 +
success
 +
[root@vmsqwarebox ~]# firewall-cmd --runtime-to-permanent
 +
success
 +
 
 +
#Vérifier le status du service
 +
[root@vmsqwarebox ~]# systemctl is-enabled chronyd
 +
enabled
 +
 
 +
[root@vmsqwarebox ~]# systemctl status chronyd
 +
  chronyd.service - NTP client/server
 +
  Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled; vendor preset: enabled)
 +
...
 +
</pre>
 +
<br>
 +
Installation de RPM qui vont servir par la suite !
 +
<pre>
 +
dnf install -y open-vm-tools
 +
dnf install -y nmap bind-utils ksh rsync openssh-server openssl-devel openssl
 +
dnf install -y epel-release binutils net-tools telnet control-center gcc gcc-c++ glibc glibc-common libstdc++ libstdc++-devel make sysstat mailx sendmail postfix cyrus-sasl cyrus-sasl-lib cyrus-sasl-plain
 +
 
 +
##Conf et activation du mail (modif relayhost)
 +
vi /etc/postfix/main.cf
 +
systemctl start postfix
 +
systemctl enable postfix
 +
systemctl status postfix
 +
 
 +
## Pour client Oracle 19c (mais pas que !)
 +
dnf install -y zip unzip git wget mlocate nano binutils.x86_64 gcc.x86_64 gcc-c++.x86_64 glibc.i686 glibc.x86_64 glibc-devel.i686 glibc-devel.x86_64 ksh libaio.i686 libaio.x86_64 libaio-devel.i686 libaio-devel.x86_64 libgcc.i686 libgcc.x86_64 libstdc++.i686 libstdc++.x86_64 libstdc++-devel.i686 libstdc++-devel.x86_64 libXi.i686 libXi.x86_64 libXtst.i686 libXtst.x86_64 make.x86_64 sysstat.x86_64
 
</pre>
 
</pre>
 
<br>
 
<br>
 
Un certain nombre de RPM sont nécessaires pour l’installation d’Oracle, il convient donc de vérifier leur présence et de les installer si nécessaire.<br>
 
Un certain nombre de RPM sont nécessaires pour l’installation d’Oracle, il convient donc de vérifier leur présence et de les installer si nécessaire.<br>
Attention, la liste peut ne pas être exhaustive, à vous d’adapter les commandes à votre situation.<br>
 
Liste des RPM connus comme étant nécessaires :
 
*binutils
 
*gcc
 
*gcc-c++
 
*glibc
 
*glibc-common
 
*libstdc++
 
*libstdc++-devel
 
*make
 
*pdksh
 
*sysstat
 
*compat-db
 
<br>
 
 
Exemple de commande de vérification :
 
Exemple de commande de vérification :
 
<pre>
 
<pre>
Ligne 121 : Ligne 239 :
 
Le plus simple, installation directe avec yum (nécessite un repo) :
 
Le plus simple, installation directe avec yum (nécessite un repo) :
 
<pre>
 
<pre>
[root@vmsqwarebox /]# yum install ksh binutils compat-db gcc gcc-c++ glibc glibc-common gnome-libs libstdc++ libstdc++-devel make pdksh sysstat
+
[root@vmsqwarebox /]# dnf install ksh binutils compat-db gcc gcc-c++ glibc glibc-common gnome-libs libstdc++ libstdc++-devel make pdksh sysstat
 
</pre>
 
</pre>
  
Ligne 128 : Ligne 246 :
 
<pre>
 
<pre>
 
groupadd dba
 
groupadd dba
useradd -g dba -s /bin/ksh -d /home/dbsqware dbsqware
+
useradd -g dba -s /bin/bash -d /home/dbsqware dbsqware
useradd -g dba -s /bin/ksh -d /home/oracle oracle
+
useradd -g dba -s /bin/bash -d /home/oracle oracle
useradd -g dba -s /bin/ksh -d /home/sybase sybase
+
useradd -g dba -s /bin/bash -d /home/sybase sybase
useradd -g dba -s /bin/ksh -d /home/mssql mssql
+
useradd -g dba -s /bin/bash -d /home/mssql mssql
useradd -g dba -s /bin/ksh -d /home/mysql mysql
+
useradd -g dba -s /bin/bash -d /home/mysql mysql
 +
useradd -g dba -s /bin/bash -d /home/postgres postgres
 
</pre>
 
</pre>
 
<br>
 
<br>
Ligne 142 : Ligne 261 :
 
passwd mssql
 
passwd mssql
 
passwd mysql
 
passwd mysql
 +
passwd postgres
 
</pre>
 
</pre>
 
<br>
 
<br>
Ligne 162 : Ligne 282 :
 
<pre>
 
<pre>
 
cd /home
 
cd /home
chmod 750 dbsqware oracle sybase mssql mysql
+
chmod 750 dbsqware oracle sybase mssql mysql postgres
 
</pre>
 
</pre>
 
<br>
 
<br>
Ligne 173 : Ligne 293 :
 
drwxr-x--- 3 mysql    dba 4096 mai 13 21:54 mysql
 
drwxr-x--- 3 mysql    dba 4096 mai 13 21:54 mysql
 
drwxr-x--- 3 oracle  dba 4096 mai 13 21:54 oracle
 
drwxr-x--- 3 oracle  dba 4096 mai 13 21:54 oracle
 +
drwxr-x--- 3 postgres dba 4096 mai 13 21:54 postgres
 
drwxr-x--- 3 sybase  dba 4096 mai 13 21:54 sybase
 
drwxr-x--- 3 sybase  dba 4096 mai 13 21:54 sybase
 +
</pre>
 +
<br>
 +
Mettre le user dbsqware en 'sudo ALL' pour faciliter la mise en œuvre et l'exploitation  :
 +
<pre>
 +
## Add sudo
 +
cp -p /etc/sudoers /etc/sudoers.back
 +
vi /etc/sudoers
 +
 +
root@vmsqwarebox:/root # grep wheel /etc/sudoers
 +
## Allows people in group wheel to run all commands
 +
# %wheel        ALL=(ALL)      ALL
 +
%wheel  ALL=(ALL)      NOPASSWD: ALL
 +
 +
id dbsqware
 +
uid=1000(dbsqware) gid=1000(dba) groups=1000(dba)
 +
 +
usermod -a -G wheel dbsqware
 +
id dbsqware
 +
uid=1000(dbsqware) gid=1000(dba) groups=1000(dba),10(wheel)
 
</pre>
 
</pre>
 
<br>
 
<br>
Ligne 190 : Ligne 330 :
 
mkdir -p /applis/dbsqware
 
mkdir -p /applis/dbsqware
 
chown dbsqware:dba /applis/dbsqware
 
chown dbsqware:dba /applis/dbsqware
 +
mkdir -p /applis/postgres
 +
chown postgres:dba /applis/postgres
 
</pre>
 
</pre>
 
<br>
 
<br>
Ligne 204 : Ligne 346 :
 
mkdir -p /data/dbsqware
 
mkdir -p /data/dbsqware
 
chown dbsqware:dba /data/dbsqware
 
chown dbsqware:dba /data/dbsqware
 +
mkdir -p /data/postgres
 +
chown postgres:dba /data/postgres
 +
mkdir -p /data/dbsqware/admin/AsynchronousFiles /data/dbsqware/admin/AsynchronousFilesTmp /data/dbsqware/admin/AsynchronousFilesArch
 +
chown -R dbsqware:dba /data/dbsqware/admin
 
# Spécifique pour les rapports AWR et/ou Statspack
 
# Spécifique pour les rapports AWR et/ou Statspack
 
mkdir -p /data/oracle/awr
 
mkdir -p /data/oracle/awr
Ligne 222 : Ligne 368 :
 
mkdir -p /backups/mysql
 
mkdir -p /backups/mysql
 
chown mysql:dba /backups/mysql
 
chown mysql:dba /backups/mysql
 +
mkdir -p /backups/dbsqware
 +
chown dbsqware:dba /backups/dbsqware
 +
mkdir -p /backups/postgres
 +
chown postgres:dba /backups/postgres
 
</pre>
 
</pre>
 
<br>
 
<br>
Ligne 233 : Ligne 383 :
 
drwxr-xr-x 2 oracle  dba 4096 mai 14 04:06 oracle
 
drwxr-xr-x 2 oracle  dba 4096 mai 14 04:06 oracle
 
drwxr-xr-x 2 sybase  dba 4096 mai 14 04:06 sybase
 
drwxr-xr-x 2 sybase  dba 4096 mai 14 04:06 sybase
 +
drwxr-xr-x 2 postgres dba 4096 mai 14 04:06 postgres
 
[root@vmsqwarebox /]# ls -l /data
 
[root@vmsqwarebox /]# ls -l /data
 
total 40
 
total 40
Ligne 240 : Ligne 391 :
 
drwxr-xr-x 2 oracle  dba 4096 mai 14 04:06 oracle
 
drwxr-xr-x 2 oracle  dba 4096 mai 14 04:06 oracle
 
drwxr-xr-x 2 sybase  dba 4096 mai 14 04:06 sybase
 
drwxr-xr-x 2 sybase  dba 4096 mai 14 04:06 sybase
 +
drwxr-xr-x 2 postgres dba 4096 mai 14 04:06 postgres
 
[root@vmsqwarebox /]# ls -l /backups
 
[root@vmsqwarebox /]# ls -l /backups
 
total 32
 
total 32
drwxr-xr-x 2 mssql dba 4096 mai 14 04:06 mssql
+
drwxr-xr-x 2 dbsqware dba 4096 mai 14 04:06 dbsqware
drwxr-xr-x 2 mysql dba 4096 mai 14 04:06 mysql
+
drwxr-xr-x 2 mssql   dba 4096 mai 14 04:06 mssql
drwxr-xr-x 2 oracle dba 4096 mai 14 04:06 oracle
+
drwxr-xr-x 2 mysql   dba 4096 mai 14 04:06 mysql
drwxr-xr-x 2 sybase dba 4096 mai 14 04:06 sybase
+
drwxr-xr-x 2 oracle   dba 4096 mai 14 04:06 oracle
 +
drwxr-xr-x 2 sybase   dba 4096 mai 14 04:06 sybase
 +
drwxr-xr-x 2 postgres dba 4096 mai 14 04:06 postgres
 
</pre>
 
</pre>
 
<br>
 
<br>
  
 
====Clés ssh====
 
====Clés ssh====
Préparation des clés ssh et ménage pour dbsqware.
+
Préparation des clés ssh pour dbsqware<br>
<br>
+
Directement depuis le user root :
En se connectant avec le user dbsqware :
 
 
<pre>
 
<pre>
su – dbsqware
+
su - dbsqware -c "
rm -f $HOME/.bash* $HOME/.zshrc $HOME/.emacs
 
rm -rf $HOME/.mozilla
 
ssh-keygen -t rsa -N '' -f $HOME/.ssh/id_rsa
 
chmod go-w $HOME
 
cat $HOME/.ssh/id_rsa.pub >>$HOME/.ssh/authorized_keys
 
chmod 700 $HOME/.ssh
 
chmod 600 $HOME/.ssh/authorized_keys
 
 
 
Generating public/private rsa key pair.
 
Created directory '/home/dbsqware/.ssh'.
 
Your identification has been saved in /home/dbsqware/.ssh/id_rsa.
 
Your public key has been saved in /home/dbsqware/.ssh/id_rsa.pub.
 
The key fingerprint is:
 
d6:68:27:1f:32:0c:89:54:c5:e4:69:75:ac:6a:aa:b9 dbsqware@vmsqwarebox
 
</pre>
 
<br>
 
Ou directement depuis le user root :
 
<pre>
 
su - dbsqware -c "rm -f \$HOME/.bash* \$HOME/.zshrc \$HOME/.emacs
 
rm -rf \$HOME/.mozilla
 
 
ssh-keygen -t rsa -N '' -f \$HOME/.ssh/id_rsa
 
ssh-keygen -t rsa -N '' -f \$HOME/.ssh/id_rsa
 
chmod go-w \$HOME
 
chmod go-w \$HOME
Ligne 301 : Ligne 434 :
 
<pre>
 
<pre>
 
lvsqw_SshKey_dbsqware=$(cat /home/dbsqware/.ssh/id_rsa.pub)
 
lvsqw_SshKey_dbsqware=$(cat /home/dbsqware/.ssh/id_rsa.pub)
for lvsqw_User in `echo 'oracle sybase mssql mysql'`
+
for lvsqw_User in `echo 'oracle sybase mssql mysql postgres dbsqware'`
 
do
 
do
su - $lvsqw_User -c "rm -f \$HOME/.bash* \$HOME/.zshrc \$HOME/.emacs
+
su - $lvsqw_User -c "
rm -rf \$HOME/.mozilla \$HOME/.gnome2
+
ssh-keygen -t rsa -N '' -f \$HOME/.ssh/id_rsa
ssh-keygen -t rsa -N '' -f \$HOME/.ssh/id_rsa
+
chmod go-w \$HOME
chmod go-w \$HOME
+
cat \$HOME/.ssh/id_rsa.pub >>\$HOME/.ssh/authorized_keys
cat \$HOME/.ssh/id_rsa.pub >>\$HOME/.ssh/authorized_keys
+
echo '$lvsqw_SshKey_dbsqware' >>\$HOME/.ssh/authorized_keys
echo '$lvsqw_SshKey_dbsqware' >>\$HOME/.ssh/authorized_keys
+
chmod 700 \$HOME/.ssh
chmod 700 \$HOME/.ssh
+
chmod 600 \$HOME/.ssh/authorized_keys"
chmod 600 \$HOME/.ssh/authorized_keys"
 
 
done
 
done
 +
ssh-keygen -t rsa -N '' -f $HOME/.ssh/id_rsa
 +
chmod go-w $HOME
 +
echo "$lvsqw_SshKey_dbsqware" >>$HOME/.ssh/authorized_keys
 +
chmod 700 $HOME/.ssh
 +
chmod 600 $HOME/.ssh/authorized_keys
 
</pre>
 
</pre>
 
<br>
 
<br>
Ligne 338 : Ligne 475 :
  
 
====Les fichiers d’environnement====
 
====Les fichiers d’environnement====
Mise en place d'un .profile et .kshrc pour tous les users :
+
Mise en place d'un .bash_profile et .bashrc pour tous les users :
 
<pre>
 
<pre>
cat <<EOFCAT >/tmp/.profile
+
cat <<EOFCAT >/tmp/.vimrc
ENV='.kshrc'
+
syntax off
 +
set mouse-=a
 +
set noai
 
EOFCAT
 
EOFCAT
cat <<EOFCAT >/tmp/.kshrc
+
cat <<EOFCAT >/tmp/.bash_profile
 +
# .bash_profile
 +
 
 +
# Get the aliases and functions
 +
if [ -f ~/.bashrc ]; then
 +
. ~/.bashrc
 +
fi
 +
 
 +
# User specific environment and startup programs
 +
export PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/ccs/bin:/usr/local/sbin:/usr/openwin/bin
 +
EOFCAT
 +
cat <<EOFCAT >/tmp/.bashrc
 +
# Source global definitions
 +
# if [ -f /etc/bashrc ] && [ \$(ps -p \$\$|grep -c 'bash') -ne 0 ] ; then
 +
# . /etc/bashrc
 +
# fi
 +
unalias ls 2>/dev/null
 
alias ll='ls -al'
 
alias ll='ls -al'
 
alias lt='ls -alrt'
 
alias lt='ls -alrt'
 
set -o vi
 
set -o vi
 
EOFCAT
 
EOFCAT
chmod 777 /tmp/.profile /tmp/.kshrc
+
chmod 777 /tmp/.bash_profile /tmp/.bashrc /tmp/.vimrc
for lvsqw_User in `echo 'dbsqware oracle sybase mssql mysql'`
+
 
 +
for lvsqw_User in `echo 'dbsqware oracle sybase mssql mysql postgres root'`
 
do
 
do
su - $lvsqw_User -c "cp /tmp/.profile \$HOME/.
+
su - $lvsqw_User -c "
cp /tmp/.kshrc \$HOME/.
+
cp /tmp/.vimrc \$HOME/.
chmod 640 \$HOME/.profile
+
cp /tmp/.bash_profile \$HOME/.
chmod 640 \$HOME/.kshrc"
+
cp /tmp/.bashrc \$HOME/.
 +
cd
 +
ln -s .bash_profile .profile
 +
chmod 640 \$HOME/.vimrc
 +
chmod 640 \$HOME/.bash_profile
 +
chmod 640 \$HOME/.bashrc"
 +
done
 +
rm -f /tmp/.bash_profile /tmp/.bashrc
 +
 
 +
cat <<EOCAT >> $HOME/.bashrc
 +
export PS1="\`id| cut -d')' -f1| cut -d'(' -f2\`@\$(hostname|cut -d '.' -f1):"'\$PWD # '
 +
EOCAT
 +
 
 +
for lvsqw_User in `echo 'oracle sybase mssql mysql postgres'`
 +
do
 +
su - $lvsqw_User -c "
 +
ln -s /home/dbsqware/dbSQWare/SQWareProduction \$HOME/SQWareProduction"
 
done
 
done
rm -f /tmp/.profile /tmp/.kshrc
 
 
</pre>
 
</pre>
 
<br>
 
<br>
Ligne 366 : Ligne 537 :
 
drwxr-x--- 3 dbsqware dba  4096 May 14 05:30 .
 
drwxr-x--- 3 dbsqware dba  4096 May 14 05:30 .
 
drwxr-xr-x 7 root    root 4096 May 14 03:57 ..
 
drwxr-xr-x 7 root    root 4096 May 14 03:57 ..
-rw-r----- 1 dbsqware dba    48 May 14 05:30 .kshrc
+
-rw-r----- 1 dbsqware dba    48 May 14 05:30 .bashrc
-rw-r----- 1 dbsqware dba    13 May 14 05:30 .profile
+
-rw-r----- 1 dbsqware dba    13 May 14 05:30 .bash_profile
 
-rw------- 1 dbsqware dba  746 May 14 05:26 .sh_history
 
-rw------- 1 dbsqware dba  746 May 14 05:26 .sh_history
 
drwx------ 2 dbsqware dba  4096 May 14 04:37 .ssh
 
drwx------ 2 dbsqware dba  4096 May 14 04:37 .ssh
Ligne 376 : Ligne 547 :
 
drwxr-x--- 3 mssql dba  4096 May 14 05:30 .
 
drwxr-x--- 3 mssql dba  4096 May 14 05:30 .
 
drwxr-xr-x 7 root  root 4096 May 14 03:57 ..
 
drwxr-xr-x 7 root  root 4096 May 14 03:57 ..
-rw-r----- 1 mssql dba    48 May 14 05:30 .kshrc
+
-rw-r----- 1 mssql dba    48 May 14 05:30 .bashrc
-rw-r----- 1 mssql dba    13 May 14 05:30 .profile
+
-rw-r----- 1 mssql dba    13 May 14 05:30 .bash_profile
 
drwx------ 2 mssql dba  4096 May 14 05:16 .ssh
 
drwx------ 2 mssql dba  4096 May 14 05:16 .ssh
  
Ligne 384 : Ligne 555 :
 
drwxr-x--- 3 mysql dba  4096 May 14 05:30 .
 
drwxr-x--- 3 mysql dba  4096 May 14 05:30 .
 
drwxr-xr-x 7 root  root 4096 May 14 03:57 ..
 
drwxr-xr-x 7 root  root 4096 May 14 03:57 ..
-rw-r----- 1 mysql dba    48 May 14 05:30 .kshrc
+
-rw-r----- 1 mysql dba    48 May 14 05:30 .bashrc
-rw-r----- 1 mysql dba    13 May 14 05:30 .profile
+
-rw-r----- 1 mysql dba    13 May 14 05:30 .bash_profile
 
drwx------ 2 mysql dba  4096 May 14 05:16 .ssh
 
drwx------ 2 mysql dba  4096 May 14 05:16 .ssh
  
Ligne 392 : Ligne 563 :
 
drwxr-x--- 3 oracle dba  4096 May 14 05:30 .
 
drwxr-x--- 3 oracle dba  4096 May 14 05:30 .
 
drwxr-xr-x 7 root  root 4096 May 14 03:57 ..
 
drwxr-xr-x 7 root  root 4096 May 14 03:57 ..
-rw-r----- 1 oracle dba    48 May 14 05:30 .kshrc
+
-rw-r----- 1 oracle dba    48 May 14 05:30 .bashrc
-rw-r----- 1 oracle dba    13 May 14 05:30 .profile
+
-rw-r----- 1 oracle dba    13 May 14 05:30 .bash_profile
 
-rw------- 1 oracle dba    76 May 14 05:12 .sh_history
 
-rw------- 1 oracle dba    76 May 14 05:12 .sh_history
 
drwx------ 2 oracle dba  4096 May 14 05:16 .ssh
 
drwx------ 2 oracle dba  4096 May 14 05:16 .ssh
Ligne 401 : Ligne 572 :
 
drwxr-x--- 3 sybase dba  4096 May 14 05:30 .
 
drwxr-x--- 3 sybase dba  4096 May 14 05:30 .
 
drwxr-xr-x 7 root  root 4096 May 14 03:57 ..
 
drwxr-xr-x 7 root  root 4096 May 14 03:57 ..
-rw-r----- 1 sybase dba    48 May 14 05:30 .kshrc
+
-rw-r----- 1 sybase dba    48 May 14 05:30 .bashrc
-rw-r----- 1 sybase dba    13 May 14 05:30 .profile
+
-rw-r----- 1 sybase dba    13 May 14 05:30 .bash_profile
 +
drwx------ 2 sybase dba  4096 May 14 05:16 .ssh
 +
 
 +
/home/postgres:
 +
total 40
 +
drwxr-x--- 3 sybase dba  4096 May 14 05:30 .
 +
drwxr-xr-x 7 root  root 4096 May 14 03:57 ..
 +
-rw-r----- 1 sybase dba    48 May 14 05:30 .bashrc
 +
-rw-r----- 1 sybase dba    13 May 14 05:30 .bash_profile
 
drwx------ 2 sybase dba  4096 May 14 05:16 .ssh
 
drwx------ 2 sybase dba  4096 May 14 05:16 .ssh
 
</pre>
 
</pre>
Ligne 408 : Ligne 587 :
 
Ajout de la partie source de l’environnement SQWareProduction dans le .profile de tous les users :
 
Ajout de la partie source de l’environnement SQWareProduction dans le .profile de tous les users :
 
<pre>
 
<pre>
for lvsqw_Sgbd  in `echo 'oracle sybase mssql mysql'`
+
for lvsqw_Sgbd  in `echo 'oracle sybase mssql mysql postgres'`
 
do
 
do
lvsqw_tmp=$(echo "$lvsqw_Sgbd"|sed 's,\([a-z][a-z][a-z]\)[a-z]*,\1,')
+
lvsqw_tmp=$(echo "$lvsqw_Sgbd"|sed 's,\([a-z][a-z][a-z]\)[a-z]*,\1,')
lvsqw_tmp1=$(echo "$lvsqw_tmp"|sed 's,\([a-z]\)[a-z]*,\1,'|tr '[a-z]' '[A-Z]')
+
lvsqw_tmp1=$(echo "$lvsqw_tmp"|sed 's,\([a-z]\)[a-z]*,\1,'|tr '[a-z]' '[A-Z]')
lvsqw_tmp2=$(echo "$lvsqw_tmp"|sed 's,[a-z]\([a-z][a-z]\)[a-z]*,\1,')
+
lvsqw_tmp2=$(echo "$lvsqw_tmp"|sed 's,[a-z]\([a-z][a-z]\)[a-z]*,\1,')
TrigrammeSgbd="${lvsqw_tmp1}$lvsqw_tmp2"
+
TrigrammeSgbd="${lvsqw_tmp1}$lvsqw_tmp2"
if [ "$TrigrammeSgbd" = "Mss" ]
+
if [ "$TrigrammeSgbd" = "Mss" ]
then
+
then
TrigrammeSgbd="Msq"
+
TrigrammeSgbd="Msq"
lvsqw_tmp="msq"
+
lvsqw_tmp="msq"
fi
+
elif [ "$TrigrammeSgbd" = "Pos" ]
echo "Traitement du SGBD: '$lvsqw_Sgbd', '$TrigrammeSgbd'"
+
then
cat <<EOFCAT >> /home/$lvsqw_Sgbd/.profile
+
TrigrammeSgbd="Pg"
# env dbSQWare pour $lvsqw_Sgbd, doit rester en fin de .profile
+
lvsqw_tmp="pg"
 +
fi
 +
echo "Traitement du SGBD: '$lvsqw_Sgbd', '$TrigrammeSgbd'"
 +
cat <<EOFCAT >> /home/$lvsqw_Sgbd/.bash_profile
 +
 
 +
# env dbSQWare pour $lvsqw_Sgbd, must stay at end of .bash_profile
 
export gvsqw_Env='PRD'
 
export gvsqw_Env='PRD'
 
export gvsqw_${TrigrammeSgbd}Bin=\$HOME/SQWareProduction/$lvsqw_Sgbd/bin
 
export gvsqw_${TrigrammeSgbd}Bin=\$HOME/SQWareProduction/$lvsqw_Sgbd/bin
Ligne 427 : Ligne 611 :
 
if [ "\$lvsqw_IsTerminal" = "0" ] && [ -r \$gvsqw_${TrigrammeSgbd}Bin/../etc/.profile_confort ]
 
if [ "\$lvsqw_IsTerminal" = "0" ] && [ -r \$gvsqw_${TrigrammeSgbd}Bin/../etc/.profile_confort ]
 
then
 
then
  . \$gvsqw_${TrigrammeSgbd}Bin/../etc/.profile_confort
+
. \$gvsqw_${TrigrammeSgbd}Bin/../etc/.profile_confort
 
fi
 
fi
 
EOFCAT
 
EOFCAT
 
done
 
done
</pre>
+
EOFCAT
<br>
+
done
Vérification de la mise à jour du .profile (exemple pour le user oracle à répéter pour tous les users) :
 
<pre>
 
[root@vmsqwarebox ~]# cat ~oracle/.profile
 
ENV='.kshrc'
 
# env dbSQWare pour oracle, doit rester en fin de .profile
 
export gvsqw_Env='PRD'
 
export gvsqw_OraBin=$HOME/SQWareProduction/oracle/bin
 
lvsqw_IsTerminal=$(tty 2>&1 >/dev/null;echo $?)
 
if [ "$lvsqw_IsTerminal" = "0" ] && [ -r $gvsqw_OraBin/../etc/.profile_confort ]
 
then
 
  . $gvsqw_OraBin/../etc/.profile_confort
 
fi
 
 
</pre>
 
</pre>
  
Ligne 484 : Ligne 656 :
 
<pre>
 
<pre>
 
$ ls -l ~dbsqware/dbSQWare
 
$ ls -l ~dbsqware/dbSQWare
total 32
+
total 12
drwxr-x--- 3 dbsqware dba 4096 avr 29 14:48 SQWareCentral
+
lrwxrwxrwx  1 dbsqware dba  24 Apr 15 13:04 generic -> SQWareProduction/generic
drwxr-x--- 7 dbsqware dba 4096 avr 29 14:48 SQWareProduction
+
drwxr-x--- 16 dbsqware dba 4096 Apr 15 13:04 SQWareCentral
drwxr-x--- 7 dbsqware dba 4096 avr 29 14:48 SQWareRepository
+
drwxr-x--- 15 dbsqware dba 192 Apr 15 13:04 SQWareProduction
drwxr-x--- 3 dbsqware dba 4096 avr 29 14:48 SQWareWeb
+
drwxr-x--- 17 dbsqware dba 4096 Apr 15 13:04 SQWareRepository
 +
drwxr-x--- 11 dbsqware dba 185 Apr 15 13:04 SQWareWeb
 +
-rwxr-x---  1 dbsqware dba    9 Apr 15 13:04 SQW_VERSION
 
</pre>
 
</pre>
 
<br>
 
<br>
  
 
====Configuration du profile du user dbsqware pour SQWareCentral====
 
====Configuration du profile du user dbsqware pour SQWareCentral====
Ajoutez les lignes suivantes dans le .profile du user unix dbsqware afin qu’il source l’environnement de SQWareCentral.<br>
+
Mise en place des conf par defaut:<br>
 
<pre>
 
<pre>
dbsqware@vmsqwarebox:/home/dbsqware $ cat .profile
+
cat <<EOFCAT >/home/dbsqware/dbSQWare/SQWareCentral/etc_cust/sqwctl_GlobalVar.cfg
 +
export gvsqw_AsynchronousFilesDir="/data/dbsqware/admin/AsynchronousFiles"
 +
export gvsqw_AsynchronousFilesDirTmp="/data/dbsqware/admin/AsynchronousFilesTmp"
 +
export gvsqw_AsynchronousFilesDirArch="/data/dbsqware/admin/AsynchronousFilesArch"
 +
EOFCAT
 +
chmod 750 /home/dbsqware/dbSQWare/SQWareCentral/etc_cust/sqwctl_GlobalVar.cfg
 +
 
 +
cat <<EOFCAT >> $HOME/.bashrc
 +
alias my="mysql --defaults-file='/home/dbsqware/dbSQWare/SQWareCentral/etc_cust/.my_SQWareRepository.cnf' -A"
 +
alias ora="ssh \$gvsqw_SshOptionsInteractive oracle@\$(hostname)"
 +
alias msq="ssh \$gvsqw_SshOptionsInteractive mssql@\$(hostname)"
 +
alias mys="ssh \$gvsqw_SshOptionsInteractive mysql@\$(hostname)"
 +
EOFCAT
 +
 
 +
#Mettre la bonne adresse mail !
 +
cat <<EOFCAT >/home/dbsqware/dbSQWare/SQWareProduction/generic/etc_cust/sqwgen_GlobalVar.cfg
 +
#Put NoNail in gvsqw_GlobalMail if you don't want to send mail on error
 +
export gvsqw_GlobalMail='dba@mydomane.com'
 +
 
 +
#for SQWareWeb
 +
export gvsqw_WebDbaURL="http://$(hostname)"
 +
export gvsqw_WebDbaUser='dbsqware@$(hostname)'
 +
 
 +
EOFCAT
 +
chmod 750 /home/dbsqware/dbSQWare/SQWareProduction/generic/etc_cust/sqwgen_GlobalVar.cfg
 +
 
 +
ln -s /data/dbsqware/admin/AsynchronousFilesArch /home/dbsqware/dbSQWare/SQWareWeb/sqw_logdir
 +
ln -s /data/mysql/SlowQuery sqw_mysql_slow
 +
ln -s /data/oracle/awr sqw_oracle_awr
 +
</pre>
 +
<br>
 +
Ajoutez les lignes suivantes dans le .bash_profile du user unix dbsqware afin qu’il source l’environnement de SQWareCentral.<br>
 +
<pre>
 +
dbsqware@vmsqwarebox:/home/dbsqware $ cat .bash_profile
 
## SQWareCentral
 
## SQWareCentral
 
export gvsqw_Env='PRD'
 
export gvsqw_Env='PRD'
Ligne 503 : Ligne 710 :
 
</pre>
 
</pre>
 
<br>
 
<br>
Pour vérifier si tout est OK, sourcez le .profile du user et vous devez avoir un résultat de ce type:<br>
+
Pour vérifier si tout est OK, sourcez le .bash_profile du user et vous devez avoir un résultat de ce type:<br>
 
<pre>
 
<pre>
dbsqware@vmsqwarebox:/home/dbsqware $ . ~/.profile
+
dbsqware@vmsqwarebox:/home/dbsqware $ . ~/.bash_profile
 +
    _ _    ____  _____        __
 +
  __| | |__/ ___| / _ \ \      / /_ _ _ __ ___
 +
/ _` | '_ \___ \| | | \ \ /\ / / _` | '__/ _ \
 +
| (_| | |_) |__) | |_| |\ V  V / (_| | | |  __/
 +
\__,_|_.__/____/ \__\_\ \_/\_/ \__,_|_|  \___|
  
# SQWareCentral module of dbSQWare is developped with GPL License 3.0
+
###################################################################
# Copyright (C) 2010-2017  dbSQWare SAS
+
# SQWareCentral module of dbSQWare
# This program comes with ABSOLUTELY NO WARRANTY.
+
# Copyright (C) 2010-2023, dbSQWare (www.dbsqware.com)
# This is free software, and you are welcome to redistribute it
+
# dbSQWare is distributed in the hope that it will be useful,
# under certain conditions; type 'show l' for details.
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# You should have received a copy of the GNU General Public License
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# along with this program.  If not, see <http:/www.gnu.org/licenses/>.
+
# CGU/CGA for more details.
 +
# You should have received a copy of the CGU/CGA
 +
# along with this program.  If not, see <http://www.dbsqware.com/licenses/>.
 
# For information : contact@dbsqware.com or www.dbsqware.com
 
# For information : contact@dbsqware.com or www.dbsqware.com
 +
###################################################################
 +
# SqwVersion=2023.04
  
# SqwVersion=3.1.04
+
# For help type 'show <-h|-help|--help>'
  
# For help type 'show <-h|-help|--help>'
 
 
</pre>
 
</pre>
 
<br>
 
<br>
  
 
===Installation/configuration de SQWareRepository===
 
===Installation/configuration de SQWareRepository===
Ce chapitre présente la création du référentiel, il s’agit d’une database unique sous MySQL depuis la version v3.0 de dbSQWare.<br>
+
Ce chapitre présente la création du référentiel, il s’agit d’une database MySQL>=5.6 ou MariaDB>=10.1 ... (MariaDB 10.6 sur la sqwarebox fournie)<br>
La volumétrie va dépendre du nombre d’instances traitées, et de certains autres paramétrages comme la profondeur d’historique ou le nombre de lignes de logs remonté en base. Dans la majorité des cas, pour une centaine d’instances gérées et les paramètres par défaut de dbSQWare, la volumétrie ne devrait pas excéder 2 Go en pleine charge (données purement indicatives).<br>
+
La volumétrie va dépendre du nombre d’instances traitées, et de certains autres paramétrages comme la profondeur d’historique ou le nombre de lignes de logs remonté en base. Dans la majorité des cas, pour une centaine d’instances gérées et les paramètres par défaut de dbSQWare, la volumétrie ne devrait pas excéder 15 Go en pleine charge (données purement indicatives).<br>
  
 
Les installations vont se faire à partir des scripts sql se trouvant dans :
 
Les installations vont se faire à partir des scripts sql se trouvant dans :
Ligne 531 : Ligne 746 :
 
</pre>
 
</pre>
 
<br>
 
<br>
====Installation de la database MySql====
+
====Installation de la database MariaDB====
Ce chapitre part du principe que vous avez déjà un client MySql installé sous le user mysql. Ce client servira également au module SQWareCentral pour se connecter à SQWareRepository et générer les listes d’instances à traiter, par exemple.<br>
+
Ce chapitre part du principe que vous avez déjà un client MySQL/MariaDB installé sous le user mysql. Ce client servira également au module SQWareCentral pour se connecter à SQWareRepository et générer les listes d’instances à traiter, par exemple.<br>
Pour exemple, vous pouvez regarder l'annexe [[Annexes:MySQL|« Installation rapide d’une instance MySql »]] afin de créer l’instance qui hébergera le référentiel sur le point central. Attention, il ne s’agit que d’un exemple, celui-ci peut être créé n’importe où.<br>
+
Pour exemple, vous pouvez regarder l'annexe [[Annexes:MariaDB|« Installation rapide d’une instance MariaDB »]] afin de créer l’instance qui hébergera le référentiel sur le point central. Attention, il ne s’agit que d’un exemple, celui-ci peut être créé n’importe où.<br>
 
On part du principe que nous sommes connectés sous unix avec le user mysql pour ce chapitre.<br>
 
On part du principe que nous sommes connectés sous unix avec le user mysql pour ce chapitre.<br>
 
<br>
 
<br>
Ligne 539 : Ligne 754 :
 
<pre>
 
<pre>
 
[root@vmsqwarebox ~]# su - mysql
 
[root@vmsqwarebox ~]# su - mysql
$ mysql -S /var/lib/mysql/mysql.sock -uroot -PassMys
+
$ mysql -uroot -pPassMys
Welcome to the MySQL monitor.  Commands end with ; or \g.
+
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
+
Your MariaDB connection id is 5
Server version: 5.6.27 MySQL Community Server (GPL)
+
Server version: 10.6.12-MariaDB-log MariaDB Server
 
 
Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
 
  
Oracle is a registered trademark of Oracle Corporation and/or its
+
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
affiliates. Other names may be trademarks of their respective
 
owners.
 
  
 
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
 
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
  
mysql> create database dbsqware_db;
+
MariaDB [dbsqware_db]> create database dbsqware_db;
 
Query OK, 1 row affected (0.00 sec)
 
Query OK, 1 row affected (0.00 sec)
  
mysql> GRANT ALL PRIVILEGES ON dbsqware_db.* TO 'dbsqware_user'@'localhost' IDENTIFIED BY 'PassMys';
+
MariaDB [dbsqware_db]> GRANT ALL PRIVILEGES ON dbsqware_db.* TO 'dbsqware_user'@'localhost' IDENTIFIED BY 'PassMys';
 
Query OK, 0 rows affected (0.01 sec)
 
Query OK, 0 rows affected (0.01 sec)
  
mysql> GRANT ALL PRIVILEGES ON dbsqware_db.* TO 'dbsqware_user'@'%' IDENTIFIED BY 'PassMys';
+
MariaDB [dbsqware_db]> GRANT ALL PRIVILEGES ON dbsqware_db.* TO 'dbsqware_user'@'%' IDENTIFIED BY 'PassMys';
 
Query OK, 0 rows affected (0.00 sec)
 
Query OK, 0 rows affected (0.00 sec)
 
</pre>
 
</pre>
 
<br>
 
<br>
 +
 
====Création des objets====
 
====Création des objets====
La création des objets va se faire à partir du user unix dbsqware. Pour cela, il faut tout d’abord créer le fichier de paramétrage pour l’accès à MySQL.<br>
+
La création des objets va se faire à partir du user unix dbsqware. Pour cela, il faut tout d’abord créer le fichier de paramétrage pour l’accès à MariaDB/MySQL.<br>
 
<br>
 
<br>
 
Voici le contenu que doit avoir le fichier (adaptez-le avec vos credentials) :
 
Voici le contenu que doit avoir le fichier (adaptez-le avec vos credentials) :
 
<pre>
 
<pre>
dbsqware@vmsqwarebox:/home/dbsqware $ cat /home/dbsqware/dbSQWare/SQWareProduction/generic/etc_cust/.my_SQWareRepository.cnf
+
dbsqware@vmsqwarebox:/home/dbsqware $ cat /home/dbsqware/dbSQWare/SQWareCentral/etc_cust/.my_SQWareRepository.cnf
 
[client]
 
[client]
 
host = vmsqwarebox
 
host = vmsqwarebox
Ligne 574 : Ligne 786 :
 
user = dbsqware_user
 
user = dbsqware_user
 
password = PassMys
 
password = PassMys
 +
 +
chmod 640 /home/dbsqware/dbSQWare/SQWareCentral/etc_cust/.my_SQWareRepository.cnf
 
</pre>
 
</pre>
 
<br>
 
<br>
 
Test de connexion au référentiel (avec le fichier) :
 
Test de connexion au référentiel (avec le fichier) :
 
<pre>
 
<pre>
dbsqware@vmsqwarebox:/home/dbsqware $ mysql --defaults-file='/home/dbsqware/dbSQWare/SQWareCentral/menu/../../generic/etc_cust/.my_SQWareRepository.cnf'
+
dbsqware@vmsqwarebox:/home/dbsqware $ mysql --defaults-file='/home/dbsqware/dbSQWare/SQWareCentral/etc_cust/.my_SQWareRepository.cnf'
Welcome to the MySQL monitor.  Commands end with ; or \g.
+
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
+
Your MariaDB connection id is 5
Server version: 5.6.27 MySQL Community Server (GPL)
+
Server version: 10.6.12-MariaDB-log MariaDB Server
  
Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
+
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
 
 
Oracle is a registered trademark of Oracle Corporation and/or its
 
affiliates. Other names may be trademarks of their respective
 
owners.
 
  
 
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
 
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
  
mysql> show databases;
+
MariaDB [dbsqware_db]> show databases;
 +
+--------------------+
 +
| Database          |
 +
+--------------------+
 +
| dbsqware_db        |
 +
| information_schema |
 +
+--------------------+
 +
2 rows in set (0.001 sec)
 
</pre>
 
</pre>
 
<br>
 
<br>
 
Installation du référentiel :
 
Installation du référentiel :
 
<pre>
 
<pre>
dbsqware@vmsqwarebox:/home/dbsqware $ $gvsqw_SQWareCentralPath/menu/sqwctl_InstallFullRepository.ksh
+
dbsqware@vmsqwarebox:/home/dbsqware $ dbspatch
 +
 
 +
 
 +
    _ _    ____  _____        __
 +
  __| | |__/ ___| / _ \ \      / /_ _ _ __ ___
 +
/ _` | '_ \___ \| | | \ \ /\ / / _` | '__/ _ \
 +
| (_| | |_) |__) | |_| |\ V  V / (_| | | |  __/
 +
\__,_|_.__/____/ \__\_\ \_/\_/ \__,_|_|  \___|
 +
 
 +
###################################################################
 +
# SQWareCentral module of dbSQWare
 +
# Copyright (C) 2010-2023, dbSQWare (www.dbsqware.com)
 +
# dbSQWare is distributed in the hope that it will be useful,
 +
# but WITHOUT ANY WARRANTY; without even the implied warranty of
 +
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 +
# CGU/CGA for more details.
 +
# You should have received a copy of the CGU/CGA
 +
# along with this program.  If not, see <http://www.dbsqware.com/licenses/>.
 +
# For information : contact@dbsqware.com or www.dbsqware.com
 +
###################################################################
 +
# SqwVersion=2023.04
 +
 
 +
# For help type 'show <-h|-help|--help>'
 +
 
 +
 
 +
Create tree for custom dir ...
 +
create directory /home/dbsqware/dbSQWare/SQWareCentral/../SQWareWeb/exploit/bin/../../custom
 +
create directory /home/dbsqware/dbSQWare/SQWareCentral/../SQWareWeb/exploit/bin/../../custom/images
 +
 
 +
Copy ref files to custom if not exists ...
 +
copy /home/dbsqware/dbSQWare/SQWareCentral/../SQWareWeb/exploit/bin/../../custom_ref/authentication_custom.php on /home/dbsqware/dbSQWare/SQWareCentral/../SQWareWeb/exploit/bin/../../custom/authentication_custom.php
 +
copy /home/dbsqware/dbSQWare/SQWareCentral/../SQWareWeb/exploit/bin/../../custom_ref/images/client.png on /home/dbsqware/dbSQWare/SQWareCentral/../SQWareWeb/exploit/bin/../../custom/images/client.png
 +
copy /home/dbsqware/dbSQWare/SQWareCentral/../SQWareWeb/exploit/bin/../../custom_ref/GlobalHead.html on /home/dbsqware/dbSQWare/SQWareCentral/../SQWareWeb/exploit/bin/../../custom/GlobalHead.html
 +
copy /home/dbsqware/dbSQWare/SQWareCentral/../SQWareWeb/exploit/bin/../../custom_ref/sqwareweb.ini on /home/dbsqware/dbSQWare/SQWareCentral/../SQWareWeb/exploit/bin/../../custom/sqwareweb.ini
 +
Sourcing sqwctl_Global.lib v2023.04 SQWareCentral (dbSQWare) ...
 +
touch: cannot touch '/.sqw': Permission denied
  
Sourcing sqwctl_Global.lib v3.1.03 SQWareCentral (dbSQWare GPL v3) ...
 
  
 
eval global vars:
 
eval global vars:
gvsqw_MySqlCnfFile="$gvsqw_GenPath/../../generic/etc_cust/.my_SQWareRepository.cnf" => gvsqw_MySqlCnfFile=/home/dbsqware/dbSQWare/SQWareCentral/menu/../../generic/etc_cust/.my_SQWareRepository.cnf
+
gvsqw_RsyncDefaultUser="$gvsqw_UserExec@RsyncHost" => gvsqw_RsyncDefaultUser=dbsqware@RsyncHost
  
 
Checks before install:
 
Checks before install:
 
SQWareRepository source to install: /home/dbsqware/dbSQWare/SQWareRepository
 
SQWareRepository source to install: /home/dbsqware/dbSQWare/SQWareRepository
 
Connect string to repository:
 
Connect string to repository:
MySQL_Command="mysql --defaults-file='/home/dbsqware/dbSQWare/SQWareCentral/menu/../../generic/etc_cust/.my_SQWareRepository.cnf'"
+
MySQL_Command="mysql --defaults-file='/home/dbsqware/dbSQWare/SQWareCentral/etc_cust/.my_SQWareRepository.cnf'"
 
[client]
 
[client]
 
host = vmsqwarebox
 
host = vmsqwarebox
Ligne 612 : Ligne 863 :
 
database = dbsqware_db
 
database = dbsqware_db
 
user = dbsqware_user
 
user = dbsqware_user
 
+
10.6.12-MariaDB-log
5.6.27
+
Major version of Repository, 106, 10.6.12
Major version of Repository, 56, 5.6.27
 
  
 
Checks for install mode (full or patch):
 
Checks for install mode (full or patch):
Ligne 626 : Ligne 876 :
 
...
 
...
  
Treatment Install SQWareRepository proceeded successfully
+
Job Install SQWareRepository proceeded successfully
  
Begining    : 16/11/2015 18:25:45
+
Begining    : 2023-04-15 12:13:31
End          : 16/11/2015 18:26:27
+
End          : 2023-04-15 12:15:04
 +
Duration    : 00:01:33
 
</pre>
 
</pre>
 
<br>
 
<br>
Ligne 635 : Ligne 886 :
 
===Installation/configuration de SQWareWeb===
 
===Installation/configuration de SQWareWeb===
 
Ce chapitre présente l’installation et la configuration de SQWareWeb.<br>
 
Ce chapitre présente l’installation et la configuration de SQWareWeb.<br>
Nous partons du principe que apache et PHP 5.3 sont installés et opérationnels pour se connecter à MySQL (PHP 5.4 fonctionne également).<br>
+
Nous partons du principe que apache et PHP 8.2 sont installés et opérationnels pour se connecter à MariaDB/MySQL (PHP >= 5.2 et 7.x fonctionnent également en principe).<br>
Pour déployer apache et PHP 5.3, vous pouvez regarder l'annexe [[Annexes:ApachePHP|«  Installation rapide de apache et PHP5.3 »]]. Attention, il ne s’agit que d’un exemple, reportez-vous aux sites officiels des outils pour plus d’information http://httpd.apache.org/ et http://www.php.net/.<br>
+
Pour déployer apache et PHP 8.2, vous pouvez regarder l'annexe [[Annexes:ApachePHP|«  Installation rapide de apache et PHP 8.2 »]]. Attention, il ne s’agit que d’un exemple, reportez-vous aux sites officiels des outils pour plus d’information https://httpd.apache.org/ et https://www.php.net/.<br>
 
<br>
 
<br>
 
On part du principe que nous sommes connectés sous unix avec le user dbsqware pour ce chapitre. Nous allons voir une installation de SQWareWeb sur la même machine que SQWareCentral, mais ceci n’est pas une obligation.<br>
 
On part du principe que nous sommes connectés sous unix avec le user dbsqware pour ce chapitre. Nous allons voir une installation de SQWareWeb sur la même machine que SQWareCentral, mais ceci n’est pas une obligation.<br>
Ligne 646 : Ligne 897 :
 
$ cd /home/dbsqware/dbSQWare/SQWareWeb
 
$ cd /home/dbsqware/dbSQWare/SQWareWeb
 
$ ls -l
 
$ ls -l
total 96
+
total 24
drwxr-x--- 3 dbsqware dba 4096 avr 29 14:48 cache
+
drwxr-x--- 2 dbsqware dba   70 Nov 29 19:46 css
drwxr-x--- 2 dbsqware dba 4096 avr 29 14:48 css
+
drwxr-xr-x 3 dbsqware dba   64 Dec  8 14:50 custom
drwxr-x--- 8 dbsqware dba 4096 avr 29 14:48 custom_ref
+
drwxr-x--- 3 dbsqware dba   64 Nov 29 19:46 custom_ref
drwxr-x--- 6 dbsqware dba 4096 avr 29 14:48 exploit
+
drwxr-x--- 6 dbsqware dba   60 Nov 29 19:46 exploit
drwxr-x--- 7 dbsqware dba 4096 avr 29 14:48 htdocs
+
drwxr-x--- 19 dbsqware dba 322 Nov 29 19:46 htdocs
drwxr-x--- 3 dbsqware dba 4096 avr 29 14:48 images
+
drwxr-x--- 2 dbsqware dba 8192 Nov 29 19:46 images
drwxr-x--- 7 dbsqware dba 4096 avr 29 14:48 js
+
drwxr-x--- 14 dbsqware dba  177 Nov 29 19:46 jobs_help
drwxr-x--- 3 dbsqware dba 4096 avr 29 14:48 lib
+
drwxr-x--- 5 dbsqware dba 239 Nov 29 19:46 js
-rwxr-x--- 1 dbsqware dba  22 avr 29 14:48 phpinfo.php
+
drwxr-x--- 3 dbsqware dba 4096 Nov 29 19:46 lib
drwxr-x--- 2 dbsqware dba 4096 avr 29 14:48 scripts
+
-rwxr-x--- 1 dbsqware dba  22 Nov 29 19:46 phpinfo.php
drwxr-x--- 2 dbsqware dba 4096 avr 29 14:48 templates
+
lrwxrwxrwx  1 dbsqware dba  42 Dec  8 14:54 sqw_logdir -> /data/dbsqware/admin/AsynchronousFilesArch
-rwxr-x--- 1 dbsqware dba 1509 avr 29 14:48 test.php
+
lrwxrwxrwx  1 dbsqware dba  21 Dec  8 14:54 sqw_mysql_slow -> /data/mysql/SlowQuery
 +
lrwxrwxrwx  1 dbsqware dba   16 Dec  8 14:54 sqw_oracle_awr -> /data/oracle/awr
 +
drwxr-x--- 2 dbsqware dba 214 Nov 29 19:46 templates
 +
-rwxr-x--- 1 dbsqware dba 1274 Nov 29 19:46 test.php
 
</pre>
 
</pre>
 
<br>
 
<br>
Mettez en place le VirtualHost apache pour le site. Encore une fois, il ne s’agit ici que d’un exemple que vous pouvez customiser (avec le user root, adaptez si besoin).
+
====Conf http====
 +
Mettez en place le VirtualHost apache pour le site (si vous ne tournez qu'en http). Encore une fois, il ne s’agit ici que d’un exemple que vous pouvez customiser (avec le user root, adaptez si besoin).
 
<pre>
 
<pre>
 
$ cat /etc/httpd/conf.d/httpd-vhosts.conf
 
$ cat /etc/httpd/conf.d/httpd-vhosts.conf
Ligne 667 : Ligne 922 :
 
     Options Indexes FollowSymLinks
 
     Options Indexes FollowSymLinks
 
     AllowOverride All
 
     AllowOverride All
     Order allow,deny
+
     Require all granted
    Allow from all
 
 
</Directory>
 
</Directory>
 
<Directory "/data/oracle/awr">
 
<Directory "/data/oracle/awr">
 
     Options Indexes FollowSymLinks
 
     Options Indexes FollowSymLinks
 
     AllowOverride All
 
     AllowOverride All
     Order allow,deny
+
     Require all granted
    Allow from all
 
 
</Directory>
 
</Directory>
 
<VirtualHost *:80>
 
<VirtualHost *:80>
 
     DocumentRoot /home/dbsqware/dbSQWare/SQWareWeb
 
     DocumentRoot /home/dbsqware/dbSQWare/SQWareWeb
 
     ServerName vmsqwarebox
 
     ServerName vmsqwarebox
     ServerAlias vmsqwarebox webdba
+
     ServerAlias vmsqwarebox vmsqwareboxRocky8 webdba
 
</VirtualHost>
 
</VirtualHost>
[root@vmsqwarebox ~]# service httpd restart
+
 
Arrêt de httpd :                                          [  OK  ]
+
[root@vmsqwarebox ~]# systemctl restart httpd
Démarrage de httpd :                                      [  OK  ]
 
 
</pre>
 
</pre>
 
<br>
 
<br>
Mettez en place l’arborescence de customisation par défaut.
+
 
 +
<br>
 +
====Conf https (attention, vous devez mettre un certificat ssl en place)====
 +
Mettez en place le VirtualHost apache pour le site (si vous ne tournez en https). Encore une fois, il ne s’agit ici que d’un exemple que vous pouvez customiser (avec le user root, adaptez si besoin).
 
<pre>
 
<pre>
$ cd /home/dbsqware/dbSQWare/SQWareWeb/exploit/bin
+
#To Redirect All HTTP Traffic To HTTPS
$ ./PatchCustom.ksh
+
$ cat /etc/httpd/conf.d/redirect_http.conf
$ cd /home/dbsqware/dbSQWare/SQWareWeb/custom
+
<VirtualHost _default_:80>
$ ls -l
+
    ServerName vmsqwarebox
total 92
+
    ServerAlias vmsqwarebox vmsqwareboxRocky8 webdba
drwxr-xr-x 2 dbsqware dba 4096 Jun 16 07:19 cassandra
+
Redirect permanent / https://webdba/
drwxr-xr-x 2 dbsqware dba 4096 Sep  2  2014 db2
+
</VirtualHost>
drwxr-xr-x 2 dbsqware dba 4096 Sep  2  2014 generic
+
 
-rwxr-x--- 1 dbsqware dba  32 Jul 20  2014 GlobalHead.html
+
#vhost
drwxr-xr-x 2 dbsqware dba 4096 Sep  2  2014 hbase
+
$ cat /etc/httpd/conf.d/httpd-vhosts.conf
-rwxr-x--- 1 dbsqware dba 7404 Jul 20  2014 home.html
+
<Directory "/home/dbsqware/dbSQWare/SQWareWeb">
drwxr-xr-x 2 dbsqware dba 4096 Aug 28 10:30 images
+
    Options Indexes FollowSymLinks
-rwxr-x--- 1 dbsqware dba  188 Aug 28 10:28 index.html
+
    AllowOverride All
-rwxr-x--- 1 dbsqware dba 2228 Aug 28 10:27 menu.ini
+
    Require all granted
...
+
</Directory>
...
+
<Directory "/data/oracle/awr">
 +
    Options Indexes FollowSymLinks
 +
    AllowOverride All
 +
    Require all granted
 +
</Directory>
 +
<VirtualHost *:443>
 +
    DocumentRoot /home/dbsqware/dbSQWare/SQWareWeb
 +
    ServerName vmsqwarebox
 +
    ServerAlias vmsqwarebox vmsqwareboxRocky8 webdba
 +
</VirtualHost>
 +
 
 +
[root@vmsqwarebox ~]# systemctl reload httpd
 
</pre>
 
</pre>
 
<br>
 
<br>
 +
 
====Personnalisation====
 
====Personnalisation====
Paramétrez l’accès au référentiel (SQWareRepository) dans le fichier suivant :
+
Paramétrez l’accès au référentiel (SQWareRepository) pour SQWareWeb dans le fichier suivant :
<pre>
 
/home/dbsqware/dbSQWare/SQWareWeb/custom/menu.ini
 
</pre>
 
<br>
 
Exemple pour notre installation :
 
 
<pre>
 
<pre>
 +
vi /home/dbsqware/dbSQWare/SQWareWeb/custom/sqwareweb.ini
 
[db]
 
[db]
 
MysqlHost="vmsqwarebox"
 
MysqlHost="vmsqwarebox"
 
MysqlUser="dbsqware_user"
 
MysqlUser="dbsqware_user"
MysqlPass="PassMys"
+
MysqlPass="newpassWeb"
MysqlDb="dbsqware_db"
 
MysqlPort=3306
 
</pre>
 
<br>
 
Commentez (mettre un ''';''' en début de ligne) les types de SGBD que vous ne voulez pas voir apparaitre dans le menu du haut en modifiant le fichier suivant (section [menu_databases]) :
 
<pre>
 
/home/dbsqware/dbSQWare/SQWareWeb/custom/menu.ini
 
 
</pre>
 
</pre>
 
<br>
 
<br>
Exemple pour ne faire apparaitre que MsSql, Oracle, Sybase et MySQL (laissez « generic » pour la vue multi-SGBD) :
 
<pre>
 
[menu_databases]
 
db1="mssql"
 
db2="oracle"
 
db3="sybase"
 
db4="mysql"
 
;db5="ingres"
 
;db6="postgres"
 
;db7="db2"
 
db8="generic"
 
;db9="sybrep"
 
;db10="mongodb"
 
;db11="cassandra"
 
;db12="hbase"
 
</pre>
 
 
Remplacez le fichier suivant par votre logo :
 
Remplacez le fichier suivant par votre logo :
 
<pre>
 
<pre>
 
/home/dbsqware/dbSQWare/SQWareWeb/custom/images/client.png
 
/home/dbsqware/dbSQWare/SQWareWeb/custom/images/client.png
Vous pouvez personnaliser le message de la page d’accueil en modifiant le fichier suivant :
 
<pre>
 
/home/dbsqware/dbSQWare/SQWareWeb/custom/index.html
 
 
</pre>
 
</pre>
 +
<br>
 
Vous devez maintenant pouvoir afficher la page web suivante http://vmsqwarebox (avec votre logo) :<br>
 
Vous devez maintenant pouvoir afficher la page web suivante http://vmsqwarebox (avec votre logo) :<br>
 
[[Fichier:SQWareWeb.png]]<br>
 
[[Fichier:SQWareWeb.png]]<br>
 
Cet affichage vous permet de valider si le socle est paramétré correctement pour le web.<br>
 
Cet affichage vous permet de valider si le socle est paramétré correctement pour le web.<br>
 
<br>
 
<br>
En cas d’erreur, vous pouvez jouer avec les paramètres de « debug » du menu.ini afin de tenter de trouver le problème :
+
En cas d’erreur, vous pouvez jouer avec les paramètres de « debug » du sqwareweb.ini afin de tenter de trouver le problème :
 
<pre>
 
<pre>
 
;debug=true
 
;debug=true
Ligne 791 : Ligne 1 029 :
 
<pre>
 
<pre>
 
User = default_admin
 
User = default_admin
Pass = OctopusDBA.001
+
Pass = YBHim9Ty_PSOvahtSxAU_5SX3QSoNFaC
 
</pre>
 
</pre>
 
<br>
 
<br>
Ligne 798 : Ligne 1 036 :
 
=====Par la console d’admin=====
 
=====Par la console d’admin=====
 
Allez dans la console d’admin, soit directement :
 
Allez dans la console d’admin, soit directement :
<pre>http://vmsqwarebox/templates/adminAccessLogins_general.html</pre>
+
<pre>http://vmsqwarebox/admin/all/access/adminAccessLogins_general.html</pre>
  
Soit en cliquant sur le petit icône entre « is connected » et « (log off) » :<br><br>
+
Soit en cliquant sur l'icône « admin » :<br><br>
 
[[Fichier:AdminConsole.png]]
 
[[Fichier:AdminConsole.png]]
 
<br>
 
<br>
Ligne 829 : Ligne 1 067 :
  
 
===Crontab du user dbsqware unix pour SQWareCentral===
 
===Crontab du user dbsqware unix pour SQWareCentral===
 +
Voir le contenu du fichier suivant :<br>
 +
/home/dbsqware/dbSQWare/SQWareCentral/etc/CrontabRef.cfg<br>
 +
<br>
 
Voici la cron classique que l’on met en place sur le user dbsqware :
 
Voici la cron classique que l’on met en place sur le user dbsqware :
 
<pre>
 
<pre>
############
+
###########################
### Generic cron for SQWareCentral
+
## mm(0-59) hh(0-23) dd(1-31) MM(0-12) DAY(0-sunday, 1-monday, ...) command
 +
## Generic cron for SQWareCentral (dbSQWare)
 
############
 
############
 
# Generate all ref files (RefFileInstances,RefFileDb,RefFileCMDB,...)
 
# Generate all ref files (RefFileInstances,RefFileDb,RefFileCMDB,...)
Ligne 841 : Ligne 1 083 :
 
00 03      * * * ksh -c '. ~/.profile 2>&1 >/dev/null;$gvsqw_SQWareCentralPath/bin/sqwctl_GatherIndicators.ksh 2>&1 >$HOME/admin/SQWareCentral/logs/sqwctl_GatherIndicators.log'
 
00 03      * * * ksh -c '. ~/.profile 2>&1 >/dev/null;$gvsqw_SQWareCentralPath/bin/sqwctl_GatherIndicators.ksh 2>&1 >$HOME/admin/SQWareCentral/logs/sqwctl_GatherIndicators.log'
 
# Retry gather indicators if not exists
 
# Retry gather indicators if not exists
00 09,12,17 * * * ksh -c '. ~/.profile 2>&1 >/dev/null;$gvsqw_SQWareCentralPath/bin/sqwctl_GatherIndicators.ksh Repind 2>&1 >$HOME/admin/SQWareCentral/logs/sqwctl_GatherIndicators_Repind.log'
+
00 09,12,17 * * * ksh -c '. ~/.profile 2>&1 >/dev/null;$gvsqw_SQWareCentralPath/bin/sqwctl_GatherIndicators.ksh -Repind -NoMail 2>&1 >$HOME/admin/SQWareCentral/logs/sqwctl_GatherIndicators_Repind.log'
 +
############
 +
# Retrieve async files from a dir (configure sqwctl_LoopRetrieveAsynchronousFilesGlobal.cfg in cetc)
 +
20 *        * * * ksh -c '. ~/.profile 2>&1 >/dev/null;$gvsqw_SQWareCentralPath/bin/sqwctl_LoopRetrieveAsynchronousFilesGlobal.ksh 2>&1 >$HOME/admin/SQWareCentral/logs/sqwctl_LoopRetrieveAsynchronousFilesGlobal.log'
 +
# Retrieve async files from all instances
 +
15 *        * * * ksh -c '. ~/.profile 2>&1 >/dev/null;$gvsqw_SQWareCentralPath/bin/sqwctl_LoopRetrieveAsynchronousFiles.ksh 2>&1 >$HOME/admin/SQWareCentral/logs/sqwctl_LoopRetrieveAsynchronousFiles.log'
 +
45 07,08,09,10,11,12,13,14,15,16,17,18  * * * ksh -c '. ~/.profile 2>&1 >/dev/null;$gvsqw_SQWareCentralPath/bin/sqwctl_LoopRetrieveAsynchronousFiles.ksh 2>&1 >$HOME/admin/SQWareCentral/logs/sqwctl_LoopRetrieveAsynchronousFiles.log'
 +
# Exec async files from all instances
 +
30 *        * * * ksh -c '. ~/.profile 2>&1 >/dev/null;$gvsqw_SQWareCentralPath/bin/sqwctl_LoopExecAsynchronousFiles.ksh 2>&1 >$HOME/admin/SQWareCentral/logs/sqwctl_LoopExecAsynchronousFiles.log'
 +
10,50 07,08,09,10,11,12,13,14,15,16,17,18  * * * ksh -c '. ~/.profile 2>&1 >/dev/null;$gvsqw_SQWareCentralPath/bin/sqwctl_LoopExecAsynchronousFiles.ksh 2>&1 >$HOME/admin/SQWareCentral/logs/sqwctl_LoopExecAsynchronousFiles.log'
 +
########################################################################################################################
 +
### Gather Structures (dbSQWare)
 +
############
 +
## Structures Oracle
 +
#00 05      * * * ksh -c '. ~/.profile 2>&1 >/dev/null;export gvsqw_JobName="Structure";$gvsqw_SQWareCentralPath/bin/sqwctl_TrtAuto.ksh -T oracle -A GatherStructureOn -F GenLstInstanceOn_SpecJob -Exec 2>&1 >$HOME/admin/SQWareCentral/logs/GatherStructureOracle.log'
 +
## Structures MySQL
 +
#15 05      * * * ksh -c '. ~/.profile 2>&1 >/dev/null;export gvsqw_JobName="Structure";$gvsqw_SQWareCentralPath/bin/sqwctl_TrtAuto.ksh -T mysql -A GatherStructureOn -F GenLstInstanceOn_SpecJob -Exec 2>&1 >$HOME/admin/SQWareCentral/logs/GatherStructureMySQL.log'
 +
## Structures PostgreSQL
 +
#30 05      * * * ksh -c '. ~/.profile 2>&1 >/dev/null;export gvsqw_JobName="Structure";$gvsqw_SQWareCentralPath/bin/sqwctl_TrtAuto.ksh -T postgres -A GatherStructureOn -F GenLstInstanceOn_SpecJob -Exec 2>&1 >$HOME/admin/SQWareCentral/logs/GatherStructurePostgreSQL.log'
 +
## Structures MsSql
 +
#45 05      * * * ksh -c '. ~/.profile 2>&1 >/dev/null;export gvsqw_JobName="Structure";$gvsqw_SQWareCentralPath/bin/sqwctl_TrtAuto.ksh -T mssql -A GatherStructureOn -F GenLstInstanceOn_SpecJob -Exec 2>&1 >$HOME/admin/SQWareCentral/logs/GatherStructureMsSql.log'
 +
## Structures Sybase
 +
#00 06      * * * ksh -c '. ~/.profile 2>&1 >/dev/null;export gvsqw_JobName="Structure";$gvsqw_SQWareCentralPath/bin/sqwctl_TrtAuto.ksh -T sybase -A GatherStructureOn -F GenLstInstanceOn_SpecJob -Exec 2>&1 >$HOME/admin/SQWareCentral/logs/GatherStructureSybase.log'
 +
########################################################################################################################
 +
### Specific cron for Oracle (dbSQWare)
 +
############
 +
## Check started instances Oracle
 +
#00 06      * * * ksh -c '. ~/.profile 2>&1 >/dev/null;$gvsqw_SQWareCentralPath/bin/sqwctl_TrtAuto.ksh -T oracle -A sqwora_StartedInstancesOn.ksh -F GenLstUniqueOn -Exec 2>&1 >$HOME/admin/SQWareCentral/logs/StartedInstancesOracle.log'
 +
## Generate Awr reports in distant mode
 +
#10 09 * * * ksh -c '. ~/.profile 2>&1 >/dev/null;$gvsqw_SQWareCentralPath/bin/sqwctl_TrtAuto.ksh -T oracle -A sqwora_GenerateAwrDist.ksh -F sqwora_GenLstInstanceAwrAll.sql -Exec 2>&1 >$HOME/admin/SQWareCentral/logs/ind_ora_awr_dist.log'
 +
## Monitor Awr reports in distant mode
 +
#05 * * * * ksh -c '. ~/.profile 2>&1 >/dev/null;$gvsqw_SQWareCentralPath/bin/sqwctl_TrtAuto.ksh -T oracle -A sqwora_MonitorHourlyAwrDist.ksh -F sqwora_GenLstInstanceAwrAll.sql -Exec 2>&1 >$HOME/admin/SQWareCentral/logs/ind_ora_awr_monitor_dist.log'
 +
## Generate Statspack reports in distant mode
 +
#10 09 * * * ksh -c '. ~/.profile 2>&1 >/dev/null;$gvsqw_SQWareCentralPath/bin/sqwctl_TrtAuto.ksh -T oracle -A sqwora_GenerateStatspackOld.ksh -F Liste9iStatspack.sql -Exec 2>&1 >$HOME/admin/SQWareCentral/logs/ind_Statspack_awr_old.log'
 +
## Monitor Statspack reports in distant mode
 +
#05 * * * * ksh -c '. ~/.profile 2>&1 >/dev/null;$gvsqw_SQWareCentralPath/bin/sqwctl_TrtAuto.ksh -T oracle -A sqwora_MonitorStatspackOld.ksh -F Liste9iStatspack.sql -Exec 2>&1 >$HOME/admin/SQWareCentral/logs/ind_ora_Statspack_monitor_old.log'
 +
########################################################################################################################
 +
### Specific cron for MySql (dbSQWare)
 +
############
 +
## Rotate slow query
 +
#00 07 * * * ksh -c '. ~/.profile 2>&1 >/dev/null;$gvsqw_SQWareCentralPath/bin/sqwctl_TrtAuto.ksh -T mysql -A sqwmys_SlowQuery.ksh -F GenLstInstanceOn -Exec 2>&1 >$HOME/admin/SQWareCentral/logs/mysql_slowquery.log'
 +
## Async Rotate slow query
 +
#00 07 * * * ksh -c '. ~/.profile 2>&1 >/dev/null;export gvsqw_JobName="AsyncRotateLog";$gvsqw_SQWareCentralPath/bin/sqwctl_TrtAuto.ksh -T mysql -A sqwmys_SlowQueryAsync.ksh -F GenLstInstanceOn_SpecJob -Exec 2>&1 >$HOME/admin/SQWareCentral/logs/mysql_Async_slowquery.log'
 +
## Rotate error log
 +
#00 08 * * 6 ksh -c '. ~/.profile 2>&1 >/dev/null;$gvsqw_SQWareCentralPath/bin/sqwctl_TrtAuto.ksh -T mysql -A sqwmys_PurgeAlert.ksh -F GenLstInstanceOn -Exec 2>&1 >$HOME/admin/SQWareCentral/logs/mysql_errorlog.log'
 +
########################################################################################################################
 +
### Specific cron for MsSql (dbSQWare)
 +
############
 +
## Rotate errorlog
 +
#01 23 * * * ksh -c '. ~/.profile 2>&1 >/dev/null;$gvsqw_SQWareCentralPath/bin/sqwctl_TrtAuto.ksh -T mssql -A sqwmsq_RotateLog.ksh -F GenLstInstanceOn -Exec 2>&1 >$HOME/admin/SQWareCentral/logs/MssqlRotateLog.log'
 +
########################################################################################################################
 +
### Specific cron for update GLPI (dbSQWare)
 +
############
 +
## Update GLPI MYS_GLPI_PRD
 +
#10 10    * * * ksh -c '. ~/.profile 2>&1 >/dev/null;/home/dbsqware/dbSQWare/SQWareProduction/mysql/tools/sqwmys_UpdateGLPI.ksh -I MYS_GLPI_PRD -D glpi -F /home/dbsqware/dbSQWare/SQWareCentral/etc_cust/RefFileCMDB.csv -Dist 2>&1 >$HOME/admin/SQWareCentral/logs/MajGLPI_PRD_PRD'
 
</pre>
 
</pre>
Voir le contenu du fichier suivant :<br>
 
/home/dbsqware/dbSQWare/SQWareCentral/action/generic/etc/CrontabRef.cfg
 

Version actuelle datée du 15 avril 2024 à 11:01

Généralités


Attention.png
Warning:
Avant toutes choses, n'allez pas plus loin si vous n'avez pas lu la section "Concepts dbSQWare" !.


Limites de cette section

Cette section n’a pas la prétention de traiter tous les cas possibles d’installation et de paramétrage de dbSQWare.
Il ne faut pas perdre de vue qu’il s’agit d’un outil très souple qui est capable de s’adapter à bon nombre d’architectures.
Cette section est réservée à des DBA qui maîtrisent bien la partie Linux/Unix et le ksh. Il s’agit d’un guide à l’installation pour une personne déjà à l’aise avec ces parties.
Avant de dire « ça ne fonctionne pas », lisez bien le message d’erreur et réfléchissez à ce dont vous avez besoin au niveau du socle pour que les scripts fonctionnent. Par exemple, si vous n’arrivez pas à faire un sqlplus en ligne de commande pour vous connecter à votre instance Oracle, il n’y a pas de raison pour que les scripts arrivent à le faire (il n’y a rien de magique) !

Si un des chapitre ne fonctionne pas, n'allez pas plus loin, il faut d'abord corriger avant de continuer !

Nous vous conseillons de faire appel à un spécialiste de l’outil afin de définir avec vous quelle est la meilleure architecture d’installation adaptée à votre parc et à votre organisation du travail http://www.dbsqware.com. Des formations sont également disponibles chez des partenaires pour approfondir les différentes parties et les différentes configurations possibles.

Cette section se base sur une installation du point central sous Rocky Linux 8.7 64bits sur une VM (2 vCPU et 4 Go de RAM) avec 100 Go de disque (Permet de tenir 2 ans d'historique pour une centaine d'instances). Vous pouvez évidemment l’installer sur un autre type de Linux/Unix, il vous faudra alors adapter les commandes système proposées si nécessaire.
Il ne traite que de l’installation du socle central, pour les autres paramétrages, reportez-vous aux sections adéquates.

Ancienne version : Lien vers le socle CentOS 7

Rappel de la structure de l’outil

dbSQWare est composé de quatre modules complémentaires :

SQWareProduction	=> scripts shell d’exploitation (souvent en local sur la machine hébergeant le SGBD à gérer)
SQWareRepository	=> référentiel et stockage des indicateurs (database MySQL>=5.6 ou MariaDB>=10.1, MariaDB 10.6 conseillé)
SQWareCentral		=> centralisation des sources et lancement des commandes
SQWareWeb		=> interface graphique de restitution


Installation de l’infrastructure centrale

Pour rappel, ce document ne présente qu’une façon d’installer l’outil. Il existe de multiples configurations possibles.
Cette section présente une installation « compacte », c’est-à-dire l’installation des modules SQWareCentral, SQWareRepository et SQWareWeb sur la même machine que nous appellerons vmsqwarebox.
Cette machine hébergera également les sources de SQWareProduction.
Pour l’exploitation de MsSql, nous installerons également SQWareProduction MsSql (et FreeTds) sur cette même machine.
Vous pouvez évidemment l’installer sur un autre type de Linux/Unix, il vous faudra alors adapter les commandes système proposées.
L’installation peut également être réalisée en mode « distribué », c’est-à-dire chaque module sur sa propre machine ; il faudra alors adapter les configurations.
Nous allons voir l’installation pour Oracle (oracle), Sybase (sybase), Sql-Server (mssql), MySQL (mysql) et PostgreSQL (postgres).
N’utilisez que les commandes pour le(s) SGBD qui vous intéresse et/ou adaptez les commandes pour les autres SGBD.

Caractéristiques de la VM

Rocky Linux release 8.7 (Green Obsidian) 64 bits. (Ou 8.x >= 8.7)

Dimensionnement VM:

   2 vCPU
   4 Go de RAM
   2 Go de swap
 100 Go de disque


Vérification / mise en place des pré-requis

La majorité des commandes de ce chapitre sont passées avec le user unix root, soit parce que c’est nécessaire pour des installations « système », soit parce que l’on utilise des bouts de scripts qui passent les commandes en boucle sur tous les utilisateurs.
Adaptez les commandes si vous souhaitez faire l’installation pas à pas en vous connectant à chaque fois avec le bon utilisateur.
Il est primordial de suivre les commandes dans l’ordre et de vérifier à chaque fois que le résultat attendu est bien présent avant de passer à l’étape suivante, sinon, cela risque de bloquer et vous allez avoir du mal à trouver où.
En principe, toutes les commandes ont été testées et vous pouvez donc utiliser la bonne vieille méthode du copier/coller dans la majorité des cas.

Vérifications système

Vérification de la version de l’OS :

[root@vmsqwarebox ~]# cat /etc/redhat-release
Rocky Linux release 8.7 (Green Obsidian)


Configuration disque :

[root@vmsqwarebox ~]# vgs
  VG      #PV #LV #SN Attr   VSize   VFree
  data_vg   1   5   0 wz--n- <60.91g  20.83g
  root_vg   1   4   0 wz--n-  37.50g <20.48g

[root@vmsqwarebox ~]# df -h
Filesystem                   Size  Used Avail Use% Mounted on
devtmpfs                     1.9G     0  1.9G   0% /dev
tmpfs                        1.9G     0  1.9G   0% /dev/shm
tmpfs                        1.9G  8.7M  1.9G   1% /run
tmpfs                        1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/mapper/root_vg-root      10G  1.7G  8.4G  17% /
/dev/sda2                   1014M  245M  770M  25% /boot
/dev/sda1                    599M  5.8M  594M   1% /boot/efi
/dev/mapper/root_vg-var      5.0G  379M  4.7G   8% /var
/dev/mapper/data_vg-applis   5.0G   69M  5.0G   2% /applis
/dev/mapper/data_vg-data      15G  140M   15G   1% /data
/dev/mapper/data_vg-home      10G  105M  9.9G   2% /home
/dev/mapper/data_vg-backups   10G  105M  9.9G   2% /backups
tmpfs                        374M     0  374M   0% /run/user/0

[root@vmsqwarebox ~]# free
              total        used        free      shared  buff/cache   available
Mem:        3825740      314080     1493080        8868     2018580     3237608
Swap:       2097148           0     2097148


Mettre l’OS à la dernière version de patch :

[root@vmsqwarebox ~]# dnf update


Desactivation FW et SELinux :

# Desactivation du FW !
systemctl disable firewalld
systemctl stop firewalld

# Desactivation SELINUX
vi /etc/sysconfig/selinux
SELINUX=enforcing => SELINUX=disabled (reboot)

#Sans reboot
/usr/sbin/setenforce 0

#Verif
/usr/sbin/getenforce
Disabled


Préférez un serveur paramétré en anglais, c’est plus facile pour les messages d’erreur (au lieu du classique fr_FR.UTF-8) :

#Si besoin installation des locales
dnf install langpacks-en glibc-all-langpacks -y

#Passage en anglais (plus facile pour les messages !)
localectl
localectl set-locale LANG=en_US.UTF-8

[root@vmsqwarebox ~]# localectl
   System Locale: LANG=fr_FR.UTF-8
       VC Keymap: fr-oss
      X11 Layout: fr
     X11 Variant: oss
[root@vmsqwarebox ~]# localectl set-locale LANG=en_US.UTF-8
[root@vmsqwarebox ~]# localectl
   System Locale: LANG=en_US.UTF-8
       VC Keymap: fr-oss
      X11 Layout: fr
     X11 Variant: oss

#Clavier fr (temp)
loadkeys fr

#Une petite astuce, si votre clavier est en QWERTY, tapez les touches suivantes de votre clavier
loqdeys fr

localectl status
localectl list-keymaps | grep fr

localectl set-keymap fr
localectl set-x11-keymap fr

[root@vmsqwarebox ~]# localectl status
   System Locale: LANG=en_US.UTF-8
       VC Keymap: fr
      X11 Layout: fr


Install et activation du NTP (on utilise Chrony):

#Install et activation de Chrony
dnf install -y chrony

#Check config of chronyd (old ntpd)
cat /etc/chrony.conf

#Utilisez un pool de serveurs proche, ex:
pool 0.europe.pool.ntp.org iburst

#Start et activation du démarrage auto
systemctl enable --now chronyd

#If Firewalld is running, allow NTP service. NTP uses [123/UDP].
[root@vmsqwarebox ~]# firewall-cmd --add-service=ntp
success
[root@vmsqwarebox ~]# firewall-cmd --runtime-to-permanent
success

#Vérifier le status du service
[root@vmsqwarebox ~]# systemctl is-enabled chronyd
enabled

[root@vmsqwarebox ~]# systemctl status chronyd
  chronyd.service - NTP client/server
   Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled; vendor preset: enabled)
...


Installation de RPM qui vont servir par la suite !

dnf install -y open-vm-tools
dnf install -y nmap bind-utils ksh rsync openssh-server openssl-devel openssl
dnf install -y epel-release binutils net-tools telnet control-center gcc gcc-c++ glibc glibc-common libstdc++ libstdc++-devel make sysstat mailx sendmail postfix cyrus-sasl cyrus-sasl-lib cyrus-sasl-plain

##Conf et activation du mail (modif relayhost)
vi /etc/postfix/main.cf
systemctl start postfix
systemctl enable postfix
systemctl status postfix

## Pour client Oracle 19c (mais pas que !)
dnf install -y zip unzip git wget mlocate nano binutils.x86_64 gcc.x86_64 gcc-c++.x86_64 glibc.i686 glibc.x86_64 glibc-devel.i686 glibc-devel.x86_64 ksh libaio.i686 libaio.x86_64 libaio-devel.i686 libaio-devel.x86_64 libgcc.i686 libgcc.x86_64 libstdc++.i686 libstdc++.x86_64 libstdc++-devel.i686 libstdc++-devel.x86_64 libXi.i686 libXi.x86_64 libXtst.i686 libXtst.x86_64 make.x86_64 sysstat.x86_64


Un certain nombre de RPM sont nécessaires pour l’installation d’Oracle, il convient donc de vérifier leur présence et de les installer si nécessaire.
Exemple de commande de vérification :

$ rpm -q gcc
gcc-4.4.7-4.el6.x86_64


Il peut être utile de connaitre l'architecture des RPM installés (x86_64 et i386 par exemple). Pour ce faire, il suffit de modifier le format d'affichage par défaut en éditant le fichier ~/.rpmmacros .

$ echo '%_query_all_fmt %%{name}-%%{version}-%%{release} (%%{arch})' >>~/.rpmmacros
$ rpm -q gcc
gcc-4.el6  4.4.7  (x86_64)


Ou directement dans la ligne de commande :

$ rpm -q gcc --queryformat '%{name}-%{release}  %{version}  (%{arch})\n'
gcc-4.el6  4.4.7  (x86_64)


Exemple de sortie lorsqu’un RPM manque :

[root@vmsqwarebox /]# rpm -q libXpm-devel
le paquetage libXpm-devel n'est pas installé
[root@vmsqwarebox /]# unset LANG
[root@vmsqwarebox /]# rpm -q libXpm-devel
package libXpm-devel is not installed


Exemple d’installation d’un RPM manquant :

[root@vmsqwarebox /]# rpm -ivh libXpm-devel-3.5.5-3.x86_64.rpm
warning: libXpm-devel-3.5.5-3.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing...                ########################################### [100%]
   1:libXpm-devel           ########################################### [100%]


Le plus simple, installation directe avec yum (nécessite un repo) :

[root@vmsqwarebox /]# dnf install ksh binutils compat-db gcc gcc-c++ glibc glibc-common gnome-libs libstdc++ libstdc++-devel make pdksh sysstat

Gestion des users unix

Création des groups et users unix avec ksh comme shell par défaut (à adapter si vous souhaitez par exemple fixer les uid et gid) :

groupadd dba
useradd -g dba -s /bin/bash -d /home/dbsqware dbsqware
useradd -g dba -s /bin/bash -d /home/oracle oracle
useradd -g dba -s /bin/bash -d /home/sybase sybase
useradd -g dba -s /bin/bash -d /home/mssql mssql
useradd -g dba -s /bin/bash -d /home/mysql mysql
useradd -g dba -s /bin/bash -d /home/postgres postgres


Affectation d’un mot de passe aux users :

passwd dbsqware
passwd oracle
passwd sybase
passwd mssql
passwd mysql
passwd postgres


Exemple de sortie :

[root@vmsqwarebox /]# passwd dbsqware
Changing password for user dbsqware.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
[root@vmsqwarebox /]# passwd oracle
Changing password for user oracle.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
...


Modification des droits sur leur home directory :

cd /home
chmod 750 dbsqware oracle sybase mssql mysql postgres


Vérification des home directories  :

[root@vmsqwarebox /]# ls -l /home/
total 32
drwxr-x--- 3 dbsqware dba 4096 mai 13 21:54 dbsqware
drwxr-x--- 3 mssql    dba 4096 mai 13 21:54 mssql
drwxr-x--- 3 mysql    dba 4096 mai 13 21:54 mysql
drwxr-x--- 3 oracle   dba 4096 mai 13 21:54 oracle
drwxr-x--- 3 postgres dba 4096 mai 13 21:54 postgres
drwxr-x--- 3 sybase   dba 4096 mai 13 21:54 sybase


Mettre le user dbsqware en 'sudo ALL' pour faciliter la mise en œuvre et l'exploitation  :

## Add sudo
cp -p /etc/sudoers /etc/sudoers.back
vi /etc/sudoers

root@vmsqwarebox:/root # grep wheel /etc/sudoers
## Allows people in group wheel to run all commands
# %wheel        ALL=(ALL)       ALL
%wheel  ALL=(ALL)       NOPASSWD: ALL

id dbsqware
uid=1000(dbsqware) gid=1000(dba) groups=1000(dba)

usermod -a -G wheel dbsqware
id dbsqware
uid=1000(dbsqware) gid=1000(dba) groups=1000(dba),10(wheel)


Mise en place des arborescences

Préparation des arborescences /applis pour installation des binaires applicatifs (si nécessaire) :

mkdir -p /applis/oracle
chown oracle:dba /applis/oracle
mkdir -p /applis/sybase
chown sybase:dba /applis/sybase
mkdir -p /applis/mssql
chown mssql:dba /applis/mssql
mkdir -p /applis/mysql
chown mysql:dba /applis/mysql
mkdir -p /applis/dbsqware
chown dbsqware:dba /applis/dbsqware
mkdir -p /applis/postgres
chown postgres:dba /applis/postgres


Préparation des arborescences /data pour stocker les données (si nécessaire) :

mkdir -p /data/oracle
chown oracle:dba /data/oracle
mkdir -p /data/sybase
chown sybase:dba /data/sybase
mkdir -p /data/mssql
chown mssql:dba /data/mssql
mkdir -p /data/mysql
chown mysql:dba /data/mysql
mkdir -p /data/dbsqware
chown dbsqware:dba /data/dbsqware
mkdir -p /data/postgres
chown postgres:dba /data/postgres
mkdir -p /data/dbsqware/admin/AsynchronousFiles /data/dbsqware/admin/AsynchronousFilesTmp /data/dbsqware/admin/AsynchronousFilesArch
chown -R dbsqware:dba /data/dbsqware/admin
# Spécifique pour les rapports AWR et/ou Statspack
mkdir -p /data/oracle/awr
chown oracle:dba /data/oracle/awr
# Spécifique pour les slow query files
mkdir -p /data/mysql/SlowQuery
chown mysql:dba /data/mysql/SlowQuery


Préparation des arborescences /backups pour stocker les backups (si nécessaire) :

mkdir -p /backups/oracle
chown oracle:dba /backups/oracle
mkdir -p /backups/sybase
chown sybase:dba /backups/sybase
mkdir -p /backups/mssql
chown mssql:dba /backups/mssql
mkdir -p /backups/mysql
chown mysql:dba /backups/mysql
mkdir -p /backups/dbsqware
chown dbsqware:dba /backups/dbsqware
mkdir -p /backups/postgres
chown postgres:dba /backups/postgres


Vérification des arborescences :

[root@vmsqwarebox /]# ls -l /applis
total 40
drwxr-xr-x 2 dbsqware dba 4096 mai 14 04:06 dbsqware
drwxr-xr-x 2 mssql    dba 4096 mai 14 04:06 mssql
drwxr-xr-x 2 mysql    dba 4096 mai 14 04:06 mysql
drwxr-xr-x 2 oracle   dba 4096 mai 14 04:06 oracle
drwxr-xr-x 2 sybase   dba 4096 mai 14 04:06 sybase
drwxr-xr-x 2 postgres dba 4096 mai 14 04:06 postgres
[root@vmsqwarebox /]# ls -l /data
total 40
drwxr-xr-x 2 dbsqware dba 4096 mai 14 04:06 dbsqware
drwxr-xr-x 2 mssql    dba 4096 mai 14 04:06 mssql
drwxr-xr-x 2 mysql    dba 4096 mai 14 04:06 mysql
drwxr-xr-x 2 oracle   dba 4096 mai 14 04:06 oracle
drwxr-xr-x 2 sybase   dba 4096 mai 14 04:06 sybase
drwxr-xr-x 2 postgres dba 4096 mai 14 04:06 postgres
[root@vmsqwarebox /]# ls -l /backups
total 32
drwxr-xr-x 2 dbsqware dba 4096 mai 14 04:06 dbsqware
drwxr-xr-x 2 mssql    dba 4096 mai 14 04:06 mssql
drwxr-xr-x 2 mysql    dba 4096 mai 14 04:06 mysql
drwxr-xr-x 2 oracle   dba 4096 mai 14 04:06 oracle
drwxr-xr-x 2 sybase   dba 4096 mai 14 04:06 sybase
drwxr-xr-x 2 postgres dba 4096 mai 14 04:06 postgres


Clés ssh

Préparation des clés ssh pour dbsqware
Directement depuis le user root :

su - dbsqware -c "
ssh-keygen -t rsa -N '' -f \$HOME/.ssh/id_rsa
chmod go-w \$HOME
cat \$HOME/.ssh/id_rsa.pub >>\$HOME/.ssh/authorized_keys
chmod 700 \$HOME/.ssh
chmod 600 \$HOME/.ssh/authorized_keys"


Si tout a fonctionné correctement, le user dbsqware doit être capable de se connecter en ssh sur lui-même (ceci pour plus de souplesse dans certains cas de paramétrages).
Test si cela fonctionne :

[root@vmsqwarebox home]# su - dbsqware
$ ssh dbsqware@vmsqwarebox
The authenticity of host 'vmsqwarebox (85.31.222.135)' can't be established.
RSA key fingerprint is bd:e1:d0:d3:c5:2d:94:8f:df:f0:a2:50:42:8d:ad:1d.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ' vmsqwarebox,bbb.xx.aaa.yyy' (RSA) to the list of known hosts.
Last login: Mon May 14 04:33:25 2012 from vmsqwarebox
$ exit
Connection to vmsqwarebox closed.


Pour chacun des users unix que vous avez créés précédemment, vous devez répéter la même opération mais en autorisant également le user dbsqware à se connecter sur eux (pour lancer les scripts en automatique).
De la même façon que tout à l’heure, soit vous le faites sur chaque user à la main, soit vous utilisez le bout de script suivant en tant que root :

lvsqw_SshKey_dbsqware=$(cat /home/dbsqware/.ssh/id_rsa.pub)
for lvsqw_User in `echo 'oracle sybase mssql mysql postgres dbsqware'`
do
su - $lvsqw_User -c "
ssh-keygen -t rsa -N '' -f \$HOME/.ssh/id_rsa
chmod go-w \$HOME
cat \$HOME/.ssh/id_rsa.pub >>\$HOME/.ssh/authorized_keys
echo '$lvsqw_SshKey_dbsqware' >>\$HOME/.ssh/authorized_keys
chmod 700 \$HOME/.ssh
chmod 600 \$HOME/.ssh/authorized_keys"
done
ssh-keygen -t rsa -N '' -f $HOME/.ssh/id_rsa
chmod go-w $HOME
echo "$lvsqw_SshKey_dbsqware" >>$HOME/.ssh/authorized_keys
chmod 700 $HOME/.ssh
chmod 600 $HOME/.ssh/authorized_keys


Test si cela fonctionne (exemple pour le user oracle à répéter pour tous les users) :

[root@vmsqwarebox home]# su - dbsqware
$ id
uid=500(dbsqware) gid=500(dba) groupes=500(dba) context=...
$ ssh oracle@vmsqwarebox
$ id
uid=501(oracle) gid=500(dba) groupes=500(dba) context=user_u:system_r:unconfined_t
$ ssh oracle@vmsqwarebox
The authenticity of host 'vmsqwarebox (85.31.222.135)' can't be established.
RSA key fingerprint is bd:e1:d0:d3:c5:2d:94:8f:df:f0:a2:50:42:8d:ad:1d.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'vmsqwarebox,bbb.xx.aaa.yyy' (RSA) to the list of known hosts.
Last login: Mon May 14 05:07:47 2012 from vmsqwarebox
$ id
uid=501(oracle) gid=500(dba) groupes=500(dba) context=user_u:system_r:unconfined_t
$ exit
Connection to vmsqwarebox closed.
$ exit
Connection to vmsqwarebox closed.


Les fichiers d’environnement

Mise en place d'un .bash_profile et .bashrc pour tous les users :

cat <<EOFCAT >/tmp/.vimrc
syntax off
set mouse-=a
set noai
EOFCAT
cat <<EOFCAT >/tmp/.bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
	. ~/.bashrc
fi

# User specific environment and startup programs
export PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/ccs/bin:/usr/local/sbin:/usr/openwin/bin
EOFCAT
cat <<EOFCAT >/tmp/.bashrc
# Source global definitions
# if [ -f /etc/bashrc ] && [ \$(ps -p \$\$|grep -c 'bash') -ne 0 ] ; then
	# . /etc/bashrc
# fi
unalias ls 2>/dev/null
alias ll='ls -al'
alias lt='ls -alrt'
set -o vi
EOFCAT
chmod 777 /tmp/.bash_profile /tmp/.bashrc /tmp/.vimrc

for lvsqw_User in `echo 'dbsqware oracle sybase mssql mysql postgres root'`
do
su - $lvsqw_User -c "
cp /tmp/.vimrc \$HOME/.
cp /tmp/.bash_profile \$HOME/.
cp /tmp/.bashrc \$HOME/.
cd
ln -s .bash_profile .profile
chmod 640 \$HOME/.vimrc
chmod 640 \$HOME/.bash_profile
chmod 640 \$HOME/.bashrc"
done
rm -f /tmp/.bash_profile /tmp/.bashrc

cat <<EOCAT >> $HOME/.bashrc
export PS1="\`id| cut -d')' -f1| cut -d'(' -f2\`@\$(hostname|cut -d '.' -f1):"'\$PWD # '
EOCAT

for lvsqw_User in `echo 'oracle sybase mssql mysql postgres'`
do
su - $lvsqw_User -c "
ln -s /home/dbsqware/dbSQWare/SQWareProduction \$HOME/SQWareProduction"
done


Vérification que tous les fichiers ont été créés :

[root@vmsqwarebox ~]# ls -al /home/*
/home/dbsqware:
total 56
drwxr-x--- 3 dbsqware dba  4096 May 14 05:30 .
drwxr-xr-x 7 root     root 4096 May 14 03:57 ..
-rw-r----- 1 dbsqware dba    48 May 14 05:30 .bashrc
-rw-r----- 1 dbsqware dba    13 May 14 05:30 .bash_profile
-rw------- 1 dbsqware dba   746 May 14 05:26 .sh_history
drwx------ 2 dbsqware dba  4096 May 14 04:37 .ssh
-rw------- 1 dbsqware dba   922 May 14 05:23 .viminfo

/home/mssql:
total 40
drwxr-x--- 3 mssql dba  4096 May 14 05:30 .
drwxr-xr-x 7 root  root 4096 May 14 03:57 ..
-rw-r----- 1 mssql dba    48 May 14 05:30 .bashrc
-rw-r----- 1 mssql dba    13 May 14 05:30 .bash_profile
drwx------ 2 mssql dba  4096 May 14 05:16 .ssh

/home/mysql:
total 40
drwxr-x--- 3 mysql dba  4096 May 14 05:30 .
drwxr-xr-x 7 root  root 4096 May 14 03:57 ..
-rw-r----- 1 mysql dba    48 May 14 05:30 .bashrc
-rw-r----- 1 mysql dba    13 May 14 05:30 .bash_profile
drwx------ 2 mysql dba  4096 May 14 05:16 .ssh

/home/oracle:
total 48
drwxr-x--- 3 oracle dba  4096 May 14 05:30 .
drwxr-xr-x 7 root   root 4096 May 14 03:57 ..
-rw-r----- 1 oracle dba    48 May 14 05:30 .bashrc
-rw-r----- 1 oracle dba    13 May 14 05:30 .bash_profile
-rw------- 1 oracle dba    76 May 14 05:12 .sh_history
drwx------ 2 oracle dba  4096 May 14 05:16 .ssh

/home/sybase:
total 40
drwxr-x--- 3 sybase dba  4096 May 14 05:30 .
drwxr-xr-x 7 root   root 4096 May 14 03:57 ..
-rw-r----- 1 sybase dba    48 May 14 05:30 .bashrc
-rw-r----- 1 sybase dba    13 May 14 05:30 .bash_profile
drwx------ 2 sybase dba  4096 May 14 05:16 .ssh

/home/postgres:
total 40
drwxr-x--- 3 sybase dba  4096 May 14 05:30 .
drwxr-xr-x 7 root   root 4096 May 14 03:57 ..
-rw-r----- 1 sybase dba    48 May 14 05:30 .bashrc
-rw-r----- 1 sybase dba    13 May 14 05:30 .bash_profile
drwx------ 2 sybase dba  4096 May 14 05:16 .ssh


Ajout de la partie source de l’environnement SQWareProduction dans le .profile de tous les users :

for lvsqw_Sgbd  in `echo 'oracle sybase mssql mysql postgres'`
do
lvsqw_tmp=$(echo "$lvsqw_Sgbd"|sed 's,\([a-z][a-z][a-z]\)[a-z]*,\1,')
lvsqw_tmp1=$(echo "$lvsqw_tmp"|sed 's,\([a-z]\)[a-z]*,\1,'|tr '[a-z]' '[A-Z]')
lvsqw_tmp2=$(echo "$lvsqw_tmp"|sed 's,[a-z]\([a-z][a-z]\)[a-z]*,\1,')
TrigrammeSgbd="${lvsqw_tmp1}$lvsqw_tmp2"
if [ "$TrigrammeSgbd" = "Mss" ]
then
TrigrammeSgbd="Msq"
lvsqw_tmp="msq"
elif [ "$TrigrammeSgbd" = "Pos" ]
then
TrigrammeSgbd="Pg"
lvsqw_tmp="pg"
fi
echo "Traitement du SGBD: '$lvsqw_Sgbd', '$TrigrammeSgbd'"
cat <<EOFCAT >> /home/$lvsqw_Sgbd/.bash_profile

# env dbSQWare pour $lvsqw_Sgbd, must stay at end of .bash_profile
export gvsqw_Env='PRD'
export gvsqw_${TrigrammeSgbd}Bin=\$HOME/SQWareProduction/$lvsqw_Sgbd/bin
lvsqw_IsTerminal=\$(tty 2>&1 >/dev/null;echo \$?)
if [ "\$lvsqw_IsTerminal" = "0" ] && [ -r \$gvsqw_${TrigrammeSgbd}Bin/../etc/.profile_confort ]
then
. \$gvsqw_${TrigrammeSgbd}Bin/../etc/.profile_confort
fi
EOFCAT
done
EOFCAT
done

Installation des sources sur vmsqwarebox

La majorité des commandes de ce chapitre sont passées avec le user unix dbsqware.
Il est primordial de suivre les commandes dans l’ordre et de vérifier à chaque fois que le résultat attendu est bien présent avant de passer à l’étape suivante, sinon, cela risque de bloquer et vous allez avoir du mal à trouver où. Vérifiez également que tous les points précédents ont été exécutés sans erreur.

Nous allons dans cette partie déployer l’ensemble des scripts de dbSQWare.
Il y aura :

  • SQWareCentral, qui servira notamment à l’exécution automatique de scripts sur l’ensemble du parc.
  • SQWareProduction, il s’agit en fait du référentiel de source de ce module. Il faudra le paramétrer aux normes de votre parc pour ensuite le déployer.
  • SQWareRepository, il s’agit des scripts sql vous permettant de créer le repository.
  • SQWareWeb, c’est la partie de restitution graphique fonctionnant avec apache et PHP, à déployer sur la même machine que SQWareCentral où à déplacer sur une autre, c’est au choix.


Extraction de l’archive

Récupérez les sources et placez-les dans /tmp :

[root@vmsqwarebox ~]# su - dbsqware
$ cd
$ tar zxvf /tmp/dbSQWare_full_latest.tgz
dbSQWare/
dbSQWare/SQWareProduction/
dbSQWare/SQWareProduction/ingres/
dbSQWare/SQWareProduction/ingres/tools/
...
dbSQWare/SQWareProduction/oracle/
dbSQWare/SQWareProduction/oracle/tools/
dbSQWare/SQWareProduction/oracle/tools/sqwora_RmanConfigure.ksh
...
dbSQWare/SQWareCentral/
dbSQWare/SQWareCentral/lib/
dbSQWare/SQWareCentral/lib/sqwctl_MenuAction.lib
...
dbSQWare/SQWareWeb/custom_ref/
dbSQWare/SQWareWeb/custom_ref/ingres/
...
<br>
Vérification que l’on a bien les quatre modules installés :
<pre>
$ ls -l ~dbsqware/dbSQWare
total 12
lrwxrwxrwx  1 dbsqware dba   24 Apr 15 13:04 generic -> SQWareProduction/generic
drwxr-x--- 16 dbsqware dba 4096 Apr 15 13:04 SQWareCentral
drwxr-x--- 15 dbsqware dba  192 Apr 15 13:04 SQWareProduction
drwxr-x--- 17 dbsqware dba 4096 Apr 15 13:04 SQWareRepository
drwxr-x--- 11 dbsqware dba  185 Apr 15 13:04 SQWareWeb
-rwxr-x---  1 dbsqware dba    9 Apr 15 13:04 SQW_VERSION


Configuration du profile du user dbsqware pour SQWareCentral

Mise en place des conf par defaut:

cat <<EOFCAT >/home/dbsqware/dbSQWare/SQWareCentral/etc_cust/sqwctl_GlobalVar.cfg
export gvsqw_AsynchronousFilesDir="/data/dbsqware/admin/AsynchronousFiles"
export gvsqw_AsynchronousFilesDirTmp="/data/dbsqware/admin/AsynchronousFilesTmp"
export gvsqw_AsynchronousFilesDirArch="/data/dbsqware/admin/AsynchronousFilesArch"
EOFCAT
chmod 750 /home/dbsqware/dbSQWare/SQWareCentral/etc_cust/sqwctl_GlobalVar.cfg

cat <<EOFCAT >> $HOME/.bashrc
alias my="mysql --defaults-file='/home/dbsqware/dbSQWare/SQWareCentral/etc_cust/.my_SQWareRepository.cnf' -A"
alias ora="ssh \$gvsqw_SshOptionsInteractive oracle@\$(hostname)"
alias msq="ssh \$gvsqw_SshOptionsInteractive mssql@\$(hostname)"
alias mys="ssh \$gvsqw_SshOptionsInteractive mysql@\$(hostname)"
EOFCAT

#Mettre la bonne adresse mail !
cat <<EOFCAT >/home/dbsqware/dbSQWare/SQWareProduction/generic/etc_cust/sqwgen_GlobalVar.cfg
#Put NoNail in gvsqw_GlobalMail if you don't want to send mail on error
export gvsqw_GlobalMail='dba@mydomane.com'

#for SQWareWeb
export gvsqw_WebDbaURL="http://$(hostname)"
export gvsqw_WebDbaUser='dbsqware@$(hostname)'

EOFCAT
chmod 750 /home/dbsqware/dbSQWare/SQWareProduction/generic/etc_cust/sqwgen_GlobalVar.cfg

ln -s /data/dbsqware/admin/AsynchronousFilesArch /home/dbsqware/dbSQWare/SQWareWeb/sqw_logdir
ln -s /data/mysql/SlowQuery sqw_mysql_slow
ln -s /data/oracle/awr sqw_oracle_awr


Ajoutez les lignes suivantes dans le .bash_profile du user unix dbsqware afin qu’il source l’environnement de SQWareCentral.

dbsqware@vmsqwarebox:/home/dbsqware $ cat .bash_profile
## SQWareCentral
export gvsqw_Env='PRD'
export gvsqw_SQWareCentralPath=$HOME/dbSQWare/SQWareCentral
export gvsqw_SQWareProductionPath=$HOME/dbSQWare/SQWareProduction
. $gvsqw_SQWareCentralPath/etc/.profile


Pour vérifier si tout est OK, sourcez le .bash_profile du user et vous devez avoir un résultat de ce type:

dbsqware@vmsqwarebox:/home/dbsqware $ . ~/.bash_profile
     _ _    ____   _____        __
  __| | |__/ ___| / _ \ \      / /_ _ _ __ ___
 / _` | '_ \___ \| | | \ \ /\ / / _` | '__/ _ \
| (_| | |_) |__) | |_| |\ V  V / (_| | | |  __/
 \__,_|_.__/____/ \__\_\ \_/\_/ \__,_|_|  \___|

###################################################################
# SQWareCentral module of dbSQWare
# Copyright (C) 2010-2023, dbSQWare (www.dbsqware.com)
# dbSQWare is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# CGU/CGA for more details.
# You should have received a copy of the CGU/CGA
# along with this program.  If not, see <http://www.dbsqware.com/licenses/>.
# For information : contact@dbsqware.com or www.dbsqware.com
###################################################################
# SqwVersion=2023.04

# For help type 'show <-h|-help|--help>'


Installation/configuration de SQWareRepository

Ce chapitre présente la création du référentiel, il s’agit d’une database MySQL>=5.6 ou MariaDB>=10.1 ... (MariaDB 10.6 sur la sqwarebox fournie)
La volumétrie va dépendre du nombre d’instances traitées, et de certains autres paramétrages comme la profondeur d’historique ou le nombre de lignes de logs remonté en base. Dans la majorité des cas, pour une centaine d’instances gérées et les paramètres par défaut de dbSQWare, la volumétrie ne devrait pas excéder 15 Go en pleine charge (données purement indicatives).

Les installations vont se faire à partir des scripts sql se trouvant dans :

~dbsqware/dbSQWare/SQWareRepository/$TypeSgbd/sql/*.sql


Installation de la database MariaDB

Ce chapitre part du principe que vous avez déjà un client MySQL/MariaDB installé sous le user mysql. Ce client servira également au module SQWareCentral pour se connecter à SQWareRepository et générer les listes d’instances à traiter, par exemple.
Pour exemple, vous pouvez regarder l'annexe « Installation rapide d’une instance MariaDB » afin de créer l’instance qui hébergera le référentiel sur le point central. Attention, il ne s’agit que d’un exemple, celui-ci peut être créé n’importe où.
On part du principe que nous sommes connectés sous unix avec le user mysql pour ce chapitre.

Création de la database et des users (exemple) :

[root@vmsqwarebox ~]# su - mysql
$ mysql -uroot -pPassMys
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 5
Server version: 10.6.12-MariaDB-log MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [dbsqware_db]> create database dbsqware_db;
Query OK, 1 row affected (0.00 sec)

MariaDB [dbsqware_db]> GRANT ALL PRIVILEGES ON dbsqware_db.* TO 'dbsqware_user'@'localhost' IDENTIFIED BY 'PassMys';
Query OK, 0 rows affected (0.01 sec)

MariaDB [dbsqware_db]> GRANT ALL PRIVILEGES ON dbsqware_db.* TO 'dbsqware_user'@'%' IDENTIFIED BY 'PassMys';
Query OK, 0 rows affected (0.00 sec)


Création des objets

La création des objets va se faire à partir du user unix dbsqware. Pour cela, il faut tout d’abord créer le fichier de paramétrage pour l’accès à MariaDB/MySQL.

Voici le contenu que doit avoir le fichier (adaptez-le avec vos credentials) :

dbsqware@vmsqwarebox:/home/dbsqware $ cat /home/dbsqware/dbSQWare/SQWareCentral/etc_cust/.my_SQWareRepository.cnf
[client]
host = vmsqwarebox
port = 3306
database = dbsqware_db
user = dbsqware_user
password = PassMys

chmod 640 /home/dbsqware/dbSQWare/SQWareCentral/etc_cust/.my_SQWareRepository.cnf


Test de connexion au référentiel (avec le fichier) :

dbsqware@vmsqwarebox:/home/dbsqware $ mysql --defaults-file='/home/dbsqware/dbSQWare/SQWareCentral/etc_cust/.my_SQWareRepository.cnf'
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 5
Server version: 10.6.12-MariaDB-log MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [dbsqware_db]> show databases;
+--------------------+
| Database           |
+--------------------+
| dbsqware_db        |
| information_schema |
+--------------------+
2 rows in set (0.001 sec)


Installation du référentiel :

dbsqware@vmsqwarebox:/home/dbsqware $ dbspatch


     _ _    ____   _____        __
  __| | |__/ ___| / _ \ \      / /_ _ _ __ ___
 / _` | '_ \___ \| | | \ \ /\ / / _` | '__/ _ \
| (_| | |_) |__) | |_| |\ V  V / (_| | | |  __/
 \__,_|_.__/____/ \__\_\ \_/\_/ \__,_|_|  \___|

###################################################################
# SQWareCentral module of dbSQWare
# Copyright (C) 2010-2023, dbSQWare (www.dbsqware.com)
# dbSQWare is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# CGU/CGA for more details.
# You should have received a copy of the CGU/CGA
# along with this program.  If not, see <http://www.dbsqware.com/licenses/>.
# For information : contact@dbsqware.com or www.dbsqware.com
###################################################################
# SqwVersion=2023.04

# For help type 'show <-h|-help|--help>'


Create tree for custom dir ...
create directory /home/dbsqware/dbSQWare/SQWareCentral/../SQWareWeb/exploit/bin/../../custom
create directory /home/dbsqware/dbSQWare/SQWareCentral/../SQWareWeb/exploit/bin/../../custom/images

Copy ref files to custom if not exists ...
copy /home/dbsqware/dbSQWare/SQWareCentral/../SQWareWeb/exploit/bin/../../custom_ref/authentication_custom.php on /home/dbsqware/dbSQWare/SQWareCentral/../SQWareWeb/exploit/bin/../../custom/authentication_custom.php
copy /home/dbsqware/dbSQWare/SQWareCentral/../SQWareWeb/exploit/bin/../../custom_ref/images/client.png on /home/dbsqware/dbSQWare/SQWareCentral/../SQWareWeb/exploit/bin/../../custom/images/client.png
copy /home/dbsqware/dbSQWare/SQWareCentral/../SQWareWeb/exploit/bin/../../custom_ref/GlobalHead.html on /home/dbsqware/dbSQWare/SQWareCentral/../SQWareWeb/exploit/bin/../../custom/GlobalHead.html
copy /home/dbsqware/dbSQWare/SQWareCentral/../SQWareWeb/exploit/bin/../../custom_ref/sqwareweb.ini on /home/dbsqware/dbSQWare/SQWareCentral/../SQWareWeb/exploit/bin/../../custom/sqwareweb.ini
Sourcing sqwctl_Global.lib v2023.04 SQWareCentral (dbSQWare) ...
touch: cannot touch '/.sqw': Permission denied


eval global vars:
gvsqw_RsyncDefaultUser="$gvsqw_UserExec@RsyncHost" => gvsqw_RsyncDefaultUser=dbsqware@RsyncHost

Checks before install:
SQWareRepository source to install: /home/dbsqware/dbSQWare/SQWareRepository
Connect string to repository:
MySQL_Command="mysql --defaults-file='/home/dbsqware/dbSQWare/SQWareCentral/etc_cust/.my_SQWareRepository.cnf'"
[client]
host = vmsqwarebox
port = 3306
database = dbsqware_db
user = dbsqware_user
10.6.12-MariaDB-log
Major version of Repository, 106, 10.6.12

Checks for install mode (full or patch):
You will make a full install.

Do you want to full install SQWareRepository [y-Y-o-O-n-N]?
Tapez y

...
...
...

Job Install SQWareRepository proceeded successfully

Begining     : 2023-04-15 12:13:31
End          : 2023-04-15 12:15:04
Duration     : 00:01:33


Installation/configuration de SQWareWeb

Ce chapitre présente l’installation et la configuration de SQWareWeb.
Nous partons du principe que apache et PHP 8.2 sont installés et opérationnels pour se connecter à MariaDB/MySQL (PHP >= 5.2 et 7.x fonctionnent également en principe).
Pour déployer apache et PHP 8.2, vous pouvez regarder l'annexe « Installation rapide de apache et PHP 8.2 ». Attention, il ne s’agit que d’un exemple, reportez-vous aux sites officiels des outils pour plus d’information https://httpd.apache.org/ et https://www.php.net/.

On part du principe que nous sommes connectés sous unix avec le user dbsqware pour ce chapitre. Nous allons voir une installation de SQWareWeb sur la même machine que SQWareCentral, mais ceci n’est pas une obligation.

Mise en place

Nous avons vu lorsque nous avons déployé les sources de dbSQWare que nous possédions l’arborescence /home/dbsqware/dbSQWare/SQWareWeb. Celle-ci contient les sources du site que nous allons mettre en place.

Vérification des arborescences :

$ cd /home/dbsqware/dbSQWare/SQWareWeb
$ ls -l
total 24
drwxr-x---  2 dbsqware dba   70 Nov 29 19:46 css
drwxr-xr-x  3 dbsqware dba   64 Dec  8 14:50 custom
drwxr-x---  3 dbsqware dba   64 Nov 29 19:46 custom_ref
drwxr-x---  6 dbsqware dba   60 Nov 29 19:46 exploit
drwxr-x--- 19 dbsqware dba  322 Nov 29 19:46 htdocs
drwxr-x---  2 dbsqware dba 8192 Nov 29 19:46 images
drwxr-x--- 14 dbsqware dba  177 Nov 29 19:46 jobs_help
drwxr-x---  5 dbsqware dba  239 Nov 29 19:46 js
drwxr-x---  3 dbsqware dba 4096 Nov 29 19:46 lib
-rwxr-x---  1 dbsqware dba   22 Nov 29 19:46 phpinfo.php
lrwxrwxrwx  1 dbsqware dba   42 Dec  8 14:54 sqw_logdir -> /data/dbsqware/admin/AsynchronousFilesArch
lrwxrwxrwx  1 dbsqware dba   21 Dec  8 14:54 sqw_mysql_slow -> /data/mysql/SlowQuery
lrwxrwxrwx  1 dbsqware dba   16 Dec  8 14:54 sqw_oracle_awr -> /data/oracle/awr
drwxr-x---  2 dbsqware dba  214 Nov 29 19:46 templates
-rwxr-x---  1 dbsqware dba 1274 Nov 29 19:46 test.php


Conf http

Mettez en place le VirtualHost apache pour le site (si vous ne tournez qu'en http). Encore une fois, il ne s’agit ici que d’un exemple que vous pouvez customiser (avec le user root, adaptez si besoin).

$ cat /etc/httpd/conf.d/httpd-vhosts.conf
<Directory "/home/dbsqware/dbSQWare/SQWareWeb">
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>
<Directory "/data/oracle/awr">
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>
<VirtualHost *:80>
    DocumentRoot /home/dbsqware/dbSQWare/SQWareWeb
    ServerName vmsqwarebox
    ServerAlias vmsqwarebox vmsqwareboxRocky8 webdba
</VirtualHost>

[root@vmsqwarebox ~]# systemctl restart httpd



Conf https (attention, vous devez mettre un certificat ssl en place)

Mettez en place le VirtualHost apache pour le site (si vous ne tournez en https). Encore une fois, il ne s’agit ici que d’un exemple que vous pouvez customiser (avec le user root, adaptez si besoin).

#To Redirect All HTTP Traffic To HTTPS
$ cat /etc/httpd/conf.d/redirect_http.conf
<VirtualHost _default_:80>
    ServerName vmsqwarebox
    ServerAlias vmsqwarebox vmsqwareboxRocky8 webdba
	Redirect permanent / https://webdba/
</VirtualHost>

#vhost
$ cat /etc/httpd/conf.d/httpd-vhosts.conf
<Directory "/home/dbsqware/dbSQWare/SQWareWeb">
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>
<Directory "/data/oracle/awr">
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>
<VirtualHost *:443>
    DocumentRoot /home/dbsqware/dbSQWare/SQWareWeb
    ServerName vmsqwarebox
    ServerAlias vmsqwarebox vmsqwareboxRocky8 webdba
</VirtualHost>

[root@vmsqwarebox ~]# systemctl reload httpd


Personnalisation

Paramétrez l’accès au référentiel (SQWareRepository) pour SQWareWeb dans le fichier suivant :

vi /home/dbsqware/dbSQWare/SQWareWeb/custom/sqwareweb.ini
[db]
MysqlHost="vmsqwarebox"
MysqlUser="dbsqware_user"
MysqlPass="newpassWeb"


Remplacez le fichier suivant par votre logo :

/home/dbsqware/dbSQWare/SQWareWeb/custom/images/client.png


Vous devez maintenant pouvoir afficher la page web suivante http://vmsqwarebox (avec votre logo) :
SQWareWeb.png
Cet affichage vous permet de valider si le socle est paramétré correctement pour le web.

En cas d’erreur, vous pouvez jouer avec les paramètres de « debug » du sqwareweb.ini afin de tenter de trouver le problème :

;debug=true
;debug_before_connectdb=true
;debug_connectdb_error=true


Paramétrages spécifiques

Pour Oracle

Si vous mettez en place la génération des rapports AWR avec SQWareProduction (attention aux licences), vous devez créer un lien symbolique à la racine du site vers le répertoire contenant les rapports statiques (paramétré dans SQWareProduction pour Oracle).

$ cd /home/dbsqware/dbSQWare/SQWareWeb
$ ln -s /data/oracle/awr sqw_oracle_awr
$ ls -l sqw_oracle_awr
lrwxrwxrwx 1 dbsqware dba 16 jun 12 19:01 sqw_oracle_awr -> /data/oracle/awr


Pour MySql

Si vous mettez en place la rotation des fichiers SlowQuery avec SQWareProduction (uniquement disponible sous unix), vous devez créer un lien symbolique à la racine du site vers le répertoire contenant les rapports statiques (paramétré dans SQWareProduction pour MySql).

$ cd /home/dbsqware/dbSQWare/SQWareWeb
$ ln -s /data/mysql/SlowQuery sqw_mysql_slow
$ ls -l sqw_mysql_slow
lrwxrwxrwx 1 dbsqware dba 21 jun 12 19:05 sqw_mysql_slow -> /data/mysql/SlowQuery


Droits d’accès à SQWareWeb

Pour accéder à la console SQWareWeb, vous devez paramétrer les droits d’accès.
Il existe trois niveaux d’accès :

  • En lecture (accès uniquement aux indicateurs)
  • En admin (accès avec droits de modification du paramétrage SQWareRepository)
  • En lecture/admin (accès en lecture seule au paramétrage SQWareRepository)


Un compte d’admin est créé par défaut à l’installation :

User = default_admin
Pass = YBHim9Ty_PSOvahtSxAU_5SX3QSoNFaC


Vous avez deux façons de gérer les droits, par l’interface d’admin de SQWareWeb avec un user possédant le droit admin ou directement par ordres sql en database.

Par la console d’admin

Allez dans la console d’admin, soit directement :

http://vmsqwarebox/admin/all/access/adminAccessLogins_general.html

Soit en cliquant sur l'icône « admin » :

AdminConsole.png
Puis « Access » et « Login » …

Directement en sql

Suppression du user d’admin par défaut :

delete from tsqw_AdminLoginsPrivs where id_usr_grantee=1;
delete from tsqw_AdminLogins where username='default_admin';

Création d’un user de visu :
insert into tsqw_AdminLogins (username,lastname,firstname,passwd, cre_date, upd_date, pwd_date, dbaname)
values ('viewer', 'Viewer', 'Viewer', SHA1('View!Sec@'), now(), now(), now(), 'init');

Création d’un user d’admin :
insert into tsqw_AdminLogins (username,lastname,firstname,passwd, cre_date, upd_date, pwd_date, dbaname)
values ('myadmin', 'Adm', 'My', SHA1('P@dm!n'), now(), now(), now(), 'init')
;
insert into tsqw_AdminLoginsPrivs (id_usr_grantee,id_grp_granted,dbaname,comments,upd_date)
select id_usr_grantee, id_grp_granted, dbaname, comments, upd_date
from
	(select id_usr as id_usr_grantee from tsqw_AdminLogins where username='myadmin') gadm,
	(select id_grp as id_grp_granted from tsqw_AdminGroups where groupname='DBA') gdba,
	(select 'myadmin' as dbaname, 'Init dbSQWare' as comments, now() as upd_date from dual) com
;

Crontab du user dbsqware unix pour SQWareCentral

Voir le contenu du fichier suivant :
/home/dbsqware/dbSQWare/SQWareCentral/etc/CrontabRef.cfg

Voici la cron classique que l’on met en place sur le user dbsqware :

###########################
## mm(0-59) hh(0-23) dd(1-31) MM(0-12) DAY(0-sunday, 1-monday, ...) command
## Generic cron for SQWareCentral (dbSQWare)
############
# Generate all ref files (RefFileInstances,RefFileDb,RefFileCMDB,...)
00 02,08    * * * ksh -c '. ~/.profile 2>&1 >/dev/null;$gvsqw_SQWareCentralPath/bin/sqwctl_GenRef_AllFiles.ksh 2>&1 >$HOME/admin/SQWareCentral/logs/sqwctl_GenRef_AllFiles.log'
# Check indicators
00 07       * * * ksh -c '. ~/.profile 2>&1 >/dev/null;$gvsqw_SQWareCentralPath/bin/sqwctl_CheckIndicators.ksh 2>&1 >$HOME/admin/SQWareCentral/logs/sqwctl_CheckIndicators.log'
# Gather indicators
00 03       * * * ksh -c '. ~/.profile 2>&1 >/dev/null;$gvsqw_SQWareCentralPath/bin/sqwctl_GatherIndicators.ksh 2>&1 >$HOME/admin/SQWareCentral/logs/sqwctl_GatherIndicators.log'
# Retry gather indicators if not exists
00 09,12,17 * * * ksh -c '. ~/.profile 2>&1 >/dev/null;$gvsqw_SQWareCentralPath/bin/sqwctl_GatherIndicators.ksh -Repind -NoMail 2>&1 >$HOME/admin/SQWareCentral/logs/sqwctl_GatherIndicators_Repind.log'
############
# Retrieve async files from a dir (configure sqwctl_LoopRetrieveAsynchronousFilesGlobal.cfg in cetc)
20 *        * * * ksh -c '. ~/.profile 2>&1 >/dev/null;$gvsqw_SQWareCentralPath/bin/sqwctl_LoopRetrieveAsynchronousFilesGlobal.ksh 2>&1 >$HOME/admin/SQWareCentral/logs/sqwctl_LoopRetrieveAsynchronousFilesGlobal.log'
# Retrieve async files from all instances
15 *        * * * ksh -c '. ~/.profile 2>&1 >/dev/null;$gvsqw_SQWareCentralPath/bin/sqwctl_LoopRetrieveAsynchronousFiles.ksh 2>&1 >$HOME/admin/SQWareCentral/logs/sqwctl_LoopRetrieveAsynchronousFiles.log'
45 07,08,09,10,11,12,13,14,15,16,17,18  * * * ksh -c '. ~/.profile 2>&1 >/dev/null;$gvsqw_SQWareCentralPath/bin/sqwctl_LoopRetrieveAsynchronousFiles.ksh 2>&1 >$HOME/admin/SQWareCentral/logs/sqwctl_LoopRetrieveAsynchronousFiles.log'
# Exec async files from all instances
30 *        * * * ksh -c '. ~/.profile 2>&1 >/dev/null;$gvsqw_SQWareCentralPath/bin/sqwctl_LoopExecAsynchronousFiles.ksh 2>&1 >$HOME/admin/SQWareCentral/logs/sqwctl_LoopExecAsynchronousFiles.log'
10,50 07,08,09,10,11,12,13,14,15,16,17,18  * * * ksh -c '. ~/.profile 2>&1 >/dev/null;$gvsqw_SQWareCentralPath/bin/sqwctl_LoopExecAsynchronousFiles.ksh 2>&1 >$HOME/admin/SQWareCentral/logs/sqwctl_LoopExecAsynchronousFiles.log'
########################################################################################################################
### Gather Structures (dbSQWare)
############
## Structures Oracle
#00 05       * * * ksh -c '. ~/.profile 2>&1 >/dev/null;export gvsqw_JobName="Structure";$gvsqw_SQWareCentralPath/bin/sqwctl_TrtAuto.ksh -T oracle -A GatherStructureOn -F GenLstInstanceOn_SpecJob -Exec 2>&1 >$HOME/admin/SQWareCentral/logs/GatherStructureOracle.log'
## Structures MySQL
#15 05       * * * ksh -c '. ~/.profile 2>&1 >/dev/null;export gvsqw_JobName="Structure";$gvsqw_SQWareCentralPath/bin/sqwctl_TrtAuto.ksh -T mysql -A GatherStructureOn -F GenLstInstanceOn_SpecJob -Exec 2>&1 >$HOME/admin/SQWareCentral/logs/GatherStructureMySQL.log'
## Structures PostgreSQL
#30 05       * * * ksh -c '. ~/.profile 2>&1 >/dev/null;export gvsqw_JobName="Structure";$gvsqw_SQWareCentralPath/bin/sqwctl_TrtAuto.ksh -T postgres -A GatherStructureOn -F GenLstInstanceOn_SpecJob -Exec 2>&1 >$HOME/admin/SQWareCentral/logs/GatherStructurePostgreSQL.log'
## Structures MsSql
#45 05       * * * ksh -c '. ~/.profile 2>&1 >/dev/null;export gvsqw_JobName="Structure";$gvsqw_SQWareCentralPath/bin/sqwctl_TrtAuto.ksh -T mssql -A GatherStructureOn -F GenLstInstanceOn_SpecJob -Exec 2>&1 >$HOME/admin/SQWareCentral/logs/GatherStructureMsSql.log'
## Structures Sybase
#00 06       * * * ksh -c '. ~/.profile 2>&1 >/dev/null;export gvsqw_JobName="Structure";$gvsqw_SQWareCentralPath/bin/sqwctl_TrtAuto.ksh -T sybase -A GatherStructureOn -F GenLstInstanceOn_SpecJob -Exec 2>&1 >$HOME/admin/SQWareCentral/logs/GatherStructureSybase.log'
########################################################################################################################
### Specific cron for Oracle (dbSQWare)
############
## Check started instances Oracle
#00 06       * * * ksh -c '. ~/.profile 2>&1 >/dev/null;$gvsqw_SQWareCentralPath/bin/sqwctl_TrtAuto.ksh -T oracle -A sqwora_StartedInstancesOn.ksh -F GenLstUniqueOn -Exec 2>&1 >$HOME/admin/SQWareCentral/logs/StartedInstancesOracle.log'
## Generate Awr reports in distant mode
#10 09 * * * ksh -c '. ~/.profile 2>&1 >/dev/null;$gvsqw_SQWareCentralPath/bin/sqwctl_TrtAuto.ksh -T oracle -A sqwora_GenerateAwrDist.ksh -F sqwora_GenLstInstanceAwrAll.sql -Exec 2>&1 >$HOME/admin/SQWareCentral/logs/ind_ora_awr_dist.log'
## Monitor Awr reports in distant mode
#05 * * * * ksh -c '. ~/.profile 2>&1 >/dev/null;$gvsqw_SQWareCentralPath/bin/sqwctl_TrtAuto.ksh -T oracle -A sqwora_MonitorHourlyAwrDist.ksh -F sqwora_GenLstInstanceAwrAll.sql -Exec 2>&1 >$HOME/admin/SQWareCentral/logs/ind_ora_awr_monitor_dist.log'
## Generate Statspack reports in distant mode
#10 09 * * * ksh -c '. ~/.profile 2>&1 >/dev/null;$gvsqw_SQWareCentralPath/bin/sqwctl_TrtAuto.ksh -T oracle -A sqwora_GenerateStatspackOld.ksh -F Liste9iStatspack.sql -Exec 2>&1 >$HOME/admin/SQWareCentral/logs/ind_Statspack_awr_old.log'
## Monitor Statspack reports in distant mode
#05 * * * * ksh -c '. ~/.profile 2>&1 >/dev/null;$gvsqw_SQWareCentralPath/bin/sqwctl_TrtAuto.ksh -T oracle -A sqwora_MonitorStatspackOld.ksh -F Liste9iStatspack.sql -Exec 2>&1 >$HOME/admin/SQWareCentral/logs/ind_ora_Statspack_monitor_old.log'
########################################################################################################################
### Specific cron for MySql (dbSQWare)
############
## Rotate slow query
#00 07 * * * ksh -c '. ~/.profile 2>&1 >/dev/null;$gvsqw_SQWareCentralPath/bin/sqwctl_TrtAuto.ksh -T mysql -A sqwmys_SlowQuery.ksh -F GenLstInstanceOn -Exec 2>&1 >$HOME/admin/SQWareCentral/logs/mysql_slowquery.log'
## Async Rotate slow query
#00 07 * * * ksh -c '. ~/.profile 2>&1 >/dev/null;export gvsqw_JobName="AsyncRotateLog";$gvsqw_SQWareCentralPath/bin/sqwctl_TrtAuto.ksh -T mysql -A sqwmys_SlowQueryAsync.ksh -F GenLstInstanceOn_SpecJob -Exec 2>&1 >$HOME/admin/SQWareCentral/logs/mysql_Async_slowquery.log'
## Rotate error log
#00 08 * * 6 ksh -c '. ~/.profile 2>&1 >/dev/null;$gvsqw_SQWareCentralPath/bin/sqwctl_TrtAuto.ksh -T mysql -A sqwmys_PurgeAlert.ksh -F GenLstInstanceOn -Exec 2>&1 >$HOME/admin/SQWareCentral/logs/mysql_errorlog.log'
########################################################################################################################
### Specific cron for MsSql (dbSQWare)
############
## Rotate errorlog
#01 23 * * * ksh -c '. ~/.profile 2>&1 >/dev/null;$gvsqw_SQWareCentralPath/bin/sqwctl_TrtAuto.ksh -T mssql -A sqwmsq_RotateLog.ksh -F GenLstInstanceOn -Exec 2>&1 >$HOME/admin/SQWareCentral/logs/MssqlRotateLog.log'
########################################################################################################################
### Specific cron for update GLPI (dbSQWare)
############
## Update GLPI MYS_GLPI_PRD
#10 10    * * * ksh -c '. ~/.profile 2>&1 >/dev/null;/home/dbsqware/dbSQWare/SQWareProduction/mysql/tools/sqwmys_UpdateGLPI.ksh -I MYS_GLPI_PRD -D glpi -F /home/dbsqware/dbSQWare/SQWareCentral/etc_cust/RefFileCMDB.csv -Dist 2>&1 >$HOME/admin/SQWareCentral/logs/MajGLPI_PRD_PRD'