[gelöst] dovecot-solr mit solr-jetty vs. solr-tomcat

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
slu
Beiträge: 2145
Registriert: 23.02.2005 23:58:47

[gelöst] dovecot-solr mit solr-jetty vs. solr-tomcat

Beitrag von slu » 12.02.2014 13:39:47

Hallo,

ich möchte unseren Dovecot IMAP mit einer Volltextsuche [1] ausstatten, am liebsten mit Debiandovecot-solr.
Jetzt stellt sich nur die Frage ob ich Debiansolr-tomcat oder Debiansolr-jetty verwende, im Moment läuft keines von beiden auf dem Server.

Debian Wheezy
ca. 80 IMAP Benutzer

Hat jemand Erfahrung damit?
Ist der jetty schlanker als der tomcat?

http://wiki2.dovecot.org/Plugins/FTS/Solr
Zuletzt geändert von slu am 24.02.2014 14:17:29, insgesamt 1-mal geändert.
Gruß
slu

Das Server Reinheitsgebot:
Debian Bookworm, sonst nichts.

Stolzer Gewinner der Jessie Release Wette:
https://wiki.debianforum.de/Jessie_Release_Wette#SIEGER

syssi
Beiträge: 2951
Registriert: 24.12.2010 16:50:59
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Rheinland

Re: dovecot-solr mit solr-jetty vs. solr-tomcat

Beitrag von syssi » 13.02.2014 18:40:57

Wenn du soweit bist waere ich an einem Erfahrungsbericht interessiert. Ich mag Solr sehr gern und der Ansatz es zu benutzen, um dem IMAP-Konto Beine zu machen finde ich ziemlich schick.

slu
Beiträge: 2145
Registriert: 23.02.2005 23:58:47

Re: dovecot-solr mit solr-jetty vs. solr-tomcat

Beitrag von slu » 22.02.2014 14:28:09

Ich bekomme leider das solr-jetty nicht zum laufen, kann es sein das es hierfür kein README.txt gibt?

Edit:
solr läuft nun mit tomcat, allerdings fehlt mir das "doc/solr-schema.xml" wie es im dovecot wiki steht.

Edit2:
Debian Bugreport695185
Gruß
slu

Das Server Reinheitsgebot:
Debian Bookworm, sonst nichts.

Stolzer Gewinner der Jessie Release Wette:
https://wiki.debianforum.de/Jessie_Release_Wette#SIEGER

slu
Beiträge: 2145
Registriert: 23.02.2005 23:58:47

Re: dovecot-solr mit solr-jetty vs. solr-tomcat

Beitrag von slu » 22.02.2014 19:57:12

@ syssi,

es läuft nun und ist der Hammer, obwohl ich die ganzen Mails durchsuche ist das Ergebnis sofort da.
Die fehlende schema.xml hab ich mir direct bei dovecot.org runter geladen.

Edit:
Hier liegt die korrekte schema.xml http://ftp.de.debian.org/debian/pool/ma ... rig.tar.gz
Gruß
slu

Das Server Reinheitsgebot:
Debian Bookworm, sonst nichts.

Stolzer Gewinner der Jessie Release Wette:
https://wiki.debianforum.de/Jessie_Release_Wette#SIEGER

Benutzeravatar
ThorstenS
Beiträge: 2875
Registriert: 24.04.2004 15:33:31

Re: dovecot-solr mit solr-jetty vs. solr-tomcat

Beitrag von ThorstenS » 23.02.2014 20:16:19

Ich find das auch ziemlich spannend slu!
Könntest du uns eine Stichpunktartige (oder gar eine detailierte) Vorgehensweise posten?
Meine imap Suchanfragen verbrauchen nämlich viiiel Zeit ;-)

slu
Beiträge: 2145
Registriert: 23.02.2005 23:58:47

Re: dovecot-solr mit solr-jetty vs. solr-tomcat

Beitrag von slu » 24.02.2014 14:16:37

Für Debian Wheezy:

Code: Alles auswählen

apt-get install dovecot-solr solr-tomcat

vi /etc/tomcat6/server.xml
<Connector port="8080" address="127.0.0.1" protocol="HTTP/1.1"

wget http://ftp.de.debian.org/debian/pool/main/d/dovecot/dovecot_2.1.7.orig.tar.gz
Edit:
Besser apt-get source dovecot-common

tar xfzv dovecot_2.1.7.orig.tar.gz
/tmp/dovecot-2.1.7/doc# cp -v solr-schema.xml /etc/solr/conf/schema.xml

/etc/init.d/tomcat6 restart

vi /etc/dovecot/conf.d/10-mail.conf
mail_plugins = fts fts_solr

vi /etc/dovecot/conf.d/90-plugin.conf
fts = solr
fts_solr = url=http://127.0.0.1:8080/solr/

/etc/init.d/dovecot restart
Bei der nächsten Suche sieht man in /var/log/mail.log das die Mails indexiert wurden.
Alle weiteren Suchen indexieren nur noch die Differenz und das Ergebnis ist quasi sofort da.

Siehe auch http://wiki2.dovecot.org/Plugins/FTS/Solr
Zuletzt geändert von slu am 24.02.2014 20:00:22, insgesamt 1-mal geändert.
Gruß
slu

Das Server Reinheitsgebot:
Debian Bookworm, sonst nichts.

Stolzer Gewinner der Jessie Release Wette:
https://wiki.debianforum.de/Jessie_Release_Wette#SIEGER

Benutzeravatar
ThorstenS
Beiträge: 2875
Registriert: 24.04.2004 15:33:31

Re: [gelöst] dovecot-solr mit solr-jetty vs. solr-tomcat

Beitrag von ThorstenS » 24.02.2014 18:46:19

Herzlichen Dank, ich werd das die Tage bei mir an der Arbeit umsetzen und berichten.

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: dovecot-solr mit solr-jetty vs. solr-tomcat

Beitrag von Cae » 24.02.2014 19:18:47

slu hat geschrieben:

Code: Alles auswählen

wget http://ftp.de.debian.org/debian/pool/main/d/dovecot/dovecot_2.1.7.orig.tar.gz

tar xfzv dovecot_2.1.7.orig.tar.gz
/tmp/dovecot-2.1.7/doc# cp -v solr-schema.xml /etc/solr/conf/schema.xml
Schoener:

Code: Alles auswählen

# wget -O- http://ftp.de.debian.org/debian/pool/main/d/dovecot/dovecot_2.1.7.orig.tar.gz \
> | tar xz dovecot-2.1.7/doc/solr-schema.xml --strip-components=2 -C /etc/solr/conf --backup
Und richtig schoen waer's, wenn man vorher nochmal per GPG prueft, ob der Tarball tatsaechlich aus Debian stammt oder zwischendrin noch einen Umweg hinter sich hat...

Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

slu
Beiträge: 2145
Registriert: 23.02.2005 23:58:47

Re: [gelöst] dovecot-solr mit solr-jetty vs. solr-tomcat

Beitrag von slu » 24.02.2014 20:01:35

Cae hat geschrieben:Und richtig schoen waer's, wenn man vorher nochmal per GPG prueft, ob der Tarball tatsaechlich aus Debian stammt oder zwischendrin noch einen Umweg hinter sich hat...
apt-get source dovecot-common

@ Cae
super einzeiler, gefällt mir!
Gruß
slu

Das Server Reinheitsgebot:
Debian Bookworm, sonst nichts.

Stolzer Gewinner der Jessie Release Wette:
https://wiki.debianforum.de/Jessie_Release_Wette#SIEGER

Benutzeravatar
ThorstenS
Beiträge: 2875
Registriert: 24.04.2004 15:33:31

Re: [gelöst] dovecot-solr mit solr-jetty vs. solr-tomcat

Beitrag von ThorstenS » 24.02.2014 20:49:36

cool, hier ist ja auch was passiert :) Ich bin begeister von der Suche!
Ich hab die Installation eben mal durchgespielt und möchte euch mein Protokoll inkl. Test nicht vorenthalten:
(An apt-get source hab ich auch gedacht, aber mein Produktivsystem kennt keine deb-src Zeilen)

Achtung: Ich habe mein /etc mit Debianetckeeper im Auge. Ein git status bzw. git diff zeigt mir also jederzeit die Änderungen zu vorher an. Sollte man beachten, weil meine sed Aufrufe bereits aktiviere dovecots plugins einfach löscht!

Code: Alles auswählen

dovcot solr installieren. Hilfreiche URLS:
  http://debianforum.de/forum/viewtopic.php?p=977619#p977619
  OriginalDoku immer beachten:
  http://wiki2.dovecot.org/Plugins/FTS/Solr

# Paketinstallation
apt-get install solr-tomcat dovecot-solr

# solr-schema besorgen:
cd /tmp
wget http://ftp.de.debian.org/debian/pool/main/d/dovecot/dovecot_2.1.7.orig.tar.gz
tar xvzf dovecot_2.1.7.orig.tar.gz dovecot-2.1.7/doc/solr-schema.xml
cp -v  /etc/solr/conf/schema.xml /root/solr_schema.xml.dist
cp -v ./dovecot-*/doc/solr-schema.xml /etc/solr/conf/schema.xml

# tomcat soll nur auf localhost lauschen:
service tomcat6 stop
sed -i '/Connector port="8080"/{s|\(protocol\)|address="127.0.0.1" \1|}' /etc/tomcat6/server.xml 
# Port 8080 ist bei mir schon belegt, daher 8088:
sed -i '/Connector port="8080"/{s|8080|8088|}' /etc/tomcat6/server.xml 
service tomcat6 start

# File Transport Search aktivieren:
# Achtung: vorher bestehende werden mit dem 1. Aufruf gelöscht:
sed -i '/^mail_plugins/d' /etc/dovecot/conf.d/10-mail.conf
sed -i '/^#mail_plugins/amail_plugins = fts fts_solr' /etc/dovecot/conf.d/10-mail.conf

# Dem Plugin die entspr. URL für solr nennen:
sed -i '/^plugin/a\ \ fts = solr\n  fts_solr = break-imap-search url=http://127.0.0.1:8080/solr/' /etc/dovecot/conf.d/90-plugin.conf
# Wer oben auch den Port 8088 benutz hat,:
sed -i '/^plugin/a\ \ fts = solr\n  fts_solr = break-imap-search url=http://127.0.0.1:8088/solr/' /etc/dovecot/conf.d/90-plugin.conf

service dovecot restart

#Auf einer weiteren console kann man sich die Meldungen anschauen:
multitail -e dovecot /var/log/syslog

# testweise Index meiner Inbox aufbauenlassen:
# Wenn das fehl schlägt debuggen!
doveadm index  -u thorsten INBOX; echo $?
0

# telnet localhost imap
Trying ::1...
Connected to localhost.
Escape character is '^]'.
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE STARTTLS AUTH=PLAIN] Dovecot ready.
1 login thorsten SUPERGEHEIMESPASSWORTIMKLARTEXT
1 OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS MULTIAPPEND UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS SPECIAL-USE SEARCH=FUZZY] Logged in
3 select INBOX.Archiv
* FLAGS (\Answered \Flagged \Deleted \Seen \Draft receipt-handled $has_cal $Label4 $Label1 $Label5 $Label2 privat $Label3 NotJunk $Labelwork $Labeltodo $Labelpersonal $Labellater)
* OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft receipt-handled $has_cal $Label4 $Label1 $Label5 $Label2 privat $Label3 NotJunk $Labelwork $Labeltodo $Labelpersonal $Labellater \*)] Flags permitted.
* 7112 EXISTS
* 0 RECENT
* OK [UIDVALIDITY 1311314006] UIDs valid
* OK [UIDNEXT 29144] Predicted next UID
* OK [HIGHESTMODSEQ 833] Highest
3 OK [READ-WRITE] Select completed.
4 search text "apache"   
* OK Indexed 53% of the mailbox, ETA 0:08
* OK Indexed 81% of the mailbox, ETA 0:04
* OK Mailbox indexing finished
* SEARCH 20 34 51 115 120 197 259 265 282 309 334 339 349 350 390
422 440 453 454 455 460 471 596 601 673 721 739 751 752 771 783
802 806 842 858 871 897 923 942 954 956 979 1026 1035 1369 1388
1453 1458 1459 1460 1461 1462 1465 1472 1473 1474 1475 1490 1554
1691 1726 1728 1832 1838 1844 1847 1871 1904 1905 1971 1972 1977
2060 2079 2080 2105 2175 2183 2255 2320 2321 2323 2367 2369 2389
2398 2419 2427 2428 2447 2458 2459 2460 2461 2462 2543 2586 2599
2600 2603 2605 2629 2993 3037 3048 3068 3373 3515 3516 3541 3706
3793 3795 3865 3866 3889 3897 3899 3900 3901 3935 3984 3988 4013
4024 4030 4031 4067 4068 4112 4201 4336 4359 4365 4366 4481 4482
4483 4484 4624 5074 5113 5137 5138 5277 5340 5380 5395 5408 5443
5531 5550 5674 5770 6084 6254 6301 6323 6374 6412 6413 6414 6606
6631 6633 6634 6635 6712 6714 6749 6754 7012 7013
4 OK Search completed (25.368 secs).

5 search text "apache" 
* SEARCH 20 34 51 115 120 197 259 265 282 309 334 339 349 350 390
422 440 453 454 455 460 471 596 601 673 721 739 751 752 771 783
802 806 842 858 871 897 923 942 954 956 979 1026 1035 1369 1388
1453 1458 1459 1460 1461 1462 1465 1472 1473 1474 1475 1490 1554
1691 1726 1728 1832 1838 1844 1847 1871 1904 1905 1971 1972 1977
2060 2079 2080 2105 2175 2183 2255 2320 2321 2323 2367 2369 2389
2398 2419 2427 2428 2447 2458 2459 2460 2461 2462 2543 2586 2599
2600 2603 2605 2629 2993 3037 3048 3068 3373 3515 3516 3541 3706
3793 3795 3865 3866 3889 3897 3899 3900 3901 3935 3984 3988 4013
4024 4030 4031 4067 4068 4112 4201 4336 4359 4365 4366 4481 4482
4483 4484 4624 5074 5113 5137 5138 5277 5340 5380 5395 5408 5443
5531 5550 5674 5770 6084 6254 6301 6323 6374 6412 6413 6414 6606
6631 6633 6634 6635 6712 6714 6749 6754 7012 7013
5 OK Search completed (0.001 secs).
? LOGOUT  
* BYE Logging out
? OK Logout completed.
Connection closed by foreign host.

# Wenn der Index mal kaputt geht, kann man einen Neuaufbau erzwingen.
# Das geschieht allerdings erst bei der nächsten Suche:
doveadm fts rescan -u thorsten

slu
Beiträge: 2145
Registriert: 23.02.2005 23:58:47

Re: [gelöst] dovecot-solr mit solr-jetty vs. solr-tomcat

Beitrag von slu » 25.02.2014 01:36:57

4 OK Search completed (25.368 secs). => 5 OK Search completed (0.001 secs).

Ich würde sagen die Arbeit hat sich gelohnt! :wink:
Gruß
slu

Das Server Reinheitsgebot:
Debian Bookworm, sonst nichts.

Stolzer Gewinner der Jessie Release Wette:
https://wiki.debianforum.de/Jessie_Release_Wette#SIEGER

Benutzeravatar
ThorstenS
Beiträge: 2875
Registriert: 24.04.2004 15:33:31

Re: [gelöst] dovecot-solr mit solr-jetty vs. solr-tomcat

Beitrag von ThorstenS » 25.02.2014 09:17:16

ja, das würd ich auch - danke für deinen Thread!

Ich hab noch nen cronjob aufgesetzt:

Code: Alles auswählen

# cat /etc/cron.d/dovecot-solr 
# dovecot-solr commits & optimization
# http://wiki2.dovecot.org/Plugins/FTS/Solr

# Commit should be run pretty often, e.g. every two minutes
*/2 * * * * root /usr/bin/curl -s http://localhost:8088/solr/update?commit=true &>/dev/null

# Optimize should be run somewhat rarely, e.g. once a day
44 3 * * *  root /usr/bin/curl -s http://localhost:8088/solr/update?optimize=true &>/dev/null
Ich kann mir das solr-Admininterface ( http://localhohost:8080/solr) anschauen und sehe dort u.a. Statistiken, kann aber auch Suchen absetzen.
Wie sichere ich dieses Interface mit einem Kennwort ab? Ich mag vermeiden, dass sich $unpreviligierte per Portforwarding das Interface zu sich holen und dort rumstöbern…

syssi
Beiträge: 2951
Registriert: 24.12.2010 16:50:59
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Rheinland

Re: [gelöst] dovecot-solr mit solr-jetty vs. solr-tomcat

Beitrag von syssi » 25.02.2014 11:03:49

ThorstenS hat geschrieben:Ich kann mir das solr-Admininterface ( http://localhohost:8080/solr) anschauen und sehe dort u.a. Statistiken, kann aber auch Suchen absetzen.
Wie sichere ich dieses Interface mit einem Kennwort ab? Ich mag vermeiden, dass sich $unpreviligierte per Portforwarding das Interface zu sich holen und dort rumstöbern…
Schau mal hier: https://forge.typo3.org/projects/extens ... r-Security

Nicht sofort an den Kopf greifen, weil es sich nicht um die Kombination aus TYPO3 & Solr handelt und nicht Dovecot & Solr. Es ist vielmehr eine Beschreibung, wie man auf URL-Segmente matcht und diese mit einer Basic-Auth versieht.

Gruss syssi

Benutzeravatar
ThorstenS
Beiträge: 2875
Registriert: 24.04.2004 15:33:31

Re: [gelöst] dovecot-solr mit solr-jetty vs. solr-tomcat

Beitrag von ThorstenS » 25.02.2014 13:00:33

Danke dir, das führe ich mir in Ruhe zu Gemüte.

slu
Beiträge: 2145
Registriert: 23.02.2005 23:58:47

Re: [gelöst] dovecot-solr mit solr-jetty vs. solr-tomcat

Beitrag von slu » 26.02.2014 21:42:01

@ Thorsten,

wenn Du es hast würde ich mich über ein HowTo freuen, würde es bei mir nachziehen auch wenn ich keine SSH Gäste habe und man damit eigentlich nicht an 127.0.0.1:8080 ran kommt.
Gruß
slu

Das Server Reinheitsgebot:
Debian Bookworm, sonst nichts.

Stolzer Gewinner der Jessie Release Wette:
https://wiki.debianforum.de/Jessie_Release_Wette#SIEGER

Benutzeravatar
ThorstenS
Beiträge: 2875
Registriert: 24.04.2004 15:33:31

Re: [gelöst] dovecot-solr mit solr-jetty vs. solr-tomcat

Beitrag von ThorstenS » 27.02.2014 08:39:48

Klar, ist eben fertig geworden, der Link oben sagt alles wichtige.

Zuerst muss eine Rolle( role-solr-admin ) und ein Benutzer (solr-admin) in der Datei /etc/tomcat6/tomcat-users.xml angelegt werden:

Code: Alles auswählen

root@imap-server:/etc# git diff tomcat6/tomcat-users.xml
diff --git a/tomcat6/tomcat-users.xml b/tomcat6/tomcat-users.xml
index afa5a31..b329628 100644
--- a/tomcat6/tomcat-users.xml
+++ b/tomcat6/tomcat-users.xml
@@ -36,4 +36,7 @@
  <user username="both" password="tomcat" roles="tomcat,role1"/>
  <user username="role1" password="tomcat" roles="role1"/>
-->

+<!-- solr admin Absicherung-->  
+   <role rolename="role-solr-admin"/>
+   <user name="solr-admin" password="solr-admin-super-secret-password" roles="role-solr-admin"/>
 </tomcat-users>
Nachdem die Rolle und der Benutzer nun definiert sind, kann man in der /etc/solr/web.xml am Ende vor dem schließenden </web-app> der Anwendung mitteilen, dass der URL-Teil „/admin/*“ zu schützen ist:

Code: Alles auswählen

root@imap-server:/etc# git diff solr/web.xml
diff --git a/solr/web.xml b/solr/web.xml
index b709bda..3247f2b 100644
--- a/solr/web.xml
+++ b/solr/web.xml
@@ -150,4 +150,25 @@
     <welcome-file>index.html</welcome-file>
   </welcome-file-list>
 
+  <security-constraint>
+      <web-resource-collection>
+          <web-resource-name> 
+              Solr authenticated application
+          </web-resource-name>
+          <url-pattern>/admin/*</url-pattern>
+          <http-method>GET</http-method>
+          <http-method>POST</http-method>
+      </web-resource-collection>
+      <auth-constraint>
+          <role-name>role-solr-admin</role-name>
+      </auth-constraint>
+  </security-constraint>
+  <login-config>
+      <auth-method>BASIC</auth-method>
+      <realm-name>Basic Authentication</realm-name>
+  </login-config>
+  <security-role>
+      <description>Admin role</description>
+      <role-name>role-solr-admin</role-name>
+  </security-role>
 </web-app>
Das ist der gleiche Code wie unter https://forge.typo3.org/projects/extens ... r-Security beschrieben, nur habe ich
<url-pattern>/*</url-pattern> durch <url-pattern>/admin/*</url-pattern> ergänzt.

slu
Beiträge: 2145
Registriert: 23.02.2005 23:58:47

Re: [gelöst] dovecot-solr mit solr-jetty vs. solr-tomcat

Beitrag von slu » 27.02.2014 14:04:10

Vielen Dank :THX:
Gruß
slu

Das Server Reinheitsgebot:
Debian Bookworm, sonst nichts.

Stolzer Gewinner der Jessie Release Wette:
https://wiki.debianforum.de/Jessie_Release_Wette#SIEGER

Antworten