Managing and Monitoring TeamPage

45
Managing Teampage

description

Chris Nuzum, Traction Software. Traction User Group, Oct 15 2010, Newport RI. TUG 2010 Newport slides, agenda and more see www.TractionSoftware.com

Transcript of Managing and Monitoring TeamPage

Page 1: Managing and Monitoring TeamPage

Managing Teampage

Page 2: Managing and Monitoring TeamPage

2

Topics

• Process structure

• Non-plugin local server modifications

• Settings overview

• Setup interfaces

• Q&A

Page 3: Managing and Monitoring TeamPage

3

TeamPage — Processes

• 3 Java Proceses

• StartTraction wrapper process — java.exe — lower

process id

• Invokes Traction, monitors and proxies output, restarts

• Traction process — java.exe — higher process id

• JavaDB Network Server — javaw.exe

• Plus native Windows Service/Linux Daemon

Page 4: Managing and Monitoring TeamPage

4

Locking

• Only one server should ever run against a journal at a

time

• Otherwise journal file can be inconsistently

numbered, requiring manual repair

• Two safeguards

• Lock file — if present, server won’t start

• Removed by JVM on clean exit

• Socket — if bound, server won’t start

Page 5: Managing and Monitoring TeamPage

5

Windows Startup

• Automatic

• Windows Service — runs as

System

• Unlock Traction on Boot

• removes lockfile

• Traction

• runs StartTraction

wrapper

• runs Traction

• console output - traction.out.txt

• Manual

• Windows Application

• TractionApplication

• runs StartTraction

wrapper

• runs Traction

• console output - console

Page 6: Managing and Monitoring TeamPage

6

Unix Startup

• Automatic

• /etc/init.d/traction start

• TractionDaemon

• runs StartTraction

wrapper

• runs Traction

• console output - traction.out.txt

• Manual

• command line

• TractionApplication

• runs StartTraction

wrapper

• runs Traction

• console output - console

Page 7: Managing and Monitoring TeamPage

7

Shutdown

• Windows

• Stop service

• Stops StartTraction

• Traction listens for

heartbeat from StartTraction

• If no heartbeat for

specified period, exits

with restart code

• If no StartTraction,

restart = exit

• Unix

• /etc/init.d/traction stop

• kill -2 {Traction process ID}

• invokes clean shutdown

handler

• All, Preferred

• Shutdown Traction button in

Server Setup

Page 8: Managing and Monitoring TeamPage

8

Shutdown Process

• Finish current work, then halt thread

• Appending journal

• Reading mailbox

• Serving files

• In error state, work may be stuck

• Force shutdown via web page

• Last resort, force shutdown via operating system

• Manually clear lock file after ensuring processes gone

Page 9: Managing and Monitoring TeamPage

9

Local Mods

• Most configuration managed by TeamPage interfaces,

can be overridden or extend in plug-ins.

• Exceptions

• Adding support for new mimetypes — modify

mime.types

• Supporting new user-agents, modify

useragent.properties

• Re-apply modifications after upgrade

Page 10: Managing and Monitoring TeamPage

10

Settings Overview

Page 11: Managing and Monitoring TeamPage

11

Tour of Admin Interfaces

• Server Setup

• Project Setup

• Personal Setup

• Skin Setup

• Plug-in Options

Page 12: Managing and Monitoring TeamPage

TeamPage Monitoring & Debugging

Page 13: Managing and Monitoring TeamPage

13

Normal EKG

Page 14: Managing and Monitoring TeamPage

14

Flatlining

Page 15: Managing and Monitoring TeamPage

15

Support2478

Support 2478: I use FAST Search and my TeamPage server has suddenly become very slow or has reported OutOfMemory errors. How do I recover?

Page 16: Managing and Monitoring TeamPage

16

Walkthrough of Tools

• Console output - traction.out.txt

• Log files

• logs/debug.log

• logs/statistics.log

• graphing memory usage - Support668

• Thread manager

• kill -3 — Java thread+monitor dump

• JConsole — install JDK, run with -Dcom.sun.management.jmxremote

Page 17: Managing and Monitoring TeamPage

Backup & Availability Planning

Page 18: Managing and Monitoring TeamPage

18

• Considerations

• Recommendations

• Discussion - learn from each other

Page 19: Managing and Monitoring TeamPage

19

Considerations

• Back up FAQ is Doc19

• Entire installation, not just journal data

• Considerable time invested in server settings,

config files, don’t want to have to recreate

• Open files – Windows Volume Shadow Copy

• Time window

• Files can change during backup, require rebuild

on restore to ensure consistency

Page 20: Managing and Monitoring TeamPage

20

Recommendations

• VMWare snapshots address consistency issue, can be

run online, allow rollback, and can be mirrored remotely

• Recommend machine state as well as disks,

otherwise rebuild required on restore

• scheduled rsync

• Incremental remote mirror

• ZFS snapshots, export

• AWS EC2 snapshots

Page 21: Managing and Monitoring TeamPage

Traction Authentication & Authorization

Page 22: Managing and Monitoring TeamPage

22

Security Principals

• Identify users & groups

• traction:u:18, traction:g:24, ad:g:52

• Groups defined by principal, recursively

• traction:g:24 = { ad:g:52, traction:u:42 }

• ACLs defined over principals

• traction:g:18 allow publish own

• Each user has exactly one security principal

Page 23: Managing and Monitoring TeamPage

23

Local Users & Groups

• Stored in journal

• Cached in memory

Page 24: Managing and Monitoring TeamPage

24

External Users & Groups

• Defined, managed externally

• Active Directory, LDAP, and others supported

• Cached in Principal Cache

• Downloaded at startup, updated asynchronously

at defined interval

• Force update by clearing cache with

/type cachemanager

Page 25: Managing and Monitoring TeamPage

25

Customizable Queries

• User directory configuration defines how lookups

are done

• Depending on directory server, changing queries

can dramatically improve performance

Page 26: Managing and Monitoring TeamPage

26

Extensible Architecture

• Login Manager

• Determine credentials based on request

• Authenticator

• Determine whether credentials are valid

Page 27: Managing and Monitoring TeamPage

27

Hybrid Login Managers

• Handle different types of connections differently

• Dispatch based on skin, user-agent, URI path

• Realms — HTTP basic auth, login always required

• OpenRealms — HTTP basic auth, login optional

hybrid_realms=com.traction.admin.RealmsLoginManagerhybrid_realms_useragents=securerobot,attachmentsrobothybrid_realms_servlet_paths=/webdav,/db

hybrid_open_realms=com.traction.admin.OpenRealmsLoginManagerhybrid_open_realms_skins=rss,rss091,rss092,rss10,rss20,atom,icalhybrid_open_realms_useragents=rss,robot,calendar

Page 28: Managing and Monitoring TeamPage

28

Hybrid Authenticator

• Switches based on principal

• Handle both local Traction users and AD/LDAP

users

Page 29: Managing and Monitoring TeamPage

29

Simple Login Managers

• Cookies — Encrypted cookie sent to browser

• Can be encoded with IP address of client

• Realms — HTTP Basic

• Most secure over HTTPS

Page 30: Managing and Monitoring TeamPage

30

Single Sign-on

• LDAP X.509 Client Certificates

• HTTPS provides cert, determines principal

• Lookup user in LDAP, make sure cert matches

• NTLM

• After handshake, browser provides hash code

• Validate hash with AD server

Page 31: Managing and Monitoring TeamPage

31

Single Sign-on

• NTLMv2

• Via commercial library

• Emulates protocol Windows workstations use to

allow users to log in

• More secure, more robust

Page 32: Managing and Monitoring TeamPage

32

Federation

• NTLM RunAs authenticator for use with existing

Enterprise Search federators, e.g. Vivisimo

• Authenticate service account via NTLM, run as

user performing the search

Page 33: Managing and Monitoring TeamPage

Performance Tuning

Page 34: Managing and Monitoring TeamPage

34

Memory

• Garbage collection burns CPU

• Flushing caches requires reloading caches from

disk

• Run 64-bit

• 32-bit limited to ~1.5GB heap

• For best performance, heap should be less than

physical RAM

Page 35: Managing and Monitoring TeamPage

35

Caching in Traction

• Cache

• config/**, plugins/**/config/**

• Entry tokens

• Permissions

• Principals

• Users

• Group membership

Page 36: Managing and Monitoring TeamPage

36

Finding what’s slow on a page

• Enable timing debug

• View page source

Page 37: Managing and Monitoring TeamPage

37

Tuning Label Driven Sections

• Use label-based queries when searching/filtering

for labels

• :todo i(:todo and :r42)

Page 38: Managing and Monitoring TeamPage

38

Use a Smaller Default Timeslice

Page 39: Managing and Monitoring TeamPage

39

Turn off Project Counts

• Permission filtered, can be expensive to calculate

Page 40: Managing and Monitoring TeamPage

40

Hide WebDAV Sidebar

• Page doesn’t complete drawing until WebDAV

request complete

Page 41: Managing and Monitoring TeamPage

41

Disable WebDAV Auto Refresh

Page 42: Managing and Monitoring TeamPage

42

Offload JavaDB

• Run in a different process

• Run on a different computer

• Customer2050

Page 43: Managing and Monitoring TeamPage

43

Offload Metrics Reports

• Export entire JavaDB

• Run in a different instance

Page 44: Managing and Monitoring TeamPage

Making the Most of Metrics

Page 45: Managing and Monitoring TeamPage

45

Making the Most of Metrics

• Tour of metrics

• Hit counter

• Top articles

• Viewed by

• Browsing History

• Controlling who can access

detailed metrics reports

• Report controls

• Report details

• Exporting CSV

• Rebuilding indexes

• Q&A