Général:InstallationSocleRocky8

De WikiFr_dbSQWare
Révision datée du 19 décembre 2015 à 16:04 par Admin (discussion | contributions) (Par la console d’admin)
Aller à : navigation, rechercher

Généralités

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.
Ce document est réservé à des DBA qui maitrisent 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) ! 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 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.
Il ne traite que de l’installation du socle central, pour les autres paramétrages, reportez-vous aux sections adéquates.

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)
  • 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. Ce document 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) 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.

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 CentOS release 6.7 (Final) [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

Vérification que ksh est bien installé (et que ce n’est pas juste un lien vers bash !) : [root@vmsqwarebox /]# type ksh ksh is /bin/ksh [root@vmsqwarebox /]# ll /bin/ksh lrwxrwxrwx 1 root root 21 Nov 15 09:56 /bin/ksh -> /etc/alternatives/ksh [root@vmsqwarebox /]# ll /etc/alternatives/ksh lrwxrwxrwx 1 root root 10 Nov 15 09:56 /etc/alternatives/ksh -> /bin/ksh93 [root@vmsqwarebox /]# ll /bin/ksh93 -rwxr-xr-x 1 root root 1507648 Sep 22 16:58 /bin/ksh93


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) : $ cat /etc/sysconfig/i18n LANG="en_US.UTF-8" SYSFONT="latarcyrheb-sun16" 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. Attention, la liste peut ne pas être exhaustive, à vous d’adapter les commandes à votre situation. Liste des RPM connus comme étant nécessaires : • binutils • gcc • gcc-c++ • glibc • glibc-common • libstdc++ • libstdc++-devel • make • pdksh • sysstat • compat-db

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 /]# yum 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/ksh -d /home/dbsqware dbsqware useradd -g dba -s /bin/ksh -d /home/oracle oracle useradd -g dba -s /bin/ksh -d /home/sybase sybase useradd -g dba -s /bin/ksh -d /home/mssql mssql useradd -g dba -s /bin/ksh -d /home/mysql mysql

Affectation d’un mot de passe aux users : passwd dbsqware passwd oracle passwd sybase passwd mssql passwd mysql

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

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 sybase dba 4096 mai 13 21:54 sybase

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

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

  1. Spécifique pour les rapports AWR et/ou Statspack

mkdir -p /data/oracle/awr chown oracle:dba /data/oracle/awr

  1. 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 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 [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 [root@vmsqwarebox /]# ls -l /backups total 32 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

Clés ssh

Préparation des clés ssh et ménage pour dbsqware.

En se connectant avec le user dbsqware : su – dbsqware 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

Ou directement depuis le user root : 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"

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'` do su - $lvsqw_User -c "rm -f \$HOME/.bash* \$HOME/.zshrc \$HOME/.emacs rm -rf \$HOME/.mozilla \$HOME/.gnome2 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

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 .profile et .kshrc pour tous les users : cat <<EOFCAT >/tmp/.profile ENV='.kshrc' EOFCAT cat <<EOFCAT >/tmp/.kshrc alias ll='ls -al' alias lt='ls -alrt' set -o vi EOFCAT chmod 777 /tmp/.profile /tmp/.kshrc for lvsqw_User in `echo 'dbsqware oracle sybase mssql mysql'` do su - $lvsqw_User -c "cp /tmp/.profile \$HOME/. cp /tmp/.kshrc \$HOME/. chmod 640 \$HOME/.profile chmod 640 \$HOME/.kshrc" done rm -f /tmp/.profile /tmp/.kshrc

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 .kshrc -rw-r----- 1 dbsqware dba 13 May 14 05:30 .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 .kshrc -rw-r----- 1 mssql dba 13 May 14 05:30 .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 .kshrc -rw-r----- 1 mysql dba 13 May 14 05:30 .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 .kshrc -rw-r----- 1 oracle dba 13 May 14 05:30 .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 .kshrc -rw-r----- 1 sybase dba 13 May 14 05:30 .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'` 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" fi echo "Traitement du SGBD: '$lvsqw_Sgbd', '$TrigrammeSgbd'" cat <<EOFCAT >> /home/$lvsqw_Sgbd/.profile

  1. env dbSQWare pour $lvsqw_Sgbd, doit rester en fin de .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

Vérification de la mise à jour du .profile (exemple pour le user oracle à répéter pour tous les users) : [root@vmsqwarebox ~]# cat ~oracle/.profile ENV='.kshrc'

  1. 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


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 du chapitre §2.1 ont été exécutés.

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 sur le site http://www.dbsqware.com 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/ ...

Vérification que l’on a bien les quatre modules installés : $ ls -l ~dbsqware/dbSQWare total 32 drwxr-x--- 3 dbsqware dba 4096 avr 29 14:48 SQWareCentral drwxr-x--- 7 dbsqware dba 4096 avr 29 14:48 SQWareProduction drwxr-x--- 7 dbsqware dba 4096 avr 29 14:48 SQWareRepository drwxr-x--- 3 dbsqware dba 4096 avr 29 14:48 SQWareWeb

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.

dbsqware@vmsqwarebox:/home/dbsqware $ cat .profile

    1. 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 .profile du user et vous devez avoir un résultat de ce type: dbsqware@vmsqwarebox:/home/dbsqware $ . ~/.profile

  1. SQWareCentral module of dbSQWare is developped with GPL License 3.0
  2. Copyright (C) 2010-2015 OctopusDBA (www.octopusdba.com)
  3. This program comes with ABSOLUTELY NO WARRANTY.
  4. This is free software, and you are welcome to redistribute it
  5. under certain conditions; type 'show l' for details.
  6. You should have received a copy of the GNU General Public License
  7. along with this program. If not, see <http:/www.gnu.org/licenses/>.
  8. For information : contact@dbsqware.com or www.dbsqware.com
  1. SqwVersion=3.1.04
  1. 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 unique sous MySQL depuis la v3.0. 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).

Les installations vont se faire à partir des scripts sql se trouvant dans : ~dbsqware/dbSQWare/SQWareRepository/$TypeSgbd/sql/*.sql

Installation de la database MySql

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. Pour exemple, vous pouvez regarder le chapitre « § Installation rapide d’une instance MySql » en annexe 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 -S /var/lib/mysql/mysql.sock -uroot -PassMys Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 Server version: 5.6.27 MySQL Community Server (GPL)

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

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.

mysql> create database dbsqware_db; Query OK, 1 row affected (0.00 sec)

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

mysql> 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 à MySQL.

Voici le contenu que doit avoir le fichier (adaptez-le avec vos credentials) : dbsqware@vmsqwarebox:/home/dbsqware $ cat /home/dbsqware/dbSQWare/SQWareProduction/generic/etc_cust/.my_SQWareRepository.cnf [client] host = vmsqwarebox port = 3306 database = dbsqware_db user = dbsqware_user password = PassMys

Test de connexion au référentiel (avec le fichier) : dbsqware@vmsqwarebox:/home/dbsqware $ mysql --defaults-file='/home/dbsqware/dbSQWare/SQWareCentral/menu/../../generic/etc_cust/.my_SQWareRepository.cnf' Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 3 Server version: 5.6.27 MySQL Community Server (GPL)

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

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.

mysql> show databases;

Installation du référentiel : dbsqware@vmsqwarebox:/home/dbsqware $ $gvsqw_SQWareCentralPath/menu/sqwctl_InstallFullRepository.ksh

Sourcing sqwctl_Global.lib v3.1.03 SQWareCentral (dbSQWare GPL v3) ...

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

Checks before install: SQWareRepository source to install: /home/dbsqware/dbSQWare/SQWareRepository Connect string to repository: MySQL_Command="mysql --defaults-file='/home/dbsqware/dbSQWare/SQWareCentral/menu/../../generic/etc_cust/.my_SQWareRepository.cnf'" [client] host = vmsqwarebox port = 3306 database = dbsqware_db user = dbsqware_user

5.6.27 Major version of Repository, 56, 5.6.27

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

... ... ...

Treatment Install SQWareRepository proceeded successfully

Begining  : 16/11/2015 18:25:45 End  : 16/11/2015 18:26:27




Installation/configuration de SQWareWeb

Ce chapitre présente l’installation et la configuration de SQWareWeb. Nous partons du principe que apache et PHP 5.3 sont installés et opérationnels pour se connecter à MySQL. Pour déployer apache et PHP 5.3, vous pouvez regarder le chapitre « § Installation rapide de apache et PHP5.3 » en annexe. 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/.

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 96 drwxr-x--- 3 dbsqware dba 4096 avr 29 14:48 cache drwxr-x--- 2 dbsqware dba 4096 avr 29 14:48 css drwxr-x--- 8 dbsqware dba 4096 avr 29 14:48 custom_ref drwxr-x--- 6 dbsqware dba 4096 avr 29 14:48 exploit drwxr-x--- 7 dbsqware dba 4096 avr 29 14:48 htdocs drwxr-x--- 3 dbsqware dba 4096 avr 29 14:48 images drwxr-x--- 7 dbsqware dba 4096 avr 29 14:48 js drwxr-x--- 3 dbsqware dba 4096 avr 29 14:48 lib -rwxr-x--- 1 dbsqware dba 22 avr 29 14:48 phpinfo.php drwxr-x--- 2 dbsqware dba 4096 avr 29 14:48 scripts drwxr-x--- 2 dbsqware dba 4096 avr 29 14:48 templates -rwxr-x--- 1 dbsqware dba 1509 avr 29 14:48 test.php

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). $ cat /etc/httpd/conf.d/httpd-vhosts.conf <Directory "/home/dbsqware/dbSQWare/SQWareWeb">

   Options Indexes FollowSymLinks
   AllowOverride All
   Order allow,deny
   Allow from all

</Directory> <Directory "/data/oracle/awr">

   Options Indexes FollowSymLinks
   AllowOverride All
   Order allow,deny
   Allow from all

</Directory> <VirtualHost *:80>

   DocumentRoot /home/dbsqware/dbSQWare/SQWareWeb
   ServerName vmsqwarebox
   ServerAlias vmsqwarebox webdba

</VirtualHost> [root@vmsqwarebox ~]# service httpd restart Arrêt de httpd : [ OK ] Démarrage de httpd : [ OK ]

Mettez en place l’arborescence de customisation par défaut. $ cd /home/dbsqware/dbSQWare/SQWareWeb/exploit/bin $ ./PatchCustom.ksh $ cd /home/dbsqware/dbSQWare/SQWareWeb/custom $ ls -l total 92 drwxr-xr-x 2 dbsqware dba 4096 Jun 16 07:19 cassandra drwxr-xr-x 2 dbsqware dba 4096 Sep 2 2014 db2 drwxr-xr-x 2 dbsqware dba 4096 Sep 2 2014 generic -rwxr-x--- 1 dbsqware dba 32 Jul 20 2014 GlobalHead.html drwxr-xr-x 2 dbsqware dba 4096 Sep 2 2014 hbase -rwxr-x--- 1 dbsqware dba 7404 Jul 20 2014 home.html drwxr-xr-x 2 dbsqware dba 4096 Aug 28 10:30 images -rwxr-x--- 1 dbsqware dba 188 Aug 28 10:28 index.html -rwxr-x--- 1 dbsqware dba 2228 Aug 28 10:27 menu.ini ... ...

Personnalisation

Paramétrez l’accès au référentiel (SQWareRepository) dans le fichier suivant : /home/dbsqware/dbSQWare/SQWareWeb/custom/menu.ini Exemple pour notre installation : [db] MysqlHost="vmsqwarebox" MysqlUser="dbsqware_user" MysqlPass="PassMys" MysqlDb="dbsqware_db" MysqlPort=3306

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]) : /home/dbsqware/dbSQWare/SQWareWeb/custom/menu.ini Exemple pour ne faire apparaitre que MsSql, Oracle, Sybase et MySQL (laissez « generic » pour la vue multi-SGBD) : [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"

Remplacez le fichier suivant par votre logo : /home/dbsqware/dbSQWare/SQWareWeb/custom/images/client.png Vous pouvez personnaliser le message de la page d’accueil en modifiant le fichier suivant : /home/dbsqware/dbSQWare/SQWareWeb/custom/index.html Vous devez maintenant pouvoir afficher la page web suivante http://vmsqwarebox (avec votre logo) :


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 menu.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 = OctopusDBA.001

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/templates/adminAccessLogins_general.html

Soit en cliquant sur le petit icône entre « is connected » et « (log off) » : 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 pour SQWareCentral

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

############
### Generic cron for SQWareCentral
############
# 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 2>&1 >$HOME/admin/SQWareCentral/logs/sqwctl_GatherIndicators_Repind.log'

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