Publié dans Supervision, ubuntu

Installer Zabbix avec postgresql


Zabbix kezako ??? hé oui c’est un outil opensource pour faire de la supervision. Si vous n’êtes pas admin système aussi c’est pas grave je vais dans les lignes qui suives essayer d’expliquer de manière brève c’est quoi la supervision et son intérêt.

De manière générale, la supervision est un procédé permettant de surveiller le bon fonctionnement d’un système ou d’une activité. Ainsi elle est un moyen indispensable et incontournable dans l’atteinte des objectifs de l’administration des systèmes. Elle met en œuvre un ensemble de moyen pour :

  • Offrir aux utilisateurs un service de qualité.
  • Permettre l’évolution du système en incluant de nouvelles fonctionnalités.

  • Optimiser les performances des services pour les utilisateurs.

  • Permettre une utilisation maximale des ressources pour un coût minimal.

Ainsi de par sa fonction administrative, la supervision fournit les informations et indicateurs nécessaires au pilotage du système d’information de l’entreprise.

Si vous voulez en savoir plus GIYF. Sinon passons à l’attaque.

Prérequis :

  • Disposer d’une machine Ubuntu LTS 16.04 fraichement installée.
  • Installer Postgresql
  • Installer Apache2 Php7.0

Installation

La première chose à faire c’est d’ajouté le repository de zabbix dans notre système Ubuntu.

$ wget http://repo.zabbix.com/zabbix/3.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_3.4-1+xenial_all.deb
$ sudo dpkg -i zabbix-release_3.4-1+xenial_all.deb
$ sudo apt-get update

Ensuite nous allons installer zabbix pour la base postgresql

 $ sudo apt install zabbix-server-pgsql

Zabbix est bien installé maintenant passons à l’installation  l’interface Web

$ sudo apt-get install zabbix-frontend-php php7.0-pgsql

Nous devons préparer aussi la base de donnée pour la faire communiquer avec zabbix. Et dans ce cas nous allons créer un utilisateur zabbix dans postgresql dans un premier temps pour ensuite créer la base. Ainsi le rôle va gérer la base de donnée tel est la volonté de postgresql.

$ sudo -u postgres createuser --pwprompt zabbix
$ sudo -u postgres createdb -O zabbix zabbix

L’autre étape importante de l’installation de zabbix est l’importation des données dans la nouvelle base de données. Nous le ferons avec la commande suivante

zcat /usr/share/doc/zabbix-server-pgsql/create.sql.gz | sudo -u zabbix psql zabbix

Maintenant que la base est importée.Nous allons founir à zabbix les accés pour accéder à la base de donnée.Nous devons éditer le fichier suivant pour ce faire.

$ sudo nano /etc/zabbix/zabbix_server.conf

Parcourir le fichier et mettre les informations like this

DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=password for user zabbix

Nous pouvons aussi définir le timezone en éditant le fichier de configuration php qui contient tous les paramètres nécessaires pour l’interface web de zabbix.

sudo nano /etc/apache2/conf-enabled/zabbix.conf

Nous aurons un fichier comme ca :

<IfModule mod_php7.c>
    php_value max_execution_time 300
    php_value memory_limit 128M
    php_value post_max_size 16M
    php_value upload_max_filesize 2M
    php_value max_input_time 300
    php_value always_populate_raw_post_data -1
    php_value date.timezone Africa/Dakar
</IfModule>

Pour retrouver les timezone suppotés c’est par ici

Enfin redémarrer les services zabbix et apache2

$ sudo service zabbix restart
$ sudo service apache2 restart 

Pour terminer l’installation du frontend accéder à l’url  http://x.x.x.x/zabbix .
Remplacer x.x.x.x par l’adresse ip de votre serveur zabbix.

Aprés vous aurez une interface graphique avec une assistance de configuration assez intuitive.

Sélection_001

Ensuite l’étape 2  nous montre si toutes les dépendances sont satisfaites.

Sélection_002

Pour l’etape 3 nous allons mettre les accés pour se connecter à notre base de donnée.

Sélection_003

l’épta 4 est optionnel.

Sélection_004

Et l’avant derniére étape nous donne un résumé de notre configuration acutelle

Sélection_005

Si tout se passe bien nous aurons:

Sélection_006

Et  la configuration web finie  nous allons nous connecter à l’interface web.

Sélection_007
les accés par defaut sont:

Username = Admin
Password = zabbix

Voila CTQFM!

Publié dans debian, GNU/Linux, Langages, Linux, Python, webdev

Gérer vos environnements virtuels avec Virtualfish sur fish shell.


Hello  python guys  , je vous présente un outil que j’aime bien pour gérer mes environnements virtuels dans python.je veux nommer VirtualFish (VF) qui est un outil à base de virtualenv.Mais avant d’avancer je dois vous avouer qu’il faut laisser de coté le célèbre bash  et migrer vers fish shell qui est plutôt « intelligent ». Je vous parlerai pas de la différence entre bash et fish et laisse la tache à votre curiosité j’ai confiance en elle :-p . Personnellement je le trouve fabuleux comme shell et pour info je suis passé de bash à zsh+Ohmyzsh pour finalement rester sur Fish.

Prérequis

    • Disposer d’une machine GNU/LINUX
    • Installer fish
      sudo apt install fish 
    • Démarrer le shell  fish
      :~$ fish 
    • Nous aurons quelque chose comme:
      Welcome to fish, the friendly interactive shell
      elwan@elwan ~>
      

    Nous pouvons aussi garder les deux shells selon votre convenance et démarrer sur fish uniquement si nous le désirons et pour fixer fish comme shell par défaut ouvrons un terminal et exécutons la commande suivante:

     chsh -s `which fish` 

Installation de Virtual fish

Pour l’installer nous allons utiliser Pip et taper la commande suivante :

pip install virtualfish

Ajoutons la ligne suivante sur le ficher ~/.config/fish/config.fish

eval (python -m virtualfish) 

Configuration de fish

Virtualenv ne sera pas automatiquement intégrer dans notre invite de commande (prompt) fish pour l’ajouter nous allons taper la commande

funced fish_prompt 

Et ajoutons la ligne suivante n’importe ou dans le fichier ouvert

if
set -q VIRTUAL_ENV
echo -n -s (set_color -b blue white) "(" (basename "$VIRTUAL_ENV") ")" (set_color normal) " "
end

Ensuite pour sauvegarder les modifications sur le prompt nous pouvons taper la commande:

 funcsave fish_prompt 

Comment utiliser Virtualfish

Nous pouvons citer quels commandes utiles

  • vf new [] pour créer un environnement virtuel
  • on peut même spécifier la version de python que l’on souhaite utiliser ex :

vf new -p python3 test 
  • vf activate pour activer un environnement virtuel
  • vf activate test 
  • vf deactivate pour sortir de l’environnement virtuel en cours
  • vf deactivate 
  • vf ls pour lister l’ensemble des environnements virtuels qui ont été créés
  • vf ls  
  • vf rm pour supprimer un environnement virtuel
  • vf rm test 

    Pour avoir toutes les commandes disponibles nous pouvons juste de taper vf dans le prompt

    Ajouter les plugins

    Il existe des plugins natifs dans virtualfish et pour les avoir au niveau du prompt nous devons éditer le fichier de config et ajouter leur nom en argument à virtualfish.
    Ex:

    eval (python -m virtualfish compat_aliases auto_activation) 

    La liste des plugins que nous pouvons ajouter à VF.

      • compat_aliases

    Permet de d’avoir les commandes de virtualenvwrapper

      • auto_activation

    pour activer virtualenv dans certain repertoire automatiquement

      • global_requirements

    mettre une liste de dépendances dans un fichier requirements.txt et l’appliquer pour touts les nouveaux environnements

      • projects

    ajouter les fonctionnalités de gestion par projet

    Voilu voila et si vous avez des remarques ou des outils plus cool n’hésiter pas à partager en commentaire.

    Publié dans GNU/Linux, Linux, Serveurs, ubuntu

    Ajouter une machine Ubuntu(GNU/Linux) dans un domain Active Directory (LDAP)


    Les systèmes d’exploitation GNU/Linux  n’ont pas la cote en entreprise c’est un fait,tu as beau essayé  de les défendre les gens (la majorité des DSI) préférerons utiliser  le système Windows et d’après le peu d’expérience que j’ai eu je pense que cette manque de considération est du a une désinformation. Ils te dirons toujours que Linux c’est compliqué et l’argument qui revient souvent est le manque de support en cas de problème.En entreprise on cherche toujours quelqu’un a indexer en cas de problème et malheureusement c’est pas tres viril d’indexer une communauté de bénévoles qui offrent un peu de leur temps libre.

    Si jamais vous arrivez à convaincre  vos collègues sur les avantages d’avoir une ou des machines GNU/Linux l’authentification unique ou Single Sing-on en anglais ne doit pas être un frein.

    Dans mon scénario on a un contrôleur de domaine avec Active Directory et on veut ajouter des machines Ubuntu dans le domaine et bénéficier des avantages de active directory .

    Il existe plusieurs méthodes pour ajouter une machine Ubuntu dans AD mais sur ce tutoriel nous avons choisi de faire avec  le logiciel SSSD.Let’s setup.

    Pré-requis :

    • Avoir un serveur Active Directory fonctionnel
    • Installer ubuntu 16.04
    • S’assurer que votre controller de domaine est votre  premier resolver et le mettre dans /etc/resolv.conf
    • Dans ce tuto le domaine sera base.corp et notre serveur serverdc.base.corp

    Installation des logiciels

    sudo apt install samba sssd krb5-user ntp ntpdate
    

    Configuration de NTP

    la premiere étape consiste à synchroniser le serveur AD avec la machine cliente.C’est important pour la bonne marche de Keberos qui présente un dysfonctionnement s’il le serveur et la machine on un décalage de plus de 5 minutes.

    sudo service ntp stop
    sudo ntpdate -s serverdc.base.corp
    sudo service ntp start
    

    Configuration de /etc/hosts & /etc/resolv.conf

    /etc/hosts

    192.168.1.20 serverdc server.base.corp
    

    /etc/resolv.conf

    nameserver 192.168.1.20
    domains base.corp
    dns-search base.corp
    

    Configuration de Keberos

    [libdefaults]
    	default_realm = BASE.CORP
    [realms]
    	BASE.CORP = {
    		kdc = serverdc
    		admin_server=serverdc
    		default_domain=BASE.CORP
    	}
    [domain_realm]
    	.base.corp=BASE.CORP
    	 base.corp = BASE.CORP
    
    

    Toujours mettre en majuscule le domaine

    Configuration de SSSD

    Le fichier sssd.conf n’existe pas par défaut il faut donc le créer et le mettre dans /etc/sssd.

    
    sudo touch /etc/sssd/sssd.conf
    sudo chown root:root /etc/sssd/sssd.conf
    sudo chmod 600 /etc/sssd/sssd.conf
    

    Ensuite y mettre les éléments suivants.

    [sssd]
    services = nss, pam
    config_file_version = 2
    domains = BASE.CORP
    
    [domain/BASE.CORP]
    id_provider = ad
    override_homedir = /home/%d/%u
    access_provider = simple
    simple_allow_users =  [email protected],[email protected]
    simple_allow_groups = linux-admin,linux-users
    
    

    Les deux dernières lignes permettent de filtrer la connexion des utilisateurs donc ici seul les 2 utilisateurs appartenant aux groupes lister pourront s’authentifier.Au cas contraire tous les utilisateurs du domaine pourront le faire.

    Configuration de Samba

    Editer le fichier /etc/samba/smb.conf et modifier la configuration de Workgroup

    # Change this to the workgroup/NT-domain name your Samba server will part of
      # workgroup = WORKGROUP
    workgroup = BASE
    client signing = yes
    client use spnego = yes
    kerberos method = secrets and keytab
    realm = BASE.CORP
    security = ads
    
    

    Relancer les services

    sudo service smbd restart
    sudo service nmbd restart
    sudo service sssd restart
    sudo service ntp restart
    

    Ajouter la machine dans le domain

    Il faut s’assurer qu’on a un compte qui peut ajouter dans des machines dans le domaine.le mot de passe du compte vous sera demander.

    kinit adadmin
    

    Si tout se passe bien on ajouter la machine avec cette commande

    sudo net ads join -k
    

    Si vous avez l’erreur suivant « Failed to join domain: failed to lookup DC info for domain ‘BASE.CORP’ over rpc: An internal error occurred. »
    Essayer avec la commande suivante.

    sudo net ads join -U admin
    

    Maintenant aller regarder dans votre interface d’ajout de machine dans Active Directory vous y verrez la machine.

    Vous pouvez maintenant utiliser ssh ou vous connecter directement dans l’interface de login de votre machine

    par ssh

     ssh base\\admin@ipdevotremachine
    #ou
    ssh base@ipdevotremachine
    

    let’s enjoy.

    Publié dans Python

    Lister les nouveaux fichiers et supprimer les anciens dans un repertoire avec python


    Si vous sauvegardez des fichiers logs  dans un répertoire vous aurez peut être envi un jour de faire le ménage  en supprimant les anciens fichiers et garder les nouveaux.Je suis plus ou moins dans le même contexte et j’ai écrit un script en python qui fait mon bonheur.Si jamais ça peut vous être utile temps mieux :-).

    # Supprimer les anciens fichiers .dat et garder les n plus récents
    import os
    path = '/Users/elwan7/fichier_dat/'
    nombre_fichier_recent = 5
    
    os.chdir(path)
    fichiers = sorted(os.listdir(os.getcwd()), key=os.path.getmtime)
    fichiers_dat = []
    for element in fichiers:
        if element.endswith('.dat'):
            fichiers_dat.append(element)
    
    liste_nouveau = fichiers_dat[-nombre_fichier_recent:]
    file_to_delete = fichiers_dat
    for r in liste_nouveau:
        file_to_delete.remove(r)
    if file_to_delete:
        for i in file_to_delete:
            os.remove("{}".format(path + '/' + i))