Benutzer-Werkzeuge

Webseiten-Werkzeuge


tachtler:graylog_centos_7

Inhaltsverzeichnis

graylog CentOS 7

Graylog ist eine vollständig integrierte Open-Source Protokoll-Management-Plattform für die Erfassung, Indizierung und Analyse von strukturierten und unstrukturierten Daten aus nahezu jeder Quelle. Graylog benötigt nachfolgende externe Komponenten:

Ab hier werden zur Ausführung nachfolgender Befehle root-Rechte benötigt. Um der Benutzer root zu werden, melden Sie sich bitte als root-Benutzer am System an, oder wechseln mit nachfolgendem Befehl zum Benutzer root:

$ su -
Password:

Voraussetzungen

Nachfolgende Voraussetzungen müssen vor der Installation von Graylog erfüllt sein, damit Graylog betrieben werden kann:

  • Installiertes JAVA z.B. OpenJDK ab der Version 1.7.0
  • Lauffähiger Datenbank-Server MongoDB ab der Version 2.0 oder höher
  • Lauffähiger Such-Server Elasticsearch ab der Version 1.7.x

Vorbereitung

Zur Installation von Graylog als rpm-Paket, müssen nachfolgende Repositories genutzt bzw. eingebunden werden:

Die Einbindung der einzelnen Repositories wird nachfolgend beschrieben:

Repository: EPEL

Nachfolgende Beschreibung bindet das Drittanbieter-Repository von EPEL ein, damit darüber die Installation von MongoDB erfolgen kann.

:!: HINWEIS - Auf das Einbinden des eigenen MongoDB-Repositorys soll hier verzichtet werden, da bei dem MongoDB-Repository keine Unterstützung für systemd unter CentOS in der Version 7.x gegeben ist und sich Änderungen im Bereich der Daemon/Dienst-Starts ab MongoDB in der Version 3.0.7 ergeben haben!

Repository: Elasticsearch

Nachfolgende Beschreibung bindet das Drittanbieter-Repository von Elasticsearch ein, damit darüber die Installation von Elasticsearch erfolgen kann.

Mit nachfolgendem Befehl muss in nachfolgendem Verzeichnis mit nachfolgendem Namen eine Konfigurationsdatei erstellt werden

  • /etc/yum.repos.d/elasticsearch.repo
# touch /etc/yum.repos.d/elasticsearch.repo

welche nachfolgenden Inhalt aufweisen sollte:

[elasticsearch-1.7]
name=Elasticsearch repository for 1.7.x packages
baseurl=http://packages.elastic.co/elasticsearch/1.7/centos
gpgcheck=1
gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch
enabled=1

Zur Absicherung der Installation aus den richtigen Quellen, sollte mit nachfolgendem Befehl der GPG-Schlüssel heruntergeladen werden

# wget -P /etc/pki/rpm-gpg https://packages.elastic.co/GPG-KEY-elasticsearch
--2015-11-03 09:52:08--  https://packages.elastic.co/GPG-KEY-elasticsearch
Resolving packages.elastic.co (packages.elastic.co)... 107.22.245.230, 184.73.233.109, 204.236.238.177, ...
Connecting to packages.elastic.co (packages.elastic.co)|107.22.245.230|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1768 (1.7K) [binary/octet-stream]
Saving to: ‘/etc/pki/rpm-gpg/GPG-KEY-elasticsearch’

100%[======================================>] 1,768       --.-K/s   in 0s      

2015-11-03 09:52:10 (134 MB/s) - ‘/etc/pki/rpm-gpg/GPG-KEY-elasticsearch’ saved [1768/1768]

und anschließend mit nachfolgendem Befehl importiert werden

# rpm --import /etc/pki/rpm-gpg/GPG-KEY-elasticsearch

* Es erfolgt keine Ausgabe, falls der Befehl ohne Fehler ausgeführt wurde!

Anschließend sollten gespeicherte Informationen über die Installationsquellen zurückgesetzt werden, indem nachfolgender Befehl diese Informationen löscht:

# yum clean all
Loaded plugins: changelog, priorities
Cleaning repos: base elasticsearch-1.7 epel extras updates
Cleaning up everything

Eine Überprüfung mit nachfolgendem Befehl, sollte die korrekte Einbindung des Repositorys bestätigen und in etwa eine Ausgabe wie die nachfolgende zur Anzeige bringen:

# yum list elasticsearch
Loaded plugins: changelog, priorities
77 packages excluded due to repository priority protections
Available Packages
elasticsearch.noarch               1.7.3-1                  elasticsearch-1.7

Repository: graylog

Nachfolgende Beschreibung bindet das Drittanbieter-Repository von Graylog ein, damit darüber die Installation von Graylog erfolgen kann.

Zur Installation des Drittanbieter-Repositorys von Graylog kann eine rpm-Paket mit nachfolgendem Befehl heruntergeladen werden:

# wget -P /tmp https://packages.graylog2.org/repo/packages/graylog-1.2-repository-el7_latest.rpm
--2015-11-03 11:51:41--  https://packages.graylog2.org/repo/packages/graylog-1.2-repository-el7_latest.rpm
Resolving packages.graylog2.org (packages.graylog2.org)... 54.247.96.254
Connecting to packages.graylog2.org (packages.graylog2.org)|54.247.96.254|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://graylog2-package-repository.s3.amazonaws.com/packages/graylog-1.2-repository-el7_latest.rpm?AWSAccessKeyId=AKIAIJSI6MCSPXFVDPIA&Expires=1446548501&Signature=5ynJzKX5n4lsNRqCpWfzl4K33AY%3D [following]
--2015-11-03 11:51:41--  https://graylog2-package-repository.s3.amazonaws.com/packages/graylog-1.2-repository-el7_latest.rpm?AWSAccessKeyId=AKIAIJSI6MCSPXFVDPIA&Expires=1446548501&Signature=5ynJzKX5n4lsNRqCpWfzl4K33AY%3D
Resolving graylog2-package-repository.s3.amazonaws.com (graylog2-package-repository.s3.amazonaws.com)... 54.231.129.48
Connecting to graylog2-package-repository.s3.amazonaws.com (graylog2-package-repository.s3.amazonaws.com)|54.231.129.48|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3108 (3.0K) [application/x-rpm]
Saving to: ‘/tmp/graylog-1.2-repository-el7_latest.rpm’

100%[======================================>] 3,108       --.-K/s   in 0.001s  

2015-11-03 11:51:41 (3.28 MB/s) - ‘/tmp/graylog-1.2-repository-el7_latest.rpm’ saved [3108/3108]

Das soeben heruntergeladene rpm-Paket graylog-1.2-repository-el7_latest.rpm kann dann mit nachfolgendem Befehl installiert werden:

# yum localinstall /tmp/graylog-1.2-repository-el7_latest.rpm 
Loaded plugins: changelog, priorities
Examining /tmp/graylog-1.2-repository-el7_latest.rpm: graylog-1.2-repository-el7-1.2.0-4.noarch
Marking /tmp/graylog-1.2-repository-el7_latest.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package graylog-1.2-repository-el7.noarch 0:1.2.0-4 will be installed
--> Finished Dependency Resolution

Changes in packages about to be updated:


Dependencies Resolved

================================================================================
 Package                Arch   Version Repository                          Size
================================================================================
Installing:
 graylog-1.2-repository-el7
                        noarch 1.2.0-4 /graylog-1.2-repository-el7_latest 1.1 k

Transaction Summary
================================================================================
Install  1 Package

Total size: 1.1 k
Installed size: 1.1 k
Is this ok [y/d/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : graylog-1.2-repository-el7-1.2.0-4.noarch                    1/1 
  Verifying  : graylog-1.2-repository-el7-1.2.0-4.noarch                    1/1 

Installed:
  graylog-1.2-repository-el7.noarch 0:1.2.0-4                                   

Complete!

Der Inhalt des rpm-Pakets - graylog-1.2-repository-el7.noarch kann mit nachfolgendem Befehl zur Ansicht gebracht werden:

# rpm -qil graylog-1.2-repository-el7.noarch
Name        : graylog-1.2-repository-el7
Version     : 1.2.0
Release     : 4
Architecture: noarch
Install Date: Tue 03 Nov 2015 11:54:16 AM CET
Group       : optional
Size        : 1096
License     : GPLv3
Signature   : (none)
Source RPM  : graylog-1.2-repository-el7-1.2.0-4.src.rpm
Build Date  : Mon 26 Oct 2015 05:49:46 PM CET
Build Host  : eda1ecbf991f
Relocations : / 
Packager    : Graylog, Inc. <hello@graylog.org>
Vendor      : graylog
URL         : https://www.graylog.org/
Summary     : Package to install Graylog 1.2 GPG key and repository
Description :
Package to install Graylog 1.2 GPG key and repository
/etc/pki/rpm-gpg/RPM-GPG-KEY-graylog
/etc/yum.repos.d/graylog.repo

Zur Absicherung der Installation aus den richtigen Quellen, sollte mit nachfolgendem Befehl der GPG-Schlüssel nun importiert werden

# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-graylog

* Es erfolgt keine Ausgabe, falls der Befehl ohne Fehler ausgeführt wurde!

Anschließend sollten gespeicherte Informationen über die Installationsquellen zurückgesetzt werden, indem nachfolgender Befehl diese Informationen löscht:

# yum clean all
Loaded plugins: changelog, priorities
Cleaning repos: base elasticsearch-2.0 epel extras graylog updates
Cleaning up everything

Eine Überprüfung mit nachfolgendem Befehl, sollte die korrekte Einbindung des Repositorys bestätigen und in etwa eine Ausgabe wie die nachfolgende zur Anzeige bringen:

# yum list graylog-server graylog-web
Loaded plugins: changelog, priorities
77 packages excluded due to repository priority protections
Available Packages
graylog-server.noarch                      1.2.2-1                       graylog
graylog-web.noarch                         1.2.2-1                       graylog

Installation: OpenJDK

Mit nachfolgendem Befehl, kann das rpm-Paket - java-1.8.0-openjdk installiert werden:

# yum install java-1.8.0-openjdk
Loaded plugins: changelog, priorities
77 packages excluded due to repository priority protections
Resolving Dependencies
--> Running transaction check
---> Package java-1.8.0-openjdk.x86_64 1:1.8.0.65-2.b17.el7_1 will be installed
--> Processing Dependency: java-1.8.0-openjdk-headless = 1:1.8.0.65-2.b17.el7_1 for package: 1:java-1.8.0-openjdk-1.8.0.65-2.b17.el7_1.x86_64
--> Processing Dependency: xorg-x11-fonts-Type1 for package: 1:java-1.8.0-openjdk-1.8.0.65-2.b17.el7_1.x86_64
--> Processing Dependency: libpng15.so.15(PNG15_0)(64bit) for package: 1:java-1.8.0-openjdk-1.8.0.65-2.b17.el7_1.x86_64
--> Processing Dependency: libjvm.so(SUNWprivate_1.1)(64bit) for package: 1:java-1.8.0-openjdk-1.8.0.65-2.b17.el7_1.x86_64
--> Processing Dependency: libjpeg.so.62(LIBJPEG_6.2)(64bit) for package: 1:java-1.8.0-openjdk-1.8.0.65-2.b17.el7_1.x86_64
--> Processing Dependency: libjli.so(SUNWprivate_1.1)(64bit) for package: 1:java-1.8.0-openjdk-1.8.0.65-2.b17.el7_1.x86_64
--> Processing Dependency: libjava.so(SUNWprivate_1.1)(64bit) for package: 1:java-1.8.0-openjdk-1.8.0.65-2.b17.el7_1.x86_64
--> Processing Dependency: fontconfig for package: 1:java-1.8.0-openjdk-1.8.0.65-2.b17.el7_1.x86_64
--> Processing Dependency: libpng15.so.15()(64bit) for package: 1:java-1.8.0-openjdk-1.8.0.65-2.b17.el7_1.x86_64
--> Processing Dependency: libjvm.so()(64bit) for package: 1:java-1.8.0-openjdk-1.8.0.65-2.b17.el7_1.x86_64
--> Processing Dependency: libjpeg.so.62()(64bit) for package: 1:java-1.8.0-openjdk-1.8.0.65-2.b17.el7_1.x86_64
--> Processing Dependency: libjli.so()(64bit) for package: 1:java-1.8.0-openjdk-1.8.0.65-2.b17.el7_1.x86_64
--> Processing Dependency: libjava.so()(64bit) for package: 1:java-1.8.0-openjdk-1.8.0.65-2.b17.el7_1.x86_64
--> Processing Dependency: libgif.so.4()(64bit) for package: 1:java-1.8.0-openjdk-1.8.0.65-2.b17.el7_1.x86_64
--> Processing Dependency: libawt.so()(64bit) for package: 1:java-1.8.0-openjdk-1.8.0.65-2.b17.el7_1.x86_64
--> Processing Dependency: libXtst.so.6()(64bit) for package: 1:java-1.8.0-openjdk-1.8.0.65-2.b17.el7_1.x86_64
--> Processing Dependency: libXrender.so.1()(64bit) for package: 1:java-1.8.0-openjdk-1.8.0.65-2.b17.el7_1.x86_64
--> Processing Dependency: libXi.so.6()(64bit) for package: 1:java-1.8.0-openjdk-1.8.0.65-2.b17.el7_1.x86_64
--> Processing Dependency: libXext.so.6()(64bit) for package: 1:java-1.8.0-openjdk-1.8.0.65-2.b17.el7_1.x86_64
--> Processing Dependency: libX11.so.6()(64bit) for package: 1:java-1.8.0-openjdk-1.8.0.65-2.b17.el7_1.x86_64
--> Running transaction check
---> Package fontconfig.x86_64 0:2.10.95-7.el7 will be installed
--> Processing Dependency: fontpackages-filesystem for package: fontconfig-2.10.95-7.el7.x86_64
---> Package giflib.x86_64 0:4.1.6-9.el7 will be installed
--> Processing Dependency: libSM.so.6()(64bit) for package: giflib-4.1.6-9.el7.x86_64
--> Processing Dependency: libICE.so.6()(64bit) for package: giflib-4.1.6-9.el7.x86_64
---> Package java-1.8.0-openjdk-headless.x86_64 1:1.8.0.65-2.b17.el7_1 will be installed
--> Processing Dependency: tzdata-java for package: 1:java-1.8.0-openjdk-headless-1.8.0.65-2.b17.el7_1.x86_64
--> Processing Dependency: jpackage-utils for package: 1:java-1.8.0-openjdk-headless-1.8.0.65-2.b17.el7_1.x86_64
---> Package libX11.x86_64 0:1.6.0-2.1.el7 will be installed
--> Processing Dependency: libX11-common = 1.6.0-2.1.el7 for package: libX11-1.6.0-2.1.el7.x86_64
--> Processing Dependency: libxcb.so.1()(64bit) for package: libX11-1.6.0-2.1.el7.x86_64
---> Package libXext.x86_64 0:1.3.2-2.1.el7 will be installed
---> Package libXi.x86_64 0:1.7.2-2.1.el7 will be installed
---> Package libXrender.x86_64 0:0.9.8-2.1.el7 will be installed
---> Package libXtst.x86_64 0:1.2.2-2.1.el7 will be installed
---> Package libjpeg-turbo.x86_64 0:1.2.90-5.el7 will be installed
---> Package libpng.x86_64 2:1.5.13-5.el7 will be installed
---> Package xorg-x11-fonts-Type1.noarch 0:7.5-9.el7 will be installed
--> Processing Dependency: ttmkfdir for package: xorg-x11-fonts-Type1-7.5-9.el7.noarch
--> Processing Dependency: ttmkfdir for package: xorg-x11-fonts-Type1-7.5-9.el7.noarch
--> Processing Dependency: mkfontdir for package: xorg-x11-fonts-Type1-7.5-9.el7.noarch
--> Processing Dependency: mkfontdir for package: xorg-x11-fonts-Type1-7.5-9.el7.noarch
--> Running transaction check
---> Package fontpackages-filesystem.noarch 0:1.44-8.el7 will be installed
---> Package javapackages-tools.noarch 0:3.4.1-6.el7_0 will be installed
--> Processing Dependency: python-javapackages = 3.4.1-6.el7_0 for package: javapackages-tools-3.4.1-6.el7_0.noarch
--> Processing Dependency: libxslt for package: javapackages-tools-3.4.1-6.el7_0.noarch
---> Package libICE.x86_64 0:1.0.8-7.el7 will be installed
---> Package libSM.x86_64 0:1.2.1-7.el7 will be installed
---> Package libX11-common.noarch 0:1.6.0-2.1.el7 will be installed
---> Package libxcb.x86_64 0:1.9-5.el7 will be installed
--> Processing Dependency: libXau.so.6()(64bit) for package: libxcb-1.9-5.el7.x86_64
---> Package ttmkfdir.x86_64 0:3.0.9-41.el7 will be installed
---> Package tzdata-java.noarch 0:2015g-1.el7 will be installed
---> Package xorg-x11-font-utils.x86_64 1:7.5-18.1.el7 will be installed
--> Processing Dependency: libfontenc.so.1()(64bit) for package: 1:xorg-x11-font-utils-7.5-18.1.el7.x86_64
--> Processing Dependency: libXfont.so.1()(64bit) for package: 1:xorg-x11-font-utils-7.5-18.1.el7.x86_64
--> Running transaction check
---> Package libXau.x86_64 0:1.0.8-2.1.el7 will be installed
---> Package libXfont.x86_64 0:1.4.7-3.el7_1 will be installed
---> Package libfontenc.x86_64 0:1.1.1-5.el7 will be installed
---> Package libxslt.x86_64 0:1.1.28-5.el7 will be installed
---> Package python-javapackages.noarch 0:3.4.1-6.el7_0 will be installed
--> Processing Dependency: python-lxml for package: python-javapackages-3.4.1-6.el7_0.noarch
--> Running transaction check
---> Package python-lxml.x86_64 0:3.2.1-4.el7 will be installed
--> Finished Dependency Resolution

Changes in packages about to be updated:


Dependencies Resolved

================================================================================
 Package                      Arch    Version                    Repository
                                                                           Size
================================================================================
Installing:
 java-1.8.0-openjdk           x86_64  1:1.8.0.65-2.b17.el7_1     updates  214 k
Installing for dependencies:
 fontconfig                   x86_64  2.10.95-7.el7              base     228 k
 fontpackages-filesystem      noarch  1.44-8.el7                 base     9.9 k
 giflib                       x86_64  4.1.6-9.el7                base      40 k
 java-1.8.0-openjdk-headless  x86_64  1:1.8.0.65-2.b17.el7_1     updates   31 M
 javapackages-tools           noarch  3.4.1-6.el7_0              base      72 k
 libICE                       x86_64  1.0.8-7.el7                base      63 k
 libSM                        x86_64  1.2.1-7.el7                base      38 k
 libX11                       x86_64  1.6.0-2.1.el7              base     605 k
 libX11-common                noarch  1.6.0-2.1.el7              base     181 k
 libXau                       x86_64  1.0.8-2.1.el7              base      29 k
 libXext                      x86_64  1.3.2-2.1.el7              base      38 k
 libXfont                     x86_64  1.4.7-3.el7_1              updates  145 k
 libXi                        x86_64  1.7.2-2.1.el7              base      39 k
 libXrender                   x86_64  0.9.8-2.1.el7              base      25 k
 libXtst                      x86_64  1.2.2-2.1.el7              base      20 k
 libfontenc                   x86_64  1.1.1-5.el7                base      29 k
 libjpeg-turbo                x86_64  1.2.90-5.el7               base     134 k
 libpng                       x86_64  2:1.5.13-5.el7             base     212 k
 libxcb                       x86_64  1.9-5.el7                  base     169 k
 libxslt                      x86_64  1.1.28-5.el7               base     242 k
 python-javapackages          noarch  3.4.1-6.el7_0              base      31 k
 python-lxml                  x86_64  3.2.1-4.el7                base     758 k
 ttmkfdir                     x86_64  3.0.9-41.el7               base      47 k
 tzdata-java                  noarch  2015g-1.el7                updates  176 k
 xorg-x11-font-utils          x86_64  1:7.5-18.1.el7             base      87 k
 xorg-x11-fonts-Type1         noarch  7.5-9.el7                  base     521 k

Transaction Summary
================================================================================
Install  1 Package (+26 Dependent packages)

Total download size: 35 M
Installed size: 114 M
Is this ok [y/d/N]: y
Downloading packages:
(1/27): fontpackages-filesystem-1.44-8.el7.noarch.rpm      | 9.9 kB   00:00     
(2/27): fontconfig-2.10.95-7.el7.x86_64.rpm                | 228 kB   00:00     
(3/27): giflib-4.1.6-9.el7.x86_64.rpm                      |  40 kB   00:00     
(4/27): javapackages-tools-3.4.1-6.el7_0.noarch.rpm        |  72 kB   00:00     
(5/27): libSM-1.2.1-7.el7.x86_64.rpm                       |  38 kB   00:00     
(6/27): libICE-1.0.8-7.el7.x86_64.rpm                      |  63 kB   00:00     
(7/27): libX11-1.6.0-2.1.el7.x86_64.rpm                    | 605 kB   00:00     
(8/27): libX11-common-1.6.0-2.1.el7.noarch.rpm             | 181 kB   00:00     
(9/27): libXau-1.0.8-2.1.el7.x86_64.rpm                    |  29 kB   00:00     
(10/27): java-1.8.0-openjdk-1.8.0.65-2.b17.el7_1.x86_64.rp | 214 kB   00:00     
(11/27): libXext-1.3.2-2.1.el7.x86_64.rpm                  |  38 kB   00:00     
(12/27): libXfont-1.4.7-3.el7_1.x86_64.rpm                 | 145 kB   00:00     
(13/27): libXi-1.7.2-2.1.el7.x86_64.rpm                    |  39 kB   00:00     
(14/27): libXrender-0.9.8-2.1.el7.x86_64.rpm               |  25 kB   00:00     
(15/27): libXtst-1.2.2-2.1.el7.x86_64.rpm                  |  20 kB   00:00     
(16/27): libfontenc-1.1.1-5.el7.x86_64.rpm                 |  29 kB   00:00     
(17/27): java-1.8.0-openjdk-headless-1.8.0.65-2.b17.el7_1. |  31 MB   00:01     
(18/27): libpng-1.5.13-5.el7.x86_64.rpm                    | 212 kB   00:00     
(19/27): libjpeg-turbo-1.2.90-5.el7.x86_64.rpm             | 134 kB   00:00     
(20/27): libxcb-1.9-5.el7.x86_64.rpm                       | 169 kB   00:00     
(21/27): python-javapackages-3.4.1-6.el7_0.noarch.rpm      |  31 kB   00:00     
(22/27): python-lxml-3.2.1-4.el7.x86_64.rpm                | 758 kB   00:00     
(23/27): ttmkfdir-3.0.9-41.el7.x86_64.rpm                  |  47 kB   00:00     
(24/27): xorg-x11-font-utils-7.5-18.1.el7.x86_64.rpm       |  87 kB   00:00     
(25/27): xorg-x11-fonts-Type1-7.5-9.el7.noarch.rpm         | 521 kB   00:00     
(26/27): libxslt-1.1.28-5.el7.x86_64.rpm                   | 242 kB   00:00     
(27/27): tzdata-java-2015g-1.el7.noarch.rpm                | 176 kB   00:00     
--------------------------------------------------------------------------------
Total                                               16 MB/s |  35 MB  00:02     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : libfontenc-1.1.1-5.el7.x86_64                               1/27 
  Installing : libICE-1.0.8-7.el7.x86_64                                   2/27 
  Installing : libxslt-1.1.28-5.el7.x86_64                                 3/27 
  Installing : libjpeg-turbo-1.2.90-5.el7.x86_64                           4/27 
  Installing : python-lxml-3.2.1-4.el7.x86_64                              5/27 
  Installing : python-javapackages-3.4.1-6.el7_0.noarch                    6/27 
  Installing : javapackages-tools-3.4.1-6.el7_0.noarch                     7/27 
  Installing : libSM-1.2.1-7.el7.x86_64                                    8/27 
  Installing : libXfont-1.4.7-3.el7_1.x86_64                               9/27 
  Installing : 1:xorg-x11-font-utils-7.5-18.1.el7.x86_64                  10/27 
  Installing : libXau-1.0.8-2.1.el7.x86_64                                11/27 
  Installing : libxcb-1.9-5.el7.x86_64                                    12/27 
  Installing : ttmkfdir-3.0.9-41.el7.x86_64                               13/27 
  Installing : 2:libpng-1.5.13-5.el7.x86_64                               14/27 
  Installing : fontpackages-filesystem-1.44-8.el7.noarch                  15/27 
  Installing : fontconfig-2.10.95-7.el7.x86_64                            16/27 
  Installing : xorg-x11-fonts-Type1-7.5-9.el7.noarch                      17/27 
  Installing : tzdata-java-2015g-1.el7.noarch                             18/27 
  Installing : 1:java-1.8.0-openjdk-headless-1.8.0.65-2.b17.el7_1.x86_6   19/27 
  Installing : libX11-common-1.6.0-2.1.el7.noarch                         20/27 
  Installing : libX11-1.6.0-2.1.el7.x86_64                                21/27 
  Installing : libXext-1.3.2-2.1.el7.x86_64                               22/27 
  Installing : libXi-1.7.2-2.1.el7.x86_64                                 23/27 
  Installing : libXtst-1.2.2-2.1.el7.x86_64                               24/27 
  Installing : giflib-4.1.6-9.el7.x86_64                                  25/27 
  Installing : libXrender-0.9.8-2.1.el7.x86_64                            26/27 
  Installing : 1:java-1.8.0-openjdk-1.8.0.65-2.b17.el7_1.x86_64           27/27 
  Verifying  : giflib-4.1.6-9.el7.x86_64                                   1/27 
  Verifying  : libjpeg-turbo-1.2.90-5.el7.x86_64                           2/27 
  Verifying  : libX11-common-1.6.0-2.1.el7.noarch                          3/27 
  Verifying  : libXtst-1.2.2-2.1.el7.x86_64                                4/27 
  Verifying  : python-lxml-3.2.1-4.el7.x86_64                              5/27 
  Verifying  : 1:xorg-x11-font-utils-7.5-18.1.el7.x86_64                   6/27 
  Verifying  : tzdata-java-2015g-1.el7.noarch                              7/27 
  Verifying  : fontpackages-filesystem-1.44-8.el7.noarch                   8/27 
  Verifying  : libXi-1.7.2-2.1.el7.x86_64                                  9/27 
  Verifying  : 2:libpng-1.5.13-5.el7.x86_64                               10/27 
  Verifying  : 1:java-1.8.0-openjdk-1.8.0.65-2.b17.el7_1.x86_64           11/27 
  Verifying  : libXrender-0.9.8-2.1.el7.x86_64                            12/27 
  Verifying  : javapackages-tools-3.4.1-6.el7_0.noarch                    13/27 
  Verifying  : libxcb-1.9-5.el7.x86_64                                    14/27 
  Verifying  : 1:java-1.8.0-openjdk-headless-1.8.0.65-2.b17.el7_1.x86_6   15/27 
  Verifying  : python-javapackages-3.4.1-6.el7_0.noarch                   16/27 
  Verifying  : xorg-x11-fonts-Type1-7.5-9.el7.noarch                      17/27 
  Verifying  : ttmkfdir-3.0.9-41.el7.x86_64                               18/27 
  Verifying  : libxslt-1.1.28-5.el7.x86_64                                19/27 
  Verifying  : libICE-1.0.8-7.el7.x86_64                                  20/27 
  Verifying  : libSM-1.2.1-7.el7.x86_64                                   21/27 
  Verifying  : libX11-1.6.0-2.1.el7.x86_64                                22/27 
  Verifying  : libXfont-1.4.7-3.el7_1.x86_64                              23/27 
  Verifying  : libfontenc-1.1.1-5.el7.x86_64                              24/27 
  Verifying  : libXau-1.0.8-2.1.el7.x86_64                                25/27 
  Verifying  : libXext-1.3.2-2.1.el7.x86_64                               26/27 
  Verifying  : fontconfig-2.10.95-7.el7.x86_64                            27/27 

Installed:
  java-1.8.0-openjdk.x86_64 1:1.8.0.65-2.b17.el7_1                              

Dependency Installed:
  fontconfig.x86_64 0:2.10.95-7.el7                                             
  fontpackages-filesystem.noarch 0:1.44-8.el7                                   
  giflib.x86_64 0:4.1.6-9.el7                                                   
  java-1.8.0-openjdk-headless.x86_64 1:1.8.0.65-2.b17.el7_1                     
  javapackages-tools.noarch 0:3.4.1-6.el7_0                                     
  libICE.x86_64 0:1.0.8-7.el7                                                   
  libSM.x86_64 0:1.2.1-7.el7                                                    
  libX11.x86_64 0:1.6.0-2.1.el7                                                 
  libX11-common.noarch 0:1.6.0-2.1.el7                                          
  libXau.x86_64 0:1.0.8-2.1.el7                                                 
  libXext.x86_64 0:1.3.2-2.1.el7                                                
  libXfont.x86_64 0:1.4.7-3.el7_1                                               
  libXi.x86_64 0:1.7.2-2.1.el7                                                  
  libXrender.x86_64 0:0.9.8-2.1.el7                                             
  libXtst.x86_64 0:1.2.2-2.1.el7                                                
  libfontenc.x86_64 0:1.1.1-5.el7                                               
  libjpeg-turbo.x86_64 0:1.2.90-5.el7                                           
  libpng.x86_64 2:1.5.13-5.el7                                                  
  libxcb.x86_64 0:1.9-5.el7                                                     
  libxslt.x86_64 0:1.1.28-5.el7                                                 
  python-javapackages.noarch 0:3.4.1-6.el7_0                                    
  python-lxml.x86_64 0:3.2.1-4.el7                                              
  ttmkfdir.x86_64 0:3.0.9-41.el7                                                
  tzdata-java.noarch 0:2015g-1.el7                                              
  xorg-x11-font-utils.x86_64 1:7.5-18.1.el7                                     
  xorg-x11-fonts-Type1.noarch 0:7.5-9.el7                                       

Complete!

Mit nachfolgendem Befehl kann überprüft werden, welche Inhalte mit den Paket java-1.8.0-openjdk installiert wurden.

# rpm -qil java-1.8.0-openjdk
Name        : java-1.8.0-openjdk
Epoch       : 1
Version     : 1.8.0.65
Release     : 2.b17.el7_1
Architecture: x86_64
Install Date: Tue 03 Nov 2015 12:08:57 PM CET
Group       : Development/Languages
Size        : 512647
License     : ASL 1.1 and ASL 2.0 and GPL+ and GPLv2 and GPLv2 with exceptions and LGPL+ and LGPLv2 and MPLv1.0 and MPLv1.1 and Public Domain and W3C
Signature   : RSA/SHA256, Thu 22 Oct 2015 01:12:20 AM CEST, Key ID 24c6a8a7f4a80eb5
Source RPM  : java-1.8.0-openjdk-1.8.0.65-2.b17.el7_1.src.rpm
Build Date  : Wed 21 Oct 2015 10:27:39 PM CEST
Build Host  : worker1.bsys.centos.org
Relocations : (not relocatable)
Packager    : CentOS BuildSystem <http://bugs.centos.org>
Vendor      : CentOS
URL         : http://openjdk.java.net/
Summary     : OpenJDK Runtime Environment
Description :
The OpenJDK runtime environment.
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-2.b17.el7_1.x86_64/jre/bin/policytool
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-2.b17.el7_1.x86_64/jre/lib/amd64/libawt_xawt.so
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-2.b17.el7_1.x86_64/jre/lib/amd64/libjawt.so
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-2.b17.el7_1.x86_64/jre/lib/amd64/libjsoundalsa.so
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-2.b17.el7_1.x86_64/jre/lib/amd64/libsplashscreen.so
/usr/share/applications/java-1.8.0-openjdk-1.8.0.65-2.b17.el7_1.x86_64-policytool.desktop
/usr/share/icons/hicolor/16x16/apps/java-1.8.0.png
/usr/share/icons/hicolor/24x24/apps/java-1.8.0.png
/usr/share/icons/hicolor/32x32/apps/java-1.8.0.png
/usr/share/icons/hicolor/48x48/apps/java-1.8.0.png

* Entscheidend sind hier die Abhängigkeiten !

Mit nachfolgendem Befehl kann nun überprüft werden, ob die Installation korrekt durchgeführt wurde:

# java -version
openjdk version "1.8.0_65"
OpenJDK Runtime Environment (build 1.8.0_65-b17)
OpenJDK 64-Bit Server VM (build 25.65-b01, mixed mode)

bzw.

# alternatives --display java
java - status is auto.
 link currently points to /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-2.b17.el7_1.x86_64/jre/bin/java
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-2.b17.el7_1.x86_64/jre/bin/java - priority 53
 slave jre: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-2.b17.el7_1.x86_64/jre
 slave jre_exports: /usr/lib/jvm-exports/jre-1.8.0-openjdk-1.8.0.65-2.b17.el7_1.x86_64
 slave jjs: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-2.b17.el7_1.x86_64/jre/bin/jjs
 slave keytool: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-2.b17.el7_1.x86_64/jre/bin/keytool
 slave orbd: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-2.b17.el7_1.x86_64/jre/bin/orbd
 slave pack200: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-2.b17.el7_1.x86_64/jre/bin/pack200
 slave rmid: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-2.b17.el7_1.x86_64/jre/bin/rmid
 slave rmiregistry: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-2.b17.el7_1.x86_64/jre/bin/rmiregistry
 slave servertool: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-2.b17.el7_1.x86_64/jre/bin/servertool
 slave tnameserv: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-2.b17.el7_1.x86_64/jre/bin/tnameserv
 slave unpack200: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-2.b17.el7_1.x86_64/jre/bin/unpack200
 slave java.1.gz: /usr/share/man/man1/java-java-1.8.0-openjdk-1.8.0.65-2.b17.el7_1.x86_64.1.gz
 slave jjs.1.gz: /usr/share/man/man1/jjs-java-1.8.0-openjdk-1.8.0.65-2.b17.el7_1.x86_64.1.gz
 slave policytool: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-2.b17.el7_1.x86_64/jre/bin/policytool
 slave keytool.1.gz: /usr/share/man/man1/keytool-java-1.8.0-openjdk-1.8.0.65-2.b17.el7_1.x86_64.1.gz
 slave orbd.1.gz: /usr/share/man/man1/orbd-java-1.8.0-openjdk-1.8.0.65-2.b17.el7_1.x86_64.1.gz
 slave pack200.1.gz: /usr/share/man/man1/pack200-java-1.8.0-openjdk-1.8.0.65-2.b17.el7_1.x86_64.1.gz
 slave rmid.1.gz: /usr/share/man/man1/rmid-java-1.8.0-openjdk-1.8.0.65-2.b17.el7_1.x86_64.1.gz
 slave rmiregistry.1.gz: /usr/share/man/man1/rmiregistry-java-1.8.0-openjdk-1.8.0.65-2.b17.el7_1.x86_64.1.gz
 slave servertool.1.gz: /usr/share/man/man1/servertool-java-1.8.0-openjdk-1.8.0.65-2.b17.el7_1.x86_64.1.gz
 slave tnameserv.1.gz: /usr/share/man/man1/tnameserv-java-1.8.0-openjdk-1.8.0.65-2.b17.el7_1.x86_64.1.gz
 slave unpack200.1.gz: /usr/share/man/man1/unpack200-java-1.8.0-openjdk-1.8.0.65-2.b17.el7_1.x86_64.1.gz
Current `best' version is /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-2.b17.el7_1.x86_64/jre/bin/java.

Installation: MongoDB

Nachdem das Drittanbieter-Repository

erfolgreich eingebunden wurde, können mit nachfolgendem Befehl, die rpm-Pakete - mongodb-server und mongodb installiert werden:

# yum install mongodb-server mongodb
Loaded plugins: changelog, priorities
77 packages excluded due to repository priority protections
Resolving Dependencies
--> Running transaction check
---> Package mongodb.x86_64 0:2.6.11-1.el7 will be installed
--> Processing Dependency: v8 >= 3.14.5.10 for package: mongodb-2.6.11-1.el7.x86_64
--> Processing Dependency: libyaml-cpp.so.0.5()(64bit) for package: mongodb-2.6.11-1.el7.x86_64
--> Processing Dependency: libv8.so.3()(64bit) for package: mongodb-2.6.11-1.el7.x86_64
--> Processing Dependency: libtcmalloc.so.4()(64bit) for package: mongodb-2.6.11-1.el7.x86_64
--> Processing Dependency: libstemmer.so.0()(64bit) for package: mongodb-2.6.11-1.el7.x86_64
--> Processing Dependency: libpcap.so.1()(64bit) for package: mongodb-2.6.11-1.el7.x86_64
--> Processing Dependency: libboost_thread-mt.so.1.53.0()(64bit) for package: mongodb-2.6.11-1.el7.x86_64
--> Processing Dependency: libboost_system-mt.so.1.53.0()(64bit) for package: mongodb-2.6.11-1.el7.x86_64
--> Processing Dependency: libboost_program_options-mt.so.1.53.0()(64bit) for package: mongodb-2.6.11-1.el7.x86_64
--> Processing Dependency: libboost_filesystem-mt.so.1.53.0()(64bit) for package: mongodb-2.6.11-1.el7.x86_64
---> Package mongodb-server.x86_64 0:2.6.11-1.el7 will be installed
--> Running transaction check
---> Package boost-filesystem.x86_64 0:1.53.0-23.el7 will be installed
---> Package boost-program-options.x86_64 0:1.53.0-23.el7 will be installed
---> Package boost-system.x86_64 0:1.53.0-23.el7 will be installed
---> Package boost-thread.x86_64 0:1.53.0-23.el7 will be installed
---> Package gperftools-libs.x86_64 0:2.4-5.el7 will be installed
--> Processing Dependency: libunwind.so.8()(64bit) for package: gperftools-libs-2.4-5.el7.x86_64
---> Package libpcap.x86_64 14:1.5.3-4.el7_1.2 will be installed
---> Package libstemmer.x86_64 0:0-2.585svn.el7 will be installed
---> Package v8.x86_64 1:3.14.5.10-17.el7 will be installed
---> Package yaml-cpp.x86_64 0:0.5.1-6.el7 will be installed
--> Running transaction check
---> Package libunwind.x86_64 0:1.1-10.el7 will be installed
--> Finished Dependency Resolution

Changes in packages about to be updated:


Dependencies Resolved

================================================================================
 Package                   Arch       Version                 Repository   Size
================================================================================
Installing:
 mongodb                   x86_64     2.6.11-1.el7            epel         43 M
 mongodb-server            x86_64     2.6.11-1.el7            epel        6.6 M
Installing for dependencies:
 boost-filesystem          x86_64     1.53.0-23.el7           base         67 k
 boost-program-options     x86_64     1.53.0-23.el7           base        155 k
 boost-system              x86_64     1.53.0-23.el7           base         39 k
 boost-thread              x86_64     1.53.0-23.el7           base         56 k
 gperftools-libs           x86_64     2.4-5.el7               epel        279 k
 libpcap                   x86_64     14:1.5.3-4.el7_1.2      updates     137 k
 libstemmer                x86_64     0-2.585svn.el7          epel         67 k
 libunwind                 x86_64     1.1-10.el7              epel         63 k
 v8                        x86_64     1:3.14.5.10-17.el7      epel        3.0 M
 yaml-cpp                  x86_64     0.5.1-6.el7             epel        176 k

Transaction Summary
================================================================================
Install  2 Packages (+10 Dependent packages)

Total download size: 54 M
Installed size: 165 M
Is this ok [y/d/N]: y
Downloading packages:
(1/12): boost-filesystem-1.53.0-23.el7.x86_64.rpm          |  67 kB   00:00     
(2/12): boost-program-options-1.53.0-23.el7.x86_64.rpm     | 155 kB   00:00     
(3/12): boost-system-1.53.0-23.el7.x86_64.rpm              |  39 kB   00:00     
(4/12): boost-thread-1.53.0-23.el7.x86_64.rpm              |  56 kB   00:00     
(5/12): gperftools-libs-2.4-5.el7.x86_64.rpm               | 279 kB   00:00     
(6/12): libstemmer-0-2.585svn.el7.x86_64.rpm               |  67 kB   00:00     
(7/12): libunwind-1.1-10.el7.x86_64.rpm                    |  63 kB   00:00     
(8/12): libpcap-1.5.3-4.el7_1.2.x86_64.rpm                 | 137 kB   00:00     
(9/12): mongodb-server-2.6.11-1.el7.x86_64.rpm             | 6.6 MB   00:00     
(10/12): v8-3.14.5.10-17.el7.x86_64.rpm                    | 3.0 MB   00:00     
(11/12): yaml-cpp-0.5.1-6.el7.x86_64.rpm                   | 176 kB   00:00     
(12/12): mongodb-2.6.11-1.el7.x86_64.rpm                   |  43 MB   00:01     
--------------------------------------------------------------------------------
Total                                               29 MB/s |  54 MB  00:01     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : boost-system-1.53.0-23.el7.x86_64                           1/12 
  Installing : boost-filesystem-1.53.0-23.el7.x86_64                       2/12 
  Installing : boost-thread-1.53.0-23.el7.x86_64                           3/12 
  Installing : boost-program-options-1.53.0-23.el7.x86_64                  4/12 
  Installing : yaml-cpp-0.5.1-6.el7.x86_64                                 5/12 
  Installing : libstemmer-0-2.585svn.el7.x86_64                            6/12 
  Installing : 1:v8-3.14.5.10-17.el7.x86_64                                7/12 
  Installing : 14:libpcap-1.5.3-4.el7_1.2.x86_64                           8/12 
  Installing : libunwind-1.1-10.el7.x86_64                                 9/12 
  Installing : gperftools-libs-2.4-5.el7.x86_64                           10/12 
  Installing : mongodb-server-2.6.11-1.el7.x86_64                         11/12 
  Installing : mongodb-2.6.11-1.el7.x86_64                                12/12 
  Verifying  : boost-filesystem-1.53.0-23.el7.x86_64                       1/12 
  Verifying  : gperftools-libs-2.4-5.el7.x86_64                            2/12 
  Verifying  : 1:v8-3.14.5.10-17.el7.x86_64                                3/12 
  Verifying  : libunwind-1.1-10.el7.x86_64                                 4/12 
  Verifying  : 14:libpcap-1.5.3-4.el7_1.2.x86_64                           5/12 
  Verifying  : mongodb-server-2.6.11-1.el7.x86_64                          6/12 
  Verifying  : libstemmer-0-2.585svn.el7.x86_64                            7/12 
  Verifying  : boost-thread-1.53.0-23.el7.x86_64                           8/12 
  Verifying  : yaml-cpp-0.5.1-6.el7.x86_64                                 9/12 
  Verifying  : mongodb-2.6.11-1.el7.x86_64                                10/12 
  Verifying  : boost-system-1.53.0-23.el7.x86_64                          11/12 
  Verifying  : boost-program-options-1.53.0-23.el7.x86_64                 12/12 

Installed:
  mongodb.x86_64 0:2.6.11-1.el7       mongodb-server.x86_64 0:2.6.11-1.el7      

Dependency Installed:
  boost-filesystem.x86_64 0:1.53.0-23.el7                                       
  boost-program-options.x86_64 0:1.53.0-23.el7                                  
  boost-system.x86_64 0:1.53.0-23.el7                                           
  boost-thread.x86_64 0:1.53.0-23.el7                                           
  gperftools-libs.x86_64 0:2.4-5.el7                                            
  libpcap.x86_64 14:1.5.3-4.el7_1.2                                             
  libstemmer.x86_64 0:0-2.585svn.el7                                            
  libunwind.x86_64 0:1.1-10.el7                                                 
  v8.x86_64 1:3.14.5.10-17.el7                                                  
  yaml-cpp.x86_64 0:0.5.1-6.el7                                                 

Complete!

Mit nachfolgendem Befehl kann überprüft werden, welche Inhalte mit den Paket mongodb-server installiert wurden.

# rpm -qil mongodb-server
Name        : mongodb-server
Version     : 2.6.11
Release     : 1.el7
Architecture: x86_64
Install Date: Tue 03 Nov 2015 12:24:22 PM CET
Group       : Applications/Databases
Size        : 20949371
License     : AGPLv3 and zlib and ASL 2.0
Signature   : RSA/SHA256, Thu 20 Aug 2015 07:37:34 PM CEST, Key ID 6a2faea2352c64e5
Source RPM  : mongodb-2.6.11-1.el7.src.rpm
Build Date  : Wed 19 Aug 2015 01:57:11 PM CEST
Build Host  : buildvm-08.phx2.fedoraproject.org
Relocations : (not relocatable)
Packager    : Fedora Project
Vendor      : Fedora Project
URL         : http://www.mongodb.org
Summary     : MongoDB server, sharding server and support scripts
Description :
This package provides the mongo server software, mongo sharding server
software, default configuration files, and init scripts.
/etc/logrotate.d/mongodb
/etc/mongod.conf
/etc/mongos.conf
/etc/sysconfig/mongod
/etc/sysconfig/mongos
/usr/bin/mongod
/usr/bin/mongos
/usr/lib/systemd/system/mongod.service
/usr/lib/systemd/system/mongos.service
/usr/lib/tmpfiles.d/mongodb.conf
/usr/share/man/man1/mongod.1.gz
/usr/share/man/man1/mongos.1.gz
/var/lib/mongodb
/var/log/mongodb
/var/run/mongodb

Mit nachfolgendem Befehl kann überprüft werden, welche Inhalte mit den Paket mongodb installiert wurden.

# rpm -qil mongodb
Name        : mongodb
Version     : 2.6.11
Release     : 1.el7
Architecture: x86_64
Install Date: Tue 03 Nov 2015 12:24:31 PM CET
Group       : Applications/Databases
Size        : 137519320
License     : AGPLv3 and zlib and ASL 2.0
Signature   : RSA/SHA256, Thu 20 Aug 2015 07:39:20 PM CEST, Key ID 6a2faea2352c64e5
Source RPM  : mongodb-2.6.11-1.el7.src.rpm
Build Date  : Wed 19 Aug 2015 01:57:11 PM CEST
Build Host  : buildvm-08.phx2.fedoraproject.org
Relocations : (not relocatable)
Packager    : Fedora Project
Vendor      : Fedora Project
URL         : http://www.mongodb.org
Summary     : High-performance, schema-free document-oriented database
Description :
Mongo (from "humongous") is a high-performance, open source, schema-free
document-oriented database. MongoDB is written in C++ and offers the following
features:
    * Collection oriented storage: easy storage of object/JSON-style data
    * Dynamic queries
    * Full index support, including on inner objects and embedded arrays
    * Query profiling
    * Replication and fail-over support
    * Efficient storage of binary data including large objects (e.g. photos
    and videos)
    * Auto-sharding for cloud-level scalability (currently in early alpha)
    * Commercial Support Available

A key goal of MongoDB is to bridge the gap between key/value stores (which are
fast and highly scalable) and traditional RDBMS systems (which are deep in
functionality).
/usr/bin/bsondump
/usr/bin/mongo
/usr/bin/mongodump
/usr/bin/mongoexport
/usr/bin/mongofiles
/usr/bin/mongoimport
/usr/bin/mongooplog
/usr/bin/mongoperf
/usr/bin/mongorestore
/usr/bin/mongosniff
/usr/bin/mongostat
/usr/bin/mongotop
/usr/share/doc/mongodb-2.6.11
/usr/share/doc/mongodb-2.6.11/README
/usr/share/licenses/mongodb-2.6.11
/usr/share/licenses/mongodb-2.6.11/APACHE-2.0.txt
/usr/share/licenses/mongodb-2.6.11/GNU-AGPL-3.0.txt
/usr/share/man/man1/bsondump.1.gz
/usr/share/man/man1/mongo.1.gz
/usr/share/man/man1/mongodump.1.gz
/usr/share/man/man1/mongoexport.1.gz
/usr/share/man/man1/mongofiles.1.gz
/usr/share/man/man1/mongoimport.1.gz
/usr/share/man/man1/mongooplog.1.gz
/usr/share/man/man1/mongoperf.1.gz
/usr/share/man/man1/mongorestore.1.gz
/usr/share/man/man1/mongosniff.1.gz
/usr/share/man/man1/mongostat.1.gz
/usr/share/man/man1/mongotop.1.gz

MongoDB: Dienst/Deamon-Start einrichten

Um das Datenbank-System MongoDB, welches als Dienst/Deamon als Hintergrundprozess läuft, auch nach einem Neustart des Servers zur Verfügung zu haben, soll der Dienst/Daemon mit dem Server mit gestartet werden, was mit nachfolgendem Befehl realisiert werden kann:

# systemctl enable mongod.service
ln -s '/usr/lib/systemd/system/mongod.service' '/etc/systemd/system/multi-user.target.wants/mongod.service'

Eine Überprüfung, ob beim Neustart des Server der mongod-Dienst/Deamon wirklich mit gestartet wird, kann mit nachfolgendem Befehl erfolgen und sollte eine Anzeige, wie ebenfalls nachfolgend dargestellt ausgeben:

# systemctl list-unit-files --type=service | grep -e mongod.service
mongod.service                         enabled

bzw.

# systemctl is-enabled mongod.service
enabled

Installation: rsyslog-gnutls

Mit nachfolgendem Befehl, kann das rpm-Paket - rsyslog-gnutls installiert werden:

 
# yum install rsyslog-gnutls
Loaded plugins: changelog, priorities
271 packages excluded due to repository priority protections
Resolving Dependencies
--> Running transaction check
---> Package rsyslog-gnutls.x86_64 0:8.24.0-12.el7 will be installed
--> Finished Dependency Resolution

Changes in packages about to be updated:


Dependencies Resolved

================================================================================
 Package                Arch           Version               Repository    Size
================================================================================
Installing:
 rsyslog-gnutls         x86_64         8.24.0-12.el7         base          41 k

Transaction Summary
================================================================================
Install  1 Package

Total download size: 41 k
Installed size: 37 k
Is this ok [y/d/N]: y
Downloading packages:
rsyslog-gnutls-8.24.0-12.el7.x86_64.rpm                    |  41 kB   00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : rsyslog-gnutls-8.24.0-12.el7.x86_64                          1/1 
  Verifying  : rsyslog-gnutls-8.24.0-12.el7.x86_64                          1/1 

Installed:
  rsyslog-gnutls.x86_64 0:8.24.0-12.el7                                         

Complete!

Mit nachfolgendem Befehl kann überprüft werden, welche Inhalte mit den Paket rsyslog-gnutls installiert wurden.

# rpm -qil rsyslog-gnutls
Name        : rsyslog-gnutls
Version     : 8.24.0
Release     : 12.el7
Architecture: x86_64
Install Date: Mon 30 Apr 2018 12:32:57 PM CEST
Group       : System Environment/Daemons
Size        : 37936
License     : (GPLv3+ and ASL 2.0)
Signature   : RSA/SHA256, Thu 10 Aug 2017 09:43:39 PM CEST, Key ID 24c6a8a7f4a80eb5
Source RPM  : rsyslog-8.24.0-12.el7.src.rpm
Build Date  : Mon 07 Aug 2017 02:56:12 AM CEST
Build Host  : c1bm.rdu2.centos.org
Relocations : (not relocatable)
Packager    : CentOS BuildSystem <http://bugs.centos.org>
Vendor      : CentOS
URL         : http://www.rsyslog.com/
Summary     : TLS protocol support for rsyslog
Description :
The rsyslog-gnutls package contains the rsyslog plugins that provide the
ability to receive syslog messages via upcoming syslog-transport-tls
IETF standard protocol.
/usr/lib64/rsyslog/lmnsd_gtls.so

Installation: gnutls-utils

Mit nachfolgendem Befehl, kann das rpm-Paket - gnutls-utils installiert werden:

 
# yum install gnutls-utils

Mit nachfolgendem Befehl kann überprüft werden, welche Inhalte mit den Paket gnutls-utils installiert wurden.

# rpm -qil gnutls-utils
Name        : gnutls-utils
Version     : 3.3.26
Release     : 9.el7
Architecture: x86_64
Install Date: Tue 19 Sep 2017 03:27:28 PM CEST
Group       : Applications/System
Size        : 922960
License     : GPLv3+
Signature   : RSA/SHA256, Thu 10 Aug 2017 06:24:54 PM CEST, Key ID 24c6a8a7f4a80eb5
Source RPM  : gnutls-3.3.26-9.el7.src.rpm
Build Date  : Sat 05 Aug 2017 01:58:17 AM CEST
Build Host  : c1bm.rdu2.centos.org
Relocations : (not relocatable)
Packager    : CentOS BuildSystem <http://bugs.centos.org>
Vendor      : CentOS
URL         : http://www.gnutls.org/
Summary     : Command line tools for TLS protocol
Description :
GnuTLS is a secure communications library implementing the SSL, TLS and DTLS
protocols and technologies around them. It provides a simple C language
application programming interface (API) to access the secure communications
protocols as well as APIs to parse and write X.509, PKCS #12, OpenPGP and
other required structures.
This package contains command line TLS client and server and certificate
manipulation tools.
/usr/bin/certtool
/usr/bin/crywrap
/usr/bin/danetool
/usr/bin/gnutls-cli
/usr/bin/gnutls-cli-debug
/usr/bin/gnutls-serv
/usr/bin/ocsptool
/usr/bin/p11tool
/usr/bin/psktool
/usr/bin/tpmtool
/usr/share/doc/gnutls-utils-3.3.26
/usr/share/doc/gnutls-utils-3.3.26/certtool.cfg
/usr/share/man/man1/certtool.1.gz
/usr/share/man/man1/danetool.1.gz
/usr/share/man/man1/gnutls-cli-debug.1.gz
/usr/share/man/man1/gnutls-cli.1.gz
/usr/share/man/man1/gnutls-serv.1.gz
/usr/share/man/man1/ocsptool.1.gz
/usr/share/man/man1/p11tool.1.gz
/usr/share/man/man1/psktool.1.gz
/usr/share/man/man1/tpmtool.1.gz

Konfiguration: MongoDB

Nach der erfolgreichen Installation von MongoDB sollte noch ein Administrator für alle MongoDB-Server-Datenbanken erstellt werden und ein spezieller Benutzer, welcher über Lese- und Schreibrechte für die MongoDB-Datenbank graylog erhalten soll, damit über diesen eine Authentifizierung an der MongoDB erfolgten kann und dies nicht mehr ohne Benutzernamen und Passwort erfolgen kann.

Benutzer: Administrator anlegen

Zuerst muss in die MongoDB-Console mithilfe des nachfolgenden Befehls gewechselt werden, damit Datenbank spezifische Befehle gegen die MongoDB abgesetzt werden können:

# mongo
MongoDB shell version: 2.6.11
connecting to: test
Server has startup warnings: 
2015-11-06T15:39:45.750+0100 [initandlisten] 
2015-11-06T15:39:45.750+0100 [initandlisten] ** WARNING: Readahead for /var/lib/mongodb is set to 4096KB
2015-11-06T15:39:45.750+0100 [initandlisten] **          We suggest setting it to 256KB (512 sectors) or less
2015-11-06T15:39:45.750+0100 [initandlisten] **          http://dochub.mongodb.org/core/readahead

* Nachfolgende WARNING (Warnung) kann hierbei ignoriert werden!

Anschließend muss die in die interne Verwaltungsdatenbank von MongoDB gewechselt werden, was mit nachfolgendem Befehl durchgeführt werden kann:

> use admin
switched to db admin

Nun soll ein Administrationsbenutzer für die MongoDB-Server angelegt, was mit nachfolgendem Befehl durchgeführt werden kann:

db.createUser({user:"admin",pwd:"geheim",roles:[{role:"root",db:"admin"}]})
Successfully added user: {
	"user" : "admin",
	"roles" : [
		{
			"role" : "root",
			"db" : "admin"
		}
	]
}

Abschließend wird die MongoDB-Console mithilfe des nachfolgenden Befehls beendet:

> exit
bye

Benutzer: "graylog" anlegen

Zuerst muss wieder in die MongoDB-Console mithilfe des nachfolgenden Befehls gewechselt werden, damit Datenbank spezifische Befehle gegen die [https://www.mongodb.com/de|MongoDB]] abgesetzt werden können:

# mongo --authenticationDatabase admin -u admin -p
MongoDB shell version: 2.6.11
Enter password: 
connecting to: test
Server has startup warnings: 
2015-11-09T12:21:58.328+0100 [initandlisten] 
2015-11-09T12:21:58.328+0100 [initandlisten] ** WARNING: Readahead for /var/lib/mongodb is set to 4096KB
2015-11-09T12:21:58.328+0100 [initandlisten] **          We suggest setting it to 256KB (512 sectors) or less
2015-11-09T12:21:58.328+0100 [initandlisten] **          http://dochub.mongodb.org/core/readahead

* Nachfolgende WARNING (Warnung) kann hierbei ignoriert werden!

Anschließend muss die Datenbank von [https://www.mongodb.com/de|MongoDB]] gewechselt werden, für die eine Benutzer mit Passwort angelegt werden soll, was mit nachfolgendem Befehl durchgeführt werden kann:

> use graylog
switched to db graylog

Nun soll ein „graylog“-Benutzer für die MongoDB-Server angelegt, was mit nachfolgendem Befehl durchgeführt werden kann:

db.createUser({user:"grayloguser",pwd:"geheim",roles:["readWrite"]})

Successfully added user: { "user" : "grayloguser", "roles" : [ "readWrite" ] }

Abschließend wird die MongoDB-Console mithilfe des nachfolgenden Befehls beendet:

> exit
bye

/etc/mongod.conf - Datenbankgröße

Nachfolgende Konfiguration verändert das Speicherverhalten der MongoDB in dem diese eine kleinere Standard Dateigröße verwendet. Hierbei wird die initiale Datenbankgröße kleiner angesetzt und diese auch auf maximal 512 MegaByte herabgesetzt. Ebenso wird die Standard journal-Schreibung von der Größe her ebenfalls beschränkt und zwar von 1 GigaByte auf 128 MegaByte.

Nachfolgende Änderungen müssen dafür in der Konfigurationsdatei

  • /etc/mongod.conf

durchgeführt werden:

(Nur relevanter Ausschnitt):

...
# Use a smaller default file size (false by default)
# Tachtler
# default: #smallfiles = true
smallfiles = true
...

/etc/mongod.conf - Authentifizierung erzwingen

Nachfolgende Konfiguration erzwingt die Authentifizieren gegen die MongoDB.

:!: HINWEIS - Zugriff auf die MongoDB ohne Benutzername und dazugehörigen Passwort, sollten danach nicht mehr möglich sein!

Nachfolgende Änderungen müssen dafür in der Konfigurationsdatei

  • /etc/mongod.conf

durchgeführt werden:

(Nur relevanter Ausschnitt):

...
# Run with/without security (without by default)
# Tachtler
# default: #auth = true
auth = true
#noauth = true
...

MongoDB: Erster Start

Danach kann der mongod-Server mit nachfolgendem Befehle gestartet werden:

# systemctl start mongod

Mit nachfolgendem Befehl kann der Status des MongoDB-Servers abgefragt werden:

# systemctl status mongod
mongod.service - High-performance, schema-free document-oriented database
   Loaded: loaded (/usr/lib/systemd/system/mongod.service; enabled)
   Active: active (running) since Tue 2015-11-03 12:59:24 CET; 5s ago
  Process: 11678 ExecStart=/usr/bin/mongod $OPTIONS run (code=exited, status=0/SUCCESS)
 Main PID: 11680 (mongod)
   CGroup: /system.slice/mongod.service
           └─11680 /usr/bin/mongod --quiet -f /etc/mongod.conf run

Nov 03 12:59:18 server11.idmz.tachtler.net systemd[1]: Starting High-performa...
Nov 03 12:59:18 server11.idmz.tachtler.net mongod[11678]: about to fork child...
Nov 03 12:59:18 server11.idmz.tachtler.net mongod[11678]: forked process: 11680
Nov 03 12:59:24 server11.idmz.tachtler.net mongod[11678]: child process start...
Nov 03 12:59:24 server11.idmz.tachtler.net systemd[1]: Started High-performan...
Hint: Some lines were ellipsized, use -l to show in full.

MongoDB: Test

Ein Verbindungstest kann durchgeführt werden, indem die MongoDB-shell aufgerufen wird, was mit nachfolgendem Befehl durchgeführt werden kann:

# mongo
MongoDB shell version: 2.6.11
connecting to: test
Server has startup warnings: 
2015-11-03T12:59:18.916+0100 [initandlisten] 
2015-11-03T12:59:18.916+0100 [initandlisten] ** WARNING: Readahead for /var/lib/mongodb is set to 4096KB
2015-11-03T12:59:18.916+0100 [initandlisten] **          We suggest setting it to 256KB (512 sectors) or less
2015-11-03T12:59:18.916+0100 [initandlisten] **          http://dochub.mongodb.org/core/readahead
> exit
bye

Die MongoDB-shell kann mit dem Befehl exit verlassen werden.

:!: HINWEIS - Die Warnmeldungen können ignoriert werden.

Installation: Elasticsearch

Nachdem das Drittanbieter-Repository

erfolgreich eingebunden wurde, kann mit nachfolgendem Befehl, das rpm-Paket elasticsearch installiert werden:

# yum install elasticsearch
Loaded plugins: changelog, priorities
77 packages excluded due to repository priority protections
Resolving Dependencies
--> Running transaction check
---> Package elasticsearch.noarch 0:1.7.3-1 will be installed
--> Finished Dependency Resolution

Changes in packages about to be updated:


Dependencies Resolved

================================================================================
 Package             Arch         Version         Repository               Size
================================================================================
Installing:
 elasticsearch       noarch       1.7.3-1         elasticsearch-1.7        26 M

Transaction Summary
================================================================================
Install  1 Package

Total download size: 26 M
Installed size: 30 M
Is this ok [y/d/N]: y
Downloading packages:
elasticsearch-1.7.3.noarch.rpm                             |  26 MB   00:24     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Creating elasticsearch group... OK
Creating elasticsearch user... OK
  Installing : elasticsearch-1.7.3-1.noarch                                 1/1 
### NOT starting on installation, please execute the following statements to configure elasticsearch service to start automatically using systemd
 sudo systemctl daemon-reload
 sudo systemctl enable elasticsearch.service
### You can start elasticsearch service by executing
 sudo systemctl start elasticsearch.service
  Verifying  : elasticsearch-1.7.3-1.noarch                                 1/1 

Installed:
  elasticsearch.noarch 0:1.7.3-1                                                

Complete!

Mit nachfolgendem Befehl kann überprüft werden, welche Inhalte mit den Paket elasticsearch installiert wurden.

# rpm -qil elasticsearch
Name        : elasticsearch
Version     : 1.7.3
Release     : 1
Architecture: noarch
Install Date: Tue 03 Nov 2015 04:58:00 PM CET
Group       : Application/Internet
Size        : 31333594
License     : (c) 2009
Signature   : RSA/SHA1, Thu 15 Oct 2015 11:16:52 AM CEST, Key ID d27d666cd88e42b4
Source RPM  : elasticsearch-1.7.3-1.src.rpm
Build Date  : Thu 15 Oct 2015 11:16:48 AM CEST
Build Host  : ip-10-249-14-148.us-west-2.compute.internal
Relocations : /usr 
Packager    : Elasticsearch
Summary     : elasticsearch
Description :
Elasticsearch - Open Source, Distributed, RESTful Search Engine
/etc/elasticsearch
/etc/elasticsearch/elasticsearch.yml
/etc/elasticsearch/logging.yml
/etc/init.d/elasticsearch
/etc/sysconfig/elasticsearch
/tmp/elasticsearch
/usr/lib/sysctl.d
/usr/lib/sysctl.d/elasticsearch.conf
/usr/lib/systemd/system/elasticsearch.service
/usr/lib/tmpfiles.d
/usr/lib/tmpfiles.d/elasticsearch.conf
/usr/share/elasticsearch/LICENSE.txt
/usr/share/elasticsearch/NOTICE.txt
/usr/share/elasticsearch/README.textile
/usr/share/elasticsearch/bin
/usr/share/elasticsearch/bin/elasticsearch
/usr/share/elasticsearch/bin/elasticsearch.in.sh
/usr/share/elasticsearch/bin/plugin
/usr/share/elasticsearch/lib/antlr-runtime-3.5.jar
/usr/share/elasticsearch/lib/apache-log4j-extras-1.2.17.jar
/usr/share/elasticsearch/lib/asm-4.1.jar
/usr/share/elasticsearch/lib/asm-commons-4.1.jar
/usr/share/elasticsearch/lib/elasticsearch-1.7.3.jar
/usr/share/elasticsearch/lib/groovy-all-2.4.4.jar
/usr/share/elasticsearch/lib/jna-4.1.0.jar
/usr/share/elasticsearch/lib/jts-1.13.jar
/usr/share/elasticsearch/lib/log4j-1.2.17.jar
/usr/share/elasticsearch/lib/lucene-analyzers-common-4.10.4.jar
/usr/share/elasticsearch/lib/lucene-core-4.10.4.jar
/usr/share/elasticsearch/lib/lucene-expressions-4.10.4.jar
/usr/share/elasticsearch/lib/lucene-grouping-4.10.4.jar
/usr/share/elasticsearch/lib/lucene-highlighter-4.10.4.jar
/usr/share/elasticsearch/lib/lucene-join-4.10.4.jar
/usr/share/elasticsearch/lib/lucene-memory-4.10.4.jar
/usr/share/elasticsearch/lib/lucene-misc-4.10.4.jar
/usr/share/elasticsearch/lib/lucene-queries-4.10.4.jar
/usr/share/elasticsearch/lib/lucene-queryparser-4.10.4.jar
/usr/share/elasticsearch/lib/lucene-sandbox-4.10.4.jar
/usr/share/elasticsearch/lib/lucene-spatial-4.10.4.jar
/usr/share/elasticsearch/lib/lucene-suggest-4.10.4.jar
/usr/share/elasticsearch/lib/sigar
/usr/share/elasticsearch/lib/sigar/libsigar-amd64-linux.so
/usr/share/elasticsearch/lib/sigar/libsigar-ia64-linux.so
/usr/share/elasticsearch/lib/sigar/libsigar-x86-linux.so
/usr/share/elasticsearch/lib/sigar/sigar-1.6.4.jar
/usr/share/elasticsearch/lib/spatial4j-0.4.1.jar
/usr/share/elasticsearch/plugins
/var/lib/elasticsearch
/var/log/elasticsearch
/var/run/elasticsearch

Elasticsearch: Dienst/Deamon-Start einrichten

Um der Such-Server Elasticsearch, welcher als Dienst/Deamon als Hintergrundprozess läuft, auch nach einem Neustart des Servers zur Verfügung zu haben, soll der Dienst/Daemon mit dem Server mit gestartet werden, was mit nachfolgendem Befehl realisiert werden kann:

# systemctl daemon-reload
# systemctl enable elasticsearch.service
ln -s '/usr/lib/systemd/system/elasticsearch.service' '/etc/systemd/system/multi-user.target.wants/elasticsearch.service'

Eine Überprüfung, ob beim Neustart des Server der elasticsearch-Dienst/Deamon wirklich mit gestartet wird, kann mit nachfolgendem Befehl erfolgen und sollte eine Anzeige, wie ebenfalls nachfolgend dargestellt ausgeben:

# systemctl list-unit-files --type=service | grep -e elasticsearch.service
elasticsearch.service                  enabled

bzw.

# systemctl is-enabled elasticsearch.service
enabled

Konfiguration: Elasticsearch

/etc/sysctl.conf

Um den Speicherverbrauch von Elasticsearch Rechnung tragen zu können, ist es erforderlich den Wert

  • vm.max_map_count

ggf. zu erhöhen.

Nachfolgende Abfrage zeigt den Standardwert von vm.max_map_count:

# sysctl vm.max_map_count
vm.max_map_count = 65530

Der Speicher kann erhöht werden, in dem mit nachfolgender Befehl dieser auf den Wert 262144 gesetzt wird:

# sysctl -w vm.max_map_count=262144
vm.max_map_count = 262144

Um diesen Wert auch nach einem Neustart des Servers, permanent setzen zu können kann in der Konfigurationsdatei

  • /etc/sysctl.conf

dies ebenfalls eingetragen werden:

(Komplette Konfigurationsdatei):

# System default settings live in /usr/lib/sysctl.d/00-system.conf.
# To override those settings, enter new settings here, or in an /etc/sysctl.d/<name>.conf file
#
# For more information, see sysctl.conf(5) and sysctl.d(5).
#
# Tachtler - new -
vm.max_map_count=262144

/etc/elasticsearch/elasticsearch.yml

Bevor der Dienst/Daemon von Elasticsearch gestartet werden kann, ist nachfolgende Konfiguration in der Konfigurationsdatei

  • /etc/elasticsearch/elasticsearch.yml

durchzuführen:

(Nur relevanter Ausschnitt):

...
################################### Cluster ###################################
 
# Cluster name identifies your cluster for auto-discovery. If you're running
# multiple clusters on the same network, make sure you're using unique names.
#
# Tachtler
# default: #cluster.name: elasticsearch
cluster.name: graylog
...
...
...
# 1. Disable multicast discovery (enabled by default):
#
# Tachtler
# default: #discovery.zen.ping.multicast.enabled: false
discovery.zen.ping.multicast.enabled: false
#
# 2. Configure an initial list of master nodes in the cluster
#    to perform discovery when new nodes (master or data) are started:
#
# Tachtler
# default: #discovery.zen.ping.unicast.hosts: ["host1", "host2:port"]
discovery.zen.ping.unicast.hosts: ["127.0.0.1:9300"]
...
...
...
# Tachtler - ONLY BEFORE VERSION 2.x
script.disable_dynamic: true

Nachfolgende Änderungen wurden durchgeführt:

  • cluster.name: graylog

Setzen des cluster-Namen für den Zugriff durch Graylog.

:!: HINWEIS - Dies ist grundsätzlich die einzige relevante Änderung die laut Dokumentation von Graylog durchzuführen ist.

  • discovery.zen.ping.multicast.enabled: false

Deaktivieren des ping'en via Multicast über die IP-Adresse 224.0.0.0- Dafür soll nachfolgend eine Unicast IP-Adresse 127.0.0.1 und der Port 9300 verwendet werden!

  • discovery.zen.ping.unicast.hosts: ["127.0.0.1:9300"]

Aktivieren der Verwendung einer Unicast IP-Adresse 127.0.0.1 und des Ports 9300 anstelle von Multicast über die IP-Adresse 224.0.0.0.

  • script.disable_dynamic: true

:!: WICHTIG - Nur erforderlich bei Versionen kleiner 2.x !!!

Deaktivieren der Möglichkeit, das Elasticsearch Skripte via remote Fernausführung dynamisch ausführen kann, was ein Sicherheitsrisiko darstellen würde!.

Elasticsearch: Erster Start

Danach kann der elasticsearch-Server mit nachfolgendem Befehle gestartet werden:

# systemctl start elasticsearch

Mit nachfolgendem Befehl kann der Status des Elasticsearch-Servers abgefragt werden:

# systemctl status elasticsearch
elasticsearch.service - Elasticsearch
   Loaded: loaded (/usr/lib/systemd/system/elasticsearch.service; enabled)
   Active: active (running) since Tue 2015-11-03 17:06:27 CET; 8s ago
     Docs: http://www.elastic.co
 Main PID: 19264 (java)
   CGroup: /system.slice/elasticsearch.service
           └─19264 /bin/java -Xms256m -Xmx1g -Djava.awt.headless=true -XX:+Us...

Nov 03 17:06:27 server11.idmz.tachtler.net systemd[1]: Started Elasticsearch.

Elasticsearch: Test

Ein Verbindungstest kann durchgeführt werden, in dem Elasticsearch über den Kommunikationsurl und -port http://localhost:9200 entsprechend aufgerufen wird, was mit nachfolgendem Befehl durchgeführt werden kann:

# curl -X GET http://localhost:9200
{
  "status" : 200,
  "name" : "Black Marvel",
  "cluster_name" : "graylog",
  "version" : {
    "number" : "1.7.3",
    "build_hash" : "05d4530971ef0ea46d0f4fa6ee64dbc8df659682",
    "build_timestamp" : "2015-10-15T09:14:17Z",
    "build_snapshot" : false,
    "lucene_version" : "4.10.4"
  },
  "tagline" : "You Know, for Search"
}

bzw.

# curl -X GET 'http://localhost:9200/_cluster/health?pretty=true'
{
  "cluster_name" : "graylog",
  "status" : "green",
  "timed_out" : false,
  "number_of_nodes" : 2,
  "number_of_data_nodes" : 1,
  "active_primary_shards" : 1,
  "active_shards" : 1,
  "relocating_shards" : 0,
  "initializing_shards" : 0,
  "unassigned_shards" : 0,
  "delayed_unassigned_shards" : 0,
  "number_of_pending_tasks" : 0,
  "number_of_in_flight_fetch" : 0
}

Installation: graylog

Nachdem das Drittanbieter-Repository

erfolgreich eingebunden wurde, können mit nachfolgendem Befehl, die rpm-Pakete - graylog-server und graylog-web installiert werden:

# yum install graylog-server graylog-web
Loaded plugins: changelog, priorities
77 packages excluded due to repository priority protections
Resolving Dependencies
--> Running transaction check
---> Package graylog-server.noarch 0:1.2.2-1 will be installed
---> Package graylog-web.noarch 0:1.2.2-1 will be installed
--> Finished Dependency Resolution

Changes in packages about to be updated:


Dependencies Resolved

================================================================================
 Package                Arch           Version            Repository       Size
================================================================================
Installing:
 graylog-server         noarch         1.2.2-1            graylog          64 M
 graylog-web            noarch         1.2.2-1            graylog          39 M

Transaction Summary
================================================================================
Install  2 Packages

Total download size: 104 M
Installed size: 117 M
Is this ok [y/d/N]: y
Downloading packages:
(1/2): graylog-web-1.2.2-1.noarch.rpm                      |  39 MB   01:01     
(2/2): graylog-server-1.2.2-1.noarch.rpm                   |  64 MB   01:31     
--------------------------------------------------------------------------------
Total                                              1.1 MB/s | 104 MB  01:31     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : graylog-server-1.2.2-1.noarch                                1/2 
ln -s '/usr/lib/systemd/system/graylog-server.service' '/etc/systemd/system/multi-user.target.wants/graylog-server.service'
  Installing : graylog-web-1.2.2-1.noarch                                   2/2 
ln -s '/usr/lib/systemd/system/graylog-web.service' '/etc/systemd/system/multi-user.target.wants/graylog-web.service'
  Verifying  : graylog-web-1.2.2-1.noarch                                   1/2 
  Verifying  : graylog-server-1.2.2-1.noarch                                2/2 

Installed:
  graylog-server.noarch 0:1.2.2-1          graylog-web.noarch 0:1.2.2-1         

Complete!

Mit nachfolgendem Befehl kann überprüft werden, welche Inhalte mit den Paket graylog-server installiert wurden.

# rpm -qil graylog-server
Name        : graylog-server
Version     : 1.2.2
Release     : 1
Architecture: noarch
Install Date: Tue 03 Nov 2015 02:43:48 PM CET
Group       : optional
Size        : 76426490
License     : GPLv3
Signature   : RSA/SHA1, Mon 26 Oct 2015 05:47:21 PM CET, Key ID d44c1d8db1606f22
Source RPM  : graylog-server-1.2.2-1.src.rpm
Build Date  : Mon 26 Oct 2015 05:47:02 PM CET
Build Host  : d725e9e9466f
Relocations : / 
Packager    : Graylog, Inc. <hello@graylog.org>
Vendor      : graylog
URL         : https://www.graylog.org/
Summary     : Graylog server
Description :
Graylog server
/etc/graylog/server/log4j.xml
/etc/graylog/server/server.conf
/etc/sysconfig/graylog-server
/usr/lib/systemd/system/graylog-server.service
/usr/share/graylog-server/bin/graylog-es-timestamp-fixup
/usr/share/graylog-server/bin/graylog-server
/usr/share/graylog-server/graylog.jar
/usr/share/graylog-server/lib/sigar/libsigar-amd64-linux.so
/usr/share/graylog-server/lib/sigar/libsigar-x86-linux.so
/usr/share/graylog-server/plugin/usage-statistics-1.1.1.jar

Mit nachfolgendem Befehl kann überprüft werden, welche Inhalte mit den Paket graylog-web installiert wurden.

# rpm -qil graylog-web
Name        : graylog-web
Version     : 1.2.2
Release     : 1
Architecture: noarch
Install Date: Tue 03 Nov 2015 02:43:50 PM CET
Group       : optional
Size        : 46265591
License     : GPLv3
Signature   : RSA/SHA1, Mon 26 Oct 2015 05:48:39 PM CET, Key ID d44c1d8db1606f22
Source RPM  : graylog-web-1.2.2-1.src.rpm
Build Date  : Mon 26 Oct 2015 05:48:27 PM CET
Build Host  : 254d018f7dab
Relocations : / 
Packager    : Graylog, Inc. <hello@graylog.org>
Vendor      : graylog
URL         : https://www.graylog.org/
Summary     : Graylog web
Description :
Graylog web
/etc/graylog/web/application.conf
/etc/graylog/web/logback.xml
/etc/graylog/web/play.plugins
/etc/graylog/web/web.conf
/etc/sysconfig/graylog-web
/usr/lib/systemd/system/graylog-web.service
/usr/share/graylog-web/README.md
/usr/share/graylog-web/bin/graylog-web
/usr/share/graylog-web/bin/graylog-web-interface
/usr/share/graylog-web/conf
/usr/share/graylog-web/lib/aopalliance.aopalliance-1.0.jar
/usr/share/graylog-web/lib/ch.qos.logback.logback-classic-1.1.1.jar
/usr/share/graylog-web/lib/ch.qos.logback.logback-core-1.1.1.jar
/usr/share/graylog-web/lib/com.fasterxml.classmate-1.0.0.jar
/usr/share/graylog-web/lib/com.fasterxml.jackson.core.jackson-annotations-2.6.0.jar
/usr/share/graylog-web/lib/com.fasterxml.jackson.core.jackson-core-2.6.0.jar
/usr/share/graylog-web/lib/com.fasterxml.jackson.core.jackson-databind-2.6.0.jar
/usr/share/graylog-web/lib/com.fasterxml.jackson.datatype.jackson-datatype-guava-2.6.0.jar
/usr/share/graylog-web/lib/com.fasterxml.jackson.datatype.jackson-datatype-joda-2.6.0.jar
/usr/share/graylog-web/lib/com.github.fdimuccio.play2-sockjs_2.10-0.3.1.jar
/usr/share/graylog-web/lib/com.google.code.findbugs.jsr305-3.0.0.jar
/usr/share/graylog-web/lib/com.google.guava.guava-18.0.jar
/usr/share/graylog-web/lib/com.google.inject.extensions.guice-assistedinject-4.0.jar
/usr/share/graylog-web/lib/com.google.inject.guice-4.0.jar
/usr/share/graylog-web/lib/com.ning.async-http-client-1.9.31.jar
/usr/share/graylog-web/lib/com.squareup.okhttp.okhttp-2.4.0.jar
/usr/share/graylog-web/lib/com.squareup.okio.okio-1.4.0.jar
/usr/share/graylog-web/lib/com.typesafe.akka.akka-actor_2.10-2.3.5.jar
/usr/share/graylog-web/lib/com.typesafe.akka.akka-slf4j_2.10-2.3.4.jar
/usr/share/graylog-web/lib/com.typesafe.config-1.2.1.jar
/usr/share/graylog-web/lib/com.typesafe.netty.netty-http-pipelining-1.1.2.jar
/usr/share/graylog-web/lib/com.typesafe.play.build-link-2.3.10.jar
/usr/share/graylog-web/lib/com.typesafe.play.play-cache_2.10--2.3.10-2.3.10.jar
/usr/share/graylog-web/lib/com.typesafe.play.play-datacommons_2.10-2.3.10.jar
/usr/share/graylog-web/lib/com.typesafe.play.play-exceptions-2.3.10.jar
/usr/share/graylog-web/lib/com.typesafe.play.play-functional_2.10-2.3.10.jar
/usr/share/graylog-web/lib/com.typesafe.play.play-iteratees_2.10-2.3.10.jar
/usr/share/graylog-web/lib/com.typesafe.play.play-java_2.10--2.3.10-2.3.10.jar
/usr/share/graylog-web/lib/com.typesafe.play.play-json_2.10-2.3.10.jar
/usr/share/graylog-web/lib/com.typesafe.play.play_2.10-2.3.10.jar
/usr/share/graylog-web/lib/com.typesafe.play.twirl-api_2.10-1.0.2.jar
/usr/share/graylog-web/lib/commons-beanutils.commons-beanutils-1.8.3.jar
/usr/share/graylog-web/lib/commons-codec.commons-codec-1.9.jar
/usr/share/graylog-web/lib/commons-logging.commons-logging-1.1.3.jar
/usr/share/graylog-web/lib/dom4j.dom4j-1.6.1.jar
/usr/share/graylog-web/lib/graylog-web-interface.graylog-web-interface-1.2.2-assets.jar
/usr/share/graylog-web/lib/graylog-web-interface.graylog-web-interface-1.2.2.jar
/usr/share/graylog-web/lib/io.netty.netty-3.10.4.Final.jar
/usr/share/graylog-web/lib/javassist.javassist--3.12.1.GA-3.12.1.GA.jar
/usr/share/graylog-web/lib/javax.el.javax.el-api-3.0.0.jar
/usr/share/graylog-web/lib/javax.inject.javax.inject-1.jar
/usr/share/graylog-web/lib/javax.transaction.jta-1.1.jar
/usr/share/graylog-web/lib/javax.validation.validation-api-1.1.0.Final.jar
/usr/share/graylog-web/lib/joda-time.joda-time-2.8.1.jar
/usr/share/graylog-web/lib/net.sf.ehcache.ehcache-core-2.6.8.jar
/usr/share/graylog-web/lib/org.apache.commons.commons-lang3-3.1.jar
/usr/share/graylog-web/lib/org.apache.shiro.shiro-core-1.2.3.jar
/usr/share/graylog-web/lib/org.apache.tomcat.tomcat-servlet-api-8.0.5.jar
/usr/share/graylog-web/lib/org.graylog2.graylog2-rest-client--1.2.2-1.2.2.jar
/usr/share/graylog-web/lib/org.graylog2.graylog2-rest-models-1.2.2.jar
/usr/share/graylog-web/lib/org.graylog2.play2-graylog2_2.10-1.2.1.jar
/usr/share/graylog-web/lib/org.hibernate.hibernate-validator-5.1.3.Final.jar
/usr/share/graylog-web/lib/org.javassist.javassist-3.19.0-GA.jar
/usr/share/graylog-web/lib/org.jboss.logging.jboss-logging-3.2.0.Final.jar
/usr/share/graylog-web/lib/org.joda.joda-convert-1.6.jar
/usr/share/graylog-web/lib/org.reflections.reflections-0.9.8.jar
/usr/share/graylog-web/lib/org.scala-lang.scala-library-2.10.4.jar
/usr/share/graylog-web/lib/org.scala-lang.scala-reflect-2.10.4.jar
/usr/share/graylog-web/lib/org.scala-stm.scala-stm_2.10-0.7.jar
/usr/share/graylog-web/lib/org.slf4j.jcl-over-slf4j-1.7.6.jar
/usr/share/graylog-web/lib/org.slf4j.jul-to-slf4j-1.7.6.jar
/usr/share/graylog-web/lib/org.slf4j.slf4j-api-1.7.12.jar
/usr/share/graylog-web/lib/org.springframework.spring-aop--4.0.3.RELEASE-4.0.3.RELEASE.jar
/usr/share/graylog-web/lib/org.springframework.spring-beans-4.0.3.RELEASE.jar
/usr/share/graylog-web/lib/org.springframework.spring-context-4.0.3.RELEASE.jar
/usr/share/graylog-web/lib/org.springframework.spring-core-4.0.3.RELEASE.jar
/usr/share/graylog-web/lib/org.springframework.spring-expression--4.0.3.RELEASE-4.0.3.RELEASE.jar
/usr/share/graylog-web/lib/org.yaml.snakeyaml-1.13.jar
/usr/share/graylog-web/lib/xerces.xercesImpl-2.11.0.jar
/usr/share/graylog-web/lib/xml-apis.xml-apis-1.4.01.jar

Installation: pwgen

Nachdem das Drittanbieter-Repository

erfolgreich eingebunden wurde, kann mit nachfolgendem Befehl, das rpm-Paket - pwgen installiert werden:

# yum install pwgen
Loaded plugins: changelog, priorities
77 packages excluded due to repository priority protections
Resolving Dependencies
--> Running transaction check
---> Package pwgen.x86_64 0:2.07-1.el7 will be installed
--> Finished Dependency Resolution

Changes in packages about to be updated:


Dependencies Resolved

================================================================================
 Package          Arch              Version               Repository       Size
================================================================================
Installing:
 pwgen            x86_64            2.07-1.el7            epel             24 k

Transaction Summary
================================================================================
Install  1 Package

Total download size: 24 k
Installed size: 37 k
Is this ok [y/d/N]: y
Downloading packages:
pwgen-2.07-1.el7.x86_64.rpm                                |  24 kB   00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : pwgen-2.07-1.el7.x86_64                                      1/1 
  Verifying  : pwgen-2.07-1.el7.x86_64                                      1/1 

Installed:
  pwgen.x86_64 0:2.07-1.el7                                                     

Complete!

Mit nachfolgendem Befehl kann überprüft werden, welche Inhalte mit den Paket pwgen installiert wurden.

# rpm -qil pwgen
Name        : pwgen
Version     : 2.07
Release     : 1.el7
Architecture: x86_64
Install Date: Tue 03 Nov 2015 02:53:20 PM CET
Group       : Applications/System
Size        : 37925
License     : GPL+
Signature   : RSA/SHA256, Sat 06 Dec 2014 03:49:56 PM CET, Key ID 6a2faea2352c64e5
Source RPM  : pwgen-2.07-1.el7.src.rpm
Build Date  : Fri 05 Dec 2014 06:56:18 PM CET
Build Host  : buildvm-08.phx2.fedoraproject.org
Relocations : (not relocatable)
Packager    : Fedora Project
Vendor      : Fedora Project
URL         : http://sf.net/projects/pwgen
Summary     : Automatic password generation
Description :
pwgen generates random, meaningless but pronounceable passwords. These
passwords contain either only lowercase letters, or upper and lower case, or
upper case, lower case and numeric digits. Upper case letters and numeric
digits are placed in a way that eases memorizing the password.
/usr/bin/pwgen
/usr/share/doc/pwgen-2.07
/usr/share/doc/pwgen-2.07/changelog
/usr/share/doc/pwgen-2.07/copyright
/usr/share/man/man1/pwgen.1.gz

graylog-server: Dienst/Deamon-Start einrichten

Um der Graylog-Server, welcher als Dienst/Deamon als Hintergrundprozess läuft, auch nach einem Neustart des Servers zur Verfügung zu haben, soll der Dienst/Daemon mit dem Server mit gestartet werden.

:!: HINWEIS - Mit der Installation, wurde der Dienst/Daemon bereits zum automatischen Start via systemd hinzugefügt!

Eine Überprüfung, ob beim Neustart des Server der graylog-server.service-Dienst/Deamon wirklich mit gestartet wird, kann mit nachfolgendem Befehl erfolgen und sollte eine Anzeige, wie ebenfalls nachfolgend dargestellt ausgeben:

# systemctl list-unit-files --type=service | grep -e graylog-server.service
graylog-server.service                 enabled

bzw.

# systemctl is-enabled graylog-server.service
enabled

graylog-web.service: Dienst/Deamon-Start einrichten

Um der Graylog-Web-Server, welcher als Dienst/Deamon als Hintergrundprozess läuft, auch nach einem Neustart des Servers zur Verfügung zu haben, soll der Dienst/Daemon mit dem Server mit gestartet werden.

:!: HINWEIS - Mit der Installation, wurde der Dienst/Daemon bereits zum automatischen Start via systemd hinzugefügt!

Eine Überprüfung, ob beim Neustart des Server der graylog-web.service-Dienst/Deamon wirklich mit gestartet wird, kann mit nachfolgendem Befehl erfolgen und sollte eine Anzeige, wie ebenfalls nachfolgend dargestellt ausgeben:

# systemctl list-unit-files --type=service | grep -e graylog-server.service
graylog-server.service                 enabled

bzw.

# systemctl is-enabled graylog-web.service
enabled

Konfiguration: graylog-server

/etc/sysconfig/graylog-server

Nachfolgende Konfigurationsdatei enthält die Startparameter für die JAVA virtuelle Maschine des Graylog-Servers:

  • /etc/sysconfig/graylog-server

Nachfolgende Anpassung sollte durchgeführt werden, da ab OpenJDK Version 1.8.0 die Parameter

  • PermSize
  • MaxPermSize

nicht merh unterstützt werden:

(Komplette Konfigurationsdatei):

# Path to the java executable.
JAVA=/usr/bin/java
 
# Default Java options for heap and garbage collection.
# Tachtler
# default: GRAYLOG_SERVER_JAVA_OPTS="-Xms1g -Xmx1g -XX:NewRatio=1 -XX:PermSize=128m -XX:MaxPermSize=256m -server -XX:+ResizeTLAB -XX:+UseConcMarkSweepGC -XX:+CMSConcurrentMTEnabled -XX:+CMSClassUnloadingEnabled -XX:+UseParNewGC -XX:-OmitStackTraceInFastThrow"
GRAYLOG_SERVER_JAVA_OPTS="-Xms1g -Xmx1g -XX:NewRatio=1 -server -XX:+ResizeTLAB -XX:+UseConcMarkSweepGC -XX:+CMSConcurrentMTEnabled -XX:+CMSClassUnloadingEnabled -XX:+UseParNewGC -XX:-OmitStackTraceInFastThrow"
 
# Pass some extra args to graylog-server. (i.e. "-d" to enable debug mode)
GRAYLOG_SERVER_ARGS=""
 
# Program that will be used to wrap the graylog-server command. Useful to
# support programs like authbind.
GRAYLOG_COMMAND_WRAPPER=""

Nachfolgende Einstellungen wurden durchgeführt:

  • GRAYLOG_SERVER_JAVA_OPTS="-Xms1g -Xmx1g -XX:NewRatio=1 -server -XX:+ResizeTLAB -XX:+UseConcMarkSweepGC -XX:+CMSConcurrentMTEnabled -XX:+CMSClassUnloadingEnabled -XX:+UseParNewGC -XX:-OmitStackTraceInFastThrow"

Entfernen der Parameter -XX:PermSize=128m und -XX:MaxPermSize=256m aus der Graylog-Server GRAYLOG_SERVER_JAVA_OPTS Konfiguration.

/etc/graylog/server/server.conf

Nachfolgende Konfigurationsdatei ist die Hauptkonfigurationsdatei des Graylog-Servers:

  • /etc/graylog/server/server.conf

Nachfolgende Anpassungen sind erforderlich, damit der Graylog-Server lauffähig ist:

(Komplette Konfigurationsdatei):

# If you are running more than one instances of graylog2-server you have to select one of these
# instances as master. The master will perform some periodical tasks that non-masters won't perform.
is_master = true
 
# The auto-generated node ID will be stored in this file and read after restarts. It is a good idea
# to use an absolute file path here if you are starting graylog2-server from init scripts or similar.
node_id_file = /etc/graylog/server/node-id
 
# You MUST set a secret to secure/pepper the stored user passwords here. Use at least 64 characters.
# Generate one by using for example: pwgen -N 1 -s 96
# Tachtler
# default: password_secret = 
password_secret = uKyAHSUuCW4tUNUfX3XyaoxZQPeXXdS76MPn0KBxeZs7D1xXwTSoD7506oQwu9uISrcpBklodlXuswXMTZtwKEz5HM2zzGZL
 
# The default root user is named 'admin'
# Tachtler
# default: #root_username = admin
root_username = administrator
 
# You MUST specify a hash password for the root user (which you only need to initially set up the
# system and in case you lose connectivity to your authentication backend)
# This password cannot be changed using the API or via the web interface. If you need to change it,
# modify it in this file.
# Create one by using for example: echo -n yourpassword | shasum -a 256
# and put the resulting hash value into the following line
# Tachtler
# default: root_password_sha2 =
root_password_sha2 = addb0f5e7826c857d7376d1bd9bc33c0c544790a2eac96144a8af22b1298c940
 
# The email address of the root user.
# Default is empty
# Tachtler
# default: #root_email = ""
root_email = "root@tachtler.net"
 
# The time zone setting of the root user.
# The configured time zone must be parseable by http://www.joda.org/joda-time/apidocs/org/joda/time/DateTimeZone.html#forID-java.lang.String-
# Default is UTC
# Tachtler
# default: #root_timezone = UTC
root_timezone = Europe/Berlin
 
# Set plugin directory here (relative or absolute)
plugin_dir = /usr/share/graylog-server/plugin
 
# REST API listen URI. Must be reachable by other graylog2-server nodes if you run a cluster.
# Tachtler
# default: rest_listen_uri = http://127.0.0.1:12900/
rest_listen_uri = http://0.0.0.0:12900/
 
# REST API transport address. Defaults to the value of rest_listen_uri. Exception: If rest_listen_uri
# is set to a wildcard IP address (0.0.0.0) the first non-loopback IPv4 system address is used.
# If set, his will be promoted in the cluster discovery APIs, so other nodes may try to connect on
# this address and it is used to generate URLs addressing entities in the REST API. (see rest_listen_uri)
# You will need to define this, if your Graylog server is running behind a HTTP proxy that is rewriting
# the scheme, host name or URI.
# Tachtler
# default: #rest_transport_uri = http://192.168.1.1:12900/
rest_transport_uri = http://192.168.0.110:12900/
 
# Enable CORS headers for REST API. This is necessary for JS-clients accessing the server directly.
# If these are disabled, modern browsers will not be able to retrieve resources from the server.
# This is disabled by default. Uncomment the next line to enable it.
# Tachtler
# default: #rest_enable_cors = true
rest_enable_cors = true
 
# Enable GZIP support for REST API. This compresses API responses and therefore helps to reduce
# overall round trip times. This is disabled by default. Uncomment the next line to enable it.
# Tachtler
# default: #rest_enable_gzip = true
rest_enable_gzip = true
 
# Enable HTTPS support for the REST API. This secures the communication with the REST API with
# TLS to prevent request forgery and eavesdropping. This is disabled by default. Uncomment the
# next line to enable it.
#rest_enable_tls = true
 
# The X.509 certificate file to use for securing the REST API.
#rest_tls_cert_file = /path/to/graylog2.crt
 
# The private key to use for securing the REST API.
#rest_tls_key_file = /path/to/graylog2.key
 
# The password to unlock the private key used for securing the REST API.
#rest_tls_key_password = secret
 
# The maximum size of a single HTTP chunk in bytes.
#rest_max_chunk_size = 8192
 
# The maximum size of the HTTP request headers in bytes.
#rest_max_header_size = 8192
 
# The maximal length of the initial HTTP/1.1 line in bytes.
#rest_max_initial_line_length = 4096
 
# The size of the execution handler thread pool used exclusively for serving the REST API.
#rest_thread_pool_size = 16
 
# The size of the worker thread pool used exclusively for serving the REST API.
#rest_worker_threads_max_pool_size = 16
 
# Embedded Elasticsearch configuration file
# pay attention to the working directory of the server, maybe use an absolute path here
#elasticsearch_config_file = /etc/graylog/server/elasticsearch.yml
 
# Graylog will use multiple indices to store documents in. You can configured the strategy it uses to determine
# when to rotate the currently active write index.
# It supports multiple rotation strategies:
#   - "count" of messages per index, use elasticsearch_max_docs_per_index below to configure
#   - "size" per index, use elasticsearch_max_size_per_index below to configure
# valid values are "count", "size" and "time", default is "count"
# Tachtler
# default: rotation_strategy = count
rotation_strategy = time
 
# (Approximate) maximum number of documents in an Elasticsearch index before a new index
# is being created, also see no_retention and elasticsearch_max_number_of_indices.
# Configure this if you used 'rotation_strategy = count' above.
# Tachtler
# default: elasticsearch_max_docs_per_index = 20000000
# elasticsearch_max_docs_per_index = 20000000
 
# (Approximate) maximum size in bytes per Elasticsearch index on disk before a new index is being created, also see
# no_retention and elasticsearch_max_number_of_indices. Default is 1GB.
# Configure this if you used 'rotation_strategy = size' above.
#elasticsearch_max_size_per_index = 1073741824
 
# (Approximate) maximum time before a new Elasticsearch index is being created, also see
# no_retention and elasticsearch_max_number_of_indices. Default is 1 day.
# Configure this if you used 'rotation_strategy = time' above.
# Please note that this rotation period does not look at the time specified in the received messages, but is
# using the real clock value to decide when to rotate the index!
# Specify the time using a duration and a suffix indicating which unit you want:
#  1w  = 1 week
#  1d  = 1 day
#  12h = 12 hours
# Permitted suffixes are: d for day, h for hour, m for minute, s for second.
# Tachtler
# default: #elasticsearch_max_time_per_index = 1d
elasticsearch_max_time_per_index = 1d
 
# Disable checking the version of Elasticsearch for being compatible with this Graylog release.
# WARNING: Using Graylog with unsupported and untested versions of Elasticsearch may lead to data loss!
#elasticsearch_disable_version_check = true
 
# Disable message retention on this node, i. e. disable Elasticsearch index rotation.
#no_retention = false
 
# How many indices do you want to keep?
# Tachtler
# default: elasticsearch_max_number_of_indices = 20
elasticsearch_max_number_of_indices = 14
 
# Decide what happens with the oldest indices when the maximum number of indices is reached.
# The following strategies are availble:
#   - delete # Deletes the index completely (Default)
#   - close # Closes the index and hides it from the system. Can be re-opened later.
retention_strategy = delete
 
# How many Elasticsearch shards and replicas should be used per index? Note that this only applies to newly created indices.
# Tachtler
# default: elasticsearch_shards = 4
elasticsearch_shards = 1
elasticsearch_replicas = 0
 
# Prefix for all Elasticsearch indices and index aliases managed by Graylog.
# Tachtler
# default: elasticsearch_index_prefix = graylog2
elasticsearch_index_prefix = graylog
 
# Do you want to allow searches with leading wildcards? This can be extremely resource hungry and should only
# be enabled with care. See also: https://www.graylog.org/documentation/general/queries/
allow_leading_wildcard_searches = false
 
# Do you want to allow searches to be highlighted? Depending on the size of your messages this can be memory hungry and
# should only be enabled after making sure your Elasticsearch cluster has enough memory.
allow_highlighting = false
 
# settings to be passed to elasticsearch's client (overriding those in the provided elasticsearch_config_file)
# all these
# this must be the same as for your Elasticsearch cluster
# Tachtler
# default: #elasticsearch_cluster_name = graylog2
elasticsearch_cluster_name = graylog
 
# you could also leave this out, but makes it easier to identify the graylog2 client instance
# Tachtler
# default: #elasticsearch_node_name = graylog2-server
elasticsearch_node_name = graylog-server
 
# we don't want the graylog2 server to store any data, or be master node
#elasticsearch_node_master = false
#elasticsearch_node_data = false
 
# use a different port if you run multiple Elasticsearch nodes on one machine
#elasticsearch_transport_tcp_port = 9350
 
# we don't need to run the embedded HTTP server here
# Tachtler
# default: #elasticsearch_http_enabled = false
elasticsearch_http_enabled = false
 
# Tachtler
# default: #elasticsearch_discovery_zen_ping_multicast_enabled = false
elasticsearch_discovery_zen_ping_multicast_enabled = false
# Tachtler
# default: #elasticsearch_discovery_zen_ping_unicast_hosts = 127.0.0.1:9300
elasticsearch_discovery_zen_ping_unicast_hosts = 127.0.0.1:9300
 
# Change the following setting if you are running into problems with timeouts during Elasticsearch cluster discovery.
# The setting is specified in milliseconds, the default is 5000ms (5 seconds).
#elasticsearch_cluster_discovery_timeout = 5000
 
# the following settings allow to change the bind addresses for the Elasticsearch client in graylog2
# these settings are empty by default, letting Elasticsearch choose automatically,
# override them here or in the 'elasticsearch_config_file' if you need to bind to a special address
# refer to http://www.elasticsearch.org/guide/en/elasticsearch/reference/0.90/modules-network.html
# for special values here
#elasticsearch_network_host =
#elasticsearch_network_bind_host =
#elasticsearch_network_publish_host =
 
# The total amount of time discovery will look for other Elasticsearch nodes in the cluster
# before giving up and declaring the current node master.
#elasticsearch_discovery_initial_state_timeout = 3s
 
# Analyzer (tokenizer) to use for message and full_message field. The "standard" filter usually is a good idea.
# All supported analyzers are: standard, simple, whitespace, stop, keyword, pattern, language, snowball, custom
# Elasticsearch documentation: http://www.elasticsearch.org/guide/reference/index-modules/analysis/
# Note that this setting only takes effect on newly created indices.
elasticsearch_analyzer = standard
 
# Global request timeout for Elasticsearch requests (e. g. during search, index creation, or index time-range
# calculations) based on a best-effort to restrict the runtime of Elasticsearch operations.
# Default: 1m
#elasticsearch_request_timeout = 1m
 
# Batch size for the Elasticsearch output. This is the maximum (!) number of messages the Elasticsearch output
# module will get at once and write to Elasticsearch in a batch call. If the configured batch size has not been
# reached within output_flush_interval seconds, everything that is available will be flushed at once. Remember
# that every outputbuffer processor manages its own batch and performs its own batch write calls.
# ("outputbuffer_processors" variable)
output_batch_size = 500
 
# Flush interval (in seconds) for the Elasticsearch output. This is the maximum amount of time between two
# batches of messages written to Elasticsearch. It is only effective at all if your minimum number of messages
# for this time period is less than output_batch_size * outputbuffer_processors.
output_flush_interval = 1
 
# As stream outputs are loaded only on demand, an output which is failing to initialize will be tried over and
# over again. To prevent this, the following configuration options define after how many faults an output will
# not be tried again for an also configurable amount of seconds.
output_fault_count_threshold = 5
output_fault_penalty_seconds = 30
 
# The number of parallel running processors.
# Raise this number if your buffers are filling up.
processbuffer_processors = 5
outputbuffer_processors = 3
 
#outputbuffer_processor_keep_alive_time = 5000
#outputbuffer_processor_threads_core_pool_size = 3
#outputbuffer_processor_threads_max_pool_size = 30
 
# UDP receive buffer size for all message inputs (e. g. SyslogUDPInput).
#udp_recvbuffer_sizes = 1048576
 
# Wait strategy describing how buffer processors wait on a cursor sequence. (default: sleeping)
# Possible types:
#  - yielding
#     Compromise between performance and CPU usage.
#  - sleeping
#     Compromise between performance and CPU usage. Latency spikes can occur after quiet periods.
#  - blocking
#     High throughput, low latency, higher CPU usage.
#  - busy_spinning
#     Avoids syscalls which could introduce latency jitter. Best when threads can be bound to specific CPU cores.
processor_wait_strategy = blocking
 
# Size of internal ring buffers. Raise this if raising outputbuffer_processors does not help anymore.
# For optimum performance your LogMessage objects in the ring buffer should fit in your CPU L3 cache.
# Start server with --statistics flag to see buffer utilization.
# Must be a power of 2. (512, 1024, 2048, ...)
ring_size = 65536
 
inputbuffer_ring_size = 65536
inputbuffer_processors = 2
inputbuffer_wait_strategy = blocking
 
# Enable the disk based message journal.
message_journal_enabled = true
 
# The directory which will be used to store the message journal. The directory must me exclusively used by Graylog and
# must not contain any other files than the ones created by Graylog itself.
message_journal_dir = /var/lib/graylog-server/journal
 
# Journal hold messages before they could be written to Elasticsearch.
# For a maximum of 12 hours or 5 GB whichever happens first.
# During normal operation the journal will be smaller.
#message_journal_max_age = 12h
#message_journal_max_size = 5gb
 
#message_journal_flush_age = 1m
#message_journal_flush_interval = 1000000
#message_journal_segment_age = 1h
#message_journal_segment_size = 100mb
 
# Number of threads used exclusively for dispatching internal events. Default is 2.
#async_eventbus_processors = 2
 
# EXPERIMENTAL: Dead Letters
# Every failed indexing attempt is logged by default and made visible in the web-interface. You can enable
# the experimental dead letters feature to write every message that was not successfully indexed into the
# MongoDB "dead_letters" collection to make sure that you never lose a message. The actual writing of dead
# letter should work fine already but it is not heavily tested yet and will get more features in future
# releases.
dead_letters_enabled = false
 
# How many seconds to wait between marking node as DEAD for possible load balancers and starting the actual
# shutdown process. Set to 0 if you have no status checking load balancers in front.
lb_recognition_period_seconds = 3
 
# Every message is matched against the configured streams and it can happen that a stream contains rules which
# take an unusual amount of time to run, for example if its using regular expressions that perform excessive backtracking.
# This will impact the processing of the entire server. To keep such misbehaving stream rules from impacting other
# streams, Graylog limits the execution time for each stream.
# The default values are noted below, the timeout is in milliseconds.
# If the stream matching for one stream took longer than the timeout value, and this happened more than "max_faults" times
# that stream is disabled and a notification is shown in the web interface.
#stream_processing_timeout = 2000
#stream_processing_max_faults = 3
 
# Length of the interval in seconds in which the alert conditions for all streams should be checked
# and alarms are being sent.
#alert_check_interval = 60
 
# Since 0.21 the graylog2 server supports pluggable output modules. This means a single message can be written to multiple
# outputs. The next setting defines the timeout for a single output module, including the default output module where all
# messages end up.
#
# Time in milliseconds to wait for all message outputs to finish writing a single message.
#output_module_timeout = 10000
 
# Time in milliseconds after which a detected stale master node is being rechecked on startup.
#stale_master_timeout = 2000
 
# Time in milliseconds which Graylog is waiting for all threads to stop on shutdown.
#shutdown_timeout = 30000
 
# MongoDB connection string
# See http://docs.mongodb.org/manual/reference/connection-string/ for details
# Tachtler
# default: mongodb_uri = mongodb://localhost/graylog2
 
# Authenticate against the MongoDB server
# Tachtler
# default: #mongodb_uri = mongodb://grayloguser:secret@localhost:27017/graylog2
mongodb_uri = mongodb://grayloguser:geheim@localhost:27017/graylog
 
# Use a replica set instead of a single host
#mongodb_uri = mongodb://grayloguser:secret@localhost:27017,localhost:27018,localhost:27019/graylog2
 
# Increase this value according to the maximum connections your MongoDB server can handle from a single client
# if you encounter MongoDB connection problems.
mongodb_max_connections = 100
 
# Number of threads allowed to be blocked by MongoDB connections multiplier. Default: 5
# If mongodb_max_connections is 100, and mongodb_threads_allowed_to_block_multiplier is 5,
# then 500 threads can block. More than that and an exception will be thrown.
# http://api.mongodb.org/java/current/com/mongodb/MongoOptions.html#threadsAllowedToBlockForConnectionMultiplier
mongodb_threads_allowed_to_block_multiplier = 5
 
# Drools Rule File (Use to rewrite incoming log messages)
# See: https://www.graylog.org/documentation/general/rewriting/
#rules_file = /etc/graylog/server/rules.drl
 
# Email transport
# Tachtler
# default: #transport_email_enabled = false
transport_email_enabled = true
# Tachtler
# default: #transport_email_hostname = mail.example.com
transport_email_hostname = localhost
# Tachtler
# default: #transport_email_port = 587
transport_email_port = 25
# Tachtler
# default: #transport_email_use_auth = true
transport_email_use_auth = false
# Tachtler
# default: #transport_email_use_tls = true
transport_email_use_tls = true
# Tachtler
# default: #transport_email_use_ssl = true
transport_email_use_ssl = false
#transport_email_auth_username = you@example.com
#transport_email_auth_password = secret
# Tachtler
# default: #transport_email_subject_prefix = [graylog2]
transport_email_subject_prefix = [graylog]
# Tachtler
# default: #transport_email_from_email = graylog2@example.com
transport_email_from_email = graylog@tachtler.net
 
# Specify and uncomment this if you want to include links to the stream in your stream alert mails.
# This should define the fully qualified base url to your web interface exactly the same way as it is accessed by your users.
# Tachtler
# defautl: #transport_email_web_interface_url = https://graylog2.example.com
transport_email_web_interface_url = https://graylog.tachtler.net
 
# The default connect timeout for outgoing HTTP connections.
# Values must be a positive duration (and between 1 and 2147483647 when converted to milliseconds).
# Default: 5s
#http_connect_timeout = 5s
 
# The default read timeout for outgoing HTTP connections.
# Values must be a positive duration (and between 1 and 2147483647 when converted to milliseconds).
# Default: 10s
#http_read_timeout = 10s
 
# The default write timeout for outgoing HTTP connections.
# Values must be a positive duration (and between 1 and 2147483647 when converted to milliseconds).
# Default: 10s
#http_write_timeout = 10s
 
# HTTP proxy for outgoing HTTP connections
#http_proxy_uri =
 
# Disable the optimization of Elasticsearch indices after index cycling. This may take some load from Elasticsearch
# on heavily used systems with large indices, but it will decrease search performance. The default is to optimize
# cycled indices.
#disable_index_optimization = true
 
# Optimize the index down to <= index_optimization_max_num_segments. A higher number may take some load from Elasticsearch
# on heavily used systems with large indices, but it will decrease search performance. The default is 1.
#index_optimization_max_num_segments = 1
 
# The threshold of the garbage collection runs. If GC runs take longer than this threshold, a system notification
# will be generated to warn the administrator about possible problems with the system. Default is 1 second.
#gc_warning_threshold = 1s
 
# Connection timeout for a configured LDAP server (e. g. ActiveDirectory) in milliseconds.
#ldap_connection_timeout = 2000
 
# Enable collection of Graylog-related metrics into MongoDB
# WARNING: This will add *a lot* of data into your MongoDB database on a regular interval (1 second)!
# DEPRECATED: This setting and the respective feature will be removed in a future version of Graylog.
#enable_metrics_collection = false
 
# Disable the use of SIGAR for collecting system stats
#disable_sigar = false
 
# Amount of time of inactivity after which collectors are flagged as inactive (Default: 1 minute)
#collector_inactive_threshold = 1m
 
# Amount of time after which inactive collectors are purged (Default: 14 days)
#collector_expiration_threshold = 14d
 
# The default cache time for dashboard widgets. (Default: 10 seconds, minimum: 1 second)
#dashboard_widget_default_cache_time = 10s

Nachfolgende Einstellungen wurden durchgeführt:

  • password_secret = uKyAHSUuCW4tUNUfX3XyaoxZQPeXXdS76MPn0KBxeZs7D1xXwTSoD7506oQwu9uISrcpBklodlXuswXMTZtwKEz5HM2zzGZL

Der Passwort-Hash dient als Referenz zur Verschlüsselung von Passwörtern der Benutzer. Der Passwort-Hash wurde mit Hilfe des nachfolgenden Befehls erstellt:

# pwgen -N 1 -s 96
uKyAHSUuCW4tUNUfX3XyaoxZQPeXXdS76MPn0KBxeZs7D1xXwTSoD7506oQwu9uISrcpBklodlXuswXMTZtwKEz5HM2zzGZL
  • root_username = administrator

Setzen des Benutzernamens für den Benutzer mit Administratoren Rechten.

  • root_password_sha2 = addb0f5e7826c857d7376d1bd9bc33c0c544790a2eac96144a8af22b1298c940

Der Passwort-Hash ist das Passwort für den Benutzer mit Administratoren Rechten. Der Passwort-Hash wurde mit Hilfe des nachfolgenden Befehls erstellt:

# echo -n geheim | sha256sum
addb0f5e7826c857d7376d1bd9bc33c0c544790a2eac96144a8af22b1298c940
  • root_email = "administrator@tachtler.net"

E-Mail-Adresse des Benutzers mit den Administratoren Rechten.

  • root_timezone = Europe/Berlin

Anpassen der Zeitzone für den Benutzer mit Administratoren Rechten. Eine Liste möglicher Einstellungen kann unter nachfolgendem externen Link eingesehen werden:

  • rest_listen_uri = http://0.0.0.0:12900/

URI welche auf allen IP-Adressen des Servers lauschen soll, damit auch von außerhalb des Servers ein Zugriff (z.B. über einen Browser) möglich ist.

  • rest_transport_uri = http://192.168.0.110:12900/

URI welche als Anzeige hinter einem Proxy verwendet wird. Dies ist erforderlich, da sonst kein Zugriff von einem Browser außerhalb des Servers möglich wäre.

  • rest_enable_cors = true

Aktiviert die Auslieferung von „CORS Headers“ für die REST API. Dies ist erforderlich wen JavaScript-Clients wie moderne Browser den Server direkt erreichen wollen.

  • rest_enable_cors = true

Aktiviert die Auslieferung von Daten in komprimierter Form, um die Laufzeit der Anfragen zu verringern.

  • rotation_strategy = time

Änderung der Rotations-Strategie des Such-Servers Elasticsearch vom Standard count (Anzahl der Einträge) auf time (zeitliche Abgrenzung der Index-Datei).

  • # elasticsearch_max_docs_per_index = 20000000

Deaktivieren der maximalen Anzahl an Dokumenten pro Index-Datei des Such-Servers Elasticsearch, da hier die Rotations-Strategie von Standard count (Anzahl der Einträge) auf time (zeitliche Abgrenzung der Index-Datei) abgeändert wurde!

  • elasticsearch_max_time_per_index = 1d

Aktivieren des maximalen Zeitintervalls der Index-Datei des Such-Servers Elasticsearch (hier 1 Tag), da hier die Rotations-Strategie von Standard count (Anzahl der Einträge) auf time (zeitliche Abgrenzung der Index-Datei) abgeändert wurde!

  • elasticsearch_max_number_of_indices = 14

Maximale Anzahl der Index-Dateien des Such-Servers Elasticsearch (hier 14 Tage pro Index-Datei = 14 Index-Dateien). Da hier die Rotations-Strategie von Standard count (Anzahl der Einträge) auf time (zeitliche Abgrenzung der Index-Datei) abgeändert wurde!

  • elasticsearch_shards = 1

Anzahl der shards, welchen der Anzahl der Elasticsearch Such-Server entsprechen sollte.

  • elasticsearch_index_prefix = graylog

Prefix, welcher für alle Elasticsearch Such-Server gelten soll, welche durch den Graylog-Server verwaltet werden sollen.

  • elasticsearch_cluster_name = graylog

Name des Elasticsearch Such-Servers welcher mit dem Namen in der Konfigurationsdatei des Elasticsearch Such-Server - /etc/elasticsearch/elasticsearch.yml übereinstimmen muss!

  • elasticsearch_node_name = graylog-server

Name des Elasticsearch Client-Instanz welcher mit dem Namen in der Konfigurationsdatei des Elasticsearch Such-Server - /etc/elasticsearch/elasticsearch.yml übereinstimmen muss!

  • elasticsearch_http_enabled = false

Deaktivieren eines möglichen embedded Elasticsearch Such-Servers.

  • elasticsearch_discovery_zen_ping_multicast_enabled = false

Deaktivieren des ping'en via Multicast über die IP-Adresse 224.0.0.0. Dafür soll nachfolgend eine Unicast IP-Adresse 127.0.0.1 und der Port 9300 verwendet werden!

  • elasticsearch_discovery_zen_ping_unicast_hosts = 127.0.0.1:9300

Aktivieren der Verwendung einer Unicast IP-Adresse 127.0.0.1 und des Ports 9300 anstelle von Multicast über die IP-Adresse 224.0.0.0.

  • # mongodb_uri = mongodb://localhost/graylog2

Verbindungs-URI zum MongoDB Datenbank-Server, welche keinen Benutzernamen und kein Passwort benötigt - DEAKTIVIEREN!

  • mongodb_uri = mongodb://grayloguser:geheim@localhost:27017/graylog

Verbindungs-URI zum MongoDB Datenbank-Server, welche einen Benutzernamen und ein Passwort benötigt - AKTIVIEREN und die Datenbank von graylog2 auf graylog abändern!

  • transport_email_web_interface_url = http://graylog.tachtler.net

Definition einer URL, welche in e-Mails zur Generierung von URI's zur Verlinkung auf Inhalte herangezogen werden soll.

graylog-server: Erster Start

Danach kann der graylog-server-Server mit nachfolgendem Befehle gestartet werden:

# systemctl start graylog-server

Mit nachfolgendem Befehl kann der Status des Graylog-Servers abgefragt werden:

# systemctl status graylog-server
graylog-server.service - Graylog server
   Loaded: loaded (/usr/lib/systemd/system/graylog-server.service; enabled)
   Active: active (running) since Tue 2015-11-03 16:32:58 CET; 4s ago
     Docs: http://docs.graylog.org/
 Main PID: 13052 (graylog-server)
   CGroup: /system.slice/graylog-server.service
           ├─13052 /bin/sh /usr/share/graylog-server/bin/graylog-server
           └─13053 /usr/bin/java -Xms1g -Xmx1g -XX:NewRatio=1 -server -XX:+Re...

Nov 03 16:32:58 server11.idmz.tachtler.net systemd[1]: Started Graylog server.

graylog-server: Test

Nachfolgende LOG-Datei-Zeile sollte am Ende der LOG-Datei

  • /var/log/graylog-server/server.log

erscheinen, womit sichergestellt ist, dass der Server korrekt funktioniert:

2015-11-03T16:17:45.913+01:00 INFO  [ServerBootstrap] Graylog server up and running.

Konfiguration: graylog-web

/etc/sysconfig/graylog-web

Nachfolgende Konfigurationsdatei enthält die Startparameter für die JAVA virtuelle Maschine des Graylog-Web-Servers:

  • /etc/sysconfig/graylog-web

:!: HINWEIS - Es sind keine Anpassungen erforderlich!

(Komplette Konfigurationsdatei):

# Path to the java executable.
JAVA=/usr/bin/java
 
# HTTP server settings.
GRAYLOG_WEB_HTTP_ADDRESS="0.0.0.0"
GRAYLOG_WEB_HTTP_PORT="9000"
 
# Might be used to adjust the Java heap size. (i.e. "-Xms1024m -Xmx2048m")
GRAYLOG_WEB_JAVA_OPTS=""
 
# Pass some extra args to graylog-web. (i.e. "-d" to enable debug mode)
GRAYLOG_WEB_ARGS=""
 
# Program that will be used to wrap the graylog-web command. Useful to
# support programs like authbind.
GRAYLOG_COMMAND_WRAPPER=""

:!: WICHTIG - Eine Änderung des Ports auf dem der Graylog-Web-Server erreichbar ist von Port 9000 auf einen anderen Port, durch den Parameter GRAYLOG_WEB_HTTP_PORT in der Konfiguration, ist nur auf unprivilegierte Ports möglich, da der Graylog-Web-Server ohne root-Benutzerrechte gestartet wird (Ports größer als 1024).

/etc/graylog/web/web.conf

Nachfolgende Konfigurationsdatei ist die Hauptkonfigurationsdatei des Graylog-Web-Servers:

  • /etc/graylog/web/web.conf

Nachfolgende Anpassungen sind erforderlich, damit der Graylog-Web-Server lauffähig ist:

(Komplette Konfigurationsdatei):

# graylog2-server REST URIs (one or more, comma separated) For example: "http://127.0.0.1:12900/,http://127.0.0.1:12910/"
# Tachtler
# default: graylog2-server.uris=""
graylog2-server.uris="http://127.0.0.1:12900"
 
# Learn how to configure custom logging in the documentation:
#    http://docs.graylog.org/en/latest/pages/installation.html#manual-setup-graylog-web-interface-on-linux
 
# Secret key
# ~~~~~
# The secret key is used to secure cryptographics functions. Set this to a long and randomly generated string.
# If you deploy your application to several instances be sure to use the same key!
# Generate for example with: pwgen -N 1 -s 96
# Tachtler
# default: application.secret=""
application.secret="0JO657guKnJQeGpDgAzsmLT5e7h5D2tRzIwhvKMXUmIOWxDmwLORGN9zRJddX7WhqLNufOL3PzAvchjZKzJbuz7AheVUgtnG"
 
# Web interface timezone
# Graylog stores all timestamps in UTC. To properly display times, set the default timezone of the interface.
# If you leave this out, Graylog will pick your system default as the timezone. Usually you will want to configure it explicitly.
# Tachtler
# default: timezone="Europe/Berlin"
timezone="Europe/Berlin"
 
# Message field limit
# Your web interface can cause high load in your browser when you have a lot of different message fields. The default
# limit of message fields is 100. Set it to 0 if you always want to get all fields. They are for example used in the
# search result sidebar or for autocompletion of field names.
field_list_limit=100
 
# Use this to run Graylog with a path prefix
#application.context=/graylog2
 
# You usually do not want to change this.
application.global=lib.Global
 
# Global timeout for communication with Graylog server nodes; default: 5s
#timeout.DEFAULT=5s
 
# Accept any server certificate without checking for validity; required if using self-signed certificates.
# Default: true
# graylog2.client.accept-any-certificate=true

Nachfolgende Einstellungen wurden durchgeführt:

  • graylog2-server.uris="http://127.0.0.1:12900"

Angabe der URI, unter der der Graylog-Server erreichbar ist!

  • application.secret="0JO657guKnJQeGpDgAzsmLT5e7h5D2tRzIwhvKMXUmIOWxDmwLORGN9zRJddX7WhqLNufOL3PzAvchjZKzJbuz7AheVUgtnG"

Der Passwort-Hash dient als Referenz für den einsatz von kryptografischen Funktionen. Der Passwort-Hash wurde mit Hilfe des nachfolgenden Befehls erstellt:

# pwgen -N 1 -s 96
0JO657guKnJQeGpDgAzsmLT5e7h5D2tRzIwhvKMXUmIOWxDmwLORGN9zRJddX7WhqLNufOL3PzAvchjZKzJbuz7AheVUgtnG
  • timezone="Europe/Berlin"

Setzen der Zeitzone. Eine Liste möglicher Einstellungen kann unter nachfolgendem externen Link eingesehen werden:

graylog-web: Erster Start

Danach kann der graylog-web-Server mit nachfolgendem Befehle gestartet werden:

# systemctl start graylog-web

Mit nachfolgendem Befehl kann der Status des Graylog-Web-Servers abgefragt werden:

# systemctl status graylog-web
graylog-web.service - Graylog web interface
   Loaded: loaded (/usr/lib/systemd/system/graylog-web.service; enabled)
   Active: active (running) since Wed 2015-11-04 09:13:01 CET; 5s ago
     Docs: http://docs.graylog.org/
 Main PID: 21727 (graylog-web)
   CGroup: /system.slice/graylog-web.service
           ├─21727 /bin/sh /usr/share/graylog-web/bin/graylog-web
           └─21728 java -Xms1024m -Xmx1024m -XX:ReservedCodeCacheSize=128m -D...

Nov 04 09:13:01 server11.idmz.tachtler.net systemd[1]: Starting Graylog web i...
Nov 04 09:13:01 server11.idmz.tachtler.net systemd[1]: Started Graylog web in...
Nov 04 09:13:02 server11.idmz.tachtler.net graylog-web[21727]: Play server pr...
Hint: Some lines were ellipsized, use -l to show in full.

graylog-web: Test

Durch Aufruf der URL des Graylog-Web-Servers

sollte nachfolgende Ausgabe im Browser erscheinen:

Graylog Web-Server Sign in

graylog-web: iptables Regel

Damit der Graylog-Web-Servers auch erreichbar ist und nicht das Empfangen der IP-Paket vom Paketfilter iptables blockiert wird, muss nachfolgende Regel zum iptables-Regelwerk hinzugefügt werden.

Um die aktuellen iptables-Regeln erweitern zu können, sollten diese erst einmal aufgelistet werden, was mit nachfolgendem Befehl durchgeführt werden kann:

# iptables -L -nv --line-numbers
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1        0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED 
2        0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           
3        0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0           
4        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22  
5        0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1        0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination

Nachfolgender Befehl, fügt folgende iptables-Regeln dem iptables-Regelwerk nach der Position 4 hinzu, ohne das der Paketfilter angehalten werden muss:

  • -A INPUT -p tcp --dport 80 -j ACCEPT
  • -A INPUT -p tcp --dport 443 -j ACCEPT

und hier der Befehl:

# iptables -I INPUT 5 -p tcp --dport 80 -j ACCEPT
# iptables -I INPUT 6 -p tcp --dport 443 -j ACCEPT

Ein erneute Abfrage des iptables-Regelwerts, sollte dann nachfolgend dargestellte Ausgabe ergeben, was mit folgendem Befehl durchgeführt werden kann:

# iptables -L -nv --line-numbers
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1        0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED 
2        0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           
3        0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0           
4        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22
5        0     0 ACCEPT     tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0           tcp dpt:80 state NEW
6        0     0 ACCEPT     tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0           tcp dpt:443 state NEW
state NEW
7        0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1        0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination

Die neuen Zeilen sind an Position 5 (INPUT) bis Position 6 (INPUT) zu sehen, hier nachfolgend zur Verdeutlichung noch einmal dargestellt (nur relevanter Ausschnitt):

...
5        0     0 ACCEPT     tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0        tcp dpt:80 state NEW
6        0     0 ACCEPT     tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0        tcp dpt:443 state NEW
...

Um diese iptables-Regel dauerhaft, auch nach einem Neustart des Server, weiterhin im iptables-Regelwerk zu speichern, muss nachfolgend dargestellter Befehl abschließend noch ausgeführt werden:

# /usr/sbin/iptables-save > /etc/sysconfig/iptables 

graylog-web: iptables-DNAT-Regel

Damit Graylog in der Lage ist syslog-Meldungen entgegen zu nehmen, ist es erforderlich Inputs zu definieren. Dies soll nachfolgend an einem Beispiel für die Einlieferung von syslog-Meldungen via

  • UDP (Standard)
  • Port: 514 bzw. 10514

oder

  • TCP (TLS-Verschlüsselung)
  • Port: 514 bzw. 10514

durchgeführt werden.

:!: WICHTIG - Grundsätzlich wird der Graylog-Server unter dem Benutzer graylog gestartet, so das der Graylog-Server sich nicht an Ports, < 1024 binden kann!

Aufgrund der Tatsache, das der Graylog-Server sich nicht an Ports, < 1024 binden kann, muss Inputs auf Port: 10514 lauschen.

Da sich einige Router oder Switche jedoch nicht so konfigurieren lassen, das diese auf einem anderen Port als 514 einliefern, soll hier eine iptables-DNAT-Regeln (Destination NAT) dazu genutzt werden, die Einlieferung auf Port 514 auf dem Server auftreffen zu lassen, jedoch diese dann auf Port 10514 weiterzuleiten.

Dazu ist nachfolgende iptables-DNAT-Regel (Destination NAT) erforderlich welche mit nachfolgendem Befehl (im laufenden Betrieb) erstellt werden kann:

UDP:

# iptables -t nat -A PREROUTING -i eth0 -p udp -m udp -d 192.168.0.110 --dport 514 -j DNAT --to-destination :10514

TCP:

# iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp -d 192.168.0.110 --dport 514 -j DNAT --to-destination :10514

Eine Überprüfung, ob die Regel auch korrekt von ipatbles übernommen wurden, kann mit nachfolgendem Befehl durchgeführt werden:

# iptables --line-numbers -t nat -nvL PREROUTING
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source          destination         
1        0     0 DNAT       udp  --  eth0   *       0.0.0.0/0       192.168.0.110      udp dpt:514 to::10514
1        0     0 DNAT       tcp  --  eth0   *       0.0.0.0/0       192.168.0.110      tcp dpt:514 to::10514

graylog-web: Syslog UDP

Nachfolgend kann die Konfiguration des Inputs in der Graylog-Web-Server Applikation durchgeführt werden und sollte eine Ausgabe, in etwa, wie die nachfolgende zum Vorschein bringen:

Graylog Web - Inputs - Syslog UDP

Konfiguration: graylog: TLS-Absicherung

Nachfolgende Konfiguration soll den Datenserver der LOG-Daten vom jeweils lokalen - RSysLog-Dienst/Daemon zum Graylog-Server via TLS-Verschlüsselung absichern, so das die Daten auf dem Weg vom Client zum Servern verschlüsselt übertragen werden.

Des weiteren soll damit auch gewährleistet werden, das sich nur autorisierte RSysLog-Clients mit dem Graylog-Server verbinden dürfen.

Um die beiden Punkte

  • Verschlüsselte LOG-Datenübertragung und
  • Autorisierte LOG-Datenübertragung

realisieren zu können, ist es erforderlich entsprechend Zertifikate zu erstellen.

Nachfolgende Zertifikate müssen dafür erstellt werden:

:!: HINWEIS - Es sollen self-signed-certifiacte aus einer eigenen CA erstellt werden!

Die Konfiguration beinhaltet

  1. Erstellen einer eignen CA - Graylog CA
  2. Erstellen eines self-signed-Zertifikats für den Server - Graylog Server (vml70110.idmz.tachtler.net)
  3. Erstellen eines self-signed-Zertifikats für den Client - Graylog Client z.B. (vml70010.idmz.tachtler.net)

TLS: Eigene CA erstellen

Nachfolgende Konfiguration erstellt eine eigene CA, aus der das ROOT-Zertifikat der CA erstellt wird, welche wiederum das Graylog Server-Zertifikate und die Graylog Client-Zertifikate hervorbringt.

Dazu sollen mit nachfolgenden Befehl in nachfolgendem Verzeichnis

  • /etc/pki/

die folgenden Verzeichnisse erstellt werden

  • /etc/pki/graylog
  • /etc/pki/graylog/certs - Verzeichnis für alle Zertifikate
  • /etc/pki/graylog/csrs - Verzeichnis für alle Zertifikats-Anträge
  • /etc/pki/graylog/private - Verzeichnis für alle Schlüssel
# mkdir -p /etc/pki/graylog/{certs,csrs,private}

Ob die Verzeichnisse korrekt erstellt wurden, kann mit nachfolgendem Befehl überprüft werden:

# ll /etc/pki/graylog/*
/etc/pki/graylog/certs:
total 0

/etc/pki/graylog/csrs:
total 0

/etc/pki/graylog/private:
total 0

Jetzt müssen jeweils ein

  • /etc/pki/graylog/private/graylog-ca-key.pem - Zertifikats-Schlüssel (Certificate-Key)
  • /etc/pki/graylog/certs/graylog-ca-crt.pem - ROOT-Zertifikat (Certificate)

mit nachfolgenden Befehlen erstellt werden:

1. Schritt: Erstellung eines Schlüssel für die eigene CA, mit nachfolgendem Befehl:

# certtool --generate-privkey --bits=4096 --outfile /etc/pki/graylog/private/graylog-ca-key.pem
** Note: Please use the --sec-param instead of --bits
Generating a 4096 bit RSA private key...

* Die Meldung ** Note: Please use the –sec-param instead of –bits kann ignoriert werden!

2. Schritt: Erstellung eines ROOT-Zertifikats für die eigene CA, mit nachfolgendem Befehl:

# certtool --generate-self-signed --load-privkey /etc/pki/graylog/private/graylog-ca-key.pem --outfile /etc/pki/graylog/certs/graylog-ca-crt.pem
Generating a self signed certificate...
Please enter the details of the certificate's distinguished name. Just press enter to ignore a field.
Common name: Graylog CA
UID: 
Organizational unit name: 
Organization name: Klaus Tachtler
Locality name: Muenchen (Munich)
State or province name: Bayern (Bavaria)
Country name (2 chars): DE
Enter the subject's domain component (DC): 
This field should not be used in new certificates.
E-mail: hostmaster@tachtler.net
Enter the certificate's serial number in decimal (default: 6550208444173439064): 1


Activation/Expiration time.
The certificate will expire in (days): 3650


Extensions.
Does the certificate belong to an authority? (y/N): y
Path length constraint (decimal, -1 for no constraint): 
Is this a TLS web client certificate? (y/N): 
Will the certificate be used for IPsec IKE operations? (y/N): 
Is this a TLS web server certificate? (y/N): 
Enter a dnsName of the subject of the certificate: 
Enter a URI of the subject of the certificate: 
Enter the IP address of the subject of the certificate: 
Enter the e-mail of the subject of the certificate: hostmaster@tachtler.net
Will the certificate be used to sign OCSP requests? (y/N): 
Will the certificate be used to sign code? (y/N): 
Will the certificate be used for time stamping? (y/N): 
Will the certificate be used to sign other certificates? (y/N): y
Will the certificate be used to sign CRLs? (y/N): 
Enter the URI of the CRL distribution point: 
X.509 Certificate Information:
        Version: 3
        Serial Number (hex): 01
        Validity:
                Not Before: Mon Apr 30 11:54:22 UTC 2018
                Not After: Thu Apr 27 11:54:31 UTC 2028
        Subject: CN=Graylog CA,O=Klaus Tachtler,L=Muenchen (Munich),ST=Bayern
(Bavaria),C=DE,EMAIL=hostmaster@tachtler.net
        Subject Public Key Algorithm: RSA
        Algorithm Security Level: High (4096 bits)
                Modulus (bits 4096):
                        00:ad:77:1c:60:f8:1a:c4:ae:5a:86:ce:fb:69:87:a3
                        0b:e9:c9:da:95:cd:ae:f2:78:86:be:bc:4e:69:81:75
                        07:bf:8c:40:12:79:2d:34:a9:fa:85:65:3c:e3:22:9c
                        46:23:f6:29:0e:69:71:26:1b:a2:ec:ff:d2:da:44:0d
                        46:d9:43:5e:8e:74:83:a4:bb:8f:e9:04:f9:7f:30:c7
                        03:29:a4:60:31:16:18:84:5f:2c:23:59:2b:0b:35:04
                        a2:b9:1a:ce:1c:60:e4:44:f4:6f:b3:d2:a4:47:f9:b2
                        1a:4a:13:57:23:8c:2f:e1:fd:b7:2e:be:14:d8:15:ae
                        9f:3a:41:22:52:ff:44:ae:16:e9:30:fc:6d:e3:6a:ec
                        82:53:a5:17:ab:27:0b:84:e4:12:f4:af:41:f2:d4:68
                        60:35:f3:f4:8d:a9:69:75:4d:a9:59:b3:60:cd:f3:1e
                        2a:d8:3b:8e:49:e0:fc:0e:61:af:e2:8a:e9:0e:be:69
                        f9:a6:5f:84:1c:bf:a4:4d:55:c2:57:46:a1:0c:3d:77
                        f0:d5:db:d2:ee:bb:ac:0f:b1:3d:c6:90:1c:35:76:06
                        c6:7b:0d:6f:13:31:84:7a:1e:c6:5f:d7:e1:4e:3d:2c
                        a8:58:70:70:75:cc:2b:d2:78:43:12:2b:6c:5b:d5:80
                        62:73:54:c8:bd:46:c6:a0:af:df:90:82:92:1b:29:80
                        89:da:58:44:75:15:fc:c9:1b:6c:a8:db:4f:e9:06:0f
                        09:0c:05:13:38:07:e0:fe:1d:e6:66:92:c2:95:4c:8c
                        bf:4d:4e:57:52:04:08:86:42:17:bc:81:a9:96:d2:56
                        ec:4e:ab:35:a8:bf:eb:be:71:21:ca:ec:33:18:60:e8
                        f9:a3:14:d1:77:6e:86:92:9b:77:40:3e:dc:31:e6:04
                        9b:c5:1e:6b:c5:3f:b3:bc:28:86:26:64:ef:c9:7b:78
                        ef:fd:e6:43:4f:90:6e:b2:34:fc:4a:b0:2f:25:d7:54
                        11:ec:ac:28:9f:32:09:97:d4:19:23:86:35:95:ed:27
                        ad:aa:c6:c5:e3:ee:d7:19:10:b9:1a:e0:10:fe:d4:ca
                        cf:5e:9b:4b:35:f8:65:92:27:90:60:4a:1d:e1:a1:45
                        ea:e3:fa:32:9f:29:70:22:62:9d:56:1e:92:1a:f2:fb
                        c5:55:14:19:b0:3e:65:6e:fb:5b:35:e5:1a:1e:7f:3e
                        ce:3e:b0:18:b3:89:ae:c4:41:b7:b7:53:dc:bc:5c:2d
                        e9:b7:51:de:af:47:17:58:9a:d2:31:11:bd:a2:2d:5b
                        51:5c:f2:94:49:04:0e:bf:1f:c4:45:65:14:9b:6b:b4
                        cd
                Exponent (bits 24):
                        01:00:01
        Extensions:
                Basic Constraints (critical):
                        Certificate Authority (CA): TRUE
                Subject Alternative Name (not critical):
                        RFC822Name: hostmaster@tachtler.net
                Key Usage (critical):
                        Certificate signing.
                Subject Key Identifier (not critical):
                        28584006a86a5f5cae8dcbea7d0af4e5d4d4e1fa
Other Information:
        Public Key ID:
                28584006a86a5f5cae8dcbea7d0af4e5d4d4e1fa
        Public key's random art:
                +--[ RSA 4096]----+
                |oo+        .     |
                |.. .      o .    |
                |.   .    . o     |
                |.  o   oo .      |
                |. ..o +oSo       |
                |... .++.  .      |
                |. ....+.   E     |
                |   .+o o         |
                |  .o.=+          |
                +-----------------+

Is the above information ok? (y/N): y


Signing certificate...

Getätigte Eingaben:

Einstellung Wert
Common name Graylog CA
Organization name: Klaus Tachtler
Locality name: Muenchen (Munich)
State or province name: Bayern (Bavaria)
Country name (2 chars): DE
E-mail: hostmaster@tachtler.net
Enter the certificate's serial number in decimal (default: 6550212215547231934): 1
The certificate will expire in (days): 3650
Does the certificate belong to an authority? (y/N): y
Enter the e-mail of the subject of the certificate: hostmaster@tachtler.net
Will the certificate be used to sign other certificates? (y/N): y
Is the above information ok? (y/N): y

Mit nachfolgendem Befehl kann nun überprüft werden, ob der Schlüssel und das ROOT-Zertifikat für die eigene CA erstellt wurden:

# ll /etc/pki/graylog/*
/etc/pki/graylog/certs:
total 4
-rw-r--r-- 1 root root 2175 Apr 30 14:09 graylog-ca-crt.pem

/etc/pki/graylog/csrs:
total 0

/etc/pki/graylog/private:
total 12
-rw------- 1 root root 10996 Apr 30 14:06 graylog-ca-key.pem

TLS: Server-Zertifikat erstellen

Nachfolgende Befehle erstellen ein Graylog Server-Zertifikate aus der eigenen CA.

Jetzt müssen jeweils ein

  • /etc/pki/graylog/private/graylog-server-key.pem - Zertifikats-Schlüssel (Certificate-Key)
  • /etc/pki/graylog/csrs/graylog-server-csr.pem - Zertifikats-Antrag (Certificate-Request/CSR)

mit nachfolgenden Befehlen erstellt werden:

1. Schritt: Erstellung eines Schlüssel für das Graylog Server-Zertifikat, mit nachfolgendem Befehl:

# certtool --generate-privkey --bits=4096 --outfile /etc/pki/graylog/private/graylog-server-key.pem
** Note: Please use the --sec-param instead of --bits
Generating a 4096 bit RSA private key...

* Die Meldung ** Note: Please use the –sec-param instead of –bits kann ignoriert werden!

2. Schritt: Erstellung eines Zertifikats-Antrag (Request), für das Graylog Server-Zertifikat mit nachfolgendem Befehl:

# certtool --generate-request --load-privkey /etc/pki/graylog/private/graylog-server-key.pem --outfile /etc/pki/graylog/csrs/graylog-server-csr.pem
Generating a PKCS #10 certificate request...
Common name: vml70110.idmz.tachtler.net
Organizational unit name: 
Organization name: Klaus Tachtler
Locality name: Muenchen (Munich)
State or province name: Bayern (Bavaria)
Country name (2 chars): DE
Enter the subject's domain component (DC): 
UID: 
Enter a dnsName of the subject of the certificate: 
Enter a URI of the subject of the certificate: vml70110.edmz.tachtler.net
Enter a URI of the subject of the certificate: 
Enter the IP address of the subject of the certificate: 
Enter the e-mail of the subject of the certificate: hostmaster@tachtler.net
Enter a challenge password: 
Does the certificate belong to an authority? (y/N): n
Will the certificate be used for signing (DHE and RSA-EXPORT ciphersuites)? (Y/n): 
Will the certificate be used for encryption (RSA ciphersuites)? (Y/n): 
Will the certificate be used to sign code? (y/N): 
Will the certificate be used for time stamping? (y/N): 
Will the certificate be used for IPsec IKE operations? (y/N): 
Will the certificate be used to sign OCSP requests? (y/N): 
Is this a TLS web client certificate? (y/N): y
Is this a TLS web server certificate? (y/N): y

Getätigte Eingaben:

Einstellung Wert
Common name vml70110.idmz.tachtler.net
Organization name: Klaus Tachtler
Locality name: Muenchen (Munich)
State or province name: Bayern (Bavaria)
Country name (2 chars): DE
Enter a URI of the subject of the certificate: vml70110.edmz.tachtler.net
Enter the e-mail of the subject of the certificate: hostmaster@tachtler.net
Does the certificate belong to an authority? (y/N): n
Is this a TLS web client certificate? (y/N): y
Is this a TLS web server certificate? (y/N): y

Mit nachfolgendem Befehl kann nun überprüft werden, ob der Schlüssel und das Zertifikats-Antrag (Request) erstellt wurden:

# ls -la /etc/pki/graylog/*
/etc/pki/graylog/certs:
total 12
drwxr-xr-x 2 root root   60 Apr 30 15:10 .
drwxr-xr-x 4 root root   32 Apr 30 13:21 ..
-rw-r--r-- 1 root root 2175 Apr 30 14:56 graylog-ca-crt.pem

/etc/pki/graylog/csrs:
total 4
-rw------- 1 root root 4337 Apr 30 15:11 graylog-server-csr.pem

/etc/pki/graylog/private:
total 24
drwxr-xr-x 2 root root    60 Apr 30 14:56 .
drwxr-xr-x 4 root root    32 Apr 30 13:21 ..
-rw------- 1 root root 10999 Apr 30 14:52 graylog-ca-key.pem
-rw------- 1 root root 11009 Apr 30 14:56 graylog-server-key.pem

Nachfolgender Befehl erstellt nun aus der Graylog CA-ROOT-Zertifikat, dem Graylog CA-Schlüssel und dem Zertifikats-Antrag (Request) das Graylog Server-Zertifikat, mit nachfolgendem Befehl:

# certtool --generate-certificate --load-request /etc/pki/graylog/csrs/graylog-server-csr.pem --outfile /etc/pki/graylog/certs/graylog-server-crt.pem --load-ca-certificate /etc/pki/graylog/certs/graylog-ca-crt.pem --load-ca-privkey /etc/pki/graylog/private/graylog-ca-key.pem
Generating a signed certificate...
Enter the certificate's serial number in decimal (default: 6550225898579949029): 2


Activation/Expiration time.
The certificate will expire in (days): 3649


Extensions.
Do you want to honour the extensions from the request? (y/N): 
Does the certificate belong to an authority? (y/N): n
Is this a TLS web client certificate? (y/N): y
Will the certificate be used for IPsec IKE operations? (y/N): 
Is this a TLS web server certificate? (y/N): y
Enter a dnsName of the subject of the certificate: vml70010.idmz.tachtler.net
Enter a dnsName of the subject of the certificate: 
Enter a URI of the subject of the certificate: 
Enter the IP address of the subject of the certificate: 
Will the certificate be used for signing (DHE and RSA-EXPORT ciphersuites)? (Y/n): 
Will the certificate be used for encryption (RSA ciphersuites)? (Y/n): 
Will the certificate be used to sign OCSP requests? (y/N): 
Will the certificate be used to sign code? (y/N): 
Will the certificate be used for time stamping? (y/N): 
X.509 Certificate Information:
        Version: 3
        Serial Number (hex): 02
        Validity:
                Not Before: Mon Apr 30 13:02:52 UTC 2018
                Not After: Wed Apr 26 13:03:00 UTC 2028
        Subject: CN=vml70110.idmz.tachtler.net,O=Klaus Tachtler,L=Muenchen (Munich),ST=Bayern (Bavaria),C=DE
        Subject Public Key Algorithm: RSA
        Algorithm Security Level: High (4096 bits)
                Modulus (bits 4096):
                        00:ab:f2:79:22:d0:68:9b:83:cf:56:6a:3e:46:62:00
                        7b:28:e2:e4:fe:3e:3c:aa:83:d6:6b:48:25:f7:01:22
                        31:07:45:06:21:c1:05:57:f2:1f:86:64:88:34:4f:d0
                        95:0c:2a:14:f0:62:01:b9:30:38:52:41:84:39:1d:7b
                        0d:03:12:c1:73:32:9b:ce:8e:32:fb:41:c6:5b:23:cf
                        80:6e:17:2a:4f:8a:a6:ec:19:cb:14:96:b6:98:1b:4a
                        a8:eb:3e:a3:1e:6f:b0:ed:40:7b:27:e7:93:e2:1c:c2
                        dd:c5:10:14:93:2d:03:7b:a2:ac:13:da:f0:38:48:4e
                        d5:66:e7:24:d0:bb:f3:74:19:40:6c:a4:ea:3f:53:cd
                        0c:8d:51:25:17:ae:90:34:5e:66:3b:a9:74:6a:51:fa
                        78:97:30:27:2d:2d:90:af:3e:da:03:bf:5a:cc:2a:53
                        f5:08:df:b1:fb:01:3a:2a:37:55:21:17:0f:0d:67:46
                        e6:d0:61:07:f1:3a:22:d8:a0:b1:7e:79:7d:be:8d:f1
                        ce:6c:76:9b:c8:3b:3a:3f:ad:66:6d:60:ad:ba:88:14
                        9d:a1:4a:d3:a0:27:36:2c:27:99:84:c8:1d:ac:63:7b
                        22:b3:11:44:d2:84:78:dc:1c:8f:75:53:65:f9:60:82
                        c1:68:e7:47:5a:6b:0b:db:f4:2b:c8:39:57:9a:1f:5f
                        a6:05:06:73:0e:02:b2:43:3f:a6:20:83:2c:91:ee:39
                        f0:b5:0a:d9:aa:f4:8a:0a:05:55:f1:ca:55:e1:11:21
                        5f:57:11:7b:d4:7b:60:2f:51:e1:29:18:00:5d:d8:b0
                        63:b4:a1:07:b7:fd:6e:46:0b:07:90:a6:64:5b:af:e4
                        c9:c8:99:5b:10:4e:89:69:f9:3a:cb:b5:c1:8d:d7:bc
                        bb:1b:e4:c2:7d:60:48:0a:bf:21:6b:84:d3:56:55:f2
                        0c:42:e9:41:20:0b:14:47:9d:ec:75:38:a9:81:5d:8f
                        79:26:82:75:50:ed:ed:38:66:70:4d:f7:30:a1:7a:88
                        bf:6b:da:6e:86:70:64:44:cd:aa:cb:ef:37:ba:f4:35
                        9b:be:4d:22:22:50:6c:cd:6a:82:1b:ab:69:b8:5d:49
                        8b:64:68:76:ea:2a:09:26:80:76:6b:f9:35:f9:bf:76
                        1b:d4:ed:13:3c:d7:56:3b:22:44:9b:6e:e0:6b:86:df
                        9b:d8:29:9d:60:6b:63:dd:b3:fe:c6:41:7a:cf:aa:35
                        cd:ea:be:d2:52:be:ba:d0:6f:0f:22:84:c0:fc:13:35
                        7c:73:3d:e6:d0:c2:ef:73:23:1f:d5:19:f6:95:78:e0
                        cf
                Exponent (bits 24):
                        01:00:01
        Extensions:
                Basic Constraints (critical):
                        Certificate Authority (CA): FALSE
                Key Purpose (not critical):
                        TLS WWW Client.
                        TLS WWW Server.
                Subject Alternative Name (not critical):
                        DNSname: vml70010.idmz.tachtler.net
                Key Usage (critical):
                        Digital signature.
                        Key encipherment.
                Subject Key Identifier (not critical):
                        b8184e28caddf3b39110484a1b63e76ab4a1a890
                Authority Key Identifier (not critical):
                        f309922f43a2380911f8c61287109a2313dda319
Other Information:
        Public Key ID:
                b8184e28caddf3b39110484a1b63e76ab4a1a890
        Public key's random art:
                +--[ RSA 4096]----+
                |   * .           |
                |  = * .          |
                | o + o           |
                |o.=   ..         |
                |E=   .. S        |
                |+.   ....        |
                |+ o . .o         |
                |+o... ...        |
                |.... o.oo        |
                +-----------------+

Is the above information ok? (y/N): y


Signing certificate...

Getätigte Eingaben:

Einstellung Wert
Enter the certificate's serial number in decimal (default: 6550225898579949029): 2
The certificate will expire in (days): 3649
Does the certificate belong to an authority? (y/N): n
Is this a TLS web client certificate? (y/N): y
Is this a TLS web server certificate? (y/N): y
Enter a dnsName of the subject of the certificate: vml70110.idmz.tachtler.net
Enter a URI of the subject of the certificate: vml70110.edmz.tachtler.net
Is the above information ok? (y/N): y

Mit nachfolgendem Befehl kann nun überprüft werden, ob der Schlüssel und das Zertifikats-Antrag (Request) sowie das Graylog Server-Zertifikat erstellt wurden:

# ls -la /etc/pki/graylog/*
/etc/pki/graylog/certs:
total 16
drwxr-xr-x 2 root root   89 Apr 30 15:17 .
drwxr-xr-x 4 root root   32 Apr 30 13:21 ..
-rw-r--r-- 1 root root 2175 Apr 30 14:56 graylog-ca-crt.pem
-rw-r--r-- 1 root root 2269 Apr 30 15:19 graylog-server-crt.pem

/etc/pki/graylog/csrs:
total 4
-rw------- 1 root root 4337 Apr 30 15:11 graylog-server-csr.pem

/etc/pki/graylog/private:
total 24
drwxr-xr-x 2 root root    60 Apr 30 14:56 .
drwxr-xr-x 4 root root    32 Apr 30 13:21 ..
-rw------- 1 root root 10999 Apr 30 14:52 graylog-ca-key.pem
-rw------- 1 root root 11009 Apr 30 14:56 graylog-server-key.pem

:!: WICHTIG - Damit der Zertifikats-Schlüssel (Certificate-Key) geladen werden kann, muss dieser erst noch in das passende PKCS #8 Format konvertiert werden. Der Versuch einen nicht konvertierten Schlüssel zu laden, würde nachfolgende Fehlermeldung zum Vorschein bringen:

2018-04-30T16:21:34.258+02:00 WARN  [AbstractNioSelector] Failed to initialize an accepted socket.
java.lang.IllegalArgumentException: Unsupported key type: /etc/pki/graylog/private/graylog-server-key.pem
        at org.graylog2.plugin.inputs.transports.util.KeyUtil.loadPrivateKey(KeyUtil.java:170) ~[graylog.jar:?]
        at org.graylog2.plugin.inputs.transports.util.KeyUtil.initKeyStore(KeyUtil.java:118) ~[graylog.jar:?]
        at org.graylog2.plugin.inputs.transports.AbstractTcpTransport$1.createSslEngine(AbstractTcpTransport.java:205) ~[graylog.jar:?]
        at org.graylog2.plugin.inputs.transports.AbstractTcpTransport$1.call(AbstractTcpTransport.java:186) ~[graylog.jar:?]
        at org.graylog2.plugin.inputs.transports.AbstractTcpTransport$1.call(AbstractTcpTransport.java:182) ~[graylog.jar:?]
        at org.graylog2.plugin.inputs.transports.NettyTransport$1.getPipeline(NettyTransport.java:110) ~[graylog.jar:?]
        at org.jboss.netty.channel.socket.nio.NioServerBoss.registerAcceptedChannel(NioServerBoss.java:134) [graylog.jar:?]
        at org.jboss.netty.channel.socket.nio.NioServerBoss.process(NioServerBoss.java:104) [graylog.jar:?]
        at org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:337) [graylog.jar:?]
        at org.jboss.netty.channel.socket.nio.NioServerBoss.run(NioServerBoss.java:42) [graylog.jar:?]
        at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108) [graylog.jar:?]
        at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42) [graylog.jar:?]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_161]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_161]
        at java.lang.Thread.run(Thread.java:748) [?:1.8.0_161]

Nachfolgender Befehl konvertiert den Zertifikats-Schlüssel (Certificate-Key) in das PKCS #8 Format um:

# openssl pkcs8 -topk8 -in /etc/pki/graylog/private/graylog-server-key.pem -inform pem -out /etc/pki/graylog/private/graylog-server-key-pkcs8.pem -outform pem -nocrypt

:!: WICHTIG - Damit der Zertifikats-Schlüssel (Certificate-Key) geladen werden kann, müssen zusätzlich die Besitz- und Dateirechte entsprechend angepasst werden, da sonst nachfolgende Fehlermeldung mit nachfolgender Fehlersituation entstehen würde:

2018-04-30T16:40:47.406+02:00 WARN  [AbstractNioSelector] Failed to initialize an accepted socket.
java.nio.file.AccessDeniedException: /etc/pki/graylog/certs/graylog-server-csr.pem
        at sun.nio.fs.UnixException.translateToIOException(UnixException.java:84) ~[?:1.8.0_161]
        at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102) ~[?:1.8.0_161]
        at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107) ~[?:1.8.0_161]
        at sun.nio.fs.UnixFileSystemProvider.newByteChannel(UnixFileSystemProvider.java:214) ~[?:1.8.0_161]
        at java.nio.file.Files.newByteChannel(Files.java:361) ~[?:1.8.0_161]
        at java.nio.file.Files.newByteChannel(Files.java:407) ~[?:1.8.0_161]
        at java.nio.file.spi.FileSystemProvider.newInputStream(FileSystemProvider.java:384) ~[?:1.8.0_161]
        at java.nio.file.Files.newInputStream(Files.java:152) ~[?:1.8.0_161]
        at org.graylog2.plugin.inputs.transports.util.KeyUtil.loadCertificates(KeyUtil.java:90) ~[graylog.jar:?]
        at org.graylog2.plugin.inputs.transports.util.KeyUtil.loadCertificates(KeyUtil.java:103) ~[graylog.jar:?]
        at org.graylog2.plugin.inputs.transports.util.KeyUtil.initTrustStore(KeyUtil.java:73) ~[graylog.jar:?]
        at org.graylog2.plugin.inputs.transports.AbstractTcpTransport$1.createSslEngine(AbstractTcpTransport.java:199) ~[graylog.jar:?]
        at org.graylog2.plugin.inputs.transports.AbstractTcpTransport$1.call(AbstractTcpTransport.java:186) ~[graylog.jar:?]
        at org.graylog2.plugin.inputs.transports.AbstractTcpTransport$1.call(AbstractTcpTransport.java:182) ~[graylog.jar:?]
        at org.graylog2.plugin.inputs.transports.NettyTransport$1.getPipeline(NettyTransport.java:110) ~[graylog.jar:?]
        at org.jboss.netty.channel.socket.nio.NioServerBoss.registerAcceptedChannel(NioServerBoss.java:134) [graylog.jar:?]
        at org.jboss.netty.channel.socket.nio.NioServerBoss.process(NioServerBoss.java:104) [graylog.jar:?]
        at org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:337) [graylog.jar:?]
        at org.jboss.netty.channel.socket.nio.NioServerBoss.run(NioServerBoss.java:42) [graylog.jar:?]
        at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108) [graylog.jar:?]
        at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42) [graylog.jar:?]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_161]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_161]
        at java.lang.Thread.run(Thread.java:748) [?:1.8.0_161]

Nachfolgende Befehle setzen noch die richtigen Besitz- und Dateirechte für die neu erstellte Datei Zertifikats-Schlüssel (Certificate-Key): Besitzrechte:

# chown root:graylog /etc/pki/graylog/private/graylog-server-key-pkcs8.pem

Dateirechte:

# chmod 640 /etc/pki/graylog/private/graylog-server-key-pkcs8.pem

graylog-web: Syslog TCP mit TLS

Nachfolgend kann die Konfiguration des Inputs in der Graylog-Web-Server Applikation durchgeführt werden und sollte eine Ausgabe, in etwa, wie die nachfolgende zum Vorschein bringen:

Graylog Web - Inputs - Syslog TCP mit TLS

Nachfolgende Einstellungen sind dazu zu ergänzen (Nur relevante Änderungen/Ergänzugen):

Einstellung Wert
Global input (Standard on all nodes)
Port 10514
TLS cert file (optional) /etc/pki/graylog/certs/graylog-server-crt.pem
TLS private key file (optional) /etc/pki/graylog/private/graylog-server-key-pkcs8.pem
Enable TLS (optional)
Enable keepalive (optional)

TLS: Client-Zertifikat erstellen

:!: WICHTIG - Diese Schritte müssen für JEDEN Client individuell wiederholt werden !!!

Nachfolgende Befehle erstellen ein Graylog Client-Zertifikate aus der eigenen CA.

Jetzt müssen jeweils ein

  • /etc/pki/graylog/private/graylog-vml70010.idmz.tachtler.net-key.pem - Zertifikats-Schlüssel (Certificate-Key)
  • /etc/pki/graylog/csrs/graylog-vml70010.idmz.tachtler.net-csr.pem - Zertifikats-Antrag (Certificate-Request/CSR)

mit nachfolgenden Befehlen erstellt werden:

1. Schritt: Erstellung eines Schlüssel für das Graylog Client-Zertifikat, mit nachfolgendem Befehl:

# certtool --generate-privkey --bits=4096 --outfile /etc/pki/graylog/private/graylog-vml70010.idmz.tachtler.net-key.pem
** Note: Please use the --sec-param instead of --bits
Generating a 4096 bit RSA private key...

* Die Meldung ** Note: Please use the –sec-param instead of –bits kann ignoriert werden!

2. Schritt: Erstellung eines Zertifikats-Antrag (Request), für das Graylog Cleint-Zertifikat mit nachfolgendem Befehl:

# certtool --generate-request --load-privkey /etc/pki/graylog/private/graylog-vml70010.idmz.tachtler.net-key.pem --outfile /etc/pki/graylog/csrs/graylog-vml70010.idmz.tachtler.net-csr.pem
Generating a PKCS #10 certificate request...
Common name: vml70010.idmz.tachtler.net
Organizational unit name: 
Organization name: Klaus Tachtler
Locality name: Muenchen (Munich)
State or province name: Bayern (Bavaria)
Country name (2 chars): DE
Enter the subject's domain component (DC): 
UID: 
Enter a dnsName of the subject of the certificate: 
Enter a URI of the subject of the certificate: 
Enter the IP address of the subject of the certificate: 
Enter the e-mail of the subject of the certificate: hostmaster@tachtler.net
Enter a challenge password: 
Does the certificate belong to an authority? (y/N): n
Will the certificate be used for signing (DHE and RSA-EXPORT ciphersuites)? (Y/n): 
Will the certificate be used for encryption (RSA ciphersuites)? (Y/n): 
Will the certificate be used to sign code? (y/N): 
Will the certificate be used for time stamping? (y/N): 
Will the certificate be used for IPsec IKE operations? (y/N): 
Will the certificate be used to sign OCSP requests? (y/N): 
Is this a TLS web client certificate? (y/N): y
Is this a TLS web server certificate? (y/N): y

Getätigte Eingaben:

Einstellung Wert
Common name vml70010.idmz.tachtler.net
Organization name: Klaus Tachtler
Locality name: Muenchen (Munich)
State or province name: Bayern (Bavaria)
Country name (2 chars): DE
Enter a URI of the subject of the certificate: vml70010.edmz.tachtler.net
Enter the e-mail of the subject of the certificate: hostmaster@tachtler.net
Does the certificate belong to an authority? (y/N): n
Is this a TLS web client certificate? (y/N): y
Is this a TLS web server certificate? (y/N): y

Mit nachfolgendem Befehl kann nun überprüft werden, ob der Schlüssel und das Zertifikats-Antrag (Request) erstellt wurden:

# ls -la /etc/pki/graylog/*
/etc/pki/graylog/certs:
total 24
drwxr-xr-x 2 root root  138 Apr 30 15:30 .
drwxr-xr-x 4 root root   32 Apr 30 13:21 ..
-rw-r--r-- 1 root root 2175 Apr 30 14:56 graylog-ca-crt.pem
-rw-r--r-- 1 root root 2269 Apr 30 15:19 graylog-server-crt.pem

/etc/pki/graylog/csrs:
total 8
-rw------- 1 root root 4337 Apr 30 15:11 graylog-server-csr.pem
-rw------- 1 root root 4257 Apr 30 15:31 graylog-vml70010.idmz.tachtler.net-csr.pem

/etc/pki/graylog/private:
total 36
drwxr-xr-x 2 root root   109 Apr 30 15:27 .
drwxr-xr-x 4 root root    32 Apr 30 13:21 ..
-rw------- 1 root root 10999 Apr 30 14:52 graylog-ca-key.pem
-rw------- 1 root root 11009 Apr 30 14:56 graylog-server-key.pem
-rw------- 1 root root 10996 Apr 30 15:27 graylog-vml70010.idmz.tachtler.net-key.pem

Nachfolgender Befehl erstellt nun aus der Graylog CA-ROOT-Zertifikat, dem Graylog CA-Schlüssel und dem Zertifikats-Antrag (Request) das Graylog Client-Zertifikat, mit nachfolgendem Befehl:

# certtool --generate-certificate --load-request /etc/pki/graylog/csrs/graylog-vml70010.idmz.tachtler.net-csr.pem --outfile /etc/pki/graylog/certs/graylog-vml70010.idmz.tachtler.net-crt.pem --load-ca-certificate /etc/pki/graylog/certs/graylog-ca-crt.pem --load-ca-privkey /etc/pki/graylog/private/graylog-ca-key.pem
Generating a signed certificate...
Enter the certificate's serial number in decimal (default: 6550233724283548934): 3


Activation/Expiration time.
The certificate will expire in (days): 3649


Extensions.
Do you want to honour the extensions from the request? (y/N): 
Does the certificate belong to an authority? (y/N): n
Is this a TLS web client certificate? (y/N): y
Will the certificate be used for IPsec IKE operations? (y/N): 
Is this a TLS web server certificate? (y/N): y
Enter a dnsName of the subject of the certificate: vml70010.idmz.tachtler.net
Enter a dnsName of the subject of the certificate: 
Enter a URI of the subject of the certificate: 
Enter the IP address of the subject of the certificate: 
Will the certificate be used for signing (DHE and RSA-EXPORT ciphersuites)? (Y/n): 
Will the certificate be used for encryption (RSA ciphersuites)? (Y/n): 
Will the certificate be used to sign OCSP requests? (y/N): 
Will the certificate be used to sign code? (y/N): 
Will the certificate be used for time stamping? (y/N): 
X.509 Certificate Information:
        Version: 3
        Serial Number (hex): 03
        Validity:
                Not Before: Mon Apr 30 13:32:18 UTC 2018
                Not After: Wed Apr 26 13:32:27 UTC 2028
        Subject: CN=vml70010.idmz.tachtler.net,O=Klaus Tachtler,L=Muenchen (Munich),ST=Bayern (Bavaria),C=DE
        Subject Public Key Algorithm: RSA
        Algorithm Security Level: High (4096 bits)
                Modulus (bits 4096):
                        00:a8:98:6a:59:d2:96:3e:fb:a0:71:82:12:66:5d:c0
                        b3:d6:a0:36:91:b9:67:05:71:30:44:09:0d:cb:05:bb
                        2c:fb:5a:7e:92:c5:ff:e7:60:fc:9a:81:83:7f:d6:e6
                        44:87:3c:71:bd:82:1a:0d:e0:0d:71:c6:be:5a:7c:5a
                        14:d4:a8:8a:da:c1:45:62:dc:31:5f:1d:4e:54:69:d7
                        98:b5:8a:f8:f8:ee:33:e0:08:48:bd:a0:12:6c:96:e9
                        3c:94:3b:97:26:58:be:a8:8d:bb:a9:f6:7a:43:9d:7f
                        b8:f3:91:20:3b:ef:a5:d0:f2:94:8f:57:00:79:22:9e
                        cc:65:b9:9c:ab:3e:f9:d9:f6:f8:9c:ba:ea:5f:c1:cc
                        ee:1c:72:07:e6:7f:eb:5a:ca:27:83:71:6c:7f:80:30
                        15:a5:60:8a:b1:c5:82:38:dc:4c:27:7a:ca:cb:4a:d7
                        21:8b:42:05:2d:1a:1a:ce:c2:3d:a5:4a:fd:04:5e:45
                        ba:e5:6a:cd:44:1c:64:22:30:71:f0:89:1f:b5:31:50
                        73:16:1a:22:f8:07:8b:c3:79:a3:ba:e7:a5:b8:61:95
                        5e:ae:4c:cf:e7:95:ce:1e:a0:28:2b:ce:a5:8d:2a:81
                        2f:66:e2:d7:71:58:de:23:c7:da:04:b4:aa:b8:b0:ba
                        06:34:1a:a0:29:75:48:38:88:94:3e:d3:b3:8e:7e:56
                        ce:bd:1b:0e:6e:85:87:12:61:73:08:8b:c9:dd:f0:70
                        5c:33:ce:93:9c:8b:4a:73:3c:a7:28:80:d1:cc:52:07
                        1d:6d:e9:4e:5e:b6:b6:f1:26:9f:f4:4d:0b:3a:31:00
                        ea:fc:b1:9a:0b:07:08:ab:5b:eb:18:ad:b0:84:d7:c7
                        4d:b3:86:ae:84:a0:48:f3:34:36:49:08:53:25:22:75
                        fe:7a:dc:18:9f:99:91:27:ac:c5:57:22:bc:26:23:27
                        af:8c:cf:d9:7b:b8:7b:77:46:5f:92:f8:02:2a:00:38
                        ff:71:ea:24:84:8c:2b:e2:13:06:a0:0b:5e:6a:62:8b
                        4d:15:bf:8c:9f:83:b3:d5:6c:97:71:18:d0:d8:ae:10
                        90:c6:d0:1f:be:70:67:bb:81:3e:e2:6f:7d:dd:09:87
                        c2:3e:71:0d:d9:32:6f:8e:1b:0e:a1:1a:54:b4:40:a5
                        69:69:06:f7:f8:f6:c8:29:71:56:bf:49:94:b0:55:c1
                        e6:51:ec:27:59:93:4d:1e:05:4b:67:be:bb:e3:01:90
                        02:a1:29:42:9e:cf:f9:c8:21:64:fb:9e:2d:b0:8f:6b
                        4e:66:00:b0:60:e6:e6:2c:53:17:01:e8:3c:a5:f5:22
                        ad
                Exponent (bits 24):
                        01:00:01
        Extensions:
                Basic Constraints (critical):
                        Certificate Authority (CA): FALSE
                Key Purpose (not critical):
                        TLS WWW Client.
                        TLS WWW Server.
                Subject Alternative Name (not critical):
                        DNSname: vml70010.idmz.tachtler.net
                Key Usage (critical):
                        Digital signature.
                        Key encipherment.
                Subject Key Identifier (not critical):
                        4cb652bc753ad41f5de71a57f46af13d1b3e8f3b
                Authority Key Identifier (not critical):
                        f709872f43a1380411f8b61287109b4713ada319
Other Information:
        Public Key ID:
                4cb652bc753ad41f5de71a57f46af13d1b3e8f3b
        Public key's random art:
                +--[ RSA 4096]----+
                |                 |
                |                 |
                |                 |
                |       . .     .+|
                |        S.   . =*|
                |       +... . .oO|
                |      o.o .. ..oE|
                |       +.o  . o=o|
                |      . ..    o++|
                +-----------------+

Is the above information ok? (y/N): y


Signing certificate...

Getätigte Eingaben:

Einstellung Wert
Enter the certificate's serial number in decimal (default: 6550225898579949029): 3
The certificate will expire in (days): 3649
Does the certificate belong to an authority? (y/N): n
Is this a TLS web client certificate? (y/N): y
Is this a TLS web server certificate? (y/N): y
Enter a dnsName of the subject of the certificate: vml70010.idmz.tachtler.net
Enter a URI of the subject of the certificate: vml70010.edmz.tachtler.net
Is the above information ok? (y/N): y

Mit nachfolgendem Befehl kann nun überprüft werden, ob der Schlüssel und das Zertifikats-Antrag (Request) sowie das Graylog Client-Zertifikat erstellt wurden:

# ls -la /etc/pki/graylog/*
/etc/pki/graylog/certs:
total 24
drwxr-xr-x 2 root root 4096 Apr 30 15:32 .
drwxr-xr-x 4 root root   32 Apr 30 13:21 ..
-rw-r--r-- 1 root root 2175 Apr 30 14:56 graylog-ca-crt.pem
-rw-r--r-- 1 root root 2269 Apr 30 15:19 graylog-server-crt.pem
-rw-r--r-- 1 root root 2232 Apr 30 15:33 graylog-vml70010.idmz.tachtler.net-crt.pem

/etc/pki/graylog/csrs:
total 8
-rw------- 1 root root 4337 Apr 30 15:11 graylog-server-csr.pem
-rw------- 1 root root 4257 Apr 30 15:31 graylog-vml70010.idmz.tachtler.net-csr.pem

/etc/pki/graylog/private:
total 48
drwxr-xr-x 2 root root   109 Apr 30 15:27 .
drwxr-xr-x 4 root root    32 Apr 30 13:21 ..
-rw------- 1 root root 10999 Apr 30 14:52 graylog-ca-key.pem
-rw------- 1 root root 11009 Apr 30 14:56 graylog-server-key.pem
-rw-r--r-- 1 root root 11009 Apr 30 14:56 graylog-server-key-pkcs8.pem
-rw------- 1 root root 10996 Apr 30 15:27 graylog-vml70010.idmz.tachtler.net-key.pem

graylog-web: Syslog TCP mit TLS und Authentifizeirung

Nachfolgend kann die Konfiguration des Inputs in der Graylog-Web-Server Applikation durchgeführt werden und sollte eine Ausgabe, in etwa, wie die nachfolgende zum Vorschein bringen:

Graylog Web - Inputs - Syslog TCP mit TLS und Authentifizierung

Nachfolgende Einstellungen sind dazu zu ergänzen (Nur relevante Änderungen/Ergänzugen):

Einstellung Wert
Global input (Standard on all nodes)
Port 10514
TLS cert file (optional) /etc/pki/graylog/certs/graylog-server-crt.pem
TLS private key file (optional) /etc/pki/graylog/private/graylog-server-key-pkcs8.pem
Enable TLS (optional)
TLS client authentication (optional) required
TLS Client Auth Trusted Certs (optional) /etc/pki/graylog/certs
Enable keepalive (optional)

Konfiguration: rsyslog UDP

Die Konfiguration von RSysLog ist einfach, um alle Log-Meldung die bei RSysLog auftreffen, auch an Graylog weiterzuleiten.

Nachfolgende Konfigurationen bewegt RSysLog dazu alle Log-Dateien auch an Graylog weiterzuleiten:

UDP: (:!: Nur bis Graylog Version 2.1 möglich!)

$template GRAYLOGRFC5424,"<%PRI%>%PROTOCOL-VERSION% %TIMESTAMP:::date-rfc3339% %HOSTNAME% %APP-NAME% %PROCID% %MSGID% %STRUCTURED-DATA% %msg%\n"
*.* @graylog.example.org:514;GRAYLOGRFC5424

:!: HINWEIS - Der einzige Unterschied zwischen UDP und TCP ist die Konfiguration @ anstelle von @@ bei der Ziel-Beschreibung.

Alternativ beherrscht RSysLog ab der Version 5.10 oder höher auch das Schreiben von LOG-Daten mit Hilfe des eingebauten „Templates“ - RSYSLOG_SyslogProtocol23Format, welches die LOG-Daten im gleichen Format sendet, wie dies bei UDP oder TCP vorher noch definiert werden musste.

UDP (RSYSLOG_SyslogProtocol23Format): (:!: Ab Graylog Version 2.2 zwingend erforderlich! )

*.* @graylog.example.org:514;RSYSLOG_SyslogProtocol23Format

Konfiguration: rsyslog TCP

Die Konfiguration von RSysLog ist einfach, um alle Log-Meldung die bei RSysLog auftreffen, auch an Graylog weiterzuleiten.

Nachfolgende Konfigurationen bewegt RSysLog dazu alle Log-Dateien auch an Graylog weiterzuleiten:

TCP: (:!: Nur bis Graylog Version 2.1 möglich!)

$template GRAYLOGRFC5424,"<%PRI%>%PROTOCOL-VERSION% %TIMESTAMP:::date-rfc3339% %HOSTNAME% %APP-NAME% %PROCID% %MSGID% %STRUCTURED-DATA% %msg%\n"
*.* @@graylog.example.org:514;GRAYLOGRFC5424

:!: HINWEIS - Der einzige Unterschied zwischen UDP und TCP ist die Konfiguration @ anstelle von @@ bei der Ziel-Beschreibung.

Alternativ beherrscht RSysLog ab der Version 5.10 oder höher auch das Schreiben von LOG-Daten mit Hilfe des eingebauten „Templates“ - RSYSLOG_SyslogProtocol23Format, welches die LOG-Daten im gleichen Format sendet, wie dies bei UDP oder TCP vorher noch definiert werden musste.

TCP (RSYSLOG_SyslogProtocol23Format): (:!: Ab Graylog Version 2.2 zwingend erforderlich! )

*.* @@graylog.example.org:514;RSYSLOG_SyslogProtocol23Format

rsyslog TCP mit Client-Zertifikat

Nachfolgende Konfiguration soll den Datenserver der LOG-Daten vom jeweils lokalen - RSysLog-Dienst/Daemon zum Graylog-Server via TLS-Verschlüsselung absichern, so das die Daten auf dem Weg vom Client zum Servern verschlüsselt übertragen werden.

Des weiteren soll damit auch gewährleistet werden, das sich nur autorisierte RSysLog-Clients mit dem Graylog-Server verbinden dürfen.

Um die beiden Punkte

  • Verschlüsselte LOG-Datenübertragung und
  • Autorisierte LOG-Datenübertragung

realisieren zu können, ist es erforderlich entsprechend Zertifikate zu erstellen.

Nachfolgende zusätzliche Konfigurationen sind erforderlich, um den RSysLog zu veranlassen alle Log-Dateien nur noch TLS-Verschlüsselt an Graylog weiterzuleiten.

Dazu sollen mit nachfolgenden Befehl in nachfolgendem Verzeichnis

  • /etc/pki/

die folgenden Verzeichnisse erstellt werden

  • /etc/pki/graylog
  • /etc/pki/graylog/certs - Verzeichnis für alle Zertifikate
  • /etc/pki/graylog/private - Verzeichnis für alle Schlüssel
# mkdir -p /etc/pki/graylog/{certs,private}

Ob die Verzeichnisse korrekt erstellt wurden, kann mit nachfolgendem Befehl überprüft werden:

# ll /etc/pki/graylog/*
/etc/pki/graylog/certs:
total 0

/etc/pki/graylog/private:
total 0

Jetzt müssen jeweils ein

  • /etc/pki/graylog/certs/graylog-ca-crt.pem - ROOT-Zertifikat (Certificate)
  • /etc/pki/graylog/private/graylog-vml70010.idmz.tachtler.net-key.pem - Client-Zertifikat Schlüssel (Key)
  • /etc/pki/graylog/certs/graylog-vml70010.idmz.tachtler.net-crt.pem - Client-Zertifikat (Certificate)

in das gerade eben neu erstellte Verzeichnis, vom Graylog-Server (auf dem die Zertifikate für den Client erstellt wurden) kopiert werden, was z.B. mit nachfolgendem Befehlen erfolgen kann:

# scp /etc/pki/graylog/certs/graylog-ca-crt.pem vml70010.idmz.tachtler.net:/etc/pki/graylog/certs
graylog-ca-crt.pem                            100% 1456    82.7KB/s   00:00
# scp /etc/pki/graylog/graylog-vml70010.idmz.tachtler.net-crt.pem vml70010.idmz.tachtler.net:/etc/pki/graylog/certs
graylog-vml70010.idmz.tachtler.net-crt.pem    100% 1298   173.7KB/s   00:00
# scp /etc/pki/graylog/graylog-vml70010.idmz.tachtler.net-key.pem vml70010.idmz.tachtler.net:/etc/pki/graylog/certs
graylog-vml70010.idmz.tachtler.net-key.pem    100% 1704   209.8KB/s   00:00

/etc/rsyslog.conf

Nachfolgende Änderungen bzw. Ergänzungen sind erforderlich, um den RSysLog zu veranlassen alle Log-Dateien nur noch TLS-Verschlüsselt an Graylog weiterzuleiten:

(Nur relevante Ausschnitte):

#### MODULES ####
 
# Tachtler - TLS -
$DefaultNetstreamDriver gtls
$DefaultNetstreamDriverCAFile /etc/pki/graylog/certs/graylog-ca-crt.pem
$DefaultNetstreamDriverCertFile /etc/pki/graylog/certs/graylog-vml70010.idmz.tachtler.net-crt.pem
$DefaultNetstreamDriverKeyFile /etc/pki/graylog/private/graylog-vml70010.idmz.tachtler.net-key.pem
#### RULES ####
 
# Tachtler - TLS -
# Write all Log-Information to graylog
#$template GRAYLOGRFC5424,"<%PRI%>%PROTOCOL-VERSION% %TIMESTAMP:::date-rfc3339% %HOSTNAME% %APP-NAME% %PROCID% %MSGID% %STRUCTURED-DATA% %msg%\n"
#*.*                                                     @10.7.0.110:514;GRAYLOGRFC5424
*.*                                                     @@10.7.0.110:514;RSYSLOG_SyslogProtocol23Format
#### RULES ####
 
# Tachtler - TLS -
$ActionSendStreamDriverAuthMode x509/name
$ActionSendStreamDriverPermittedPeer vml70110.idmz.tachtler.net
$ActionSendStreamDriverMode 1

Einrichtung: graylog - Dashboards

Dashboard: Meldungen der letzten 24-Stunden

Nachfolgend soll die Einrichtung eines „Dashboard“ aller Meldungen der letzten 24-Stunden durchgeführt werden, wobei hier die 24 Stunden

  • von vorgestern Mitternacht
  • bis gestern Mitternacht

gemeint sind.

Nach dem drücken der Schaltfläche [Create dashboard] können in dem sich öffnenden Dialogfenster, nachfolgende Daten eingegeben werden:

  • Title: Meldungen der letzten 24-Stunden
  • Description: Suche von Mitternacht vorgestern bis Mitternacht gestern

anschließend ist die Schaltfläche [Save] zu drücken.

Nachfolgendes „Dashboard“ sollte nun entstanden sein, welches nun noch mit Leben gefüllt werden muss:

Dashboard 24-Stunden

Dashboard: Meldungen der letzten 24-Stunden - Widget: Meldungen gesamt

Als erstes „widget“ soll das Meldungen gesamt angelegt werden, welches nachfolgende Parameter hat:

Beispiel Paramater Wert
Title Meldungen gesamt
Cache time 10
Time range type Keyword
Search keyword midnight yesterday to midnight today
Search query [leer]
Number of top/buttom values [leer]
Total table size [leer]
Sort options [keine ausgewählt]
Stacked fields [keine ausgewählt]
Show pie chart [nicht ausgewählt]
Show data table

Dashboard: Meldungen der letzten 24-Stunden - Widget: Gesamt Meldungen

Als zweites „widget“ soll das Gesamt Meldungen angelegt werden, welches nachfolgende Parameter hat:

Beispiel Paramater Wert
Title Gesamt Meldungen
Cache time 10
Time range type Keyword
Search keyword midnight yesterday to midnight today
Search query [leer]
Display trend
Lower is better

Dashboard: Meldungen der letzten 24-Stunden - Widget: Problem Meldungen

Als drittes „widget“ soll das Problem Meldungen angelegt werden, welches nachfolgende Parameter hat:

Beispiel Paramater Wert
Title Problem Meldungen
Cache time 10
Time range type Keyword
Search keyword midnight yesterday to midnight today
Search query (level:0 OR level:1 OR level:2 OR level:3 OR level:4)
Display trend
Lower is better
Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
tachtler/graylog_centos_7.txt · Zuletzt geändert: 2022/01/29 05:50 von klaus