şÝşÝߣ

şÝşÝߣShare a Scribd company logo
PRODUCTS • CONSULTING • APPLICATION MANAGEMENT • IT OPERATIONS • SUPPORT • TRAINING
Alfresco
administration
- best practices
Erfarenheter av 5 års fältstudier
130506 Carl Nordenfelt
calle@redpill-linpro.com
PRODUCTS • CONSULTING • APPLICATION MANAGEMENT • IT OPERATIONS • SUPPORT • TRAINING
Projektplanering
Pilot, PoC eller
“sprint 0”
Driftsättning
Förvaltning
Plattform
Arkitektur
Use case
Agenda
JVM & gc
Backup/restore
Loggning
Säkerhet
Lagring
Prestanda
Ă–vervakning
Uppgradering
UnderhĂĄll
+ checklista och tool-tips!
PRODUCTS • CONSULTING • APPLICATION MANAGEMENT • IT OPERATIONS • SUPPORT • TRAINING
Arkitektur & plattform
DB Fillager Index
Lagring
Transparent
för Alfresco
Alfresco repository
Klustrat vid behov
Lastbalansering
Lastbalansering
Presentation
Normalt Alfresco Share
PRODUCTS • CONSULTING • APPLICATION MANAGEMENT • IT OPERATIONS • SUPPORT • TRAINING
Arkitektur & plattform
DB Fillager Index
Lagring
Transparent
för Alfresco
Alfresco repository
Klustrat vid behov
Lastbalansering
Lastbalansering
Presentation
Normalt Alfresco Share
âś” Verifiera plattformen: http://www.alfresco.com/services/subscription/supported-
platforms
✔ Utnyttja möjligheten att skikta lösningen i flera lager och
separera delar (sökmotor, transformationer) vid behov.
✔ Börja i liten skala och väx efter behov. Stäng av de tjänster
som inte används (cifs, ftp, nfs, imap, smtp...).
âś” Use case pĂĄverkar arkitektur och konfiguration! Estimera
- Antal noder i systemet
- Typ av innehĂĄll (office, media, text...)
- Antal användare (aktiva/passiva)
- Fördelning mellan läs- och skrivtransaktioner
- Systemintegrationer (typ och frekvens)
PRODUCTS • CONSULTING • APPLICATION MANAGEMENT • IT OPERATIONS • SUPPORT • TRAINING
Generella rekommendationer för extern åtkomst
• Använd alltid en proxy (httpd, HAProxy, nginx etc).
• Använd alltid ssl (https).
• Exponera aldrig Alfresco repository (öppna specifika
portar vid behov).
• Policy för lösenord?
• Utnyttja rättighetsstyrningen i Alfresco och utbilda
användarna!
• Medvetenhet om vad som exponeras i dokument och
metadata.
Säkerhet
PRODUCTS • CONSULTING • APPLICATION MANAGEMENT • IT OPERATIONS • SUPPORT • TRAINING
“kom ihåg lista”
• Ändra standardlösenord (admin, databas, jmx).
• Generera egna certifikat (använd keytool) för Solr.
• Skapa en dedikerad användare för Alfresco (använd inte “root”)
• Begränsa rättigheterna på contentstore, konfig, loggar.
• Kontrollera öppna portar: sudo netstat ­pletn | grep ­i java
• Inaktivera “guest”-användaren.
• Kontrollera senaste patchar för applikationsserver och databas.
• Använd en säker autenticering (alltså inte ldap utan kryptering).
Mer detaljer: http://www.youtube.com/watch?v=kGrcXrpLz_M och
http://code.google.com/p/alfresco-security-toolkit
Säkerhet - konfiguration
PRODUCTS • CONSULTING • APPLICATION MANAGEMENT • IT OPERATIONS • SUPPORT • TRAINING
I <3 my contentstore
dir.root
/contentstore
/contenstore.deleted
/solr
db.url
alf_node →
alf_content_data →
alf_content_url
?
Vad händer när innehåll skapas,
förändras och raderas?
Varför är detta relevant?
PRODUCTS • CONSULTING • APPLICATION MANAGEMENT • IT OPERATIONS • SUPPORT • TRAINING
The life of a document...
1 Dokumentet skapas
â—Ź Filen lagras i contentstore
â—Ź Ny nod skapas i db
â—Ź Index skapas
contentstore/2013/4/30/9/27/1a75a2d9-1127-45aa-a88c-3beb867fba51.bin
alf_node(id) →
alf_content_data(content_url_id) →
alf_content_url(content_url)
alf_node(store_id) = 5 (archive://SpacesStore)2 Dokumentet raderas
â—Ź Samma fil i contentstore
â—Ź Markeras i DB
â—Ź Flyttas till nytt index
3 Papperskorgen töms
â—Ź Samma fil i contentstore
â—Ź Markeras i DB
â—Ź Raderas frĂĄn index
Schemalagt jobb contentStoreCleaner flyttar filen till
contentstore.deleted och raderar referenser till
alf_content_url
Schemalagt jobb nodeServiceCleanup raderar noden
frĂĄn alf_node
4 Permanent radering
â—Ź Filen flyttas till
contentstore.deleted
â—Ź Raderas frĂĄn DB
14 dagar
30 dagar
sys:pendingDelete aspekt kopplas till
noden, metadata och associationer raderas
Hoppa över hela steg 3 mha cm:temporary!
PRODUCTS • CONSULTING • APPLICATION MANAGEMENT • IT OPERATIONS • SUPPORT • TRAINING
Slutsatser
Filer i contentstore förändras inte
• Varje ny version är en ny fil → Behöver man spara alla versioner?
• Vid restore är det bättre att lägga in för mycket än för lite filer i
contentstore.
Filer i contentstore.deleted raderas aldrig automatiskt!
• Utrymme på disken måste frigöras manuellt (vid behov).
Markörer i databasen:
• Papperskorgen är bara en flagga, filer går att återskapa även efter att
papperskorgen töms (med lite sql).
• Schemalagda jobb hanterar slutgiltig radering från Alfresco.
PRODUCTS • CONSULTING • APPLICATION MANAGEMENT • IT OPERATIONS • SUPPORT • TRAINING
Konfiguration &
administration
• Backup & restore
• JMX – konfigurera Alfresco online
• Övervakning
PRODUCTS • CONSULTING • APPLICATION MANAGEMENT • IT OPERATIONS • SUPPORT • TRAINING
Backup och restore
2010
2011
DB
Solr index
2012
2013 01
2013 02
2013 03
solr.backup.alfresco.remoteBackupLocation=${dir.root}/solrBackup/alfresco
solr.backup.alfresco.cronExpression=0 0 2 * * ?
solr.backup.alfresco.numberToKeep=3
1
2
3
Tack vare strukturen i contentstore
är det enkelt att göra inkrementella
backuper = Index backup + DB +
inkrement av contentstore
Restore: Omvänd process
(index.recoveryMode=AUTO behövs
ej för Solr).
PRODUCTS • CONSULTING • APPLICATION MANAGEMENT • IT OPERATIONS • SUPPORT • TRAINING
JMX
• Enkel övervakning (manuell)
• Enkel felsökning (trådar och minne)
• Konfigurera Alfresco online och hantera schemalagda jobb med hjälp
av Mbeans
• Ändra log4j-nivåer online
• Tänk på att förändringar i JMX persisteras (i DB) och överlagrar
alfresco-global.properties. Använd “operations   revert()→ ” för att
ta bort ändringar i JMX.
Inkluderat i JDK eller ladda ner frĂĄn https://visualvm.java.net/
PRODUCTS • CONSULTING • APPLICATION MANAGEMENT • IT OPERATIONS • SUPPORT • TRAINING
Ă–vervakning och monitorering
Varför?
• Förbättra tillförlitlighet (proaktivitet)
• Optimera hårdvara (minska kostnader)
• Optimera konfiguration (JVM, DB, nätverk, diskar, Tomcat, Alfresco)
• Analysera användarmönster
• Felsökning
PRODUCTS • CONSULTING • APPLICATION MANAGEMENT • IT OPERATIONS • SUPPORT • TRAINING
Alternativ
1. Ă–vervakning av resurser
Garantera till-gänglighet: Upptäck
resursproblem i tid. Cpu, i/o, nätverk,
JVM etc.
• Icinga http://icinga.org/
• Munin http://munin-monitoring.org/
• Hyperic https://addons.alfresco.com/addons/alfresco-
hyperic-plugin
• VisualVM (included in JDK)
New Relic http://newrelic.com/
2. Analys av användar-
mönster
Undersök hur systemet används
för att optimera funktioner eller
hitta misstänkta användarmönster.
• Google Analytics http://code.google.com/p/share-
extras/wiki/GoogleAnalyticsTracking
• Piwik http://piwik.org
3. Prestandaoptimering
och felsökning
Identifiera flaskhalsar dĂĄ
prestandaproblem uppstĂĄr. Hitta
minnes-läckor.
• JavaMelody http://code.google.com/p/javamelody/
• VisualVM (included in JDK)
• New Relic http://newrelic.com/
• tcpdump (Wireshark) http://www.tcpdump.org/
• JProfiler http://www.ej-
technologies.com/products/jprofiler/overview.html
PRODUCTS • CONSULTING • APPLICATION MANAGEMENT • IT OPERATIONS • SUPPORT • TRAINING
Exempel: Munin
Exempel
• Bevaka resurser på servern
• Bevaka JMX-attribut i Tomcat
PRODUCTS • CONSULTING • APPLICATION MANAGEMENT • IT OPERATIONS • SUPPORT • TRAINING
Exempel: JavaMelody
Exempel
• Statistik på http request och sql-frågor
• Sessioner och request över tid
• https://tpeelen.wordpress.com/2012/12/12/alfresco-monitoring-with-
javamelody/
PRODUCTS • CONSULTING • APPLICATION MANAGEMENT • IT OPERATIONS • SUPPORT • TRAINING
Checklista: 8 saker jag
glömmer
1. Synka Tomcat trĂĄdar och DB-connections
db.pool.max > tomcat threads + 75
2. Linux: Ă–ka antal tillĂĄtna file-handles!
ulimit ­n
3. Konfiguera log4j och JULI.
log4j.appender.File.File=/var/log/alfresco/alfresco.log
catalina.org.apache.juli.FileHandler.directory=/var/log/alfresco
4. Minnesinställningar för JVM
JAVA_OPTS="­XX:MaxPermSize=512m –Xss128k"
5. Cache för Alfresco och Solr, t ex solr.pathCache.size och “Ehcache
custom”.
6. Slå på “production mode” i Share/SpringSurf.
7. Dubbelkolla att inget antivirus körs på dir.root
8. Ska användare från LDAP/AD raderas?
synchronization.allowDeletions=false
PRODUCTS • CONSULTING • APPLICATION MANAGEMENT • IT OPERATIONS • SUPPORT • TRAINING
Tips: 6 inbyggda verktyg för
Alfresco admin
1. NodeBrowsern är din vän! /share/page/console/admin­
console/node­browser
2. WebScript index, bĂĄde pĂĄ repo och share:
/alfresco/service/index
3. Detaljerad kontroll över dina index: /solr/alfresco/admin samt
diverse rapporter /solr/admin/cores?action=STATUS&wt=xml
4. Administrera workflows: /alfresco/activiti­admin
5. Server-side JavaScript debugger, aktiveras frĂĄn
/alfresco/service/index
6. Analysera komponenterna pĂĄ en surf-sida, aktiveras frĂĄn
/alfresco/service/index
PRODUCTS • CONSULTING • APPLICATION MANAGEMENT • IT OPERATIONS • SUPPORT • TRAINING
Avslutning
• Kunskap
Kunskap om systemet gör det möjligt att ta rätt beslut och planera
för framtiden.
• Verktyg
Det finns verktyg för (nästan) allt – använd dom!
• Plattform
Plattformen är i grunden skalbar och öppen.

More Related Content

Alfresco administration stockholm meetup

  • 1. PRODUCTS • CONSULTING • APPLICATION MANAGEMENT • IT OPERATIONS • SUPPORT • TRAINING Alfresco administration - best practices Erfarenheter av 5 ĂĄrs fältstudier 130506 Carl Nordenfelt calle@redpill-linpro.com
  • 2. PRODUCTS • CONSULTING • APPLICATION MANAGEMENT • IT OPERATIONS • SUPPORT • TRAINING Projektplanering Pilot, PoC eller “sprint 0” Driftsättning Förvaltning Plattform Arkitektur Use case Agenda JVM & gc Backup/restore Loggning Säkerhet Lagring Prestanda Ă–vervakning Uppgradering UnderhĂĄll + checklista och tool-tips!
  • 3. PRODUCTS • CONSULTING • APPLICATION MANAGEMENT • IT OPERATIONS • SUPPORT • TRAINING Arkitektur & plattform DB Fillager Index Lagring Transparent för Alfresco Alfresco repository Klustrat vid behov Lastbalansering Lastbalansering Presentation Normalt Alfresco Share
  • 4. PRODUCTS • CONSULTING • APPLICATION MANAGEMENT • IT OPERATIONS • SUPPORT • TRAINING Arkitektur & plattform DB Fillager Index Lagring Transparent för Alfresco Alfresco repository Klustrat vid behov Lastbalansering Lastbalansering Presentation Normalt Alfresco Share âś” Verifiera plattformen: http://www.alfresco.com/services/subscription/supported- platforms âś” Utnyttja möjligheten att skikta lösningen i flera lager och separera delar (sökmotor, transformationer) vid behov. âś” Börja i liten skala och väx efter behov. Stäng av de tjänster som inte används (cifs, ftp, nfs, imap, smtp...). âś” Use case pĂĄverkar arkitektur och konfiguration! Estimera - Antal noder i systemet - Typ av innehĂĄll (office, media, text...) - Antal användare (aktiva/passiva) - Fördelning mellan läs- och skrivtransaktioner - Systemintegrationer (typ och frekvens)
  • 5. PRODUCTS • CONSULTING • APPLICATION MANAGEMENT • IT OPERATIONS • SUPPORT • TRAINING Generella rekommendationer för extern ĂĄtkomst • Använd alltid en proxy (httpd, HAProxy, nginx etc). • Använd alltid ssl (https). • Exponera aldrig Alfresco repository (öppna specifika portar vid behov). • Policy för lösenord? • Utnyttja rättighetsstyrningen i Alfresco och utbilda användarna! • Medvetenhet om vad som exponeras i dokument och metadata. Säkerhet
  • 6. PRODUCTS • CONSULTING • APPLICATION MANAGEMENT • IT OPERATIONS • SUPPORT • TRAINING “kom ihĂĄg lista” • Ă„ndra standardlösenord (admin, databas, jmx). • Generera egna certifikat (använd keytool) för Solr. • Skapa en dedikerad användare för Alfresco (använd inte “root”) • Begränsa rättigheterna pĂĄ contentstore, konfig, loggar. • Kontrollera öppna portar: sudo netstat ­pletn | grep ­i java • Inaktivera “guest”-användaren. • Kontrollera senaste patchar för applikationsserver och databas. • Använd en säker autenticering (alltsĂĄ inte ldap utan kryptering). Mer detaljer: http://www.youtube.com/watch?v=kGrcXrpLz_M och http://code.google.com/p/alfresco-security-toolkit Säkerhet - konfiguration
  • 7. PRODUCTS • CONSULTING • APPLICATION MANAGEMENT • IT OPERATIONS • SUPPORT • TRAINING I <3 my contentstore dir.root /contentstore /contenstore.deleted /solr db.url alf_node → alf_content_data → alf_content_url ? Vad händer när innehĂĄll skapas, förändras och raderas? Varför är detta relevant?
  • 8. PRODUCTS • CONSULTING • APPLICATION MANAGEMENT • IT OPERATIONS • SUPPORT • TRAINING The life of a document... 1 Dokumentet skapas â—Ź Filen lagras i contentstore â—Ź Ny nod skapas i db â—Ź Index skapas contentstore/2013/4/30/9/27/1a75a2d9-1127-45aa-a88c-3beb867fba51.bin alf_node(id) → alf_content_data(content_url_id) → alf_content_url(content_url) alf_node(store_id) = 5 (archive://SpacesStore)2 Dokumentet raderas â—Ź Samma fil i contentstore â—Ź Markeras i DB â—Ź Flyttas till nytt index 3 Papperskorgen töms â—Ź Samma fil i contentstore â—Ź Markeras i DB â—Ź Raderas frĂĄn index Schemalagt jobb contentStoreCleaner flyttar filen till contentstore.deleted och raderar referenser till alf_content_url Schemalagt jobb nodeServiceCleanup raderar noden frĂĄn alf_node 4 Permanent radering â—Ź Filen flyttas till contentstore.deleted â—Ź Raderas frĂĄn DB 14 dagar 30 dagar sys:pendingDelete aspekt kopplas till noden, metadata och associationer raderas Hoppa över hela steg 3 mha cm:temporary!
  • 9. PRODUCTS • CONSULTING • APPLICATION MANAGEMENT • IT OPERATIONS • SUPPORT • TRAINING Slutsatser Filer i contentstore förändras inte • Varje ny version är en ny fil → Behöver man spara alla versioner? • Vid restore är det bättre att lägga in för mycket än för lite filer i contentstore. Filer i contentstore.deleted raderas aldrig automatiskt! • Utrymme pĂĄ disken mĂĄste frigöras manuellt (vid behov). Markörer i databasen: • Papperskorgen är bara en flagga, filer gĂĄr att ĂĄterskapa även efter att papperskorgen töms (med lite sql). • Schemalagda jobb hanterar slutgiltig radering frĂĄn Alfresco.
  • 10. PRODUCTS • CONSULTING • APPLICATION MANAGEMENT • IT OPERATIONS • SUPPORT • TRAINING Konfiguration & administration • Backup & restore • JMX – konfigurera Alfresco online • Ă–vervakning
  • 11. PRODUCTS • CONSULTING • APPLICATION MANAGEMENT • IT OPERATIONS • SUPPORT • TRAINING Backup och restore 2010 2011 DB Solr index 2012 2013 01 2013 02 2013 03 solr.backup.alfresco.remoteBackupLocation=${dir.root}/solrBackup/alfresco solr.backup.alfresco.cronExpression=0 0 2 * * ? solr.backup.alfresco.numberToKeep=3 1 2 3 Tack vare strukturen i contentstore är det enkelt att göra inkrementella backuper = Index backup + DB + inkrement av contentstore Restore: Omvänd process (index.recoveryMode=AUTO behövs ej för Solr).
  • 12. PRODUCTS • CONSULTING • APPLICATION MANAGEMENT • IT OPERATIONS • SUPPORT • TRAINING JMX • Enkel övervakning (manuell) • Enkel felsökning (trĂĄdar och minne) • Konfigurera Alfresco online och hantera schemalagda jobb med hjälp av Mbeans • Ă„ndra log4j-nivĂĄer online • Tänk pĂĄ att förändringar i JMX persisteras (i DB) och överlagrar alfresco-global.properties. Använd “operations   revert()→ ” för att ta bort ändringar i JMX. Inkluderat i JDK eller ladda ner frĂĄn https://visualvm.java.net/
  • 13. PRODUCTS • CONSULTING • APPLICATION MANAGEMENT • IT OPERATIONS • SUPPORT • TRAINING Ă–vervakning och monitorering Varför? • Förbättra tillförlitlighet (proaktivitet) • Optimera hĂĄrdvara (minska kostnader) • Optimera konfiguration (JVM, DB, nätverk, diskar, Tomcat, Alfresco) • Analysera användarmönster • Felsökning
  • 14. PRODUCTS • CONSULTING • APPLICATION MANAGEMENT • IT OPERATIONS • SUPPORT • TRAINING Alternativ 1. Ă–vervakning av resurser Garantera till-gänglighet: Upptäck resursproblem i tid. Cpu, i/o, nätverk, JVM etc. • Icinga http://icinga.org/ • Munin http://munin-monitoring.org/ • Hyperic https://addons.alfresco.com/addons/alfresco- hyperic-plugin • VisualVM (included in JDK) New Relic http://newrelic.com/ 2. Analys av användar- mönster Undersök hur systemet används för att optimera funktioner eller hitta misstänkta användarmönster. • Google Analytics http://code.google.com/p/share- extras/wiki/GoogleAnalyticsTracking • Piwik http://piwik.org 3. Prestandaoptimering och felsökning Identifiera flaskhalsar dĂĄ prestandaproblem uppstĂĄr. Hitta minnes-läckor. • JavaMelody http://code.google.com/p/javamelody/ • VisualVM (included in JDK) • New Relic http://newrelic.com/ • tcpdump (Wireshark) http://www.tcpdump.org/ • JProfiler http://www.ej- technologies.com/products/jprofiler/overview.html
  • 15. PRODUCTS • CONSULTING • APPLICATION MANAGEMENT • IT OPERATIONS • SUPPORT • TRAINING Exempel: Munin Exempel • Bevaka resurser pĂĄ servern • Bevaka JMX-attribut i Tomcat
  • 16. PRODUCTS • CONSULTING • APPLICATION MANAGEMENT • IT OPERATIONS • SUPPORT • TRAINING Exempel: JavaMelody Exempel • Statistik pĂĄ http request och sql-frĂĄgor • Sessioner och request över tid • https://tpeelen.wordpress.com/2012/12/12/alfresco-monitoring-with- javamelody/
  • 17. PRODUCTS • CONSULTING • APPLICATION MANAGEMENT • IT OPERATIONS • SUPPORT • TRAINING Checklista: 8 saker jag glömmer 1. Synka Tomcat trĂĄdar och DB-connections db.pool.max > tomcat threads + 75 2. Linux: Ă–ka antal tillĂĄtna file-handles! ulimit ­n 3. Konfiguera log4j och JULI. log4j.appender.File.File=/var/log/alfresco/alfresco.log catalina.org.apache.juli.FileHandler.directory=/var/log/alfresco 4. Minnesinställningar för JVM JAVA_OPTS="­XX:MaxPermSize=512m –Xss128k" 5. Cache för Alfresco och Solr, t ex solr.pathCache.size och “Ehcache custom”. 6. SlĂĄ pĂĄ “production mode” i Share/SpringSurf. 7. Dubbelkolla att inget antivirus körs pĂĄ dir.root 8. Ska användare frĂĄn LDAP/AD raderas? synchronization.allowDeletions=false
  • 18. PRODUCTS • CONSULTING • APPLICATION MANAGEMENT • IT OPERATIONS • SUPPORT • TRAINING Tips: 6 inbyggda verktyg för Alfresco admin 1. NodeBrowsern är din vän! /share/page/console/admin­ console/node­browser 2. WebScript index, bĂĄde pĂĄ repo och share: /alfresco/service/index 3. Detaljerad kontroll över dina index: /solr/alfresco/admin samt diverse rapporter /solr/admin/cores?action=STATUS&wt=xml 4. Administrera workflows: /alfresco/activiti­admin 5. Server-side JavaScript debugger, aktiveras frĂĄn /alfresco/service/index 6. Analysera komponenterna pĂĄ en surf-sida, aktiveras frĂĄn /alfresco/service/index
  • 19. PRODUCTS • CONSULTING • APPLICATION MANAGEMENT • IT OPERATIONS • SUPPORT • TRAINING Avslutning • Kunskap Kunskap om systemet gör det möjligt att ta rätt beslut och planera för framtiden. • Verktyg Det finns verktyg för (nästan) allt – använd dom! • Plattform Plattformen är i grunden skalbar och öppen.