• This forum has a zero tolerance policy regarding spam. If you register here to publish advertising, your user account will be deleted without further questions.

Rocket.Chat Website oberfläche ist nicht erreichbar

RaffiRaftNix

New Member
Guten Abend.

ich habe soeben probiert, Rocket.Chat (https://rocket.chat/docs/installation/manual-installation/debian/) zu installieren. ich bin noch recht neu im Bereich vServer und wollte das zum Üben mal machen. System: Debian 9

ich bin die Schritte durchgegangen und zuvor habe ich Apache installiert (da ich dachte, Websiteoberfläche braucht sicher einen Webserver).

beim Konfigurieren des System service habe ich die Server-IP angegeben, keine Domain, soll ja auch so klappen.

den Dienst habe ich dann aktiviert und er läuft auch :

Code:
● rocketchat.service
   Loaded: loaded (/lib/systemd/system/rocketchat.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2019-05-11 20:44:54 CEST; 6min ago
 Main PID: 13449 (node)
    Tasks: 10 (limit: 4915)
   CGroup: /system.slice/rocketchat.service
           └─13449 /usr/local/bin/node /opt/Rocket.Chat/main.js

Mai 11 20:46:01 kvm440654 rocketchat[13449]: ➔ |         Process Port: 3000                                                |
Mai 11 20:46:01 kvm440654 rocketchat[13449]: ➔ |             Site URL: http://XX.XXX.XXX.XXX:3000/                         |
Mai 11 20:46:01 kvm440654 rocketchat[13449]: ➔ |     ReplicaSet OpLog: Disabled                                            |
Mai 11 20:46:01 kvm440654 rocketchat[13449]: ➔ |          Commit Hash: f19473c627                                          |
Mai 11 20:46:01 kvm440654 rocketchat[13449]: ➔ |        Commit Branch: HEAD                                                |
Mai 11 20:46:01 kvm440654 rocketchat[13449]: ➔ |                                                                           |
Mai 11 20:46:01 kvm440654 rocketchat[13449]: ➔ |  OPLOG / REPLICASET IS REQUIRED TO RUN ROCKET.CHAT, MORE INFORMATION AT:  |
Mai 11 20:46:01 kvm440654 rocketchat[13449]: ➔ |  https://go.rocket.chat/i/oplog-required                                  |
Mai 11 20:46:01 kvm440654 rocketchat[13449]: ➔ |                                                                           |
Mai 11 20:46:01 kvm440654 rocketchat[13449]: ➔ +---------------------------------------------------------------------------+

das Problem ist aber jetzt, dass XX.XXX.XXX.XXX:3000 nicht erreichbar ist:

Code:
Diese Seite funktioniert nicht
XX.XXX.XXX.XXX hat keine Daten gesendet.

Alleine die IP ist natürlich erreichbar, da kommt die Apache default seite.

Nun die Frage, wieso? müsste ich apache überhaupt installieren? kann jemand helfen?
 
Nutze zwar die Software nicht... jedoch versuche ich dennoch etwas weiter zu helfen.

Wenn du auf eine Apache default Seite kommst, dann ist die Idee mit dem Apache installieren vielleicht nicht so sinnvoll.

Das was du gepostet hast sollte schon die Erklärung geben, denn er meckert ja gleich rum und sagt, was ihm fehlt:

Mai 11 20:46:01 kvm440654 rocketchat[13449]: ➔ | OPLOG / REPLICASET IS REQUIRED TO RUN ROCKET.CHAT, MORE INFORMATION AT: | Mai 11 20:46:01 kvm440654 rocketchat[13449]: ➔ | https://go.rocket.chat/i/oplog-required |

Hoffe du kannst auf der Seite, die Rocketchat hier angibt, das finden, was du noch installieren musst.
Ich drücke dir die Daumen.

Gruß
Dennis
 
okay danke. Habe ihn schnell nochmal neu aufgesetzt. Ich bin jetzt bei diesem Befehl. doch wo soll ich den eingeben? in "mongo" ja nicht ?

rs.initiate({ _id: 'rs01', members: [ { _id: 0, host: 'localhost:27017' } ]})

ich habe das jetzt erstmal übersprungen, meine rocketchat.service sieht nun so aus, aber die Weboberfläche ist immer noch nicht erreichbar :(

Code:
[Unit]
Description=The Rocket.Chat server
After=network.target remote-fs.target nss-lookup.target nginx.target mongod.target
[Service]
ExecStart=/usr/local/bin/node /opt/Rocket.Chat/main.js
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=rocketchat
User=rocketchat
Environment=MONGO_URL=mongodb://localhost:27017/rocketchat ROOT_URL=//localhost:3000/ PORT=3000 MONGO_OPLOG_URL=mongodb://localhost:27017/local?replSet=rs01
[Install]
WantedBy=multi-user.target
 
Was ist an

Using YAML syntax add this section into mongod.conf:

nicht verständlich?
(Neustart der DB nicht vergessen)
 
das dachte ich schon habe ich auch probiert, aber erhalte einen Fehler beim Eingeben:

Code:
rs01:PRIMARY> rs.initiate({ _id: 'rs01', members: [ { _id: 0, host: 'localhost:27017' } ]})
{
        "info" : "try querying local.system.replset to see current configuration",
        "ok" : 0,
        "errmsg" : "already initialized",
        "code" : 23,
        "codeName" : "AlreadyInitialized",
        "operationTime" : Timestamp(1557653940, 1),
        "$clusterTime" : {
                "clusterTime" : Timestamp(1557653940, 1),
                "signature" : {
                        "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
                        "keyId" : NumberLong(0)
                }
        }
}
rs01:PRIMARY>

"already initialized". also passt quasi schon nehme ich an?

der vServer wird bei nitrado gehostet, daher denke ich mal keine Firewall.
 
Starte den Dienst, schau ob dieser im status als Aktiv angezeigt wird. Dann logge dich als root ein und gibt folgenden Befehl ein:
Bash:
lsof -i -n
Falls lsof nicht installiert ist, kannst du ihn mit apt-get install lsof installieren.

Der Befehl listet alle offenen Dateien auf. Der Optionsschalter -i zeigt alle offenen Sockets an. -n sorgt dafür, dass die Namen nicht aufgelöst werden. In der Liste, wenn der Chatserver läuft, muss ein Dienst auftauchen, der sich node oder nodejs nennt. Dieser Dienst wird einen Port geöffnet haben. Das Interessante ist, um welche IP es sich handelt. Der Wildcard * bedeutet, dass der Service auf alle IPs der entsprechenden IP-Version lauscht (IPv4 und IPv6). Damit dein Dienst von außen erreichbar ist, muss dieser entweder die öffentliche IP-Adresse in Anspruch nehmen, oder wie schon beschrieben auf allen IPs. Wenn dort localhost steht, dann kannst du den Service von außen nicht erreichen, da dieser nur lokal erreichbar ist. Localhost sowie andere Netzwerke, die man früher Class A-C nannte, werden nicht geroutet.

Die Einstellungen von iptables sind auch noch wichtig. Damit kann man z.B. auch Ports mappen, blocken uvm.
Um einfach alle Einstellungen zu zeigen, gibt es auch einen Trick:

Bash:
# als root
iptables-save

Normal wird der Befehl genutzt, um eine persistente Firewall zu ermöglichen. Alle Einstellungen werden im Terminal ausgegeben.
Init-Scripte nutzen das z.B. um vor dem Herunterfahren die Einstellungen in eine Datei umzuleiten und beim hochfahren wir die Datei zum Befehl iptables-load umgeleitet (wenn ich mich richtig erinnere). Jedenfalls zeigt dir iptables-save alle Einstellungen an.


PS: Gibt es nicht Rechtschreibkorrektur + Grammatikprüfung? Ach, am besten wäre Gedankenübertragung.
 
Auf https://server.nitrado.net/deu/news2/view/das-nitrado-cloud-server-webinterface/ wird eine Firewall erwähnt, die bei den Cloud Servern dabei wäre / konfiguriert werden könnte.

EDIT: Die m.E. übrigens coolere Variante, solche Anwendungen zu installieren, wäre via Docker: https://rocket.chat/docs/installation/docker-containers/ . Das erfordert zwar noch mehr Einarbeitung, ermöglicht aber eine einfache Installation von Anwendungen. Dieses Setup ist noch dazu sehr portablel, da Du im Prinzip nur Deine Docker files (und die herausgelegten Ordner) woanders hinschieben musst.
 
Last edited:
Den dienst node sehe ich gleich 4x:

Code:
COMMAND   PID    USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
sshd      906    root    3u  IPv4  13465      0t0  TCP *:ssh (LISTEN)
sshd      906    root    4u  IPv6  13467      0t0  TCP *:ssh (LISTEN)
sshd     8971    root    3u  IPv4  23841      0t0  TCP XX.XXX.XXX.XXX:ssh->83.135.68.184:54178 (ESTABLISHED)
mongod  12919 mongodb    6u  IPv4  36879      0t0  TCP 127.0.0.1:27017 (LISTEN)
mongod  12919 mongodb   71u  IPv4  33701      0t0  TCP 127.0.0.1:27017->127.0.0.1:54590 (ESTABLISHED)
mongod  12919 mongodb   72u  IPv4  33704      0t0  TCP 127.0.0.1:27017->127.0.0.1:54592 (ESTABLISHED)
mongod  12919 mongodb   88u  IPv4  33723      0t0  TCP 127.0.0.1:27017->127.0.0.1:54594 (ESTABLISHED)
mongod  12919 mongodb   89u  IPv4  35114      0t0  TCP 127.0.0.1:27017->127.0.0.1:54596 (ESTABLISHED)
mongod  12919 mongodb  102u  IPv4  33724      0t0  TCP 127.0.0.1:27017->127.0.0.1:54598 (ESTABLISHED)
node    12977    root   10u  IPv4  35092      0t0  TCP 127.0.0.1:54590->127.0.0.1:27017 (ESTABLISHED)
node    12977    root   11u  IPv4  35101      0t0  TCP 127.0.0.1:54592->127.0.0.1:27017 (ESTABLISHED)
node    12977    root   12u  IPv4  36165      0t0  TCP 127.0.0.1:54594->127.0.0.1:27017 (ESTABLISHED)
node    12977    root   13u  IPv4  36166      0t0  TCP 127.0.0.1:54596->127.0.0.1:27017 (ESTABLISHED)
node    12977    root   14u  IPv4  36167      0t0  TCP 127.0.0.1:54598->127.0.0.1:27017 (ESTABLISHED)

aber auf localhost komischerweise, in der Config steht ja die IP:

Code:
[Unit]
Description=RocketChat Server
After=network.target remote-fs.target nss-lookup.target mongod.target nginx.target # Remove or Replace nginx with your proxy

[Service]
ExecStart=/usr/local/bin/node /opt/Rocket.Chat/main.js # The location of node and location of main.js
Restart=always # When is set to always, the service will be restarted in any case (hit a timeout, got terminated)
RestartSec=15 # If node service crashes, restart the service after 15 seconds
StandardOutput=syslog # Output to syslog
StandardError=syslog # Output to syslog
SyslogIdentifier=nodejs-example
#User=<alternate user>
#Group=<alternate group>
Environment=NODE_ENV=production PORT=3000 ROOT_URL=http://XX.XXX.XXX.XXX:3000 MONGO_URL=mongodb://localhost:27017/rocketchat

[Install]
WantedBy=multi-user.target

iptables-save:

Code:
root@kvm440654:/opt/Rocket.Chat# iptables-save
# Generated by iptables-save v1.6.0 on Sun May 12 13:24:37 2019
*filter
:INPUT ACCEPT [33913:337276199]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [31584:336843697]
:f2b-sshd - [0:0]
-A INPUT -p tcp -m multiport --dports 22 -j f2b-sshd
-A f2b-sshd -s 58.242.83.35/32 -j REJECT --reject-with icmp-port-unreachable
-A f2b-sshd -j RETURN
COMMIT
# Completed on Sun May 12 13:24:37 2019

Das ist jetzt sogar auf einem anderen vServer eines anderen hosters.
 
Läuft denn die Firewall? Ich bin kein iptables Experte, aber wenn die FW läuft und das alle Regeln sind, dürfte m.E. der Port 3000 nicht von außen erreichbar sein. Davon abgesehen hat wohl der Hoster noch eine Firewallmöglichkeit. Da ich nicht bei diesem Hoster bin, kann ich nicht sagen, ob damit eine Hoster-Firewall konfiguriert wird oder die FW auf dem Server.
 
Die iptables-Firwall sollte mit den Einstellungen eigentlich nicht blocken, alles auf ACCEIPT und dann die Sperrregel für den SSH-Port von Fail2ban, die aktuell nur eine IP enthält.
Die Localhost-Verbindungen in der Ausgabe von lsof von node sind zu Mongo, also so gewollt. Allerdings fehlt ein LISTEN-Eintrag von node für Port 3000.
 
Back
Top