Wiki Installation de Graylog2 sur Debian Wheezy

1
3
mai
2014

Sommaire

Suite à mon message sur le forum pour obtenir des conseils sur l'installation de graylog

Pré-requis

Openjdk-7-jre

Premièrement, il faut mettre à jour nos dépôts :
apt-get -y update

Nous téléchargeons openjdk-7-jre :
apt-get install openjdk-7-jre

Mongodb

apt-get install mongodb mongodb-server

Mongodb utilise le ports 27017 pour l'écoute et le port 28017 pour l'administration. Nous allons dans un premier temps créer un utilisateur graylog avec comme mot de passe mystrongpassword :

_$ mongo
MongoDB shell version: 1.4.4
url: test
connecting to: test
type "help" for help

use graylog2
switched to db graylog2
db.addUser('graylog', 'mystrongpassword')
{
"user" : "graylog",
"readOnly" : false,
"pwd" : "3a645a39bef99c8bba9c805e06536240"
}
db.auth('graylog', 'mystrongpassword')
1
exit_

Il n’est pas nécessaire de créer de base de données (collection) ou de table, mongodb les créera à la demande. Cependant il faudra démarrer le service :

/etc/init.d/mongodb

Tant que nous y sommes autant automatiser le lancement au démarrage du serveur :

update-rc.d mongodb defaults

Elasticsearch

Pour des raisons de performance Graylog2 utilise un système d’indexation de données via elasticsearch. Nous téléchargerons le package debian depuis le site d'elasticsearch :

wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-0.90.10.deb

Une fois le téléchargement terminé, nous installons le paquet avec l’utilitaire dpkg :

dpkg -i elasticsearch-0.90.10.deb

Il faudra apporter une modification au fichier de configuration d’elasticsearch situé dans /etc/elasticsearch/elasticsearch.yml :

echo 'cluster.name: graylog2' >> /etc/elasticsearch/elasticsearch.yml

Nous démarrons elasticsearch :

/etc/init.d/elasticsearch start

Remarques : Puisque nous avons installer elasticsearch via un paquet debian, nous n’avons pas besoin de créer un script de démarrage dans /etc/init.d contraitement à une installation via les sources (tar.gz).

Nous automatisons elasticsearch au démarrage :

update-rc.d elasticsearch defaults

Installation de Graylog2

Tous les paquets liés à Graylog2 seront installés dans le répertoire /opt du serveur.

Graylog2-server

Téléchargeons les sources de graylog2-server :

wget https://github.com/Graylog2/graylog2-server/releases/download/0.20.0/graylog2-server-0.20.0.tgz

tar xvzf graylog2-server-0.20.0.tgz

Renommons le répertoire graylog2-server-0.20.0 en graylog2-server :

mv /opt/graylog2-server-0.20.0 /opt/graylog2-server

Copier le fichier de configuration /opt/graylog2-server/graylog2.conf.example vers /etc/graylog2.conf

_cp /opt/graylog2-server/graylog2.conf.example /etc/graylog2.conf

Deux paramètres sont à modifier dans ce fichier /etc/graylog2.conf : password_secret et root_password_sha2 :

password_secret : il s’agit d’une clé secrète qui sera utilisée pour le cryptage des mots de passe. Vous pouvez générer une clé facilement avec la commande : pwgen -s 96 1

root_password_sha2 : il s’agit du hash SHA2 du mot de passe utilisé pour la première connexion. Vous pouvez le générer avec la commande : echo -n | shasum -a 256

Démarrer le serveur graylog2 pour vérifier qu'il n'y ait aucune erreur, le mode debug s'affichera dans la sortie standard. Il y a également un fichier de log dans /opt/graylog-server/ !

cd /opt/graylog-server/bin/ && ./graylog2ctl start

Copiez le contenu du script suivant dans /etc/init.d/graylog2 :

        #!/bin/bash
        ### BEGIN INIT INFO
        # Provides:          graylog2
        # Required-Start:    $all
        # Required-Stop:    $all
        # Default-Start:    2 3 4 5
        # Default-Stop:      0 1 6
        # Short-Description: Starts graylog2
        # Description:      Starts graylog2 using start-stop-daemon
        ### END INIT INFO

        NAME=graylog2
        GL_HOME=/opt/graylog2
        GL_PID=/tmp
        CMD=$1

        start() {
                echo "Starting $NAME ..."
                java -jar $GL_HOME/graylog2-server.jar &
        }

        stop() {
                PID=`cat $GL_PID/$NAME.pid`
                echo "Stopping $NAME ($PID) ..."
                kill $PID
        }

        restart() {
                echo "Restarting graylog2-server ..."
                stop
                start
        }

        case "$CMD" in
                start)
                        start
                        ;;
                stop)
                        stop
                        ;;
                restart)
                        restart
                        ;;
                *)
                        echo "Usage $0 {start|stop|restart}"
        esac

Donnez les droits d’execution au script /etc/init.d/graylog2 :

chmod +x /etc/init.d/graylog2

Pour automatiser le démarrage du serveur graylog2 :

update-rc.d graylog2 defaults

Graylog-web-interface

Téléchargeons les sources de graylog-web-interface
wget https://github.com/Graylog2/graylog2-web-interface/releases/download/0.20.0/graylog2-web-interface-0.20.0.tgz

Nous décompressons l’archive :
tar xvfz graylog2-web-interface-0.20.0.tgz

Nous nous déplaçons dans graylog2-web-interface-0.20.0 :
cd graylog2-web-interface-0.20.0/

Nous allons ensuite éditer le fichier de configuration conf/graylog2-web-interface.conf pour modifier 2 variables

graylog2-server.uris= »http://127.0.0.1:12900/ : il s’agit de la liste des serveurs graylog2 sur lesquels va se connecter l’interface. Dans notre cas, il suffit de mettre l’uri du serveur local application.secret : il s’agit d’une clé secrète. Comme plus haut, vous pouvez la générer avec la commande : pwgen -s 96 1

L’interface se démarre ensuite simplement en lançant le script bin/graylog2-web-interface ou comme ci-dessous pour lancer le script en arrière plan :
nohup bin/graylog2-web-interface &

Copiez le script suivant dans /etc/init.d/graylog2-web :

    #!/bin/bash
    ### BEGIN INIT INFO
    # Provides:          graylog2-web-interface
    # Required-Start:    $all
    # Required-Stop:    $all
    # Default-Start:    2 3 4 5
    # Default-Stop:      0 1 6
    # Short-Description: Starts graylog2-web-interface
    # Description:      Starts graylog2-web-interface using start-stop-daemon
    ### END INIT INFO

    NAME=graylog2-web-interface
    GL_HOME=/opt/graylog2-web-interface
    GL_PID=/tmp
    CMD=$1

    start() {
            echo "Starting $NAME ..."
            cd $GL_HOME/bin/ && ./graylog2-web-interface &
    }

    stop() {
            echo "Stopping $NAME ..."
            cd $GL_HOME/bin && pkill graylog2-web-interface
            #PID=`cat $GL_PID/$NAME.pid`
            #echo "Stopping $NAME ($PID) ..."
            #kill $PID
    }

    restart() {
            echo "Restarting graylog2-web-interface ..."
            stop
            start
    }

    case "$CMD" in
            start)
                    start
                    ;;
            stop)
                    stop
                    ;;
            restart)
                    restart
                    ;;
            *)
                    echo "Usage $0 {start|stop|restart}"
    esac

Rendez-executable de script :

Chmod +x /etc/init.d/graylog-web-interface

Automatisation du script au démarrage :

Update-rc.d graylog-web-interface defaults

Une fois démarré, le serveur est accessible via le port 9000 :
http://@IP:9000/

Envoyer un commentaire

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.