Date post: | 05-Dec-2014 |
Category: |
Technology |
Upload: | carl-nordenfelt |
View: | 435 times |
Download: | 1 times |
PRODUCTS • CONSULTING • APPLICATION MANAGEMENT • IT OPERATIONS • SUPPORT • TRAINING
Alfresco administration- best practices
Erfarenheter av 5 års fältstudier
130506 Carl [email protected]
PRODUCTS • CONSULTING • APPLICATION MANAGEMENT • IT OPERATIONS • SUPPORT • TRAINING
Projektplanering
Pilot, PoC eller “sprint 0”
Driftsättning
Förvaltning
PlattformArkitekturUse case
Agenda
JVM & gcBackup/restore
Loggning
SäkerhetLagring
Prestanda
ÖvervakningUppgradering
Underhåll
+ checklista och tool-tips!
PRODUCTS • CONSULTING • APPLICATION MANAGEMENT • IT OPERATIONS • SUPPORT • TRAINING
Arkitektur & plattform
DB Fillager Index
LagringTransparent för Alfresco
Alfresco repositoryKlustrat vid behov
Lastbalansering
Lastbalansering
Presentation Normalt Alfresco Share
PRODUCTS • CONSULTING • APPLICATION MANAGEMENT • IT OPERATIONS • SUPPORT • TRAINING
Arkitektur & plattform
DB Fillager Index
LagringTransparent för Alfresco
Alfresco repositoryKlustrat 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.urlalf_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
20122013 012013 022013 03
solr.backup.alfresco.remoteBackupLocation=${dir.root}/solrBackup/alfrescosolr.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 resurserGarantera 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önsterUndersö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ökningIdentifiera 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-connectionsdb.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.logcatalina.org.apache.juli.FileHandler.directory=/var/log/alfresco
4. Minnesinställningar för JVMJAVA_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/adminconsole/nodebrowser
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/activitiadmin
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
• KunskapKunskap om systemet gör det möjligt att ta rätt beslut och planera för framtiden.
• VerktygDet finns verktyg för (nästan) allt – använd dom!
• PlattformPlattformen är i grunden skalbar och öppen.