## Sawmill Analytics as the agent of the copyright holder grants you ## the user of Sawmill software a perpetual non-transferable license ## to use these language files in combination with a licensed copy of ## Sawmill software. The full end-user license grant for these ## translation files can be viewed here. Any person wishing to copy ## these language files for onward selling must contact ## Sawmill Analytics below for terms and pricing etc. This statement ## and the copyright notice below must remain as placed and remain visible. ## Any violation of this condition will result in the immediate loss ## of your license to use these translation files. ## ## ©2012 HAAGE&PARTNER Computer GmbH, Germany ## Author: Markus Nerding ## http://www.haage-partner.de ## http://www.sawmill-analytics.de lang_options = { command_line = { action = { label = "Aktion" short_description = "Die Befehlszeilen-Aktion, die ausgeführt wird." long_description = "This specifies the command-line action to perform with the specified profile. The HTML interface takes care of setting this option for you as necessary, but you will need to set it manually when using the command line interface. Possible modes are:

Plug-in Actions

The following actions are also available, and are defined through plug-ins in the \"actions\" $lang_stats.directory of LogAnalysisInfo.

" } # action log_analysis_info_directory = { label = "LogAnalysisInfo-$lang_stats.directory-Pfad" short_description = "Ein $lang_stats.directory, in dem $PRODUCT_NAME Profile und andere Informationen speichert" long_description = "This specifies a local $lang_stats.directory where $PRODUCT_NAME can store profiles, databases, preferences, and other information. This $lang_stats.directory must exist and be writable by $PRODUCT_NAME, or must be in a $lang_stats.directory which is writable by $PRODUCT_NAME (so $PRODUCT_NAME can create it). If this option is empty, $PRODUCT_NAME assumes that the $lang_stats.directory is named LogAnalysisInfo, and is found in the same $lang_stats.directory as $PRODUCT_NAME. If a file named LogAnalysisInfoDirLoc exists in the same $lang_stats.directory as $PRODUCT_NAME, the contents of that file are used as the pathname of this $lang_stats.directory, and this option is ignored. If the environment variable LOGANALYSISINFODIR is set, its value is used instead, and this option is ignored." } # log_analysis_info_directory build_database = { label = "Datenbank erstellen" } # build_database export_csv_table = { label = "CSV-Tabelle exportieren" } # export_csv_table display_page = { label = "Seite anzeigen" short_description = "Die Interface-Seite, die angezeigt wird" long_description = "Dies sagt $PRODUCT_NAME, welche Seiten im HTML-Interface angezeigt werden. Dies wird intern benutzt, um Seiten der Benutzerschnittstelle an den Browser zu liefern." } # display_page date_filter = { label = "Datumsfilter" short_description = "Der Datumsfilter wird bei der Erstellung von Reports verwendet." long_description = "This specifies the date filter to use when generating a report, it filters the report for the given date. See {=docs_chapter_link('date_filter')=} for more details." } # date_filter date_breakdown = { label = "Datumsaufschlüsselung" short_description = "Zoomt in das Datum, dass angegeben wird in \"$lang_options.command_line.date_filter.label\"" long_description = "This option is used in combination with the \"$lang_options.command_line.date_filter.label\". If the option is specified then the generated report will be zoomed to the date which is specified in \"$lang_options.command_line.date_filter.label\"." } # date_breakdown sql_query = { label = "SQL-Abfrage" short_description = "Die SQL-Abfrage, die ablaufen soll." long_description = "This option specifies the SQL query to run. It is used together with \"-a execute_sql_query\" (see {=docs_option_link('a')=}) to run a SQL query." } # sql_query resolve_sql_itemnums = { label = "SQL-Itemnums auflösen" short_description = "This specifies whether to resolve SQL itemnums when displaying the results of a command-line SQL query" long_description = "This option specifies whether to resolve itemnums when displaying a command-line SQL query result. This is used together with \"-a execute_sql_query\" (see {=docs_option_link('a')=}). If this option is true, itemnums are resolved, and the string values are displayed on console. If this option is false, itemnums are not resolved, and the raw itemnums are displayed on console." } # resolve_sql_itemnums parsing_server_hostname = { label = "Server-Hostname wird geparst..." short_description = "Dies ist der Hostname, mit dem verbunden wird, wenn er als Parsing-Server läuft" long_description = `This option specifies the hostname or IP address to bind to, when running as a parsing server. This is used together with "-a start_parsing_server\" (see {=docs_option_link('a')=}); when $PRODUCT_NAME is started with that -a option, it will bind to this IP and the port specified by {=docs_option_link('psp')=}, to listen for parsing server connections. See {=docs_chapter_link('distributed_parsing')=}.` } # parsing_server_hostname parsing_server_port = { label = "Parsing server port" short_description = "This the port to bind to, when running as a parsing server" long_description = `This option specifies the port to bind to, when running as a parsing server. This is used together with "-a start_parsing_server\" (see {=docs_option_link('a')=}); when $PRODUCT_NAME is started with that -a option, it will bind to port and the IP specified by {=docs_option_link('psh')=}, to listen for parsing server connections. See {=docs_chapter_link('distributed_parsing')=}.` } # parsing_server_port filters = { label = "Report Filters" short_description = "The filters to use when generating a report" long_description = "

This specifies the filters to use when generating a report; i.e., it filters out all data not matching this expression, so only part of the data is reported.

The value of this option is an expression using a subset of the {=docs_chapter_link('salang')=} syntax. View report filters (ToDo, add report filters link).

" } # filters update_to_version = { label = "Update to version" short_description = "The version to update to, using web update" long_description = "

This specifies the version number to update to, using the web update feature. This feature is still experimental. When used in conjunction with -a ui, this provides a command-line method of updating an existing $PRODUCT_NAME installation to a newer version.

" } # update_to_version generate_html_to_directory = { label = "Generate HTML report files to $lang_stats.directory" short_description = "Generate HTML report files into a $lang_stats.directory" long_description = "This option is used when {=docs_option_link('a')=} is generate_report_files or generate_all_report_files (in command line usage). $PRODUCT_NAME generates statistics pages into this $(lang_stats.directory). This option determines what $lang_stats.directory the files are generated in." } # generate_html_to_directory generate_pdf_friendly_files = { label = "Generate PDF friendly files" short_description = "Generate HTML report files in a PDF friendly format" long_description = "This option is used when {=docs_option_link('a')=} is generate_report_files or generate_all_report_files (in command line usage). $PRODUCT_NAME generates statistics pages in a PDF friendly format by omitting the frameset, adding a table of contents page and by modifying specific style parameters." } # generate_pdf_friendly_files generate_report = { label = "Generate report" short_description = "Generate a report" long_description = "This generates a report, given the report ID. This is used internally to handle the generation of HTML reports." } # generate_report generate_all_report_files = { label = "Generate all report files" } # generate_all_report_files generate_report_files = { label = "Generate report files" } # generate_report_files master_process_id = { label = "Master process ID" short_description = "Process ID of the master web server thread (used internally)" long_description = "This is the process ID (pid) of the main web server process. This is used internally to recognize when the main process exits, so the subordinate process knows to exit too." } # master_process_id merge_database_directory = { label = "Merge database directory" short_description = "Directory of database to merge into this one" long_description = "This specifies the database directory for a database to merge into the current database. This is used together with \"-a md\" to add the contents of a second database to the current database. The second database must have the exact same structure as the first-- the easiest way to ensure that is to use the same profile file to build both." } # merge_database_directory directory = { label = "Verzeichnis" short_description = "Verzeichnis für Datenbank-Import und Export" long_description = "This specifies the directory which holds a database export. It is used when exporting to specify the destination of the export, and when importing to specify the source of the import." } # directory destination_directory = { label = "Ziel-Verzeichnis" short_description = "Verzeichnis, in dem importierte Datenbanken abgelegt werden" long_description = "Hiermit wird das Ziel-Verzeichnis für die Datenbankkonvertierung (Version 7 nach 8) festgelegt." } # destination_directory password = { label = "Statistik-Kennwort" short_description = "Dieses Kennwort ist erforderlich um die Statistik eines Profuiels ansehen zu können; wird an die Befehlszeile weitergegeben" long_description = "This option lets you use a direct URL to your statistics even if they are password-protected. Just include this option in the URL (clp+password) and $PRODUCT_NAME will treat it as if you had entered the password in the prompt field, and will bypass the prompt field and take you to the statistics." } # password profile = { label = "Verwendetes Profil" short_description = "Der Name des Profils, das für diesen Befehl verwendet werden soll." long_description = "

This specifies a profile which is to be used for the current command-line command. This is typically the first option on any command line that deals with a particular profile, e.g., you might use '-p myconfig -a bd' to rebuild a database for profile myconfig. More generally, this can be used in conjunction with {=docs_option_link('a')=} and other options to build, update or expire databases from the command line, or to generate HTML files. In CGI or web server mode, this is used internally to manage profiles, and should generally not be changed.

In addition to listing a single profile name explicitly, you can also use wildcards for this option, to perform the action for multiple profiles, one after another. To do this use pattern: followed by a wildcard expression, as the value of this (-p) option. For instance, this:

  sawmill -p \"pattern:xyz*\" -a bd

will rebuild the databases of all profiles whose internal names (not labels) start with xyz. You can get a list of all internal names using the \"-a lp\" command line option.

If this option is a full pathname of an existing file, that file is read as a profile file; otherwise, $PRODUCT_NAME treats it as the name of a profile in the profiles sub$lang_stats.directory of the LogAnalysisInfo $(lang_stats.directory). If that doesn't exist either, $PRODUCT_NAME scans all profiles in that directory to see if the label of any profile matches the specified value, and uses that profile if it matches. See {=docs_chapter_link('configfiles')=}.

" } # profile remove_database_data = { label = "Datenbankdaten entfernen" } # remove_database_data report_name = { label = "Reportname" short_description = "Der Name des Reports, der erstellt wird" long_description = "This specifies the name of a report to generate. This is used as a parameter in various command-line actions, including export_csv_table, email_report, and generate_report_files (see {=docs_option_link('a')=})." } # report_name language = { label = "Sprache" short_description = "Die Sprache für die Reporterstellung" long_description = "This specifies the language to use to generate the report, e.g., english. Available languages the names of the subdirectories of the languages $lang_stats.directory of the LogAnalysisInfo $lang_stats.directory." } # language field_name = { label = "Feldname" short_description = "Der Name eines Datenbankfelds" long_description = "This specifies the name of a database field. It is used in a variety of command-line contexts where a database field name is required, including print_values, print_subitems, and print_items (see {=docs_option_link('a')=})." } # field_name cross_reference_table = { label = "Crossreference-Tabelle" short_description = "Die Crossreferenz-Tabellennummer" long_description = "This specifies a cross-reference table number, or \"all\" for all cross-reference tables. It is used in a variety of command-line contexts where a cross-reference table is specified, including update_cross_reference_table (see {=docs_option_link('a')=})." } # field_name force_rebuild = { label = "Neuaufbau erzwingen" short_description = "Ob ein Neuaufbau erzwungen wird" long_description = "This option is used on the command line in conjunction with the update_cross_reference_table action (see {=docs_option_link('a')=}). When the value of this option is true, the table is rebuild from scratch; when it is false, it is updated incrementally from whatever is new in the database since last update." } # force_rebuild send_report_by_email = { label = "Report per Mail versenden" } # send_report_by_email session_id = { label = "Session-ID" short_description = "Interne Option die zum Verfolgen von Sessions im grafischen Interface verwendet wird" long_description = "Dies ist eine Interne Option, die zum Verfolgen von Sessions im grafischen Interface verwendet wird." } # session_id verbose = { label = "Befehlszeilen-Ausgabetyp" short_description = "Die Typen der Befehlszeilenausgabe, die erstellt werden" long_description = "

This controls the types of debugging output generated during a command-line action. This option is a sequence of letters, each representing a particular type of command-line output. If the letter corresponding to a type is present in the sequence, that type of output will be generated; if it is not present, that type of output will not be generated. The types, and their corresponding letters, are:

For instance, a value of ew will show only error messages and basic web server output. A value of \"*\" will show all possible output.

In CGI mode or web server mode, the output will be sent to a file in the Output $lang_stats.directory of the LogAnalysisInfo $lang_stats.directory; the file will be named Output-profilename, where profilename is the name of the profile. In command line mode (on UNIX and Windows), the output will be sent to the standard output stream.

" } # verbose web_server = { label = "Webserver starten" short_description = "Diese Option legt fest, ob $PRODUCT_NAME den eingebauten Webserver beim Start startet (ob es im Webservermodus laufen soll oder nicht)" long_description = "This controls whether $PRODUCT_NAME starts its built-in web server. When this option is checked (true), $PRODUCT_NAME starts a web server on the IP address specified by {=docs_option_link('sh')=}, and port specified by {=docs_option_link('wsp')=}, unless it detects that it is running as a CGI program under another web server, in which case it responds as a CGI program instead, and does not start the server. When this option is unchecked (false), $PRODUCT_NAME never starts the web server, unless it is run from the command line with no parameters, or it is run as a GUI program under MacOS or Windows." } # web_server # label = "Expand session paths" # short_description = "This option controls whether session paths should be expanded while generating a session paths report" # long_description = "This option controls whether session paths should be expanded while generating a session paths report. If this option is true, then all path segments with more than {=docs_option_link('epgt')=} will be expanded. If this option is false, only those segments which have been clicked will be expanded." # } # expand_paths return_address = { label = "Antwort-Adresse" short_description = "Die Antwort-Adresse einer EMail" long_description = "" } # return_address recipient_address = { label = "Empfänger-Adresse" short_description = "Die Adresse des Empfänges für eine EMail" long_description = "This specifies the recipient address for an email message. It is used when sending a report by email with send_report_by_email (see {=docs_option_link('a')=})." } # recipient_address cc_address = { label = "CC-Adresse" short_description = "Die CC-Adresse einer E-Mail, an die eine Kopie der Nachricht versendet wird." long_description = "" } # cc_address bcc_address = { label = "BCC-Adresse" short_description = "Die BCC-Adresse, an die eine Nachricht versendet wird, wobei diese Adresse beim normalen Empfänger nicht sichtbar ist." long_description = "" } # bcc_address report_email_subject = { label = "Betreff für Reportmails" short_description = "Der Betreff von Mails beim Senden von Reports als EMail" long_description = "This specifies the email subject to use when sending a report in an email message. It is used when sending a report by email with send_report_by_email (see {=docs_option_link('a')=})." } # report_email_subject update_database = { label = "Datenbank aktualisieren" } # update_database # zoom_value = { # label = "Zoom value" # short_description = "The zoom value to zoom into a hierarchical report." # long_description = "This option is used to specify the zoom value to zoom into a hierarchical report, i.e., -rn location -zv \"United States/\" will zoom the report location to \"United States\"." # } # zoom_value starting_row = { label = "Startzeile" short_description = "Diese Option steuert die Startreihe des erstellten oder exportierten Reports." long_description = "This option controls the starting row of a generated or exported report. Startting row is a global setting and overrides existing starting row values in every report and report element." } # starting_row ending_row = { label = "Endreihe" short_description = "Diese Option steuert die Endreihe des erstellten oder exportierten Reports." long_description = "This option controls the ending row of a generated or exported report. Ending row is a global setting and overrides existing ending row values in every report and report element." } # ending_row sort_by = { label = "Sortierung" short_description = "Diese Option legt das Sortierfeld der erstellten und exportierten Reports fest." long_description = "This option specifies the field to sort by, when it is used with {=docs_option_link('a')=} export_csv_table." } # sort_by sort_direction = { label = "Sortierrichtung" short_description = "Diese Option legt die Sortierrichtung der erstellten und exportierten Reports fest." long_description = "This option specifies direction to sort in (ascending or descending), when it is used with {=docs_option_link('a')=} export_csv_table." } # sort_direction export_total = { label = "Summenzeile exportieren" short_description = "Dies fügt eine Summenreihe hinzu, bei Verwendung von export_csv_table." long_description = "This option adds a total row to the exported data-set when it is used with {=docs_option_link('a')=} export_csv_table." } # export_total export_max = { label = "Maximum-Zeile exportieren" short_description = "Fügt eine Maximum-Zeile hinzu, wenn es mit export_csv_table verwendet wird." long_description = "This option adds a maximum row to the exported data-set when it is used with {=docs_option_link('a')=} export_csv_table." } # export_max export_min = { label = "Minimum-Zeile exportieren" short_description = "Fügt eine Minimum-Zeile hinzu, wenn es mit export_csv_table verwendet wird." long_description = "This option adds a minimum row to the exported data-set when it is used with {=docs_option_link('a')=} export_csv_table." } # export_min export_average = { label = "Durchschnittszeile exportieren" short_description = "Fügt eine Durchschnittszeile hinzu, wenn es mit export_csv_table verwendet wird." long_description = "This option adds an average row to the exported data-set when it is used with {=docs_option_link('a')=} export_csv_table." } # export_average output_format_type = { label = "Typ des Ausgabeformats" short_description = "Das Format eines exportieren Reports." long_description = `This option specifies the format of an exported report. A report generated with {=docs_option_link('a')=} generate_report_files (grf) will be exported in HTML format if this option is empty or "html", or in PDF format if this option is "pdf".` } # output_format_type output_directory = { label = "Ausgabe-Verzeichnis" short_description = "In dieses Verzeichnis werden exportierte Reports geschrieben." long_description = `This specifies the directory to which an exported report should be written. It can be a local directory name, or it can be a Salang expression enclosed in {= and =} sections, e.g.,

or

Use of Salang allows for timestamped directory names, and other advanced calculated pathnames.` } # output_directory # # # ToDo, output_file is also used when generating PDF files, correct the description. # # output_file = { label = "Ausgabedateiname" short_description = "Exports a report to the specified filename when used with export_csv_table." long_description = "This option exports a report to the specified filename when it is used with {=docs_option_link('a')=} export_csv_table." } # output_file # KHP 10/Sep/2008 # It looks like that output_filename is identical with output_file, respectively redundant. # output_filename = { # label = "Output file pathname" # short_description = "Exports a report to the specified pathname when used with export_csv_table." # long_description = "This option exports a report to the specified pathname when it is used with {=docs_option_link('a')=} export_csv_table." # } # output_filename end_of_line = { label = "End of line" short_description = "Specifies the end of line marker in a CSV file." long_description = "This option specifies the end of line marker in a CSV file when it is used with {=docs_option_link('a')=} export_csv_table." } # end_of_line execute_command_line = { label = "Execute command line" } } # command_line internal = { active_report = { label = "Active report" short_description = "This option specifies which report is generated" long_description = "This option specifies which report is shown, or which report to generate. It is used internally by $PRODUCT_NAME as you move from report to report, but it can also be set in the profile options interface to control which view $PRODUCT_NAME shows when you first view the statistics, or used from the command line to control which report to generate when sending email or generating an HTML report." } # active_report } # internal preferences = { miscellaneous = { language = { label = "Language" short_description = "The language module to use to generate language-specific text" long_description = "

This option specifies the language module to use. Language modules contain rules for translating from $PRODUCT_NAME's internal text variables to what actually appears in generated HTML pages and other output. Language modules are contained in the languages sub$lang_stats.directory of the LogAnalysisInfo $lang_stats.directory, in a $lang_stats.directory named after the language (for instance, English modules are in a $lang_stats.directory called \"english\"). Modules are in several pieces:

  1. lang_stats.cfg: The text of statistics pages

  2. lang_options.cfg: The text of the option names and descriptions.

  3. lang_admin.cfg: The text of the administrative pages.

  4. lang_messages.cfg: The text of error messages and other messages.

The module is split into pieces to allow for partial implementation. For instance, by implementing only the small lang_stats module, you can provide support for a particular language for statistics browsing, without having to spend a considerable amount of time to fully translate the entire $PRODUCT_NAME interface.

" } # language charset = { label = "Zeichensatz" short_description = "Der HTML-Zeichensatz, der für die Seitenanzeige verwendet wird" long_description = "

This option specifies the HTML charset, e.g. UTF-8, to use when displaying pages in the web interface.

" } # charset logout_url = { label = "Abmelde-URL" short_description = "Die URL die beim Abmelden aufgerufen wird; ansonsten wird der Startbildschirm geöffnet" long_description = "This specifies the URL that $PRODUCT_NAME sends you to when you log out of $PRODUCT_NAME. If this option is blank, it will send you to the $PRODUCT_NAME login screen." } # logout_url never_look_up_ip_numbers = { label = "Niemals IP-Nummern mittels DNS ermitteln" short_description = "Legt fest, ob versucht werden soll, die Hostnamen von IPs zu ermitteln" long_description = "When this is true (checked), $PRODUCT_NAME will never attempt to look up hostnames from IP numbers; it will use IP numbers for everything. When this is false (unchecked), it will attempt to look up the local hostname when it starts a web server, and it will attempt to look up the hostname of any host which accesses it by HTTP, and it will look up the hostname of any host it encounters in the logs (if {=docs_option_link('luin')=} is true). This option is useful if there is no local Domain Name Server (for instance, if the computer running $PRODUCT_NAME is not connected to a network and is not itself running a DNS)." } # never_look_up_ip_numbers only_look_up_log_ip_numbers = { label = "Nur IP-Nummern für Logeinträge ermitteln" short_description = "Ermittelt nur IP-Nummer für Einträge im Log, nicht für lokale Server oder Remote-Computer" long_description = "When this is true (checked), $PRODUCT_NAME will look up the hostnames of IP numbers using DNS only when they appear in a log file and {=docs_option_link('luin')=} is on. When this is false (unchecked), $PRODUCT_NAME will still look up numbers in log files, but will also look up the hostname of the computer $PRODUCT_NAME is running on, and the hostnames of computers using $PRODUCT_NAME through web browsers. This option is useful because when it is true, $PRODUCT_NAME will never do any network access, so it can be run on a computer with a dial-up connection without having to be dialed in. When this option is false, $PRODUCT_NAME will perform a DNS lookup when it first starts and when other computers access it, so it will have to be permanently connected to the Internet (or using a DNS server on your local network).

" } # only_look_up_log_ip_numbers temporary_files_lifespan = { label = "Temporäre Dateilebensdauer" unit = "Sekunden" short_description = "Zeitspanne in der temporäre Dateien existent bleiben (in Sekunden)" long_description = "This option controls the amount of time, in seconds, $PRODUCT_NAME keeps temporary files before deleting them. Temporary files include temporary profiles (used to browse statistics) and temporary images (used to embed images in statistics pages). Setting this to a high number will ensure that temporary images are around as long as they are needed, but will use more disk space." is_invalid_int_min_message = "The value of field \"$lang_options.preferences.miscellaneous.temporary_files_lifespan.label\" must be of type integer and greater or equal $option_info.preferences.miscellaneous.temporary_files_lifespan.minimum_value." } # temporary_files_lifespan # enable_enterprise_for_trial = { # label = "Enable Enterprise features when using trial licensing" # short_description = "Whether to enable Enterprise features when using a trial license key" # long_description = "This option controls whether Enterprise features are available when trial licensing is in use. This is useful for trying out both Enterprise and Professional feature sets when making a purchase decision." # } # enable_enterprise_for_trial prompt_for_trial_tier = { label = "Testversion nachfragen" short_description = "Legt fest, ob während der Testzeit die Auswahl zwischen Professional/Enterprise angezeigt wird." long_description = "This option controls whether the Professional/Enterprise switch is shown during the trial period. This is useful for hiding the Professional/Enterprise switch if only the Professional or Enterprise features are available during the trial period." } # prompt_for_trial_tier talkback = { label = "Feedback-Agent aktivieren" short_description = "Legt fest, ob Informationen über das analysierte Device an Flowerfire gesendet werden" long_description = "This option controls whether $PRODUCT_NAME sends information to Flowerfire (maker of $PRODUCT_NAME) about the log formats being used. When this option is enabled, $PRODUCT_NAME sends information to Flowerfire (via a port 80 connection to www.sawmill.net). The information sent is only the name of the log format plug-in used in the profile; it does not send your log data, or any other information other than the name of the log format. We will use this information to help us focus our development on the most commonly-used log formats. If this option is off, $PRODUCT_NAME will never send any information to Flowerfire." } } # miscellaneous email = { smtp_server = { label = "SMTP-Server" short_description = "Der SMTP-Server zum Senden von EMails" long_description = "This specifies the SMTP server to use to send an email message. It is used when sending a report by email with send_report_by_email (see {=docs_option_link('a')=})." } # smtp_server smtp_username = { label = "SMTP-Benutzername" short_description = "Der SMTP-Benutzername, der beim Senden der Mail verwendet wird" long_description = "This specifies the SMTP username to use when authenticating with the SMTP server to send an email message. It is used when sending a report by email with send_report_by_email (see {=docs_option_link('a')=})." } # smtp_username smtp_password = { label = "SMTP-Passwort" short_description = "Das SMTP-Passwort, das zum Senden der Mail verwendet wird" long_description = "This specifies the SMTP password to use when authenticating with the SMTP server to send an email message. It is used when sending a report by email with send_report_by_email (see {=docs_option_link('a')=})." } # smtp_password return_address = { label = "Antwortadresse" short_description = "The default return address of an email message when sending a report by email from the command line" long_description = "" # long_description = "This specifies the return address of an email message. It is used when sending a report by email with send_report_by_email (see {=docs_option_link('a')=}) from the command line." } # return_address recipient_address = { label = "Empfangsadresse" short_description = "The default recipient address of an email message when sending a report by email from the command line" long_description = "" # long_description = "This specifies the recipient address for an email message. It is used when sending a report by email with send_report_by_email (see {=docs_option_link('a')=}) from the command line." } # recipient_address cc_address = { label = "CC-Adresse" short_description = "The default carbon copy address of an email message when sending a report by email from the command line" long_description = "" } # cc_address bcc_address = { label = "BCC-Adresse" short_description = "The default blind carbon copy address of an email message when sending a report by email from the command line" long_description = "" } # bcc_address report_email_subject = { label = "Betreff für Reportmails" short_description = "The default email subject to use when sending a report by email from the command line" long_description = "" } # report_email_subject support_email_address = { label = "Support-Mailadresse" short_description = "Die Mailadresse, an die Fehlerberichte geschickt werden sollen" long_description = "

This option specifies the email address where bug reports should be sent when a $PRODUCT_NAME user clicks the \"Report It\" button on an error message.

If this option is blank, it will go to the software vendor's support address ($SUPPORT_EMAIL). That's fine for some situations, especially if the reporting user is the $PRODUCT_NAME administrator, but for ISPs and other multi-client and multi-user installations, most of the errors will be configuration issues that the software vendor can't do anything about, and that the reporting user can't fix (because they don't have administrative access). For multi-client licensing setups, this should be set to the email address of the $PRODUCT_NAME administrator, who can fix the problems as they occur.

" } # support_email_address global_actions_email_address = { label = "Globale Aktions-Mailadresse" short_description = "Die Adresse(n), an die $PRODUCT_NAME eine E-Mail senden soll, wenn eine Aktion beendet wurde, z.B. Datenbank ist aufgebaut" long_description = "

This specifies the address or addresses $PRODUCT_NAME should send email to whenever an action occurs, for instance when the database finishes rebuilding, updating, expiring, or when HTML files are done being generated.

The global actions email address applies to actions of all profiles. It is also possible to define separate actions email addresses per profile in Config/Miscellaneous. An actions email address defined per profile overrides this actions email address.

If this option or the per profile actions email address is non-empty, $PRODUCT_NAME will send a brief description of what it just finished doing, using the SMTP server specified by {=docs_option_link('ss')=}.

If this option and the per profile actions email address is empty, $PRODUCT_NAME will not send email.

Multiple recipients may be specified with commas, e.g., \"user1@mydomain.com,user2@mydomain.com,user3@mydomain.com\".

" } # global_actions_email_address global_actions_return_address = { label = "Globale Aktions-Antwort-Adresse" short_description = "Die Antwortadresse für den Versand von Mails bei Aktionen." long_description = "

The return address when email is send by {=docs_option_link('gaea')=} or {=docs_option_link('aea')=}.

The global actions return address applies to all profiles. It is also possible to define an action return address per profile in Config/Miscellaneous. If no actions return address is defined then $PRODUCT_NAME uses the actions email address as return address.

" } # global_actions_return_address } # email security = { server_session_timeout = { label = "Session-Timeout" unit = "Sekunden" short_description = "Die Anzahl der Sekunden, die eine $PRODUCT_NAME-Web-Session aktiv sein kann, bevor sie automatisch getrennt wird." long_description = "This option specifies the number of seconds a $PRODUCT_NAME web access session (i.e., a session by someone accessing $PRODUCT_NAME, e.g., viewing reports or administrating $PRODUCT_NAME) can be inactive before it is timed out. When a page is loaded in the $PRODUCT_NAME web interface, it checks when the past access occurred, and if it was more than this amount of time, it considers the session to have timed out, deletes all information about the session, and requires a new login. This is a security feature, intended to prevent sessions from being available for arbitrary amounts of time on shared or otherwise insecure computers. Setting this to 0 turns this off, and sessions will never time out." is_invalid_int_min_message = "The value of field \"$lang_options.preferences.security.server_session_timeout.label\" must be of type integer and greater or equal 0." } # server_session_timeout administrative_remote_user = { label = "Administrativer REMOTE_USER" short_description = "Der Wert von REMOTE_USER, der den Benutzer als Administrator markiert" long_description = "This option specifies the username which, when present in the REMOTE_USER environment variable in CGI mode, marks that user as the administrator. This can be used to easily integrate web server authentication with the authentication used by $PRODUCT_NAME, so $PRODUCT_NAME uses information passed in the REMOTE_USER environment variable to determine which user is logged in. See {=docs_option_link('sorup')=}." is_empty_message = "Bitte definieren Sie einen Wert für das Feld \"$lang_options.preferences.security.administrative_remote_user.label\"." } # administrative_remote_user authentication_command_line = { label = "Authentifizierungsbefehlszeile" short_description = "Die Befehlszeile für authentifizierte Benutzer." long_description = "This specifies a command line that $PRODUCT_NAME will run when it authenticates users. The command line program must accept two parameters: the username and the entered password. The command line must print the names of the profiles that the user is permitted to access, one name per line. A printed value of *ROLE*:N means that the user should be part of the RBAC role whose internal name is N (e.g., \"role_1\" as a non-root administrator, as specified in roles_enterprise.cfg in LogAnalysisInfo); if no *ROLE* lines are specified, the user will be added to role \"role_2\" (Statistics Viewer). A printed value of *ADMIN* means that the user is an administrator, and may access any profile, as well as accessing the administrative interface (any other response, and the administrative interface will not be available). A printed value of *FAILED* means that the username/password authentication failed.

For example, the ldapauth.pl file, which is in the Extras folder of a standard $PRODUCT_NAME installation, is a perl script which, with slight configuration, can use an LDAP server to perform authentication. If the full pathname of ldapauth.pl is entered for this option, and the script ldapauth.pl is edited to point to an LDAP server and specify the appropriate parameters, $PRODUCT_NAME will, via the script, contact the LDAP server any time authentication is required, and will use the server's response to validate the username and password, and to get the list of accessible profiles for that user.

If this option is blank, $PRODUCT_NAME will use the users.cfg file (in LogAnalysisInfo) to authenticate users. " } # authentication_command_line database_directory_permissions = { label = "Datenbank-$lang_stats.directory-Zugriffserlaubnis" short_description = "Die Zugriffserlaubnis, die $PRODUCT_NAME beim Anlegen eines $lang_stats.directory als Teil der Datenbank verwendet" long_description = "This specifies the file permissions to use when creating a $lang_stats.directory as part of a database. This is a UNIX-style chmod value, a 3- or 4-digit octal number (see {=docs_chapter_link('permissions')=})." } # database_directory_permissions database_file_permissions = { label = "Datenbankdatei-Zugriffserlaubnis" short_description = "Die Zugriffserlaubnis, die $PRODUCT_NAME beim Anlegen einer Datei als Teil der Datenbank verwendet" long_description = "This specifies the file permissions to use when creating files as part of a database. This is a UNIX-style chmod value, a 3- or 4-digit octal number (see {=docs_chapter_link('permissions')=})." } # database_file_permissions default_permissions = { label = "Standardzugriffserlaubnis" short_description = "Die Zugriffserlaubnis, die $PRODUCT_NAME beim Anlegen eines $lang_stats.directory verwendet (chmod-Stil)" long_description = "This specifies the file permissions to use when creating files and $lang_stats.directories which do not fall into any other permissions category. This is a UNIX-style chmod value, a 3- or 4-digit octal number (see {=docs_chapter_link('permissions')=})." } # default_permissions default_profile_permissions = { label = "Standard-Profildateizugriffsrechte" short_description = "Die Zugriffsrechte, die $PRODUCT_NAME beim Erstellen des Standard-Pofildatei verwendet" long_description = "This specifies the file permissions to use when creating the default profile file. This is a UNIX-style chmod value, a 3- or 4-digit octal number (see {=docs_chapter_link('permissions')=})." } # default_profile_permissions image_directory_permissions = { label = "Bild-$lang_stats.directory-Zugriffsrechte" short_description = "Die Zugriffsrechte, die $PRODUCT_NAME beim Erstellen eines Verzeichnisses für Bilddateien verwendet" long_description = "This specifies the file permissions to use when creating a $lang_stats.directory containing image files. This is a UNIX-style chmod value, a 3- or 4-digit octal number (see {=docs_chapter_link('permissions')=})." } # image_directory_permissions image_file_permissions = { label = "Bilddateizugriffsrechte" short_description = "Die Zugriffsrechte, die $PRODUCT_NAME beim Erstellen der Bilddatei verwendet" long_description = "This specifies the file permissions to use when creating an image file. This is a UNIX-style chmod value, a 3- or 4-digit octal number (see {=docs_chapter_link('permissions')=})." } # image_file_permissions log_analysis_info_directory_permissions = { label = "LogAnalysisInfo-$lang_stats.directory-Zugriffsrechte" short_description = "Die Zugriffserlaubnis, die $PRODUCT_NAME beim Anlegen des LogAnalysisInfo-Verzeichnisses verwendet" long_description = "This specifies the file permissions to use when creating the LogAnalysisInfo $(lang_stats.directory). This is a UNIX-style chmod value, a 3- or 4-digit octal number (see {=docs_chapter_link('permissions')=})." } # log_analysis_info_directory_permissions password_file_permissions = { label = "Kennwortdateizugriffsrechte" short_description = "Die Zugriffsrechte, die $PRODUCT_NAME beim Erstellen der Kennwortdatei verwendet" long_description = "This specifies the file permissions to use when creating the password file. This is a UNIX-style chmod value, a 3- or 4-digit octal number (see {=docs_chapter_link('permissions')=})." } # password_file_permissions profiles_directory_permissions = { label = "Profil-$lang_stats.directory-Zugriffsrechte" short_description = "Die Zugriffsrechte, die $PRODUCT_NAME beim Erstellen eines Verzeichnisses für Profildateien verwendet" long_description = "This specifies the file permissions to use when creating a $lang_stats.directory containing profile files. This is a UNIX-style chmod value, a 3- or 4-digit octal number (see {=docs_chapter_link('permissions')=})." } # profile_directory_permissions profile_permissions = { label = "Profildateizugriffsrechte" short_description = "Die Zugriffsrechte, die $PRODUCT_NAME beim Erstellen einer Pofildatei verwendet" long_description = "This specifies the file permissions to use when creating a profile file. This is a UNIX-style chmod value, a 3- or 4-digit octal number (see {=docs_chapter_link('permissions')=})." } # profile_file_permissions # KHP 25/Jul/2011 - Disabled because security_mode is not used #security_mode = { # label = "Security Mode" # short_description = "The level of security to use" # long_description = "$PRODUCT_NAME provides a number of security features to prevent unauthorized access to your profiles, or to your system. The Security Mode is one of these; see also {=docs_chapter_link('security')=}.

The security mode cannot be set from the web GUI-- it can only be set by modifying the $PRODUCT_NAME preferences.cfg file (in the LogAnalysisInfo folder) with a text editor. The security mode may be one of the following:

Either of the options are secure enough to protect your system from malicious users, because all require the password before any profiles may be created or modified, and before any secure options may be changed (changes to the non-secure options cannot harm your system). If you are highly concerned about security, you may want to set the security mode to Browse Only, to prevent even password-equipped users from doing any damage.

" # browse_and_modify = "Browse and modify" # browse_only = "Browse only" # } # security_mode server_directory_permissions = { label = "Server-$lang_stats.directory-Zugriffsrechte" short_description = "Die Zugriffserlaubnis, die $PRODUCT_NAME beim Anlegen des Server-Verzeichnisses verwendet" long_description = "This specifies the file permissions to use when creating the server $(lang_stats.directory). This is a UNIX-style chmod value, a 3- or 4-digit octal number (see {=docs_chapter_link('permissions')=})." } # server_directory_permissions show_docs_links_in_stats = { label = "Dokumentationslinks in Statistikseiten anzeigen" short_description = "Bestimmt, ob Links zur Onlinedokumentation in den Statistikseiten eingefügt werden" long_description = "This specifies whether links to the online documentation should appear in statistics pages, where appropriate. If this option is true (checked) links to the documentation will appear. If this option is false (unchecked) documentation links will not appear. This option is useful if you wish to hide the online documentation from your statistics-browsing users." } # show_docs_links_in_stats show_full_operating_system_details_in_errors = { label = "Vollständige Betriebssystemdetails bei Fehlern anzeigen" short_description = "Zeigt die vollständigen Details der Betriebsststemversion im Text der Fehlermeldungen an" long_description = "This controls whether $PRODUCT_NAME displays the full operating system version details in error message. It is useful for $PRODUCT_NAME to do this because this helps to debug problems when they are reported. However, full operating system details could be of use to someone attempting to gain unauthorized access to your server, since it would allow them to determine if you are running a vulnerable version of the operating system. This should not be an issue if you keep your operating system up to date, but if you'd rather that this information not be public, you should turn this option off. " } # show_full_operating_system_details_in_errors show_only_remote_user_profiles = { label = "Nur die zu REMOTE_USER passenden Profile anzeigen" short_description = "Bestimmt, ob nur die Profile, deren Namen mit dem Wert REMOTE_USER beginnen, angezeigt werden" long_description = "When this is true (checked), the main profile list will show only the profile, if any, whose names start with the value of REMOTE_USER followed by a dash (-). For instance, if REMOTE_USER is \"tom,\" the Main Menu will show profiles named \"tom-access,\" \"tom-referrer,\" or \"tom-stats,\" but will not show \"bob-access,\" \"tom access,\" or \"tom.\" When this is false (unchecked), or if REMOTE_USER is empty (undefined), or if REMOTE_USER is equal to the value of {=docs_option_link('aru')=}, then all profiles will appear in the Main Menu. REMOTE_USER is a web server CGI variable which contains the username of the user who logged in through an authentication screen; e.g., htaccess or realms authentication. This option provides a simple mechanism for hiding users' profiles from each other, provided $PRODUCT_NAME is run in a section of the site protected by username/password authentication. For instance, you can run $PRODUCT_NAME in CGI mode, protect the $PRODUCT_NAME directory using authentication, turn on this option, and send the CGI URL to your users, so they will be able to log in to $PRODUCT_NAME with web server authentication, and they will only be able to see their own profiles. This option is only useful in CGI mode, and should not be turned on in web server mode (if it is turned on, it will make all profiles invisible), unless you are also running in CGI mode. " } # show_only_remote_user_profiles temporary_profile_permissions = { label = "Temporäre Profildateizugriffsrechte" short_description = "Die Zugriffsrechte, die $PRODUCT_NAME beim Erstellen einer temporären Pofildatei verwendet" long_description = "This specifies the file permissions to use when creating a temporary profile file. This is a UNIX-style chmod value, a 3- or 4-digit octal number (see {=docs_chapter_link('permissions')=})." } # temporary_profile_permissions # KHP 11/Aug/2009 - trusted_hosts are no longer valid # trusted_hosts = { # label = "Trusted hosts" # short_description = "The hostnames of computers which are \"trusted,\" and do not need to enter passwords" # long_description = "This is a list of the hostnames of computers which are trusted. Hostnames should be separated from each other by spaces. Any browsing host which contains any of the listed hostnames as part of its hostname will be trusted, so entire subdomains can be trusted by entering the domain. Example: Browsers from these hosts will not be required to enter any passwords-- they will be automatically validated. Use this option with caution--it simplifies the use of $PRODUCT_NAME by eliminating all password screens for the administrative host, but can potentially be a security hole, if someone uses or spoofs the administrative machine without permission.

If you are connecting from a trusted host, it may be difficult to remove that trusted host using the web interface, because $PRODUCT_NAME will refuse to allow you administrative access to change the trusted host, because your host will no longer be trusted. One solution to this is to modify the preferences.cfg file (in the LogAnalysisInfo $lang_stats.directory) manually, with a text editor, to remove the trusted host. Another solution is to connect from another system, log in normally, and remove the trusted host that way." # } # trusted_hosts ldap_server_hostname = { label = "LDAP-Server-Hostname" short_description = "Der Hostname, der für die LDAP-Authentifizierung verwendet wird (LDAP-Anmelde-Plugin erforderlich)" long_description = "This option specifies the hostname of the LDAP server. This is only used when using the LDAP plug-in." } # ldap_server_hostname ldap_administrator_dn = { label = "LDAP Administrator DN" short_description = "" long_description = "This option specifies the full DN of an LDAP account used for querying the directory when authenticating with the LDAP plug-in, e.g., 'CN=Some Guy,DN=somewhere,DN=com'." } # ldap_administrator_dn ldap_administrator_password = { label = "LDAP Administrator Passwort" short_description = "" long_description = "This option specifies the password of the LDAP account used for querying the directory when authenticating with the LDAP plug-in, whose DN is specified in {=docs_option_link('preferences.security.ldap_administrator_dn')=}." } # ldap_administrator_password ldap_administrator_dn = { label = "LDAP Administrator DN" short_description = "" long_description = "This option specifies the full DN of an LDAP account used for querying the directory when authenticating with the LDAP plug-in, e.g., 'CN=Some Guy,DN=somewhere,DN=com'." } # ldap_administrator_dn ldap_administrator_password = { label = "LDAP Administrator Passwort" short_description = "" long_description = "This option specifies the password of the LDAP account used for querying the directory when authenticating with the LDAP plug-in, whose CN is specified in {=docs_option_link('preferences.security.ldap_administrator_dn')=}." } # ldap_administrator_password use_ssl_for_ldap = { label = "SSL für LDAP verwenden" short_description = "Whether to use SSL to encrypt connections to the LDAP server" long_description = "This option specifies whether to use SSL for LDAP server connections. This is only used when using the LDAP plug-in." } # use_ssl_for_ldap ldap_base = { label = "LDAP Basis-DN" short_description = "The base DN to use for LDAP authentication" long_description = "This specifies the base DN to use for LDAP authentication. This is only used when using the LDAP plug-in." } # ldap_base ldap_username_label = { label = "LDAP-Benutzernamen-Bezeichnung" short_description = "Die Bezeichnung (z.B. CN), die verwendet werden soll, wenn nach einem Benutzernamen im LDAP gesucht wird." long_description = "This specifies the label (e.g., CN) which is used when building an LDAP DN for binding to the LDAP server. This is only used when using the LDAP plug-in." } # ldap_username_label } # security server = { cgi_directory = { label = "CGI-$lang_stats.directory" short_description = "Das $lang_stats.directory, das $PRODUCT_NAME enthält, relativ zum Serverroot" long_description = "This is the $lang_stats.directory containing the $PRODUCT_NAME CGI program, relative to the root of the web server. This should be as it appears in a URL; forward slashes (/) should separate sub$lang_stats.directories. It should begin and end with a forward slash (/), unless it is empty (i.e. $PRODUCT_NAME is in the root $lang_stats.directory). For instance, if the $PRODUCT_NAME CGI program is inside the \"$PRODUCT_EXECUTABLE_DOCS\" $lang_stats.directory, which is inside the \"scripts\" $lang_stats.directory of your web server, then this should be /scripts/$PRODUCT_EXECUTABLE_DOCS/. This is used in the rare cases when $PRODUCT_NAME needs to build a full (non-relative) URL for itself, ex.

$PRODUCT_NAME can automatically compute all parts of the URL except the CGI $lang_stats.directory part (\"/cgi-bin/\" above); this option specifies that part." is_empty_message = "Bitte definieren Sie einen Wert für das Feld \"$lang_options.preferences.server.cgi_directory.label\"." } # cgi_directory maximum_number_of_threads = { label = "Maximale Anzahl gleichzeitiger Verbindungen" short_description = "Maximum number of simultaneous connections that $PRODUCT_NAME will accept on its web server" long_description = "This specifies the maximum number of simultaneous tasks (threads of execution) that $PRODUCT_NAME will perform at a time, in web server mode. When a user attempts to use the built-in web server, $PRODUCT_NAME will check if there are already this many threads or connections actively in use. If there are, $PRODUCT_NAME will respond with a \"too busy\" page. Otherwise, the connection will be allowed. This prevents $PRODUCT_NAME from becoming overloaded if too many people try to use it at the same time, or if one user works it too hard (for instance, by rapidly and repeatedly clicking on a view button in the statistics)." is_invalid_int_min_message = "Der Wert des Felds \"$lang_options.preferences.server.maximum_number_of_threads.label\" muss ein Integer-Wert größer oder gleich $option_info.preferences.server.maximum_number_of_threads.minimum_value sein." } # maximum_number_of_threads server_hostname = { label = "Webserver-IP-Adresse" short_description = "Die IP-Adresse unter der der $PRODUCT_NAME-Webserver laufen soll" long_description = "This specifies the IP address $PRODUCT_NAME should run its web server on. $PRODUCT_NAME uses all available IPs by default, but if you want to have $PRODUCT_NAME's web server bind only to a specific IP, you can set this option. $PRODUCT_NAME uses the IP address you specify here as the IP address the server runs on." } # server_hostname cookie_domain = { label = "Cookie-Domain" short_description = "Die Domaine, die in Cookies verwendet wird, die zum Browser gesendet werden" long_description = "Dies gibt die Domain an, die in Cookies verwendet wird, die zum Browser gesendet wird" } # cookie_domain server_root = { label = "Root-URL des Logdatenservers" } temporary_directory_pathname = { label = "Temporärer $lang_stats.directory" short_description = "Ein $lang_stats.directory auf dem Webserver, auf dem $PRODUCT_NAME als CGI-Programm läuft, aus dem Grafiken zur Verfügung gestellt werden können" long_description = " This specifies a $lang_stats.directory on the web server which is running $PRODUCT_NAME as a CGI program. This $lang_stats.directory will be used to serve the images which will be embedded in $PRODUCT_NAME's HTML pages. This $lang_stats.directory must be accessible to $PRODUCT_NAME as a local $lang_stats.directory on the machine running $PRODUCT_NAME, and must also be accessible through a web browser by connecting to the web server running $(PRODUCT_NAME). In other words, it must be inside the root $lang_stats.directory of the web server running $(PRODUCT_NAME). The $lang_stats.directory specified by this option must match the URL specified by {=docs_option_link('tdu')=}. In other words, the value specified here, which is a pathname local to the machine running $PRODUCT_NAME (see {=docs_chapter_link('pathnames')=}), must refer to the same $lang_stats.directory which is specified by the URL in {=docs_option_link('tdu')=}. It may be specified either as a full pathname, or as a pathname relative to the $lang_stats.directory containing $PRODUCT_NAME (e.g. ../html/$PRODUCT_EXECUTABLE_DOCS, if your server is UNIX and your site's root directory is called html and is next to cgi-bin). See {=docs_chapter_link('sdinfo')=}." } # temporary_directory_pathname temporary_directory_url = { label = "Temporäre $lang_stats.directory-URL" short_description = "Die URL des Verzeichnisses auf dem Webserver, auf dem $PRODUCT_NAME als CGI-Programm läuft, aus dem Grafiken zur Verfügung gestellt werden können" long_description = "This specifies the URL of a $lang_stats.directory on the web server which is running $PRODUCT_NAME as a CGI program. This $lang_stats.directory will be used to serve the images which will be embedded in $PRODUCT_NAME's HTML pages. This $lang_stats.directory must be accessible to $PRODUCT_NAME as a local $lang_stats.directory on the machine running $PRODUCT_NAME, and must also be accessible through a web browser by connecting to the web server running $(PRODUCT_NAME). Therefore, it must be inside the root $lang_stats.directory of the web server running $(PRODUCT_NAME). The URL specified by this option must match the $lang_stats.directory specified by {=docs_option_link('tdp')=}. In other words, the value specified here, which is specified by URL, must refer to the same $lang_stats.directory which is specified by local pathname in {=docs_option_link('tdp')=}. See {=docs_chapter_link('sdinfo')=}." } # temporary_directory_url web_server_port = { label = "Webserver-Port" short_description = "Der Port, auf dem der Webserver ansprechbar ist" long_description = "This specifies the port $PRODUCT_NAME should listen on when it runs as a web server. See {=docs_option_link('ws')=}." is_invalid_int_min_max_message = "Der Wert des Felds \"$lang_options.preferences.server.web_server_port.label\" muss ein Integer-Wert zwischen $option_info.preferences.server.web_server_port.minimum_value und $option_info.preferences.server.web_server_port.maximum_value sein." } # web_server_port https = { label = "HTTPS verwenden" short_description = "Diese Option legt fest, ob der Webserver HTTPS verwenden soll." long_description = "This option specifies whether the built-in web server uses a Secure Socket Layer (SSL) on top of its HTTP server, to create an HTTPS server. When this option is checked (true), the server will use HTTPS, using the certificate file server.crt and the public key file server.key, both in the LogAnalysisInfo $lang_stats.directory. When this option is unchecked (false), the server will use HTTP. HTTPS is more secure, as communications between the web browser and $PRODUCT_NAME (like the password login) cannot be intercepted; but it adds some additional complexity, slowing down the web browser, and also requires that the SSL library be present on the system, and that a certificate and public key (as generated by the OpenSSL command line tools, for instance) be present." } # https maximum_memory_usage_type = { label = "Art des Maximlaspeicherverbrauchs" short_description = "The type of memory management to use" long_description = "This specifies the type of memory management to use. Options are auto_dedicated, auto_shared, and custom. auto_dedicated tells $PRODUCT_NAME that it may allocate memory as though it were the main program running on a dedicated server. This gives highest performance to $(PRODUCT_NAME) on a dedicated server; but if other programs on the system use much RAM, it can slow performance. auto_shared tells $PRODUCT_NAME that it should use only a small portion of the total system memory. This setting it appropriate if $PRODUCT_NAME is only one of several major programs running on the server; it leaves most of the resources for other programs to use. custom tells $PRODUCT_NAME that it should use no more than the amount of memory specified in {=docs_option_link('preferences.server.maximum_memory_usage_size')=}." } # maximum_memory_usage_type maximum_memory_usage_size = { label = "Größe des Maximalspeicherverbrauchs" short_description = "The maximum memory to use, when custom memory management is used." long_description = "This specifies the maximum memory to use, when {=docs_option_link('preferences.server.maximum_memory_usage_type')=} is set to custom." } # maximum_memory_usage_size } # server password = { password_expires = { label = "Kennwort läuft ab" short_description = "Wenn aktiv, wird das Kennwort nach einer bestimmten Zeit ablaufen." long_description = "This specifies whether passwords expire after a time. When this option is true, users will be prompted to change their password a fixed number of days ({=docs_option_link('preferences.password.days_until_password_expiration')=}) after their previous password change. When this option is false, users will never be required to change their password." } # password_expires days_until_password_expiration = { label = "Gültigkeit des Kennworts in Tagen" short_description = "Die Anzahl der Tage, bis das Kennwort abläuft." long_description = "This specifies the number of days before passwords expire. When {=docs_option_link('preferences.password.password_expires')=} is true, users will be prompted to change their password this many days after their previous password change" } # days_until_password_expiration minimum_length = { label = "Minimale Länge" short_description = "Die minimale Anzahl an Zeichen in einem Kennwort." long_description = "This specifies the minimum number of characters in a password (the length of the password, in characters) for it to be accepted as a valid new password." } # minimum_length prevent_use_of_previous_passwords = { label = "Verwendung des vorherigen Kennworts verhindern" short_description = "Es wird verhindert, dass der Benutzer das Kennwort nochmals verwendet." long_description = "This specifies whether passwords can be re-used during a password change. If this option is true, previous password for the user will be checked against the new password, and the password change will only be allowed if none of the past few passwords ({=docs_option_link('preferences.password.number_of_previous_passwords_to_check')=}) matches the new one. When this option is false, passwords will not be checked against past passwords, so passwords may be re-used (even the immediately previous password)." } # prevent_use_of_previous_passwords number_of_previous_passwords_to_check = { label = "Anzahl der geprüften vorherigen Kennwörter" short_description = "Die Anzahl der Kennworter, die geprüft werden, um eine Wiederverwendung eines vorherigen Kennworts zu verhindern." long_description = "This specifies the number of previous passwords to check when looking for re-used passwords during a password change. This option is used when {=docs_option_link('preferences.password.prevent_use_of_previous_passwords')=} is true, to determine how many historical passwords to examine." } # number_of_previous_passwords_to_check requires_letter = { label = "Buchstaben erforderlich" short_description = "Buchstaben (alphabetische Zeichen) sind im Kennwort erforderlich." long_description = "This specifies whether new passwords must include a letter (alphabetic character A-Z or a-z). When this option is true, new passwords must contain a letter, and will be rejected during a password change if they do not." } # requires_letter requires_mixed_case = { label = "Gemischte Groß/Kleinschreibung erforderlich" short_description = "Im Kennwort müssen große und kleine Buchstaben vorkommen." long_description = "This specifies whether new passwords must include both an uppercase letter (A-Z) and a lowercase letter (a-z). When this option is true, new passwords must contain both cases, and will be rejected during a password change if they do not." } # requires_mixed_case requires_digit = { label = "Ziffern erforderlich" short_description = "Im Kennwort muss mindestens eine Ziffer vorkommen." long_description = "This specifies whether new passwords must include a digit (0-9). When this option is true, new passwords must contain a digit, and will be rejected during a password change if they do not." } # requires_digit requires_symbol = { label = "Symbole erforderlich" short_description = "Im Kennwort muss mindestens ein Symbol vorkommen." long_description = "This specifies whether new passwords must include a symbol (any non-alphanumerical character, i.e., any character not in the range A-Z, a-z, or 0-9). When this option is true, new passwords must contain a symbol, and will be rejected during a password change if they do not." } # requires_symbol } # password } # preferences profile = { label = "Profilname" database = { cross_reference_groups = { # ToDo, short_description and long_description of cross_reference_groups belong probably to docs # label = "Cross-reference Groups" # short_description = "Cross-referencing group information" # long_description = "This option specifies the cross-referencing groups used in the database. It controls which fields can be cross-referenced against each other, or in another way of looking at it, it controls which fields can be simultaneously filtered quickly (it is always possible to use any combination of filters, but if the combination selected is not precomputed in a cross-reference group, it will be much slower to view statistics with that filter set active). For an overview of cross-referencing and simultaneous filters, see {=docs_chapter_link('xref')=}." use_flat_table = { label = "Flache Hierarchie verwenden" short_description = "Verwendet eine flache (nicht-hierarchische) Struktur in dieser Crossreferenztabelle." long_description = "This option specifies whether to use a flat structure, or a hierarchical, for this cross-reference table. If the structure is flat, hierarchical fields like \"page\" fields will have values cached only for the bottom-level items (individual files, in the case of page fields); if the structure is hierarchical, hierarchical fields will also have values cached in this table for internal levels of the hierarchy (directories or folders, in the case of page fields). Flat tables are faster to build, which speeds database builds and updates; but the bottom-level items must be aggregated when generating reports, which slows reporting speed. See {=docs_chapter_link('hierarchies')=} for more information on field hierarchies." } # use_flat_table } # cross_reference_groups fields = { label = "Datenbank-Felder" short_description = "Der Typ und die Struktur der Felder der Datenbank" long_description = "

This specifies the type and structure of the fields of the database. See {=docs_chapter_link('hierarchies')=} for information on the different fields.

Each field in the database represents one way that the log data is broken down. For instance, if the database has two fields, a page field and a host field, then it will be possible to view the log data broken down by page, or by host, or in combinations of page and host.

There are four options which can be set for each field:

  1. Based on log field. This is the name of the log field on which this database field is based. For instance, if there is a log field called \"page\" then there can be a database field called \"page\" which tracks the value of that log field.

  2. Suppress above. This controls the number of levels to suppress at the top of the hierarchy for this field. If this is set to 0, no levels will be suppressed at the top. For instance, for a page field, a value of 0 will show top-level directories and files (e.g. /mydir/, /index.html) in the top view; a value of 1 will show second-level directories and files (e.g. /mydir/mysubdir/, /mydir/index.html) as well as top-level directories. This option is usually best left at 0, but it can be useful in some cases if you want to see several levels at once in a single report. See also {=docs_chapter_link('hierarchies')=}.

  3. Suppress below. This controls the number of levels to suppress at the bottom of the hierarchy for this field. If this is set to 0, no levels will be suppressed at the bottom. For other values, all items more than that number of levels deep will be suppressed. For instance, if it is set to 2 for the page field, the first-level items (/mydir/, /index.html) and second-level items (/mydir/mysubdir/, /mydir/index.html) will be included, but third-level items like /mydir/mysubdir/dir2/will not be included in the statistics (the events associated with the items will still be shown on the higher-level directories, but they themselves will not be available for zooming in). This can be useful if you have a very large hierarchy and you don't need all the information at the bottom; setting this to a low value will reduce the size and increase the speed of your database.

  4. Include leaves. This controls whether the bottom-level \"leaf\" subitems should always be included in the database, regardless of the suppress/collapse settings. When this value is true, the bottom-most level is always included in the database, even if it would normally be suppressed. For instance, in a page field, all pages (but not all directories) would be included in the database, regardless of how far down they are. In a host field, the machine name would be included even if the domains containing it have been suppressed. When this value is false, the suppress option determines whether bottom-level items are included in the database.

" derivation_method = { label = "Herleitungsmethode" short_description = "" long_description = "" } # derivation_method source_database_field = { label = "Quelldatenbankfeld" short_description = "" long_description = "" } # source_database_field aggregation_method = { label = "Ansammlungsmethode" short_description = "" long_description = "

This defines of how to aggregate database field values when processing the database. Use \"None\" for non-numerical fields and \"Sum\", \"Min\", \"Max\", \"Count\" or \"Unique\" for numerical fields.

Note, the aggregation method in database fields does not define how to aggregate totals!

" } # aggregation_method index = { label = "Index" short_description = "Indiziert dieses Datenbankfeld." long_description = "This option specifies whether this database field should be indexed, or not. If this option is true (checked), $PRODUCT_NAME will build an index for this field in the database, during database build, and will update the index during database update. This takes some time, and will slow database builds and updates; however, an indexed field can be filtered on much more efficiently with a report filter, especially if the set of rows selected by the filter is small. So this option speeds up report, especially deep drill-downs, but slows database builds." } # index always_include_bottom_level_items = { label = "Grundobjekte immer einschließen" short_description = "Gibt an, ob Grundobjekte in die Feldhirarchie eingeschlossen werden sollen." long_description = "This controls whether the bottom-level \"leaf\" subitems should always be included in the database, regardless of the suppress/collapse settings. When this value is true, the bottom-most level is always included in the database, even if it would normally be suppressed. For instance, in a page field, all pages (but not all directories) would be included in the database, regardless of how far down they are. In a host field, the machine name would be included even if the domains containing it have been suppressed. When this value is false, the suppress option determines whether bottom-level items are included in the database." } # always_include_bottom_level_items # average_denominator_field = { # label = "Average denominator field" # short_description = "" # long_description = "" # } # average_denominator_field log_field = { label = "Logfeld" short_description = "" long_description = "" } # log_field # session_field = { # label = "Session field" # short_description = "" # long_description = "" # } # session_field suppress_bottom = { label = "Untergeordnete Stufen ignorieren" short_description = "Gibt die Ebene an, unterhalb der Objekte in der Feldhierarchie unterdrückt werden." long_description = "This controls the number of levels to suppress at the bottom of the hierarchy for this field. If this is set to 0, no levels will be suppressed at the bottom. For other values, all items more than that number of levels deep will be suppressed. For instance, if it is set to 2 for the page field, the first-level items (/mydir/, /index.html) and second-level items (/mydir/mysubdir/, /mydir/index.html) will be included, but third-level items like /mydir/mysubdir/dir2/will not be included in the statistics (the events associated with the items will still be shown on the higher-level directories, but they themselves will not be available for zooming in). This can be useful if you have a very large hierarchy and you don't need all the information at the bottom; setting this to a low value will reduce the size and increase the speed of your database." } # suppress_bottom suppress_top = { label = "Übergeordnete Stufen ignorieren" short_description = "Gibt die Ebene an, oberhalb der Objekte in der Feldhierarchie unterdrückt werden." long_description = "

This controls the number of levels to suppress at the top of the hierarchy for this field. If this is set to 0, no levels will be suppressed at the top. For instance, for a page field, a value of 0 will show top-level directories and files (e.g. /mydir/, /index.html) in the top view; a value of 1 will show second-level directories and files (e.g. /mydir/mysubdir/, /mydir/index.html) as well as top-level directories. This option is usually best left at 0, but it can be useful in some cases if you want to see several levels at once in a single report. See also {=docs_chapter_link('hierarchies')=}." } # suppress_top type = { label = "Typ" short_description = "" long_description = "" } # type category = { label = "Kategorie" short_description = "" long_description = "" } # category itemnums_hash_function = { label = "Itemnums-Hash-Funktion" short_description = "This specifies the hash function used for this database field's itemnums hash table" long_description = "This specifies the hash function used when inserting or looking up items in this database field's itemnums hash table. The itemnums hash table is part of the normalization structure used internally to convert values of the field to integers. It is not usually necessary to change this value, but in some cases, the default hash function will be slow for certain fields, and this option can improve performance. Possible values are mult_sum_c_i, mult_sum_c_i_8, shift_sum, rand_sum, and rand_sum_shift." } sql_field_length = { label = "Feldlänge" short_description = "Die maximale Länge eines Felds (in Zeichen) in der SQL-Datenbank." long_description = "This specifies the maximum length of the field, in character, in the SQL database (including the internal database). Setting this to a lower value may save some space in the SQL database, but causes all values to be truncated to the number of characters specified. Setting it to a higher value allows more characters to be tracked in the database." } # sql_field_length integer_bits = { label = "Integer-Bits" short_description = "" long_description = "This determines the number of bits used in the database to represent the integer values in a database field (including itemnum fields). Setting integer bits to \"Auto\" means that it will use the maximum efficient machine word size, e.g., 32 bits on a 32-bit system, or 64 bits on a 64-bit system." } # integer_bits } # fields options = { label = "Datenbank-Optionen" # edit_button = "Edit Database Options" # edit_form_title = "Edit Database Options" option_group = true server_not_found_message = "MySQL-Server wurde nicht gefunden." automatically_update_when_older_than = { label = "Datenbank autom. aktualisieren, wenn älter als" label_2 = "Sekunden" short_description = "Die Datenbank automatisch aktualisieren, wenn Statistiken dargestellt werden und die Datenbank seit so vielen Sekunden nicht mehr aktualisiert wurde" long_description = "This controls whether $PRODUCT_NAME automatically updates the database when the statistics are viewed. When this option is disabled, $PRODUCT_NAME never updates or creates the database unless you manually tell it to. When this option is enabled, it specifies the number of seconds old a database can be before it is automatically updated when the statistics are viewed. For instance, if the value is 3600, $PRODUCT_NAME will automatically update the database when the statistics are viewed if it has not updated the database in the past hour (3600 seconds = 1 hour). If this value is 86400, $PRODUCT_NAME will only update if the database has not been updated in the past day (86400 seconds = 1 day). Regardless of the setting of this option, $PRODUCT_NAME will build the database from scratch when the statistics are viewed if the database has never been built before.

" is_invalid_number_message = "Bitte geben Sie eine gültige Updatezeit in Sekunden ein, der Wert muss >=1 sein." } # automatically_update_when_older_than # 09/Dec/2008 - KHP - prompt_before_erasing_database is not anymore valid because we always prompt # prompt_before_erasing_database = { # label = "Prompt before erasing database" # short_description = "True if $PRODUCT_NAME should prompt before erasing a non-empty database" # long_description = "This controls whether $PRODUCT_NAME will prompt for verification before erasing an existing disk-based database. If this option is true, and Rebuild Database is clicked, $PRODUCT_NAME will ask if you really want to destroy all data in the database. If this option is false, $PRODUCT_NAME will erase the database without asking, and rebuild it from the log data." # } # prompt_before_erasing_database # 06/Nov/2007 - KHP - Deprecated # # database_directory = { # label = "Database $lang_stats.directory" # short_description = "The location of the database" # long_description = "This is the pathname of a database on disk. If this option is blank, $PRODUCT_NAME will store the database in a $lang_stats.directory with the same name as the profile, in the Databases $lang_stats.directory in the LogAnalysisInfo $(lang_stats.directory).

Information from log files is stored in this database, and when reports are generated, they are generated using the information in the database. See {=docs_chapter_link('database')=}." # is_empty_message = "Please define a database $lang_stats.directory." # } # database_directory # database_type = { # label = "Database type" # internal = { # label = "Internal" # } # internal # mysql = { # label = "MySQL" # } # mysql # } # database_type # 2007-06-04 - GMF - Deprecated # lock_database_when_in_use = { # label = "Lock database when in use" # } # lock_database_when_in_use # 06/Nov/2007 - KHP - Deprecated # mysql_server_hostname = { # label = "Hostname" # short_description = "The hostname of the MySQL server" # long_description = "This specifies the hostname or IP of the MySQL server used as the back-end database" # is_empty_message = "Please define a hostname." # } # mysql_server_hostname # mysql_server_password = { # label = "Password" # short_description = "The password of the MySQL server" # long_description = "This specifies the password to use to access the MySQL server used as the back-end database" # } # mysql_server_password # mysql_server_username = { # label = "Username" # short_description = "The username of the MySQL server" # long_description = "This specifies the username to use to access the MySQL server uses as the back-end database" # is_empty_message = "Please define a username." # } # mysql_server_username # mysql_database_name = { # label = "Database name" # short_description = "The name of the MySQL database" # long_description = "This specifies the name of the database on the MySQL server uses as the back-end database" # is_empty_message = "Please define a database name." # is_invalid_name_message = "Invalid characters in database name. Please use only alphanumeric characters and underscores without any spaces in the database name." # leave_blank_to_use_profile_name_info = "(leave blank to use the profile name)" # field_info = "The database name is the name of the target database where $PRODUCT_NAME will store the processed data." # field_info_2 = "The database name should be unique for this profile; you cannot point two profiles to the same database. This should also be used only by $PRODUCT_NAME; you should not point $PRODUCT_NAME to an existing database which is being used for some other purpose. $PRODUCT_NAME will create the database if it does not exist." # field_info_3 = "Leave the database name field blank to use the profile name as the database name." # } # mysql_database_name # mysql_server_socket = { # label = "MySQL socket" # short_description = "The socket file to use to access MySQL" # long_description = "This specifies the socket to use to access MySQL, if a socket is used instead of TCP/IP. If this option is blank, the default socket is used." # } # mysql_server_socket server = { type = { label = "Datenbank-Servertyp" short_description = "" long_description = "" } # type dsn = { label = "DNS" short_description = "" long_description = "" } # dsn hostname = { label = "Hostname" short_description = "Der Hostname des MySQL-Servers" long_description = "Dies spezifiziert den Hostnamen oder die IP des MySQL-Servers, der als Backend-Datenbank verwendet wird" is_empty_message = "Bitte geben Sie einen Hostnamen an." } username = { label = "Benutzername" short_description = "" long_description = "" is_empty_message = "Bitte geben Sie einen Benutzernamen an." } # username password = { label = "Kennwort" short_description = "" long_description = "" } # password database_name = { label = "Datenbankname" short_description = "Der Name der SQL-Datenbank." long_description = "Dies spezifiziert den Namen der Datenbank auf dem MySQL-Server, der als Backend-Datenbank verwendet wird" is_empty_message = "Bitte geben Sie einen Datenbanknamen an." is_invalid_name_message = "Ungültige Zeichen im Datenbanknamen. Bitte verwenden Sie nur alphanummerische Zeichen und den Unterstrich und keine Leerzeichen." leave_blank_to_use_profile_name_info = "(leer lassen, um den Profilnamen zu verwenden)" field_info = "Der Datenbankname ist der Name der Zieldatenbank in die $PRODUCT_NAME die verarbeiteten Daten speichert." field_info_2 = "Der Datenbankname muß eindeutig für dieses Profil sein; es dürfen nicht zwei Profile auf die gleiche Datenbank zeigen. Sie sollte nur von $PRODUCT_NAME verwendet werden; Sie sollten keine existierende Datenbank verwenden, die für andere Zwecke verwendet wird$PRODUCT_NAME erstellt die Datenbank, wenn sie nicht existiert." field_info_3 = "Lassen Sie das Datenbanknamen-Feld leer, um den Profilnamen als Datenbanknamen zu verwenden." } # database_name sql_table_name_prefix = { label = "SQL-Tabellennamen-Prefix" short_description = "Ein Prefix, dass am Anfang jedes SQL-Tabellennamens angefügt wird." long_description = `This specifies a prefix to add to the beginning of every table name in the database. This can be used to share a single database between multiple profiles, by separating them into "Namespace" using a different prefix for each profile.` } # sql_table_name_prefix sql_table_name_suffix = { label = "SQL-Tabellennamen-Suffix" short_description = "Das Suffix, dass am Ende jedes SQL-Tabellennamens angefügt wird." long_description = `This specifies a suffix to add to the end of every table name in the database. This can be used to share a single database between multiple profiles, by separating them into "Namespace" using a different suffix for each profile.` } # sql_table_table_suffix database_directory = { label = "Datenbank-$lang_stats.directory" short_description = "Der Ort der internen Datenbank" long_description = "This is the pathname of an internal database on disk. If this option is blank, $PRODUCT_NAME will store the database in a $lang_stats.directory with the same name as the profile, in the Databases $lang_stats.directory in the LogAnalysisInfo $(lang_stats.directory).

Information from log files is stored in this database, and when reports are generated, they are generated using the information in the database. See {=docs_chapter_link('database')=}." } # database_directory server_socket = { label = "Server-Socket" short_description = "Die Socket-Datei für den Zugriff auf MySQL" long_description = "Dies benennt den Socket für den Zugriff auf MySQL, falls ein Socket anstelle von TCP/IP verwendet wird. Wenn die Option leer ist, wird der Standard-Socket verwendet." } # server_socket bulk_import_method = { label = "Massenimport-Methode" short_description = "Diese Methode wird für den Import größerer Datenmengen in Datenbanken verwendet." long_description = `

This specifies the method used to import data in bulk into databases, during database builds and updates.

With a Microsoft SQL Server profile, the choices are "ODBC" and "bulk_insert". ODBC will work in all cases, but is slower (sometimes much slower). bulk_insert is usually faster, but requires the use of a temporary directory specified ({=docs_option_link('database.options.server.load_data_directory')=} and {=docs_option_link('database.options.server.load_data_directory_on_server')=}) which must be accessible to both the SQL Server and to $PRODUCT_NAME. One way to do this (the fastest way) is to have both installed on the same server; if that's not possible, then there must be a share mapped to both servers, and the temporary directory must be a UNC path to that share.

With an Oracle profile, the choices for are "ODBC" and "sqlldr". ODBC will work in all cases, but is slower; sqlldr is much faster, but requires $PRODUCT_NAME to be running as a user with access to the sqlldr program (which must also be in the executable path) to load data into the database.

With a MySQL profile, the choices are "load_data_local_infile" or "load_data_server_infile"; with the first option, data loads are done with a LOAD DATA LOCAL INFILE query, which works whether MYSQL is local or not, but is not permitted in some configurations of MySQL; with the second option, data loads are done with LOAD DATA INFILE, putting temporary files in the location specified by {=docs_option_link('database.options.server.load_data_directory')=}, which requires the MySQL server to be running locally, or at least have access to the disk where $PRODUCT_NAME is running.

With other databases, this option has no effect.

` } # bulk_import_method load_data_directory = { label = "Verzeichnis für zu ladende Daten" short_description = "In diesem Verzeichnis werden die Dateien gespeichert, die in die Datenbank geladen werden sollen." long_description = `

This option is used in MySQL and Microsoft SQL Server profiles when the {=docs_option_link('database.options.server.bulk_import_method')=} option is set to load_data_server_infile or bulk_insert. It specifies the temporary directory where $PRODUCT_NAME should store intermediate files for upload into MySQL, while building or updating a database. If using MySQL, it must be a directory which is accessible, by the same pathname, to both the SQL server, and $PRODUCT_NAME; if using MS SQL, it must be accessible to $PRODUCT_NAME, and the server must be able to reach it from the location specified by {=docs_option_link('database.options.server.load_data_directory_on_server')=}. ` } # load_data_directory load_data_directory_on_server = { label = "Verzeichnis für zu ladende Daten auf dem Datenbank-Server" short_description = "Dieses Verzeichnis wird vom Datenbank-Server zum Lesen temporärer Dateien in die Datenbank verwendet." long_description = `

This option is used in Microsoft SQL Server profiles when the {=docs_option_link('database.options.server.bulk_import_method')=} option is set to bulk_insert. It specifies the temporary directory where the server should read intermediate files for upload into the database, while building or updating a database. $PRODUCT_NAME will write these files to {=docs_option_link('database.options.server.load_data_directory')=}, and the server will read them from this location, which must point to the same directory. For instance, this could be a physical disk on the server, mapped to the $PRODUCT_NAME system, referred to in this option by its physical name and referred in {=docs_option_link('database.options.server.load_data_directory')=} by its network share path. ` } # load_data_directory_on_server } # server } # options tuning = { label = "Datenbank-Feinabstimmung" option_group = true edit_button = "Datenbank-Feinabstimmung bearbeiten" edit_form_title = "Datenbank-Feinabstimmung bearbeiten" is_invalid_byte_number_message = "Bitte geben Sie einen gültigen Wert für \"$param1\" an." split_queries = { method = { label = "Methode für das Aufteilen von SSQL-Abfragen" short_description = "Bestimmt die Methode, mit der SSQL-Abfragen aufgeteilt werden." long_description = `This option specifies the method used to split large SSQL queries across multiple threads, to improve performance. If this option is "Auto", SSQL queries are split into as many threads as there are processing cores (usually a good default); so for instance, on a 4-processor system with four cores per processor, large SSQL queries would be split into 16 subqueries, which will run them much faster than a single processing core. If this option is "Angepasst", then the number of threads is specified by the {=docs_option_link('database.tuning.split_queries.number_of_threads')=} option. If this option is "Keine", then query splitting does not occur, and all queries are run in the main thread. Splitting queries can significantly speed the performance of long queries on large datasets. SSQL queries are used to generate table reports, compute session information, build cross-reference tables, and more, so this option affects the performance of many operations. Because of the overhead of re-joining the results of each thread, query splitting is only done for large queries; small queries are always run with one thread.` } # method number_of_threads = { label = "Anzahl Threads für das Aufteilen von SSQL-Abfragen." short_description = "Bestimmt die Anzahl Threads, in die eine SSQL-Abfrage aufgeteilt wird." long_description = `This option specifies the number of threads used to split large SSQL queries across multiple threads, to improve performance. This option is used when the {=docs_option_link('database.tuning.split_queries.method')=} option is "Angepasst"; otherwise, it has no effect.` } # number_of_threads } # split_queries # update_xrefs_on_update = { KHP 20/Dec/2011 - deprecated # label = "Update/build xref tables after updating/building database" # short_description = "Update or build all xref tables automatically, after completing a database build or update" # long_description = "This option specifies whether cross-reference tables should automatically be kept up to date with the main table of the database. If this is true, it rebuilds or updates all cross-reference tables immediately after building or updating the main table of the database. This extra step takes additional time, so it slows the database build or update. However, if a cross-reference table is not up to date when a report which depends on it is generated, the cross-reference table will have to be built at that time, before the report can be displayed, which can slow down the display of that report significantly. Turn this option on for better report generation performance; turn it off for better database build/update performnace." # } # update_xrefs_on_update build_all_indices_simultaneously = { label = "Alle Indexe simultan aufbauen" short_description = "Nach der Verarbeitung der Logdaten werden alle Indexe simultan aufgebaut, um eine bessere Performance zu erreichen" long_description = "This option affects the stage of log processing when indices are rebuilt. This option only has an effect if {=docs_option_link('bidlp')=} is false. If this option is true, $PRODUCT_NAME will scan through the main database table just once during the index rebuilding stage, building all indices simultaneously. If this option is false, $PRODUCT_NAME will build each index separately, scanning through the main table once per index. Turning this option on can greatly speed up index building by combining all the table scans into one, but will use much more memory, since all indices will need to be in memory at the same time. See also {=docs_option_link('bxtais')=}." } # build_all_indices_simultaneously build_all_xref_tables_simultaneously = { label = "Alle Crossreferenztabellen simultan aufbauen" short_description = "Nach der Verarbeitung der Logdaten werden alle Crossreferenztabellen simultan aufgebaut, um eine bessere Performance zu erreichen" long_description = "This option affects the stage of log processing when cross-reference tables are rebuilt. This option only has an effect if {=docs_option_link('bxtdlp')=} is false. If this option is true, $PRODUCT_NAME will scan through the main database table just once during the cross-reference rebuilding stage, building all cross-reference tables simultaneously. If this option is false, $PRODUCT_NAME will build each cross-reference table separately, scanning through the main table once per cross-reference table. Turning this option on can greatly speed up cross-reference building by combining all the table scans into one, but will use much more memory, since all cross-reference tables will need to be in memory at the same time. See also {=docs_option_link('bxtais')=}." } # build_all_xref_tables_simultaneously # build_xref_tables_in_threads = { KHP 20/Dec/2011 - deprecated # label = "Build cross-reference tables in threads" # short_description = "Build cross-reference tables in threads, and merge them at the end" # long_description = "This option affects multi-processor database builds. When this option is true, each thread (processor) builds the cross-reference tables for its part of the database separately, and they are merged in a final stage to create the cross-reference tables for the main database. When this option is false, threads do not build cross-reference tables; the cross-reference tables are built in the final stage from the main table (which is merged from the threads' main tables). If your system has fast disk I/O, it is generally best to leave this on, to spend as much time as possible using all processors. But if disk I/O is slow, the I/O contention between processes may slow both threads down to the point that using multiple processors is actually slower than using one." # } # build_xref_tables_in_threads build_indices_in_threads = { label = "Indexe in Threads aufbauen" short_description = "Baut Indexe in Threads auf und verbindet sie am Ende" long_description = "This option affects multi-processor database builds. When this option is true, each thread (processor) builds the indices for its part of the database separately, and they are merged in a final stage to create the indices for the main database. When this option is false, threads do not build indices; the indices are built in the final stage from the main table (which is merged from the threads' main tables). If your system has fast disk I/O, it is generally best to leave this on, to spend as much time as possible using all processors. But if disk I/O is slow, the I/O contention between processes may slow both threads down to the point that using multiple processors is actually slower than using one." } # build_indices_in_threads build_indices_in_memory = { label = "Indexe im Speicher aufbauen" short_description = "Baut Indexe im Speicher auf und versucht, keine Dateien auf dem Datenträger zu verwenden" long_description = "When this option is true, database indices are held completely in memory during database builds. When this option is false, database indices are mapped to files on the disk. Keeping the indices in memory can increase the performance of the index building part of database builds, sometimes by a factor of 3x or more, but requires enough memory to hold the indices (which can exceed 1G in some cases)." } # build_indices_in_threads build_indices_during_log_processing = { label = "Indexe während der Logverarbeitung aufbauen" short_description = "Während dem Lesen der Lodaten werden die Indexe direkt aufgebaut und nicht in einem separaten Schritt" long_description = "This option affects the stages of log processing when indices are built. When this option is true, indices are kept in memory during log processing, and are incrementally updated on the fly as new log lines are processed. When this option is false, indices are updated in a single stage after all log data has been processed. Turning this option on can speed database building because it eliminates the need to re-read the main database table after processing log data, but can require much more memory, because all indices must be kept in memory while log data is processed." } # build_indices_during_log_processing keep_itemnums_in_memory = { label = "Itemnums im Speicher behalten" short_description = "Behält die Itemnum-Tabellen im Speicher, eher als Sie auf den Datenträger auszulagern" long_description = "When this option is true, database itemnum tables (internal tables which convert from database field values to numbers, and back) are held completely in memory. When this option is false, itemnum tables are kept on disk. Turning this on makes most operations, especially database builds, much faster, but can require huge amounts of memory if huge itemnum tables are required. When this option is turned off, some speed can be recovered by using a large value of {=docs_option_link('ics')=}." } # keep_itemnums_in_memory # KHP 20/Sep/2011 - disabled #itemnums_cache_size = { # label = "Itemnums cache size" # short_description = "The size of the cache in memory for itemnums, which is used to speed up access to itemnums tables on disk" # long_description = "This specifies the amount of memory to use for the itemnums cache. This is used, when {=docs_option_link('kiim')=} is false, to speed up access to the itemnums tables on disk. When {=docs_option_link('kiim')=} is true, this has no effect." #} # itemnums_cache_size # KHP 20/Sep/2011 - disabled #xref_tables_cache_size = { # label = "Cross-reference tables cache size" # short_description = "The size of the cache in memory for cross-reference, which is used to speed up access to cross-reference tables on disk" # long_description = "This specifies the amount of memory to use for the cross-reference tables cache. This is used to speed up access to the itemnums tables on disk; the more memory available for the cache, the faster cross-reference table access will be (especially during database builds and updates)." #} # xref_tables_cache_size build_xref_tables_and_indices_simultaneously = { label = "Crossreferenztabellen und Indexe simultan aufbauen" short_description = "Nach der Verarbeitung der Logdaten werden alle Crossreferenztabellen und Indexe simultan aufgebaut, um eine bessere Performance zu erreichen" long_description = "This option affects the stages of log processing when cross-reference tables indices are rebuilt. This option only has an effect if {=docs_option_link('bidlp')=} and {=docs_option_link('bxtdlp')=} are false. If this option is true, $PRODUCT_NAME will combine the index-building and cross-reference table building stages of log processing into one, scanning through the main database table once and building both indices and cross-reference tables. If this option is false, $PRODUCT_NAME will build indices and cross-reference tables separately, scanning through the main table twice. Turning this option on can speed up index and cross-reference table building by combining the two table scans into one, but will use more memory, since both the cross-reference tables and the indices will need to be in memory at the same time." } # build_xref_tables_and_indices_simultaneously build_xref_tables_during_log_processing = { label = "Crossreferenztabellen während der Logverarbeitung aufbauen" short_description = "Während dem Lesen der Lodaten werden die Crossreferenztabellen direkt aufgebaut und nicht in einem separaten Schritt" long_description = "This option affects the stages of log processing when cross-reference tables are built. When this option is true, cross-reference tables are kept in memory during log processing, and are incrementally updated on the fly as new log lines are processed. When this option is false, cross-reference tables are updated in a single stage after all log data has been processed. Turning this option on can speed database building because it eliminates the need to re-read the main database table after processing log data, but can require much more memory, because all cross-reference tables must be kept in memory while log data is processed." } # build_xref_tables_during_log_processing # KHP 21/July/2010 - - disabled # hash_table_expansion_factor = { # label = "Expansion factor for database table" # short_description = "Factor by which a hash table expands when necessary" # long_description = "This controls the factor by which the database hash table, an internal table used to store information in the database, expands when necessary. A factor of 2 means that the database table will double in size when it needs more space, while 10 means that the database table size will increase by a factor of 10. Setting this to a higher value will eliminate the need for some internal data shuffling, and will speed processing a bit; however, it will also use more memory and disk space." # } # hash_table_expansion_factor # KHP 21/July/2010 - - disabled # hash_table_starting_size = { # label = "Initial size of database table" # short_description = "Initial size of a database hash table" # long_description = "This controls the initial size of the database hash table, an internal table used to store information in the database. Setting this to a higher value will eliminate the need for some internal data shuffling, and will speed processing a bit; however, it will also use a bit more memory." # } # hash_table_starting_size # KHP 21/July/2010 - - disabled # hash_table_surplus_factor = { # label = "Surplus factor for database table" # short_description = "Number of times larger a hash table is than its contents" # long_description = "This controls the amount of surplus space maintained in the database hash table, an internal table used to store information in the database. Setting this to a higher value will increase database access speed, but will use more memory. This value represents the proportion of space in the table that should remain free; when that space fills up, the table is expanded by {=docs_option_link('htef')=}. A value of 1 means that at least 10% of the table will always be free, a value of 2 means that at least 20% is free, and so on, up to a value of 9, where at least 90% of the table is kept free at all times. With a value of 1, the same table size will hold 9 times more data than with a value of 9, so the data section of your database (which is often the largest part) will be one-ninth the size with a value of 1 than it would be with a value of 9. However, lower values slow down database building and accessing slightly." # } # hash_table_surplus_factor list_cache_size = { label = "Größe des Listencache" short_description = "Maximaler Speicherverbrauch des Listencache" long_description = "This option specifies the maximum memory used by the list cache. The list cache is used when tracking unique item lists (e.g. visitors) or database indices, to improve performance when lists get very large. Normally, lists are stored in a form that uses minimal memory, but does not allow items to be added quickly to the list in some situations. When a list appears to be slow, it is moved to the list cache, and expanded into a high-memory-usage, high-performance format. At the end of the operation, it is compacted into the low-memory-usage format again. When the cache is full, the least-used cached lists are compacted. Setting this option higher will use more memory during database cross-reference group building and index building, but will allow more lists to be kept in the fast-access format -- this usually improves performance, sometimes dramatically." } # list_cache_size # KHP 20/Sep/2011 - disabled #maximum_main_table_segment_merge_size = { # label = "Maximum main table segment size to merge" # short_description = "Maximum size of main table segment to merge; larger segments will be copied" # long_description = "This option specifies the maximum size of a main table segment that will be merged while merging databases. If a segment is smaller than this, the merge will be done by adding each entry to the existing final segment of the main database table; if there are more than this number of entries, the merge will be done by copying the entire table and indices to the main database, creating a new segment. Copying is faster, but since it creates a new segment it fragments the database, slowing queries slightly. Therefore, setting this to a high value will improve the query performance of the final database, at a cost in log processing performance." #} # maximum_main_table_segment_merge_size # KHP 08/Dec/2010 - disabled # maximum_main_table_segment_size = { # label = "Maximum main table segment size" # short_description = "The maximum size of one segment of main database table" # long_description = "This determines the maximum size of one segment of the main database table. Segments are files stored in the database directory; $PRODUCT_NAME prefers to leave the entire table in a single file, but operating system limitations sometimes make that impossible. So when the table exceeds this size, it is split into multiple files, each smaller than this size. This reduces performance somewhat, but allows arbitrarily large datasets to be represented in a database. If you set this higher than the operating system allows, you will get errors when processing very large datasets (10 million lines of log data corresponds roughly to 1GB of main table, depending on the database structure and other factors)." # } # maximum_main_table_segment_size # KHP 20/Sep/2011 - disabled #maximum_xref_table_segment_size = { # label = "Maximum cross-reference table segment size" # short_description = "The maximum size of one segment of a cross-reference database table" # long_description = "This determines the maximum size of one segment of a cross-reference database table. Segments are files stored in the database directory; $PRODUCT_NAME prefers to leave the entire table in a single file, but operating system limitations sometimes make that impossible. So when the table exceeds this size, it is split into multiple files, each smaller than this size. This reduces performance significantly, but allows arbitrarily large datasets to be represented in a database. If you set this higher than the operating system allows, you will get errors when processing very large datasets. Most operating systems can handle files up to 2 GB in size; a setting of 1 GB should be safe in most cases, and should prevent segmentation for all but the largest datasets." #} # maximum_xref_table_segment_size maximum_xref_segment_merge_size = { label = "Maximale Xref-Segmentgröße beim Einfügen" short_description = "Maximale Größe des Crossreferenztabellensegments zum Einfügen; größere Segmente werden kopiert" long_description = "This option specifies the maximum size of a cross-reference table segment which will be merged during a database merge operation; e.g., at the end of a multiprocessor database build. Segments large than this will be copied to the main database, and will form their own segments; segments smaller than this will be merged into the main database. Copies can be much faster than merges, but result in a more segmented main database, making queries slower. Therefore, setting this to a high value will improve the query performance of the final database, at a cost in log processing performance." } # maximum_xref_segment_merge_size # KHP 20/Sep/2011 - disabled #maximum_paging_caching_buffer_memory_usage = { # label = "Maximum caching buffer memory usage" # short_description = "This specifies the maximum memory to be used by a paging caching buffer" # long_description = "This specifies the maximum memory to be allocated for use by each paging caching buffer. Each active table in the database (each table currently in use by the active process) hasa paging caching buffer associated with it, which keeps some parts of that table in memory for faster access. The larger this number is, the more of each table can be kept in memory, and the faster database operations will be; however, the larger this number is, the more memory will be used." #} # maximum_paging_caching_buffer_memory_usage maximum_paging_caching_buffer_full_load = { label = "Maximaler Pufferspeicher (vollständiges Laden)" short_description = "Gibt die maximale Größe einer Datei an, die komplett in den Speicher geladen wird." long_description = "This specifies the maximum size of a file, for instance a database table, to be loaded fully into memory. When this option is set higher, more files will be loaded fully into memory, which generally improves performance; however, when this option is set higher, database operations will use more memory." } # maximum_paging_caching_buffer_full_load } # tuning } # database log = { fields = { label = "Logfelder" short_description = "Information über ein bestimmtes Feld in der Logdatei" long_description = "This describes a single field in the log data. You will generally not need to use this option unless you are creating your own log format description file.

A log field may be either an actual field which is present in each log entry of the file (for instance, the \"page\" field, or the \"hostname\" field), or a derived field which is not present in log entries, but is derived from the entries which are present, and from other information. Derived fields include fields like \"domain description,\" which is a textual description of the host domain (e.g. \"France\" for .fr), and is derived from the hostname field, or the \"day of week\" field, which is derived from the date/time field, or the \"operating system\" field, which is derived from the agent field. Derived fields cannot be deleted or edited, though they will disappear if the field they are derived from is deleted. See below for more information about specific derived fields.

For fields which are not derived, you can specify a number of parameters. The values of the parameters are as follows:

  1. Field name: The name of this field.

  2. Field type: The type of the log field. The type describes the format of the field, and sometimes also describes the purpose of the field. Allowable field types are:

    • page (page): The \"page hit\" field of a web log, or the \"URL hits\" field of a proxy log, or any other field in a /-divided pathname format; e.g. /mypages/dir/file.html. This also acts like a \"hierarchical\" field.

    • host (host): The browsing hostname, or any field in hostname format; e.g. my.host.com. This field will be used to derive the domain description field. This also acts like a \"hierarchical\" field.

    • URL (url): Any field in URL format (e.g. http://hostname/page.html). The search phrase field is derived from this field.

    • date_time (date/time): A combined date/time field. The format of this field depends on the setting of {=docs_option_link('df')=} and {=docs_option_link('tf')=}. If this field is not present in the log, but date and time are, this field will be derived from those fields. The day of week, hour of day, week of year, and day of year fields are derived from this field.

    • date (date): A date; year, month, and day. The format of this field depends on the setting of {=docs_option_link('df')=}.

    • time (time): A time of day; hour, minute, and second. The format of this field depends on the setting of {=docs_option_link('tf')=}.

    • agent (agent): A user agent field. The browser OS, browser type, and browser version fields are derived from this field.

    • size (size): The size (bytes transferred) field. This field will be used to compute bandwidth information. The size range field is derived from this field.

    • integer (integer): Any field whose value is an integer (e.g. 67).

    • response (response): The \"server response\" field, containing the numeric HTTP server response code (e.g. 200, 404).

    • hierarchical (hierarchical): Any field which is multi-level hierarchical. The hierarchy divider and other parameters can be specified below. See {=docs_chapter_link('hierarchies')=}.

    • flat (flat): Any other field which is hierarchical flat; all fields are directly below the root of the hierarchy. See {=docs_chapter_link('hierarchies')=}.

  3. Index: This specifies the index of this log field in the log data. For instance, if this is the first log field in the entry, this should be 1. If this is the fifth log field in the line, it should be 5. This can be left 0 if the log field is being filled in by {=docs_option_link('pre')=} or by parsing filters.

  4. Subindex: This specifies the subindex of this log field in the log data. This can usually be left at 0. A subindex is required only when the log field is contained inside another quoted field. In that case, the position of the quoted field is specified using the index, and the subindex indicates the position within the quoted field, by space-separated subfield. This can be left 0 if the log field is being filled in by {=docs_option_link('pre')=} or by parsing filters.

  5. Hierarchy dividers: This specifies the character(s) which divide hierarchy levels in this field (if this field is hierarchical). Up to three characters may be specified. For instance, in a standard \"page\" field (e.g. /one/sample/page.html), the divider would be / or /?, or /?& (include the ? if you want the page field to be split on the URL parameters divider; include the & if you want it split between parameters). See {=docs_chapter_link('hierarchies')=}.

  6. Left-to-right hierarchy: This specified whether the hierarchy is left-to-right (i.e. with the higher hierarchy levels at the left, like /one/sample/page.html), or right-to-left (i.e. with the higher hierarchy level at the right, like some.hostname.com). See {=docs_chapter_link('hierarchies')=}.

  7. Leading hierarchy divider: This specifies whether the field has a hierarchy divider at its highest end (e.g. /one/sample/page.html, which starts with /), or not (e.g. one/sample/page.html or some.hostname.com, which have hierarchy dividers only inside the field).

  8. Case sensitive: This controls whether the field is case-sensitive. When this is false, $PRODUCT_NAME treats items as the same if they differ only in the case (uppercase/lowercase); for instance, index.html and Index.html are treated as the same page. The case of the item as it appears in statistics is determined by the case of the first item $PRODUCT_NAME sees while processing the log data, so if the first hit is on index.html and the second is on Index.html, it will appear in the statistics as two hits on index.html. When this option is true, $PRODUCT_NAME treats differently-cased items as different items, so in the example above, the statistics would list one hit on index.html, and one hit on Index.html.

Derived Fields

Derived fields are \"fake\" log fields, in the sense that they aren't really in the log data. Instead, they are derived in some way from the real fields in the log, or from something else. Derived fields can be used as database fields, even if the field(s) they are derived from are not used in the database. Possible derived fields are:

Editing the profile file directly

Most users will edit the log fields from the web GUI, but power users may wish to edit them by editing the profile file using a text editor. In the profile file, the format is \"log_field_info\", followed by \"standard\", followed by a list of log fields, followed by \"field_end\". Each field in the list contains the options in the order listed above; i.e., field name, field type, index, subindex, dividers, left-to-right, leading divider, case sensitive, followed by an extra unused option which should be left blank. See any log format description file for a good example of this format.

" case_sensitive = { label = "Groß/Klein unterscheiden" short_description = "Logfelder unterscheiden Groß/Klein-Schreibung" long_description = "This controls whether the field is case-sensitive. When this is false, $PRODUCT_NAME treats items as the same if they differ only in the case (uppercase/lowercase); for instance, index.html and Index.html are treated as the same page. The case of the item as it appears in statistics is determined by the case of the first item $PRODUCT_NAME sees while processing the log data, so if the first hit is on index.html and the second is on Index.html, it will appear in the statistics as two hits on index.html. When this option is true, $PRODUCT_NAME treats differently-cased items as different items, so in the example above, the statistics would list one hit on index.html, and one hit on Index.html." } # case_sensitive derived_from_1 = { label = "Abgeleitet von" short_description = "" long_description = "" } derived_from_2 = { label = "Abgeleitet von 2" short_description = "" long_description = "" } dividers = { label = "Trenner" short_description = "" long_description = "" } # dividers hierarchy_dividers = { label = "Hierarchie-Trenner" short_description = "Trenner für die Trennung von Logfeld-Hierarchien." long_description = "This specifies the character(s) which divide hierarchy levels in this field (if this field is hierarchical). Up to three characters may be specified. For instance, in a standard \"page\" field (e.g. /one/sample/page.html), the divider would be / or /?, or /?& (include the ? if you want the page field to be split on the URL parameters divider; include the & if you want it split between parameters). See {=docs_chapter_link('hierarchies')=}." } # hierarchy_dividers index = { label = "Index" short_description = "Logfeld-Index" long_description = "This specifies the index of this log field in the log data. For instance, if this is the first log field in the entry, this should be 1. If this is the fifth log field in the line, it should be 5. This can be left 0 if the log field is being filled in by {=docs_option_link('pre')=} or by parsing filters.

" is_invalid_number_message = "Bitte geben Sie einen gültigen Index an, eine Nummer >= 0." } # index leading_divider = { label = "Führender Trenner" short_description = "Führender Hierarchie-Trenner" long_description = "This specifies whether the field has a hierarchy divider at its highest end (e.g. /one/sample/page.html, which starts with /), or not (e.g. one/sample/page.html or some.hostname.com, which have hierarchy dividers only inside the field)." } # leading_divider label = { label = "Logfeldname" is_empty_message = "Bitte legen Sie einen Logfeldnamen fest." is_duplicate_message = "Doppelter Logfeldname. Bitte geben Sie einen anderen Namen an." } left_to_right = { label = "Links nach rechts" short_description = "Logfeld-Hierarchie von links nach rechts" long_description = "This specified whether the hierarchy is left-to-right (i.e. with the higher hierarchy levels at the left, like /one/sample/page.html), or right-to-left (i.e. with the higher hierarchy level at the right, like some.hostname.com). See {=docs_chapter_link('hierarchies')=}." } # left_to_right left_to_right_hierarchy = { label = "Links nach rechts-Hierarchie" short_description = "" long_description = "" } # left_to_right_hierarchy subindex = { label = "Unterindex" short_description = "Logfeld-Unterindex" long_description = "This specifies the subindex of this log field in the log data. This can usually be left at 0. A subindex is required only when the log field is contained inside another quoted field. In that case, the position of the quoted field is specified using the index, and the subindex indicates the position within the quoted field, by space-separated subfield. This can be left 0 if the log field is being filled in by {=docs_option_link('pre')=} or by parsing filters." is_invalid_number_message = "Bitte geben Sie einen gültigen Unterindex an, eine Nummer >= 0." } # subindex type = { label = "Typ" } # type } # fields filter_initialization = { label = "Filter initialization" short_description = "" long_description = "" } # filter_initialization filter_finalization = { label = "Filter finalization" short_description = "" long_description = "" } # filter_finalization filters = { label = "Logfilter" short_description = "Gibt einen Filter an, der Logeinträge annimmt oder verwirft" long_description = "$PRODUCT_NAME accepts or rejects entries in the log data based on a collection of filters. These filters can be used to display only part of the log data, for instance if you're interested only in the hits on a particular $lang_stats.directory, or on a particular day; or they can be used to perform conversions, for instance to replace an IP address with the name of the user of that computer. The filters are very powerful; you can use them to prune or convert the data in almost any imaginable way. The log.filters node contains one subnode for each log filter; each is a statement written in {=docs_chapter_link('salang')=}. See {=docs_chapter_link('filters')=} for more information." } # filters field_options = { sessions_id_field = { label = "Session-ID-Feld" short_description = "Das Feld wird verwenden, um verschiedene Sessions zu unterscheiden." long_description = "This field is used to distinguish one session from another. When this field is not specified, sessions are distinguished from each other by comparing the Sessions User field, together with the session timeout. When this field is specified, it directly determine the session ID of each event, so events are grouped into the same session if and only if their session ID field value matches." } # sessions_id_field sessions_visitor_id_field = { label = "Session-Benutzer-Feld" short_description = "Das Feld wird verwenden, um verschiedene Session-Benutzern zu unterscheiden." long_description = "This field is used, when computing session reports and other session information, to distinguish one session user from another. This refers to a log field; if the value of that log field is the same for two events, they are considered to be events from the same user. This is often an IP, hostname, cookie, or device ID field." } # sessions_visitor_id_field sessions_event_field = { label = "Session-Ereignis-Feld" short_description = "Das Feld wird verwendet, um festzulegen, wann ein Ereignis ein Session-Ereignis ist." long_description = `This field is used, when computing session reports and other session information, to determine when an event is a session event. An event is a session event if the value of this field is 1; it is not a session event if the value of the field is 0 (or if it is not a number). For instance, in a web log, this might be the "Pageviews" field, which is 1 for session events, and 0 for non-session events (non-page-view hits).` } # sessions_event_field sessions_page_field = { label = "Session-Seiten-Feld" short_description = `The field used to determine which "Seite" was hit in a session event.` long_description = `This field is used, when computing session reports and other session information, to determine which "Seite" was hit. In web logs, this is typically the "Seite" field, or the "URL" field. In other logs, it can be any field which somehow answers the question, "Worauf wurde zugegriffen?" or "Was ist geschehen?"` } # sessions_page_field } # field_options format = { allow_newlines_inside_quotes = { label = "Zeilenumbrüche innerhalb von Anführungszeichen zulassen" short_description = "Erlaubt Zeichenumbrüche (Return oder Linefeed) innerhalb von Anführungszeichen, in Logzeilen" long_description = "This controls whether newline characters, returns or line feeds, are permitted inside quotes in log data. When this option is true, and a log line starts a quoted section but does not close it $PRODUCT_NAME will continue with the next line, looking for the closing quote there (or on a later line). The resulting \"line\" of log data will be two or more lines long, and some field values may have returns or linefeeds in them. When this option is false (unchecked), $PRODUCT_NAME will assume that unclosed quotes in a line are errors or formatting problems, and will treat the final (unclosed) quoted section as though there were a closing quote at the end of the line. This option should generally be left off, since turning it makes it possible that a small log data corruption can render the entire rest of the file unprocessed. But if your log data does contain entries with newlines inside quotes (as some CSV data does), then you will need to turn this option on." } # allow_newlines_inside_quotes allow_spaces_in_listed_field_values = { label = "Leerzeichen in gelisteten Feldwerten erlauben" short_description = "Allow spaces in listed field values, when using \"collect listed\" functions in log parsing filters" long_description = "This specifies if spaces should be allowed in the value of fields extracted using \"collect listed\" function in log parsing filter. When this option is checked (true), values may contain spaces; when it is false, values may not contain spaces. In some cases, disallowing spaces makes it possible to parse lines which otherwise cannot be parsed (for instance, lines where field names contain spaces)." } # allow_spaces_in_listed_field_values apache_description_string = { label = "Apache Logformat-Beschreibung" short_description = "Eine Zeichenkette, die das Logformat beschreibt, Apache-Stil" long_description = "This option describes the log format, in Apache log format description string style. This is intended for use as a quick way of using a custom Apache format--you can copy the format string from an Apache configuration file (or another file that uses Apache style format strings), and $PRODUCT_NAME will set up the log fields and format regular expressions for you. This option overrides {=docs_option_link('pre')=}." } # apache_log_format_description_string autodetect_lines = { label = "Zeilenanzahl für Erkennung" short_description = "Anzahl der Zeilen die zum automatischen Erkennen des Logformats untersucht werden sollen" long_description = "This specified the number of lines to compare using {=docs_option_link('are')=} while autodetecting this log format (this option is used in log format plug-ins). For instance, if this is 10, only the first 10 lines will be checked against the regular expression; if it is 100, the first 100 lines will be checked. If any line matches, the format will be considered a match." } # autodetect_lines autodetect_regular_expression = { label = "Regulärer Ausdruck für Erkennung" short_description = "Ein regulärer Ausdruck für die automatische Erkennung des Logformats" long_description = "This is a regular expression which is used to auto-detect the log format. This option appears in the log format plug-in for a supported log format (plug-ins are in the log_formats $lang_stats.directory of LogAnalysisInfo). A log file matches the format if any of the first few lines of the log file (the number of lines is specified by {=docs_option_link('al')=}) match this regular expression. See also {=docs_option_link('pre')=}, which is a similar option serving a different purpose. {=docs_option_link('pre')=} is used during log reading to separate out log fields, and does not affect auto-detection; this option is used only during format auto-detection, and does not affect log reading. See also {=docs_option_link('ae')=}." } # autodetect_regular_expression autodetect_expression = { label = "Ausdruck für AutoErkennung" short_description = "Ein Ausdruck, der für die autom. Erkennung des Logformats verwendet wird" long_description = "This is an expression (written in the internal language) which is used to auto-detect the log format. This option appears in the log format plug-in for a supported log format (plug-ins are in the log_formats $lang_stats.directory of LogAnalysisInfo). A log file matches the format if any of the first few lines of the log file (the number of lines is specified by {=docs_option_link('al')=}) result in a value of true for this expression (the log line is in volatile.log_data_line). See also {=docs_option_link('pre')=}, which is a similar option serving a different purpose. {=docs_option_link('pre')=} is used during log reading to separate out log fields, and does not affect auto-detection; this option is used only during format auto-detection, and does not affect log reading. See also {=docs_option_link('are')=}." } # autodetect_regular_expression blue_coat_description_string = { label = "Blue Coat Logformat-Beschreibung" short_description = "Eine Zeichenkette, die das Logformat beschreibt, Blue Coat-Stil" long_description = "This option describes the log format, in Blue Coat custom log format description string style. This is intended for use as a quick way of using a custom Blue Coat format--you can copy the format string from the Blue Coat configuration interface, and $PRODUCT_NAME will set up the log fields and format regular expressions for you. This option overrides {=docs_option_link('pre')=}." } # log_format_description_string collected_entry_lifespan = { label = "Lebensdauer gesammelter Einträge" short_description = "Number of lines of log data a collected entry may be idle before it is cleaned from memory." long_description = "This specifies the number of lines that a collected entry (as extracted using the collect/accept method of parsing filtering) will remain in memory without being referenced, before it is cleaned up and removed from memory. When this option is 0, collected entries are never removed from memory, which can result in very high memory usage for log formats or plug-ins which do not explicitly \"close\" keys. Setting it to non-zero prevents arbitrarily large memory usage in these cases. A value of 10000 is usually sufficient to ensure that an entry will not be removed from memory while it is still in use, but some formats (which have very large numbers of lines between uses of keys) may require a higher value. When a collected entry is removed from memory, it will either be accepted immediately, or discarded, depending on the value of {=docs_option_link('log.format.discard_expired_entries')=}." } # collected_entry_lifespan common_log_format = { label = "Format ist das Allgemeine Logformat" short_description = "Das Logformat ist dem Allgemeinen Logformat ähnlich" long_description = "This option should be set when the log format is a Common Log Format (CLF), one of a collection of similar log formats which, among other attributes, have the date/time field in brackets, and the user field right before the bracketed date/time field. This option turns on a special work-around which is necessary for certain CLF files where the usernames contain spaces. Because CLF does not quote the username field, spaces in the username field can cause the rest of the fields to be offset, causing strange results. This option causes the field before the date/time field to be combined with any apparently separate fields, until a left-square-bracket ([) is found. This effectively allows the username field to contain spaces in CLF format. This option should be left off for any non-CLF log formats." } # common_log_format date_format = { label = "Datumsformat" short_description = "Format des Datums in den Logdaten" # KHP 21/June/2010 - there were two instances of auto, disabled the first one #
  • auto: This handles a range of date formats automatically. Four-digit integers are treated as years, and one-or-two digit integers are treated as months or days (months are assumed to preceded days). This can be used in many cases where the exact date format is not known in advance. However, it does not support day-before-month dates.

    # KHP 21/June/2010 - reordered the list so that it matches the order as defined in the GUI. # KHP 21/June/2010 - disabled the following line because it looks like that it belongs to a specific option value # The divider between items does not need to be a slash--it can be any single character; for instance if your log format uses 04-21-2000 as its date, you can choose mm/dd/yyyy and it will work. long_description = "This controls the expected format of date fields in the log data. Possible formats are:
    • auto: Automatic detection of date. Currently this supports only formats where the year is four digits or is two-digits and comes last, and the month is three-letter English or is numerical and comes before the day.
    • d/m/y; same as dd/mm/yy, but leading zeros in month, day, and year may be omitted; examples: 21/4/0, 4/12/98, 23/11/2.
    • d/m/yy; same as dd/mm/yy, but leading zeros in month and day may be omitted; examples: 21/4/00, 4/12/98, 23/11/02.
    • d/m/yyyy; same as dd/mm/yyyy, but leading zeros in month and day may be omitted; examples: 21/4/2000, 4/12/1998, 23/11/2002.
    • dd/mm/yy; example: 21/04/00.
    • dd/mm/yyyy; example: 21/04/2000
    • dd/mmm/yy; example: 21/Apr/00.
    • dd/mmm/yyyy; example: 21/Apr/2000.
    • dd/mmm/yyyy:hh:mm:ss; example: 21/Apr/1998:08:12:45; colon between date and time may be a space instead.
    • ddmmmyy; example: 21Apr00.
    • dmmmyyyy; example: 21Apr2000, 4Dec1998.
    • m/d/y; same as mm/dd/yy, but leading zeros in month, day, and year may be omitted; examples: 4/21/0, 12/4/98, 11/23/2.
    • m/d/yy; same as mm/dd/yy, but leading zeros in month and day may be omitted; examples: 4/21/00, 12/4/98, 11/23/02.
    • m/d/yy h:mm; example: 4/21/98 8:12.
    • m/d/yyyy; same as mm/dd/yyyy, but leading zeros in month and day may be omitted; examples: 4/21/2000, 12/4/1998, 11/23/2002.
    • mm/dd; example: 04/21; year is computed from {=docs_option_link('log.processing.default_log_date_year')=}.
    • mmdd; example: 0421; year is computed from {=docs_option_link('log.processing.default_log_date_year')=}.
    • mm/dd/yy; example: 04/21/00.
    • mm/dd/yyyy; example: 04/21/2000
    • mm/dd/yyyy hh:mm:ss; example: 04/21/1998 08:12:45.
    • mmm dd; example: Apr 21; year is computed from {=docs_option_link('log.processing.default_log_date_year')=}.
    • mmm dd hh:mm:ss yyyy; example: Apr 21 08:12:45 1998. Optionally, a time zone can be specified before the year; i.e., Apr 03 15:57:15 PST 2002.
    • mmm/dd/yyyy; example: Apr/21/2000.
    • mmmmm/dd/yyyy; example: April/21/2000, \"December 21, 2002\", \"January 5 2001\" (any dividers allowed).
    • yyyy/m/d; example: 1998/4/21.
    • yyyy-mm-dd; example: 1998-04-21.
    • yyyy/mm/dd; example: 1998/04/21.
    • yyyy/mmm/dd; example: 2000/Apr/21.
    • yyyymmdd; example: 19980421.
    • yymmdd-hhmmss; example: 980421-081245.
    • yyyymmddhhmmss; example: 19980421081245.
    • seconds_since_jan1_1970; the number of seconds since January 1, 1970, possibly with a decimal point; example: 887395356.086578.
    • TAI64N; TAI64N format; example @400000003c675d4000fb2ebc.
    " } # date_format # KHP 20/June/2010 - this is not anymore in use within format # default_log_date_year = { # label = "Default log date year" # short_description = "The year to use, e.g., 2004, if the date format in the log data has no year information" # long_description = "This option is used if the log date format ({=docs_option_link('df')=}) is one of the few formats which does not include year information. $PRODUCT_NAME will use this option's value as the year. For instance, if the date in the log is \"May 7\" and this option's value is 2004, then $PRODUCT_NAME will assume that the log entry is for May 7, 2004. The value of this option should be a four-digit integer between 1970 and 2030, or 'thisyear' --if the value of this option is 'thisyear' (without quotes), $PRODUCT_NAME will fill in the current year, the year the log data is processed in, as the year." # } # default_log_date_year discard_expired_entries = { label = "Abgelaufene Einträge verwerfen" short_description = "Whether to discard collected log entries when they reach the end of their lifespan" long_description = "This specifies whether to discard, or accept, collected log entries when they reach the end of their lifespace ({=docs_option_link('log.format.collected_entry_lifespan')=}). When this option is true (checked), log entries will be discarded when they reach their lifespan; when this option is false (unchecked), log entries will be accepted immediately into the database, before being removed from memory, when they reach the end of their lifespan." } # discard_expired_entries field_separator = { label = "Logfelder-Trenner" short_description = "Zeichen oder Zeichenkette, die ein Logfeld vom nächsten trennt" long_description = "This specifies the character or string which separates one log field from another in a log entry. For instance, if this is \",\" then log fields are comma-separated; if it is \"==--==\", then the fields are separate from each other by ==--==. This option only affects index/subindex style parsing of log data-- it does not affect parsing if {=docs_option_link('powf')=} is true or if {=docs_option_link('pre')=} is specified." } # field_separator format_label = { label = "Logdatenformat" short_description = "Das Format der Logdaten" long_description = "This specifies the name of the log format of the log data. When this appears in a log format description file, it defines the name of the format being described. When this appears in a profile, it has no effect other than providing the name of the log format plug-in used to create the profile. $PRODUCT_NAME sets this option a new profile is created." } # format_label global_date_regular_expression = { label = "Regulärer Ausdruck für globales Datum" short_description = "Ein regulärer Ausdruck, der das Datum aller nachfolgenden Einträge festlegt, wenn er mit den Logdaten übereinstimmt" long_description = "This option is a regular expression (see {=docs_chapter_link('regexp')=}) which is used to extract a \"global date\" from log data. A global date is a date that appears in log data, usually in the header, and specifies the date for all subsequent log entries. Usually, this is used when the log entries do not contain date information at all, but if they do, this overrides them. When this option is not empty, every line of the log file is checked against this regular expression, and if it matches, the parenthesized section is remembered as the \"global date\". From then on, or until another global date line is found, the date field of any accepted log entry is replaced by the global date value. If this option is empty, it is not used." } # global_date_regular_expression global_date_filename_regular_expression = { label = "Regulärer Ausdruck für globales Dateinamen-Datum" short_description = "Ein regulärer Ausdruck, der das Datum aller nachfolgenden Einträge festlegt, wenn er mit den Log-Dateinamen übereinstimmt" long_description = "This option is a regular expression (see {=docs_chapter_link('regexp')=}) which is used to extract a \"global date\" from the name of the log file. A global date is a date that applies to all logs that appear in a file. Usually, this is used when the log entries do not contain date information at all, but if they do, this overrides them. When this option is not empty, the filename of every log processed is checked against this regular expression, and if it matches, the parenthesized section is remembered as the \"global date\". From then on, or until another global date filename is found, the date field of any accepted log entry is replaced by the global date value. If this option is empty, it is not used." } # global_date_filename_regular_expression ignore_format_lines = { label = "Formatzeilen ignorieren" short_description = "Ignoriert Formatzeilen in Logdaten" long_description = "This controls whether $PRODUCT_NAME ignores format lines in the log data. Format lines are lines starting with #Format, format=, or !!LOG_FORMAT, which appear in the log data, usually in a header, and describe the format of the log data on the following lines. Generally, you want to leave this option off, so $PRODUCT_NAME will understand log format changes if they occur in the middle of the log data. However, if you have defined custom log fields, you need to turn this on, or the field changes will be lost when format lines are encountered." } # ignore_format_lines ignore_quotes = { label = "Anführungszeichen ignorieren" short_description = "Ignoriert Anführungszeichen in Logdaten" long_description = "This controls whether quotes (double or single) should be treated specially in log data. If this option is checked (false), quotes are treated the same as any other character. If this option is unchecked, quotes are treated specially; a quoted value containing a field divider will be treated as a single field value-- the quotes will override the field divider, and prevent it from marking the end of the field. See also {=docs_option_link('tbaq')=}." } # ignore_quotes ignore_newlines_after_log_line_regexp = { label = "Zeilenumbruch bei regulären Ausdruck überspringen" short_description = "Ignored newlines characters when this regular expression matches a line of log data; i.e., join the next line to the current line" long_description = "This option is a regular expression which, when a line of log data matches, causes the newline character at the end of the matching line to be ignored. In other words, it causes the next line to be concatenated to the current line, so the matching line and the one after it are treated as a single line of log data. This is useful for log formats which have \"continuation\" lines, i.e., where long lines are split across several lines of log data." } # ignore_newlines_after_log_line_regexp parse_only_with_filters = { label = "Log nur mit Loganalyefiltern analysieren" short_description = "Für die Analyse der Logdaten sollen nur die Analysefilter und keine regulären Ausdrücke, Index/Subindex ect. verwendt werden" long_description = "This controls whether the log format regular expression ({=docs_option_link('pre')=}) option and the index/subindex settings of the log fields have any effect. This option is set in the log format plug-in to determine what type of parsing is used, and it should generally not be changed. When this is false, the ({=docs_option_link('pre')=}) option will be used to parse the log, or index/subindex options will be used if the ({=docs_option_link('pre')=}) option is empty. When this is true, only the log parsing filters (log.parsing_filters in the profile) will be used to parse the log data." } # parse_only_with_filters parsing_regular_expression = { label = "Regulärer Ausdruck für Logdatenformat" short_description = "Ein regulärer Ausdruck, der das Logformat beschreibt" long_description = "This is a regular expression which specifies the log format. You only need to change this option if you are creating your own log file format. It is a regular expression (see {=docs_chapter_link('regexp')=}) which matches an entire log entry (one line of the log), and contains a parenthesized substring for each log field. For each line that matches the regular expression, the part of the line which matches the first substring will become log field 1, the part of the line matching the second substring will be log field 2, etc. Log lines which do not match this expression will be rejected.

    For example, consider the following regular expression:

    ^(\[^ ]*) (\[^ ]*) (\[^ ]*) (\[^ ]*)\\$
    Each parenthesized part matches any sequence not containing a space, and the four parts must be separated by spaces. The leading ^ and trailing \\$ ensure that the whole line must be matched. This expression matches a line which contains four fields, separated by spaces, where the fields do not contain spaces. The first field will be put into the first log field, the second into the second log field, the third into the third log field, and the fourth into the fourth log field.

    Some log formats cannot be processed using a single regular expression, either because they have peculiar field layout, or because their fields span several lines, or for some other reason. Usually it is still possible to process the log files with $PRODUCT_NAME, but the log format description file will need to include log parsing filters with more complicated parsing logic. For one example of that, see the Raptor file in the log_formats sub$lang_stats.directory of the LogAnalysisInfo $(lang_stats.directory)." } # parsing_regular_expression time_format = { label = "Zeitformat" short_description = "Format der Zeiten in den Logdaten" # KHP 21/June/2010 - reordered the list so that it matches the order as defined in the GUI. long_description = "This controls the expected format of time fields in the log data. Possible formats are:

    • auto: This handles most time formats automatically. Times are assumed to be in H:M:S format, where H is the hours, M is the minutes, and S is the seconds; any of them can be one or two digits. The dividers can be any non-numerical values-- they don't have to be colons. If PM appears after the time, it is assumed to be a 12-hour PM time. This can be used in many cases where the exact date format is not known in advance.
    • h:m:s; same as hh:mm:ss except that the leading 0 on the hour, minute, or second may be an omitted example: 8:12:45, 12:8:15, 1:5:9.
    • h:mm; example: 18:04, 9:32.
    • h:mm:ss; same as hh:mm:ss except that the leading 0 on the hour may be an omitted example: 8:12:45.
    • h:mm:ss AM/PM; examples: 9:32:45 AM, 12:34:22 PM.
    • h:mm:ss GMT; examples: 9:32:45 GMT, 18:34:22 GMT.
    • hh:mm:ss; example: 18:04:23.
    • hhmm; example: 1804.
    • hhmmss; example: 180423.
    • dd/mmm/yyyy:hh:mm:ss; example: 21/Apr/1998:08:12:45.
    • m/d/yy h:mm; example: 4/21/98 8:12.
    • mmm dd hh:mm:ss yyyy; example: Apr 21 08:12:45 1998.
    • yyyymmddhhmmss; example: 19980421081245.
    • seconds_since_jan1_1970; the number of seconds since January 1, 1970, possibly with a decimal point; example: 887395356.086578.
    • TAI64N; TAI64N format; example @400000003c675d4000fb2ebc.
    " } # time_format treat_brackets_as_quotes = { label = "Eckige Klammern wie Anführungszeichen behandeln" short_description = "Eckige Klammern wie Anführungszeichen behandeln" long_description = "This controls whether square brackets ([ and ]) should be treated the same as quotes (\") when they are encountered in a log entry. For some log formats; e.g., Common Access Log Format, it is convenient to think of square brackets as a special kind of quote; whatever they contain is treated as a single field." } # treat_brackets_as_quotes treat_apostrophes_as_quotes = { label = "Apostroph (') wie Gänsefüßchen behandeln" short_description = "Apostroph (') wie Gänsefüßchen behandeln" long_description = "This controls whether apostrophes (') should be treated the same as quotes (\") when they are encountered in a log entry. Some log formats include literal apostrophes in the data, and do not intend them to be treated as quotes; for these log formats, this option should be set to false." } # treat_apostrophes_as_quotes } # format parsing_filters = { label = "Loganalysefilter" short_description = "Bestimmt die Filter für die Analyse der Logdatei" long_description = "Log parsing filters are similar to normal log filters (see {=docs_chapter_link('filters')=}), but they are executed before the normal filters. Log parsing filters are generally used to parse (process/interpret) the log data into fields; normal log filters are used to accept or reject data based on the fields. Log entries which are accepted by the parsing filters are passed on to the normal filters for final filtering. Log entries which are rejected by the parsing filters are not run through the normal filters, and do not make it into the database. Some log formats automatically include log parsing filters as part of the format description; e.g., WebSTAR, which uses a single parsing filter to convert : to / in pathnames, and Serv-U FTP Log Format, which uses a much more complicated series of filters to collect log entries from multiple lines. Unless you define a custom log format, you do not need to modify the log parsing filters.

    " } # parsing_filters processing = { label = "Logverarbeitung" edit_button = "Logverarbeitung bearbeiten" edit_form_title = "Logverarbeitung bearbeiten" option_group = true allow_empty_log_source = { label = "Leere Logquellen zulassen" short_description = "Wahr, wenn $PRODUCT_NAME zulassen soll, dass Datenbanken aus Logquellen erzeugt werden soll, die keine Daten enthalten" long_description = "This option controls whether $PRODUCT_NAME complains if the log source is empty when the database is built or rebuilt. If this option is false, $PRODUCT_NAME will generate an error if there is no data in the log source during a (re)build. If this is true, $PRODUCT_NAME will not complain, but will just create a database containing no data. An empty log source is often a sign of an error in the log source, so it is usually best to leave this option off. But in a multi-user environment, some sites may have no log data at all, and in that case, this can be turned on to allow for error-free rebuilds of all databases. $PRODUCT_NAME never generates an error if there is no (new) log data during a database update; this affects only \"from scratch\" (re)builds." } # allow_empty_log_source date_offset = { label = "Datumsoffset" unit_label = "Stunden" invalid_number_message = "Ungültiger Datumsoffsetwert. Bitte verwenden Sie ein Fließkommazahl zwischen -23 und 23 oder zwischen -23.9 und 23.9 Stunden." short_description = "Die Anzahl der Stunden, die zu jedem Datum in der Logdatei hinzugefügt werden soll" long_description = "This specifies the number of hours to add to the dates in the log file. A positive value causes that many hours to be added to every date in the log as it is read, and a negative value causes hours to be subtracted. For instance, if your log data is in GMT (as some formats are, including some W3C-based formats) but your time zone is GMT-8 (i.e. Pacific Standard Time), then you should enter -8 here. A value of zero leaves the dates unchanged. Fractional hours are allowed; e.g., 9.5." } # date_offset default_log_date_year = { label = "Standard-Logdaten-Jahr" short_description = "Das zu verwendende Jahr, z.B. 2004, falls das Datumsformat der Logdatei keine Jahresinformation enthält" long_description = "This option is used if the log date format ({=docs_option_link('df')=}) is one of the few formats which does not include year information. $PRODUCT_NAME will use this option's value as the year. For instance, if the date in the log is \"May 7\" and this option's value is 2004, then $PRODUCT_NAME will assume that the log entry is for May 7, 2004. The value of this option should be a four-digit integer between 1970 and 2030, or 'thisyear' --if the value of this option is 'thisyear' (without quotes), $PRODUCT_NAME will fill in the current year, the year the log data is processed in, as the year." } # default_log_date_year # KHP 30/Dec/2010 - log_entry_pool_size is no longer used # log_entry_pool_size = { # label = "Log entry pool size" # invalid_number_message = "Invalid log entry pool size value. Please define a number (integer) greater or equal $param1." # short_description = "The number of log entries $PRODUCT_NAME can work on simultaneously" # long_description = "This controls the number of log entries $PRODUCT_NAME can work on at a time. Increasing this value may improve performance of DNS lookup. However, it will also use more memory." # } # log_entry_pool_size look_up_location_with_geoip = { label = "Ort mittels GeoIP ermitteln" short_description = "Ermittelt den geographischen Ort von IP-Adressen mittels der GeoIP-Datenbank." long_description = "When this option is checked, $PRODUCT_NAME uses the built-in GeoIP database to look up the geographic locations of IP addresses. These will appear in the Countries, Regions, and Cities reports as the names of the countries, regions, and cities where the IP address is physically located." } # look_up_location_with_geoip read_block_size = { label = "Blockgröße beim Lesen von Logs" invalid_number_message = "Ungültige Blockgröße. Bitte geben Sie einen Integer-Wert größer oder gleich $param1 an." short_description = "Die Größe der Blöcke in Bytes, die vom Log gelesen werden" long_description = "This controls the size in bytes of the blocks which are read from the log data. $PRODUCT_NAME reads the log data in chunks, processing each chunk completely before continuing to the next. Larger settings will reduce the number of disk accesses, potentially speeding processing time, but will also require the specified number of bytes of memory." } # read_block_size maximum_read_block_size = { label = "Maximale Blockgröße beim Lesen von Logs" invalid_number_message = "Ungültige maximale Blockgröße. Bitte geben Sie einen Integer-Wert größer oder gleich $param1 an." short_description = "Die maximale Größe der Blöcke in Bytes, die vom Log gelesen werden" long_description = "This controls the maximum size in bytes of the blocks which are read from the log data. $PRODUCT_NAME initially reads data in chunks specified by {=docs_option_link('log.processing.read_block_size')=}, but if it encounters a line longer than that, it will expand its reading buffer to attempt to read the whole line into memory. It will not expand it larger than this value, however; if a line is larger than the value specified here, it will be discarded. This can be set as high as desired, but corrupt log data (e.g., a file of all NULL characters) may cause the buffers to expand to this value, so it should not be set higher than the size of physical memory." } # maximum_read_block_size skip_processed_filenames_on_update = { label = "Verarbeitete Dateien beim Update überspringen (nach Pfadname)" short_description = "Überspringt Dateien, die bereits verarbeitet wurden (Entscheidung nach Pfadnamen) während eines Datenbankupdates oder Hinzufügen-Operation" long_description = "This controls whether $PRODUCT_NAME uses the pathname of log files to determine if the files have already been added to the database. If this option is checked (true), then $PRODUCT_NAME will skip over any log files in the log source if it has already added a file with that name to the database. This can speed processing, especially when using FTP, because $PRODUCT_NAME does not have to download or process the file data and use its more sophisticated checking mechanism to see if the data has been processed. However, it will not work properly if you have log files in your log source which are growing from update to update, or if you have log files with the same name which contain different data. If this option is off, $PRODUCT_NAME will handle those situations correctly, but it will have to download and examine the log data of all files to do it." } # skip_processed_filenames_on_update skip_most_recent_file = { label = "Aktuellste Datei überspringen" short_description = "Legt fest, ob die akuellste Logdatei in der Logquelle übersprungen oder verarbeitet werden soll" long_description = "This option specifies whether $PRODUCT_NAME skips the most recent file in the log source, or processes it. When this option is true (checked), $PRODUCT_NAME will ignore the most recent file (based on modification date of the file) in the local file log source, during database build or update; it will act as though the file was not present, and will not process any lines of the file. When this option is false (unchecked), $PRODUCT_NAME will process all files, including the most recent one. This option is useful in environments with log rotation; the most recent file is the one which is being written, so skipping it ensures that all files processed are complete files, which will have no more data added later. This then allows the {=docs_option_link('spfod')=} option to be used to do faster skipping during updates, even when the most recent file is growing. With this option off, $PRODUCT_NAME will add the events from the latest (growing) file to the database, and the rest of the events (added to the log file later) will never be added to the database; with this option on, $PRODUCT_NAME will skip the growing file, and will wait until the file has stopped growing (when it has been rotated, because then a new file will be growing, and will be the most recent file), and then add the entire file. This option works only with a local file source--it will not work, for instance, with an FTP log source." } # skip_most_recent_file ignore_regexp_for_skip_checksum = { label = "RegEx-Daten beim Überspringen der Prüfsumme ablehnen" short_description = "Wenn über die Logdaten eine Prüfsumme gebildet wird, um diese zu überspringen, dann wird alles abgelehnt, was diesem regulären Ausdruck entspricht." long_description = `If this regular expression is specified (not empty), $PRODUCT_NAME will ignore anything matching it, when computing checksums for skipping. This is useful in cases where the server modifies a line of the log data (e.g., an "Schlusszeit" line) after the data has been processed by $PRODUCT_NAME. By skipping that line for checksumming purposes, $PRODUCT_NAME will still recognize the data as previously-seen, and will not reprocess it.` } # ignore_regexp_for_skip_checksum threads = { label = "Verarbeitungsthreads" invalid_number_message = "Ungültiger Logverarbeitungswert. Bitte geben Sie einen Integer-Wert größer oder gleich $param1 an." short_description = "Die Anzahl der gleichzeitig laufenden Threads bei der verarbeitung der Logdaten" long_description = "THIS OPTION IS DEPRECATED, AND NO LONGER HAS ANY EFFECT. This specifies the number of threads of execution to use to process log data. The threads will execute simultaneously, each processing a portion of the log data, and at the end of processing, their results will be merged into the main database. On systems with multiple processors, using one thread per processor can result in a significant speedup of using a single thread." } # threads thread_data_block_size = { label = "Thread-Datenblockgröße" invalid_number_message = "Ungültige Threaddatenblockgröße. Bitte verwenden Sie einen Integer-Wert größer oder gleich $param1." short_description = "Die Größe der Daten-Chunks, die bei einer Mehrprozessor-Logverarbeitung an die Threads verteilt werden." long_description = "This specifies the amount of data in each chunk sent to each thread during multiprocessor log processing (data build or update. Larger values reduce the overhead of transmitting large numbers of packages between the main thread and the child threads, and may speed up processing once it gets going; however, larger values also increase the chance that a thread will have to wait until a chunk has been assembled, possibly slowing the processing. The default is a reasonable value." } # thread_data_block_size convert_log_data_charset = { label = "Logdaten-Zeichensatz konvertieren" label_2 = "Logdaten-Zeichensatz von \"$param1\" nach \"$param2\" konvertieren." short_description = "Legt fest, ob die Logdaten bei der Verarbeitung in einen anderen Zeichensatz konvertiert werden sollen." long_description = "When this option is checked, $PRODUCT_NAME will convert the log data from the charset specified by {=docs_option_link('cldfc')=} to the one specified by {=docs_option_link('cldtc')=}. This is useful if the log data is in a different charset than the one desired for display or report generation." } # convert_log_data_charset convert_log_data_from_charset = { label = "Logdaten von Zeichensatz konvertieren" short_description = "Der Zeichensatz, der verwendet wird, um die ankommenden Logdaten zu konvertieren." long_description = "If this option is not empty, it will be used together with {=docs_option_link('cldtc')=} to convert the log data from the log source to a different charset from the one it is currently in. This option specifies the charset the log data is in to begin with; {=docs_option_link('cetc')=} specifies the charset that the log data will be in after conversion; e.g., the charset that will be seen by log filters and in the database." } # convert_log_data_from_charset convert_log_data_to_charset = { label = "Logdaten in Zeichensatz konvertieren" short_description = "Der Zeichensatz, in den ankommende Logdaten konvertiert werden." long_description = "If this option is not empty, it will be used together with {=docs_option_link('cldfc')=} to convert the log data from the log source to a different charset from the one it is currently in. {=docs_option_link('cldfc')=} specifies the charset the log data is in to begin with; this option specifies the charset that the log data will be in after conversion; e.g., the charset that will be seen by log filters and in the database. Usually, this should be set to UTF-8." } # convert_log_data_to_charset real_time = { label = "Echtzeit (erlaubt das Anzeigen von Reports während der Logverarbeitung)" short_description = "Der Echtzeit-Modus ermöglicht die Reportansicht während der Logverarbeitung." long_description = "When this option is checked, it is possible to view or generate reports during database builds or updates. When a report is requested, log processing will pause, the database will be brought into an internally consistent state (xrefs and indices will be updated with the latest data), the report will be generated, and log processing will resume. When this option is not checked, attempts to view a report during log processing will fail with an error that the database is building, or will show progress of the database build." } # real_time distributed = { label = "Verteilte Logverarbeitung" option_group = true method = { label = "Verteilmethode für Parsing-Server" short_description = "Methode für die Verbindung zu und/oder Anlegen von Parsing Servern." long_description = "This specifies the method $PRODUCT_NAME uses to spawn or connect to parsing servers. Parsing servers provide log parsing services to the main $PRODUCT_NAME log parsing process; use of multiple parsing servers allows log processing to go faster than it would with a single process.

    One processor
    If this option is \"one_processor\" (or \"1\"), $PRODUCT_NAME does not use parsing servers, but performs all parsing in the main process, using a single processor.

    Some processors
    If this option is \"some_processors\", $PRODUCT_NAME automatically creates the number of local parsing servers specified by {=docs_option_link('log.processing.distributed.number_of_servers')=}, and terminates them when log processing is complete.

    All processor
    If this option is \"all_processors\", $PRODUCT_NAME automatically creates a local parsing server for each processing core, connects to them during log processing, and terminates them when log processing is complete.

    Listed servers
    If this option is \"listed_servers\", $PRODUCT_NAME uses the parsing server information specified in the log.parsing.distributed.servers node of the profile to spawn (if specified) the parsing servers, and connect to them (listed allows $PRODUCT_NAME to use parsing servers running on other systems, for higher performance). When using \"listed\", the log.parsing.distributed.servers node in the profile contains one subnode per parsing server; each server subnode contains three subnodes: hostname, port, and spawn. \"hostname\" is the hostname and port that $PRODUCT_NAME should contact with the SPS protocol (the protocol used to communicate with parsing servers), to farm out parsing; spawn is true if the server should spawn the parsing server locally, or false if the server is already running (probably on another system), so $PRODUCT_NAME should just connect to it.

    " } # method starting_port_auto = { label = "Startport für Parsing-Server" short_description = "Der Startport, der für Parsing-Server verwendet wird." long_description = "This specifies the starting port for parsing server to bind to, when using the \"auto\" parsing server distribution method ({=docs_option_link('log.processing.distributed.method')=}). The parsing server will attempt to bind to this port, and if it fails, will continue upward in port numbers until it finds one it can bind to." } # starting_port_auto number_of_servers = { label = "Anzahl der lokalen Parsing-Server." short_description = "Anzahl der lokalen Parsing-Server, die gestartet werden sollen." long_description = "This specifies the number of local parsing servers to use, when processing log data. This option is used when the value of {=docs_option_link('log.processing.distributed.method')=} if \"some_processors\"." } # number_of_servers file_by_file = { label = "Logdaten dateiweise an Parsing-Server verteilen" short_description = "Gibt an, dass die Logdaten nur dateiweise an die Parsing-Server verteilt werden." long_description = "This specifies whether log data is to be distributed to parsing servers in whole files, or in chunks of data. When this option is false (unchecked), log data is split into lines by the main process, and chunks of lines are distributed to parsing servers, without regard for which file the lines come from; each parsing server is responsible for parsing the lines it receives. When this option is true (checked), each parsing server is sent the pathname of a file, and is responsible for decompressing the file, splitting it into lines, and parsing the lines. If the log data is compressed, turning this option on can improve parsing performance, because the decompression is handled in parallel, by each parsing server process; this is particularly useful for expensive decompression algorithms like bzip2. However, it will only work if the parsing servers have local access to the same files, at the same pathnames, as the main process (if the parsing servers cannot access the files, it will cause an error during database build); and it will only be efficient if there are many files to split between processes. The safest choice is to leave this option off (unchecked)." } # file_by_file servers = { server = { hostname = { label = "Hostname" short_description = "Der Hostname des Parsing-Servers." long_description = "Der Hostnamen, zu dem verbunden wird, wenn Logdaten an den Parsing-Server verteilt werden." } # hostname port = { label = "Port" short_description = "Der Port des Parsing-Servers." long_description = "Der Port, zu dem verbunden wird, wenn Logdaten an den Parsing-Server verteilt werden." } # port spawn = { label = "Folgeprozess" short_description = "Legt fest, ob dieser Parsing-Server gestartet wird." long_description = "This option specified whether $PRODUCT_NAME should start this parsing server itself, or should expect it already to be running. When this option is true (checked), $PRODUCT_NAME will create a new parsing server process on the local machine, and will communicate with it. When this option is false (unchecked), $PRODUCT_NAME will assume that the parsing server is already running on the specified hostname and port, and will connect to it without starting it." } # spawn } # server } # servers } # distributed output = { field_delimiter = { label = "Feldtrennzeichen für Ausgabe" short_description = "Das Trennzeichen, das zwischen Feldern eingesetzt wird, wenn die Aktion \"Prozess-Logs\" verwendet wird." long_description = "This specifies the delimiter used between fields when generating output with the \"process logs\" action." } # field_delimiter suppress_output_header = { label = "Kopfbereich in Ausgabe unterdrücken" short_description = "Legt fest, ob die Feldnamen in der Ausgabe der \"Prozess-Logs\" unterdrückt werden sollen." long_description = "If this option is false (unchecked), a header line will be generated as the first line of output when using the \"process logs\" action. The line will contain a list of all internal database field names, separated by the delimiter specified by {=docs_option_link('fd')=}. If this option is true (checked), the header line will not be generated." } # suppress_output_header output_date_time_format = { label = "Aufgabeformat von Datum/Zeit" short_description = "Das Format von Datum/Zeit in der \"Logverarbeitung\"" long_description = "This specifies the format of date/time (timestamp) values in the output of a \"process logs\" operation. The format is specified as a strftime()-style format string; for instance, '%d/%b/%Y %H:%M:%S' generates a timestamp like '01/Dec/2000 12:34:56', and '%Y-%m-%d %H:%M:%S' generates a timestamp like '2008-12-01 12:34:56'." } # output_date_time_format empty_output_value = { label = "Wert für eine leere Ausgabe" short_description = "Der Wert, der für ein leeres Feld bei der \"Logverarbeitung\" ausgegeben wird." long_description = "This specifies the value to output for an empty field value in the output of a \"process logs\" action. For instance, if this is \"(empty)\", the string \"(empty)\" (without the quotes) will be literally included in the output of \"process logs\"; if this is option is empty, then nothing will be included for the field value in the output (there will be nothing between the preceding and following delimiter)." } # empty_output_value } # output } # processing source = { # KHP 28/JAN/2011, log.source is not shown in dev, disabling short_description and long_description # Check if this is this anywhere in use! # label = "Log Source(s)" # short_description = "The location(s) of the log data to analyze" # long_description = "This specifies the log data to analyze. Several different types of log sources are supported, including:

    • The pathname of a log file, possibly including wildcards in the filename portion of the path, using appropriate pathname syntax for the server where $PRODUCT_NAME is running (see {=docs_chapter_link('pathnames')=}). Examples: /var/log/httpd/access.log or /var/log/httpd/*.log (UNIX); \"My Hard Drive:Logs:Log File\" or \"My Hard Drive:Logs:*\" (Mac); c:%5Csystem32%5Clogs%5CW3CSVC1%5Cex010101.log or c:%5Csystem32%5CW3CSVC1%5Cex*.log (Windows).

    • An FTP URL, possibly including wildcards in the filename portion of the URL. Examples: ftp://ftp.myserver.com/dir/access.log (anonymous FTP), ftp://me:mypass@ftp.myserver.com/dir/*.log (log in as user \"me\" with password \"mypass\"), ftp://you:yourpass@ftp.yourserver.com:9999/mysite/logs/ex*.log (user \"you\", password \"yourpass\", port 9999).

    • An HTTP URL, specifying one file to analyze. Example: http://www.myserver.com/dir/access.log.

    • The pathname of a command-line program, enclosed in backticks (`). $PRODUCT_NAME will read the log data from the output of the command (the standard output stream). Examples: `/bin/bunzip2 -c /logs/*.bz2` (UNIX; to bunzip the log files on the fly; assumes installation of bunzip2 in /bin), `/bin/lynx -d http://mysite.com/my.log` (UNIX; to fetch my.log by http; assumes installation of lynx in /bin) `type /server1/logs/* /server2/logs/* /server3/logs/*` (Windows combines log files from three folders).

    • The word \"stdin\" alone, which causes $PRODUCT_NAME to read the log data from its standard input stream (useful only when running $PRODUCT_NAME from the command line).

    Sub$lang_stats.directories will be processed if the \"process sub$lang_stats.directories option is checked or if editing a profile file directory or using the command line, if the log source line ends with \",recurse\". Patterns will be treated as regular expressions if the \"regular expression\" option is checked. Patterns are allowed only in the filename portion of the pathname or URL, not in the $lang_stats.directory portion.

    You can specify multiple log sources by listing one log source (for instance, one pathname, or URL, or one of the other types of log sources listed above) in separate subnodes of log.source. $PRODUCT_NAME will process the log sources in the order they are listed in log.source.

    " # KHP, 13/Nov/2007 - DEPRICATED, use process_subdirectories # process_log_source_subdirectories = { # label = "Process sub$lang_stats.directories (local $lang_stats.directories only)" # short_description = "Whether to process log files in sub$lang_stats.directories of the specified log source $lang_stats.directory" # long_description = "This controls whether $PRODUCT_NAME scans local sub$lang_stats.directories while processing a log source. If this option is false, only files directly inside the specified $lang_stats.directory will be processed; files in sub$lang_stats.directories will not be processed. If this option is true, all files in the $lang_stats.directory will be processed, even if they are contained in $lang_stats.directories of the specified $lang_stats.directory, or in $lang_stats.directories of those, etc.

    IMPORTANT: This option only works with local $lang_stats.directories-- it does not work with FTP URLs. If you need to process several $lang_stats.directories on an FTP server, you need to enter each $lang_stats.directory separately, as a separate URL." # } # process_log_source_subdirectories file_mask = { label = "Dateimaske" short_description = "" long_description = " \t\t This specifies the log files to be processed. Specifying a file mask will process all files which match the given wildacrad pattern or regular expression. \t\t \t\t The file mask will be treated as a wildcard pattern (*, ?) or a as regular expression if the \"File mask is a regular expression\" option is checked. \t\t " } # file_mask pattern_is_regular_expression = { label = "Dateimaske ist ein regulärer Ausdruck" short_description = "The file mask specified to choose files for the log source is a regular expression." long_description = "This option controls whether the file mask is a regular expression or a wildcard pattern. When this option is checked, the file mask is treated as a full regular expression, and any regular expression constructions can be used (see {=docs_chapter_link('regexp')=}). When unchecked, the file mask is treated as a wildcard expression, only the * and ? wildcards may be used. Only log files which are in the $lang_stats.directory specified by the pathname, or in a sub$lang_stats.directory of it, and whose names match this regular expression or wildcard pattern, will be processed." } # pattern_is_regular_expression process_subdirectories = { label = "Unterverzeichnisse verarbeiten" short_description = "Whether to process log files in sub$lang_stats.directories of the specified log source $lang_stats.directory." long_description = "This controls whether $PRODUCT_NAME scans sub$lang_stats.directories while processing a log source. This applies to local, FTP, and SFTP log sources. If this option is unchecked, only files directly inside the specified $lang_stats.directory will be processed; files in sub$lang_stats.directories will not be processed. If this option is checked, all files in the $lang_stats.directory will be processed, even if they are contained in $lang_stats.directories of the specified $lang_stats.directory, or in $lang_stats.directories of those, etc." } # process_subdirectories command = { label = "Befehl" short_description = "" long_description = "This specifies the pathname of a command-line program. $PRODUCT_NAME will read the log data from the output of the command (the standard output stream). Examples:

    /bin/bunzip2 -c /logs/*.bz2
    (UNIX; to bunzip the log files on the fly; assumes installation of bunzip2 in /bin),
    /bin/lynx -d http://mysite.com/my.log
    (UNIX; to fetch my.log by http; assumes installation of lynx in /bin)
    type /server1/logs/* /server2/logs/* /server3/logs/*
    (Windows combines log files from three folders).
    The word \"stdin\" alone, which causes $PRODUCT_NAME to read the log data from its standard input stream (useful only when running $PRODUCT_NAME from the command line)." } # command server = { dsn = { label = "DNS" } # dsn username = { label = "Benutzername" } # username password = { label = "Kennwort" } # password database_name = { label = "Datenbankname" } # database_name } # server query = { label = "Datenbankanfrage" short_description = "" long_description = "" } # query } # source } # log network = { dns_lookup = { label = "DNS-Lookup" edit_button = "DNS-Lookup bearbeiten" edit_form_title = "DNS-Lookup bearbeiten" } # dns_lookup actions_email_address = { label = "Aktions-Mailadresse(n)" short_description = "Die Adresse(n), an die $PRODUCT_NAME eine E-Mail sendet, wenn eine Aktion beendet wurde, z.B. eine Datenbank-Aufbau. Diese Option überschreibt {=docs_option_link('gaea')=}." long_description = "" } # actions_email_address actions_return_address = { label = "Aktions-Anwort-Adresse" short_description = "Die Antwortadresse, wenn eine E-Mail nach einer Aktion versendet wird. Diese Option überschreibt {=docs_option_link('gara')=}." long_description = "" } # actions_return_address dns_server = { label = "DNS-Server" short_description = "Der Hostname oder die IP-Adresse des DNS-Servers für das IP-Adressen-Look-Up in den Logdaten" long_description = "This specifies the DNS server to use when looking up IP addresses in the log data (when {=docs_option_link('luin')=} is true). This can be either a hostname or an IP address of the DNS server. If this option is empty, and $PRODUCT_NAME is running on a UNIX-type operating system, it will use the system's default primary DNS server. On all other platforms (including Windows), this option must be set when {=docs_option_link('luin')=} is true." } # dns_server dns_timeout = { label = "DNS-Timeout" short_description = "Die Zeit, die auf eine DNS-Antwort gewartet wird, bevor ein Timeout erfolgt" long_description = "This option controls the amount of time $PRODUCT_NAME waits for a response from a DNS (domain nameserver) when attempting to look up an IP number (see {=docs_option_link('luin')=}) during log processing. The value is in seconds; so a value of 30 means that $PRODUCT_NAME will give up after waiting 30 seconds for a response. Setting this to a low value may speed up your log processing, but fewer of your IP numbers will be resolved successfully." is_invalid_value_message = "Ungültiger DNS-Timeout-Wert. Bitte geben Sie eine Wert größer oder gleich $param1 ein." } # dns_timeout ip_numbers_cache_file = { label = "IP-Nummer-Cachedatei" short_description = "Die Datei, in der die IP-Nummer nach dem Look-Up zwischengespeichert werden" long_description = "This specifies a file where $PRODUCT_NAME should store a database of IP numbers it has looked up in the past (see {=docs_option_link('luin')=}). When $PRODUCT_NAME looks up an IP number, it will look in this cache first, to see if it has already found the hostname for that IP number (or if it has already determined that the hostname cannot be found). If it finds the IP number in the cache stored in this file, it will use that hostname, rather than performing the reverse DNS lookup again. This can greatly improve the speed of converting IP numbers to hostnames, especially when the same log is analyzed again.

    This option can be either a full pathname of a file, in which case that file will be used, or a single filename, in which case the file will be created inside the LogAnalysisInfo $(lang_stats.directory)." is_empty_message = "Bitte geben Sie eine IP-Nummern-Cachedatei an oder verwenden Sie die Standardeinstellungen." } # ip_numbers_cache_file look_up_ip_numbers = { label = "IP-Nummer mittels Domain Name Server (DNS) ermitteln" short_description = "Bestimmt, ob die Hostnamen der IP-Nummern mittels Domain Name Server (DNS) ermittelt werden sollen" long_description = "When this is true or checked, $PRODUCT_NAME attempts to look up the full domain name of IPs which appear in the log as IP numbers (\"reverse DNS lookup\"), using the DNS server specified by the {=docs_option_link('ds')=} and {=docs_option_link('sds')=} options. The lookup is performed as the log data is read, so if you change this option, you will need to rebuild the database to see the effects. Looking up the IP numbers provides a more human-readable format for the IP hosts, but requires a network access as frequently as once per line, so it can take much longer than leaving them as IP numbers. There are several ways to improve the performance of DNS lookup. The most important is to make sure $PRODUCT_NAME has a fast network connection to your DNS server; you can usually do this by running $PRODUCT_NAME on your web server (as a CGI program, if necessary), rather than on your desktop system. It may also be faster to configure the logging server to perform the domain name lookups, rather than having $PRODUCT_NAME do it. See also {=docs_option_link('nluin')=} and {=docs_option_link('luinbf')=}." } # look_up_ip_numbers look_up_ip_numbers_before_filtering = { label = "IP-Nummern vor Filterung ermitteln" short_description = "Bestimmt, ob IP-Nummern von der Filterung ermittelt werden sollen (anstatt danach)." long_description = "When this option is true, $PRODUCT_NAME does the DNS lookup (if required by {=docs_option_link('luin')=}) before running the log filters on a log entry. When this option is false, $PRODUCT_NAME does the DNS lookup after running the log filters on a log entry. It is faster to look up DNS after filtering (because filters sometimes reject entries, eliminating the need to look that one up), but if your log filters need to examine the resolved IP address, this option must be on." } # look_up_ip_numbers_before_filtering maximum_simultaneous_dns_lookups = { label = "Maximale gleichzeitige DNS-Lookups" short_description = "Die maximale Anzahl von IP-Adressen, die $PRODUCT_NAME gleichzeitig ermittelt" long_description = "This specifies the maximum number of IP addresses that will be looked up simultaneously. Setting this to a high value may increase DNS lookup performance, but if you set it too high, you may exceed operating system limitations, and the log processing may fail." is_invalid_value_message = "Ungültiger Wert für Maximale gleichzeitige DNS-Lookups. Bitte geben Sie eine Zahl zwischen $param1 und $param2 an." } # maximum_simultaneous_dns_lookups # report_email_address = { # label = "Report email address(es)" # short_description = "The address(es) that $PRODUCT_NAME should send statistics reports to" # long_description = "This specifies the address(es) $PRODUCT_NAME should send email statistics reports to, when the reports are emailed from the web interface, or the Scheduler sends a report, or when a report is sent using the command line. Multiple recipients may be specified with commas, e.g. \"user1@mydomain.com,user2@mydomain.com,user3@mydomain.com\". One report will be emailed, with HTML formatting and embedded images, to the specified address." # } # report_email_address # report_email_subject = { # label = "Report email subject" # short_description = "The subject of the report email that is sent" # long_description = "This specifies the subject of the report email (see {=docs_option_link('vea')=})." # } # report_email_subject # report_to_email = { # label = "Report to email" # short_description = "The name of the report that $PRODUCT_NAME should send by email" # long_description = "This specifies the name of the report $PRODUCT_NAME should send when it sends a report by email. See {=docs_option_link('vea')=}." # } # report_to_email # return_address = { # label = "Return email address" # short_description = "The return email address that $PRODUCT_NAME should use when sending email" # long_description = "This specifies the return address $PRODUCT_NAME should specify when sending email. Unless a valid address is specified here, replies to $PRODUCT_NAME's automatically generated emails will bounce. See also {=docs_option_link('ssh')=}." # } # return_address running_statistics_url = { label = "Aktive $PRODUCT_NAME-URL" short_description = "Die URL der laufenden Version von $PRODUCT_NAME, um sie als Linkziel in der HTML-Mail zu verwenden" long_description = "This specifies the URL of a running copy of $PRODUCT_NAME. The URL may be something like http://www.flowerfire.com:8988/if $PRODUCT_NAME is running in web server mode, or it may be http://www.domainname.com/cgi-bin/$PRODUCT_EXECUTABLE_DOCS if $PRODUCT_NAME is running in CGI mode. The URL is used to embed \"live\" links in HTML email; for instance, it allows your HTML email to include tables of items which, when clicked, open a web browser and display more information on that item (as they would if the table were in a normal live $PRODUCT_NAME report). If this option is empty, links will not appear in HTML email." } # running_statistics_url secondary_dns_server = { label = "Zweiter DNS-Server" short_description = "Der Hostname oder die IP-Adresse des DNS-Servers für das IP-Adressen-Look-Up in den Logdaten, wenn der erste DNS-Server versagt" long_description = "This specifies a secondary DNS server to use when looking up IP addresses in the log data (when {=docs_option_link('luin')=} is true). This can be either a hostname or an IP address of the DNS server. If this option is empty, and $PRODUCT_NAME is running on a UNIX-type operating system, it will use the system's default secondary DNS server. On all other platforms (including Windows), this option must be set when {=docs_option_link('luin')=} is true. This is used only if the primary DNS server ({=docs_option_link('ds')=}) does not respond." } # secondary_dns_server # smtp_server_hostname = { # label = "SMTP Server Hostname" # short_description = "The hostname of an SMTP (sendmail) server $PRODUCT_NAME should use when sending email" # long_description = "This specifies the hostname of an SMTP server $PRODUCT_NAME should use when sending email. This can either be just the hostname, in which case the default SMTP port of 25 is used, or it can be \"hostname:port\" (i.e. the hostname, followed by a colon, followed by the port number), in which case hostname is used as the SMTP hostname, and port is used as the SMTP port." # } # smtp_server_hostname # support_email_address = { # label = "Support email address" # short_description = "The email address where bug and error reports should be sent. This option overrides {=docs_option_link('gsea')=}." # long_description = "" # } # support_email_address use_tcp_for_dns = { label = "TCP für Kommunikation mit DNS-Servern verwenden" short_description = "Wahr, wenn $PRODUCT_NAME TCP (statt des üblicheren UDP) für die Kommunikation mit DNS-Servern verwenden soll" long_description = "This specifies whether $PRODUCT_NAME should use the TCP protocol when communicating with DNS servers. DNS servers more commonly communicate using UDP, and UDP is generally faster, but in some cases it may be preferable to use TCP instead. For instance, if your DNS server is accessible only by TCP due to its configuration or network location." } # use_tcp_for_dns } # network output = { # KHP 10-Nov-2010, moved number_thousands_divider to users # number_thousands_divider = { # label = "Number thousands divider" # short_description = "A divider to separate thousands in displayed numbers" # long_description = `This option specifies the value to separate thousands in the displayed number. For instance, if this option is empty, a number may be displayed as 123456789. If the value of this option is a comma (,), the number will be 123,456,789. If it's a period (.), the number will be 123,456,789. If it's a space, the number will be 123 456 789. This can be used to localize number divisions. If this option is empty or \"none\" the value of lang_stats.number.thousands_divider will be used; i.e., leave this value empty to use the current language's default divider.` # } # number_thousands_divider # KHP 10-Nov-2010, moved number_thousands_divider to users # number_decimal_divider = { # label = "Number decimal divider" # short_description = "A divider to separate the integer part from the decimal (fractional) part in displayed numbers" # long_description = "This option specifies the value to separate the integer part from the decimal (fraction) part in displayed number. E.g. this specifies the \"decimal point\". For instance, if this option is \".\" (and the thousands divider is a comma), a number may be displayed as 1,234,567.89. If the value of this option is a comma (,) (and the thousands divider is a dot), the number will be 1.234.567,89. This can be used to localize numbers. If this option is empty the value of lang_stats.number.decimal_divider will be used; i.e. leave this value empty to use the current language's default divider. See also {=docs_option_link('ntd')=}." # } # number_decimal_divider use_base_ten_for_byte_display = { label = "Basis 10 für Byte-Anzeige verwenden" short_description = "Basis 10 verwenden (mehrfache von 1000, z.B. Megabytes) für die Anzeige der Bytes, statt Basis 2 (Mehrfache von 1024, z.B. Mebibytes)." long_description = `

    This controls whether to use base 10 (multiples of 1000) when displaying bytes numbers, or base 2 (multiples of 1024). When this option is on, $PRODUCT_NAME will display all byte values using base-10 calculations (e.g., megabytes); when it is off, it will display all byte values using base-2 calculations (e.g., mebibytes). For instance, 2000 bytes would be displayed as "2.000 k" (two kilobytes) if this option is on, or it would be displayed as "1.953 k" (1.953 kibibytes) if this option is off.

    ` } # use_base_ten_for_byte_display progress_page_interval = { label = "Anzahl Sekunden zwischen Fortschrittsseiten" short_description = "Die Anzahl der Sekunden, bis die Fortschrittsseite aktualisiert wird" long_description = "

    This controls the number of seconds which elapse between the progress pages or command-line progress indicators, which appear when the progress display is enabled (see {=docs_option_link('v')=}).

    The \"progress\" (p) option (see {=docs_option_link('v')=}) controls whether a progress indicator will appear during long operations (like reading a large log file). When $PRODUCT_NAME is used from the command line, this option causes it to show a single-line text progress indicator. There isn't enough room on a single 80-character line to show all the information that's shown on a graphical progress page, but $PRODUCT_NAME shows the most important parts:

    G:[@@@@@@@@@@ ]47% 643779e E00:20:42 R00:20:01 25M/1976k

    The first character (G in this case) is the first letter of the full description of the current operation, as it would appear in the graphical view. For instance, in this case the G stands for \"Getting data by FTP.\" Other common operations are \"(R)eading data\" (from a local file or command) and \"(E)rasing database.\"

    The section in brackets is a progress meter, which gradually fills as the task progresses, and is completely full at the end. The percentage after it is the percentage of to task that is now complete. If $PRODUCT_NAME cannot determine the length of the task (for instance, if it's processing gzipped log data, or bzipped log data, or log data from a command), then it will not show anything in the bar area, and it will show ??% as the percentage.

    The next section (643779e above) is the number of log entries that $PRODUCT_NAME has processed.

    The next section (E00:20:42 above) is the time elapsed since processing began, in hours:minutes:seconds format. That is followed by the estimated time remaining, (R00:20:01 above), in the same format. If $PRODUCT_NAME cannot determine the length of the task, the time remaining will be R??:??:??.

    The last two numbers (25 MB/1976 KB above) are the memory used by the database (25 MB in this case), and the disk space used by the database (1976 KB in this case). Note that this is just the memory used by this database; $PRODUCT_NAME itself will be using additional memory for other purposes, so the total $PRODUCT_NAME memory usage will be higher than this number.

    " } # progress_page_interval convert_export_charset = { label = "Exportzeichensatz konvertieren" short_description = "Legt fest, ob die Zeichensatz-Konvertierung beim Export von CSV-Daten angewendet werden soll." long_description = "This specifies whether charset conversion should occur, when exporting reports to CSV format. If this option is unchecked, charset conversion will not occur, and the output data will be in the UTF-8 charset. If this option is checked, then {=docs_option_link('output.convert_export_from_charset')=} and {=docs_option_link('output.convert_export_to_charset')=} options can be used to convert from UTF-8 to whatever charset is required in the output file." } # convert_export_charset convert_export_from_charset = { label = "Export von Zeichensatz konvertieren" short_description = "Der Zeichensatz, der verwendet wird, um die exportierte CSV-Datei zu konvertieren." long_description = "If this option is not empty, it will be used together with {=docs_option_link('cetc')=} to convert the result of a CSV export to a different charset. This option specifies the charset the export is in to begin with; {=docs_option_link('cetc')=} specifies the charset that the export text will be in when it is displayed" } # convert_export_from_charset convert_export_to_charset = { label = "Export in Zeichensatz konvertieren" short_description = "Der Zeichensatz, in den die exportierte CSV-Datei konvertiert wird." long_description = "If this option is not empty, it will be used together with {=docs_option_link('cefc')=} to convert the result of a CSV export to a different charset. {=docs_option_link('cefc')=} specifies the charset the export is in to begin with; this option specifies the charset that the export text will be in when it is displayed." } # convert_export_to_charset } # output security = { allow_viewers_to_rebuild = { label = "Betrachtern Neuaufbau/Update der Datenbank erlauben" short_description = "Allen Statistik-Betrachtern Neuaufbau/Update der Datenbank erlauben" long_description = "When this option is checked (true), anyone viewing the statistics for the profile and rebuild or update the database, using the rebuild/update links in the reports. When this option is unchecked (false), only administrators will be able to use those links-- the links will not be visible for non-administrative viewers." } # allow_viewers_to_rebuild } # security statistics = { miscellaneous = { cache_reports = { label = "Bereichte cachen" short_description = "Wahr, wenn die Reports zwischengespeichert werden sollen, um die Anzeige schneller wieder aufbauen zu können" long_description = "This controls whether reports are cached on disk. When this option is true, reports are saved on the disk, so if the exact same report is requested again later, it can be quickly generated without requiring database access or report generation. When this option is false, reports are regenerated every time they are viewed. Caching uses additional disk space, so it may be useful to turn this off if disk space is at a premium." } # cache_reports entry_name = { label = "Logeintragsname" short_description = "Das Wort, das für die Beschreibung eines Logeintrags verwendet wird" long_description = "This option specifies the word used to refer to a single log entry. For web log, for instance, this may be \"hit\", or for email logs it may be \"message\". This option is set in the log format plug-in, and generally does not need to be changed unless you are creating a new plug-in. This will appear in various places in statistics pages." } # entry_name first_weekday = { label = "Erster Wochentag" short_description = "Der erste Wochentag einer Woche (1=Sonntag, 2=Montag, ...)" long_description = "This controls the weekday that is considered the first day of the week. The first weekday will be the first column in calendar months and it will be the first row in weekday tables. Use 1 for Sunday, 2 for Monday, 3 for Tuesday, 4 for Wednesday, 5 for Thursday, 6 for Friday, and 7 for Saturday." } # first_weekday csv_delimiter = { label = "CSV-Trenner" short_description = "Das Trennzeichen, dass zwischen Feldern beim CSV-Export eingesetzt wird." long_description = "This specifies the delimiter to use between fields in a CSV export. CSV is comma-separated-values, so typically this would be a comma, but this can be set to any other character to make the \"CSV\" output actually separated by tabs (use \\t), pipes, or any other string." } # csv_delimiter hidden_views_url = { label = "URL für verborgene Ansichten" short_description = "Die URL, auf die die Ansichtsschaltflächen linken, wenn die Ansichten nicht sichtbar sind" long_description = "This controls the page that view buttons link to when the associated view is hidden. If this option is empty, the view button itself will also be hidden. Otherwise, this view button will be dimmed, and clicking the button will take you to the URL specified by this option." } # hidden_views_url enable_calendar_in_reports_menu = { label = "Kalender in Reportmenüs aktivieren" short_description = "" long_description = "This controls if the calendar is shown in the dynamic reports menu. A calendar menu item is added on top of the reports menu if this option is checked and if the the log format supports date time." } # enable_calendar_in_reports_menu # show_calendar_as_default_report = { # label = "Show calendar as default report" # short_description = "" # long_description = "This controls if the calendar is shown as default report in dynamic reports. If this option is checked it will show the calendar as default report." # } # show_calendar_as_default_report marked_weekday = { label = "Markierter Wochentag" short_description = "Der Wochentag, der in der Monatsansicht des Kalenders markiert wird (0=Sonntag, 1=Montag, ...)" long_description = "This controls the weekday which appears in a different color in calendar months displays. The marked weekday will be displayed in a different color than the other weekdays, i.e. weekday = 1 will display the \"S\" for Sunday in red color. Use 1 for Sunday, 2 for Monday, 3 for Tuesday, 4 for Wednesday, 5 for Thursday, 6 for Friday, and 7 for Saturday." } # marked_weekday # maximum_session_duration = { # label = "Maximum session duration (seconds)" # short_description = "The maximum duration of a session; longer sessions are discarded from the session information" # long_description = "This controls the maximum length of a session in the session information. This affects the display of session-based statistics reports like the \"sessions overview\", and the entry/exit page views. Sessions longer than the value specified will be ignored, and will not appear in the session information. This option is useful because some large ISPs (e.g. AOL) and other large companies use web caches that effectively make all hits from their customers to appear to be coming from one or just a few computers. When many people are using these caches at the same time, this can result in the intermixing of several true sessions in a single apparent session, resulting in incorrect session information. By discarding long sessions, which are probably the result of these caches, this problem is reduced. Also, long visits are often the result of spider visits, which are usually not useful in session reporting. The problem with caches can be eliminated entirely by configuring your web server to track \"true\" sessions using cookies, and then configuring $PRODUCT_NAME to use the cookie value (rather than the hostname field) as the visitor id. Setting this option to 0 removes any limit on session duration, so all sessions will be included." # } # maximum_session_duration page_footer = { label = "Fußbereichstext" short_description = "Der HTML-Code, der am Ende von Statistikseiten angezeigt wird" long_description = "This specifies the HTML text to appear at the bottom of statistics pages. If both this and {=docs_option_link('pff')=} are specified, both will appear, and this will appear second. See also {=docs_option_link('pff')=}, {=docs_option_link('ph')=}, {=docs_option_link('phf')=}, and {=docs_option_link('pfc')=}." } # page_footer page_footer_file = { label = "Fußbereichsdatei" short_description = "Eine HTML-Datei, deren Inhalt am Ende von Statistikseiten angezeigt wird" long_description = "This specifies a file containing HTML text to appear at the bottom of statistics pages. If both this and {=docs_option_link('pf')=} are specified, both will appear, and this will appear first. See also {=docs_option_link('pf')=}, {=docs_option_link('ph')=}, {=docs_option_link('phf')=}, and {=docs_option_link('pfc')=}." } # page_footer_file page_frame_command = { label = "Frameseiten-Befehl" short_description = "Ein Befehl, der ausgeführt wird, um die $PRODUCT_NAME-Statistiken in einem HTML-Rahmen darzustellen" long_description = "This option specifies a command-line program to run (UNIX and Windows only) to generate an HTML \"frame\" into which $PRODUCT_NAME's statistics page output should be inserted. This is useful for integrating $PRODUCT_NAME's output with the look and feel of a web site. The program should generate this HTML to its standard output stream. The frame should be a complete HTML document, starting with <HTML> and ending with </HTML>. Somewhere in the document, the text [[[[STATISTICS]]]] should appear. $PRODUCT_NAME will generate statistics pages by replacing that text with the statistics information, and leaving the rest of the page unchanged. See also {=docs_option_link('pf')=}, {=docs_option_link('ph')=}, {=docs_option_link('pff')=}, and {=docs_option_link('phf')=}." } # page_frame_command page_header = { label = "Kopfbereichstext" short_description = "Der HTML-Code, der den Anfang der Statistikseiten bildet" long_description = "This specifies the HTML text to appear at the top of the statistics pages. If both this and {=docs_option_link('phf')=} are specified, both will appear, and this will appear first. See also {=docs_option_link('phf')=}, {=docs_option_link('pf')=}, {=docs_option_link('pff')=}, and {=docs_option_link('pfc')=}." } # page_header page_header_file = { label = "Kopfbereichsdatei" short_description = "Eine HTML-Datei, deren Inhalt am Anfang von Statistikseiten angezeigt wird" long_description = "This specifies a file containing HTML text to appear at the top of statistics pages. If both this and {=docs_option_link('ph')=} are specified, both will appear, and this will appear second. See also {=docs_option_link('ph')=}, {=docs_option_link('pf')=}, {=docs_option_link('pff')=}, and {=docs_option_link('pfc')=}." } # page_header_file server_root = { label = "Root-URL des Logdatenservers" short_description = "Die Root-URL des Servers, der analysiert werden soll" long_description = "This specifies the root URL (e.g. http://www.myserver.com/) of the web server which generated the log data. If a server root is specified and \"$lang_options.profile.statistics.miscellaneous.show_http_link.label\" is enabled, $PRODUCT_NAME will generate links, where possible, back to the server; these links will appear in the tables in reports. If the server root is not specified, these linked icons will not appear." } # server_root session_timeout = { label = "Session-Timeout (Sekunden)" short_description = "Das Intervall, nachdem ein Ereignis vom gleichen Besucher als Teil einer neuen Session angesehen wird" long_description = "This controls the amount of time a session can be idle before it is considered complete. This affects the display of session-based statistics reports like the \"sessions overview\", and the entry/exit page views. Sessions are considered ended when a user has not contributed an event in the number of seconds specified here. For instance, if this interval is 3600 (one hour), then if a user does not contribute an event for an hour, the previous events are considered to be a single session, and any subsequent events are considered to be a new session." } # session_timeout remove_reloads_from_sessions = { label = "Reloads von Sessions entfernen" short_description = "Legt fest, ob aufeinanderfolgende Session-Ereignisse auf der gleichen Seite in eine kombiniert werden sollen." long_description = "This option specifies whether repeated session events (e.g., page views) on the same page should be combined into a single session event. For instance, in web server log analysis, if a visitor hits index.html, and if the next hit is also index.html, these will be combined into a single hit on index.html if this option is true (checked). If this option is false (unchecked), the two events will be reported as they occurred, as two separate hits on a page. This option is useful for removing repeated reloads caused by automatic web browser reloads, manual web browser user reloads, or other reloads which are typically not really separate events in the session." } # remove_reloads_from_sessions show_http_link = { label = "Seitenlinks anzeigen" short_description = "Zeigt Tabellenelemente, die mit \"http://\" beginnen, als Link." long_description = "This option specifies if table items which start with \"http://\" should be shown as a link. If this option is enabled all table items which start with \"http://\" will be shown as a link and will open the page as specified by the table item URL." } # show_http_link user_agent_for_emails = { label = "Benutzeragent für EMail" short_description = "Bestimmt den Zielbenutzeragent beim Senden von EMails." long_description = "This option specifies the target user agent (web browser) when sending emails. Setting the user agent allows $PRODUCT_NAME to optimally handle line breaking for the target web browser. The user agent can be set to \"msie\" for Microsoft Internet Explorer, \"safari\" for Safari, \"netscape\" for Netscape and Mozilla and \"unknown\" if the user agent (web browser) is not known. Setting the user agent to \"unknown\" will break lines by spaces and by inserting a
    tag; setting it to a known user agent will break lines by spaces, characters and tags as supported in the specified web browser." } # user_agent_for_emails user_agent_for_files = { label = "Benutzeragent für Reportdateien" short_description = "Bestimmt den Benutzeragent beim Generieren von Reportdateien." long_description = "This option specifies the target user agent (web browser) when generating report files. Setting the user agent allows $PRODUCT_NAME to optimally handle line breaking for the target web browser. The user agent can be set to \"msie\" for Microsoft Internet Explorer, \"safari\" for Safari, \"netscape\" for Netscape and Mozilla and \"unknown\" if the user agent (web browser) is not known. Setting the user agent to \"unknown\" will break lines by spaces and by inserting a
    tag; setting it to a known user agent will break lines by spaces, characters and tags as supported in the specified web browser." } # user_agent_for_files convert_export_from_charset = { label = "Export mit Zeichensatz konvertieren" short_description = "Der Zeichensatz, der verwendet wird, um die exportierte CSV-Datei zu konvertieren." long_description = "If this option is not empty, it will be used together with {=docs_option_link('cetc')=} to convert the result of a CSV export to a different charset. This option specifies the charset the export is in to begin with; {=docs_option_link('cetc')=} specifies the charset that the export text will be in when it is displayed" } # convert_export_from_charset convert_export_to_charset = { label = "Export in Zeichensatz konvertieren" short_description = "Der Zeichensatz, in den die exportierte CSV-Datei konvertiert wird." long_description = "If this option is not empty, it will be used together with {=docs_option_link('cefc')=} to convert the result of a CSV export to a different charset. {=docs_option_link('cetc')=} specifies the charset the export is in to begin with; this option specifies the charset that the export text will be in when it is displayed." } # convert_export_to_charset date_filter = { label = "Standard-Datumsfilter" short_description = "Der Standard-Datumsfilter, der bei der Ansicht von Reports verwendet wird." long_description = "This specifies a default date filter to use when viewing reports, i.e. to show the last 3 months relative to the end of log data or the current calendar date. The default date filter can be changed at any time when viewing reports via the date picker or in the URL. See {=docs_chapter_link('date_filter')=} for more details." } # date_filter filter = { expression = { label = "Reportfilter" short_description = "" long_description = "" } # expression } # filter use_overview_for_totals = { label = "Übersicht für Summern verwenden" short_description = "Die Werte der Übersicht werden für die Summenreihen verwendet." long_description = `This controls whether the numbers from the Overview should be used to compute the Total rows of table reports. When this option is true, a specialized Overview report is generated, to generate the Totals row of each table report. When this option is false, the Total row is computed by summing each column of the table. Totals rows derived from an Overview have the advantage of showing true unique numbers for columns which compute unique values (like "Besucher" in web logs). However, the calculation involved can be much slower than a simple sum, especially if the report element omits parenthesized items (which is default for most reports). The performance cost can be as little as 2x slowdown, but in extreme cases involving very complex fields, it can be much more, hundreds of times slower. Therefore, this option should be set to false unless the unique visitors total is really needed.` } # cache_reports } # miscellaneous sizes = { session_path = { # ToDo - all sizes descriptions are now defined in a single description # in lang_admin.report_options, so all sizes options could be removed # from this part unless we require an per option description! Do we? option_group = true maximum_text_length = { label = "Maximale Textlänge" short_description = "Bestimmt die maximale Anzahl von Zeichen im Seitenname des 'Sessionpfad'- und 'Pfad durch eine Seite'-Reports." long_description = "This option specifies the maximum number of characters of page names in the session path and path through a page report. Characters exceeding the maximum session path text length will be truncated." } # maximum_text_length maximum_continuous_text_length = { # option_group = true label = "Maximale zusammenhängende Textlänge" short_description = "Bestimmt die maximale Anzahl von Zeichen pro Zeile des 'Session-Pfad'- und 'Pfad durch eine Seite'-Reports." long_description = "This option specifies the maximum number of characters per line in a session path and path through a page report. $PRODUCT_NAME inserts a break entity if the number of characters in a line is greater than the maximum continuous text length." } # maximum_continuous_text_length maximum_continuous_text_length_offset = { # option_group = true label = "Maximale zusammenhängende Textlängeoffset" short_description = "Bestimmt die maximale Anzahl von Zeichen für einen Zeilenumbruch des 'Session-Pfad'- und 'Pfad durch eine Seite'-Reports." long_description = "This option specifies the minimum number of characters to break the last line in a session path and path through a page report. If break entities are inserted into a long line then $PRODUCT_NAME checks the number of characters of the last line, if the number of characters are less than the specified offset then the line will not break, so the offset avoids that very few characters break into a new line. The recommended offset is 4 - 12 characters." } # maximum_continuous_text_length_ offset } # session_path table_cell = { option_group = true maximum_text_length = { label = "Maximale Textlänge" short_description = "Bestimmt die maximale Anzahl von Zeichen pro Tabelleneintrag." long_description = "This option specifies the maximum number of characters per table item. Characters exceeding the maximum text length will be truncated." } # maximum_text_length maximum_continuous_text_length = { label = "Maximale zusammenhängende Textlänge" short_description = "Bestimmt die maximale Anzahl von Zeichen pro Tabelleneintrag pro Zeile." long_description = "This option specifies the maximum number of characters per table item per line. $PRODUCT_NAME inserts a break entity if the number of characters of a table item is greater than the maximum continuous text length." } # maximum_continuous_text_length maximum_continuous_text_length_offset = { label = "Maximale zusammenhängende Textlängeoffset" short_description = "Bestimmt die minimale Anzahl von Zeichen für einen Zeilenumbruch in der letzten Tabellenzeile." long_description = "This option specifies the minimum number of characters to break the last table item line. If break entities are inserted into a long table item line then $PRODUCT_NAME checks the number of characters of the last line for that table item, if the number of characters are less than the specified offset then the line will not break, so the offset avoids that very few characters break into a new line. The recommended offset is 4 - 12 characters." } # maximum_continuous_text_length_ offset } # table_cell graph_legend_cell = { option_group = true maximum_text_length = { # option_group = true label = "Maximale Textlänge" short_description = "Bestimmt die maximale Zeichenzahl pro Legendeneintrag." long_description = "This option specifies the maximum number of characters per graph legend item. Characters exceeding the maximum text length will be truncated." } # maximum_text_length maximum_continuous_text_length = { # option_group = true label = "Max. Länge bei zusammenhängendem Text" short_description = "Bestimmt die maximale Zeichenzahl pro Legendeneintrag pro Zeile." long_description = "This option specifies the maximum number of characters per graph legend item per line. $PRODUCT_NAME inserts a break entity if the number of characters of a graph legend item is greater than the maximum continuous text length." } # maximum_continuous_text_length maximum_continuous_text_length_offset = { # option_group = true label = "Max. Offset bei zusammenhängendem Text" short_description = "Bestimmt die minimale Anzahl von Zeichen für einen Zeilenumbruch in der letzten Legendenzeile." long_description = "This option specifies the minimum number of characters to break the last graph legend item line. If break entities are inserted into a long graph legend item line then $PRODUCT_NAME checks the number of characters of the last line for that graph legend item, if the number of characters are less than the specified offset then the line will not break, so the offset avoids that very few characters break into a new line. The recommended offset is 4 - 12 characters." } # maximum_continuous_text_length_ offset } # graph_legend_cell } # sizes graphs = { color_schemes = { chrono_bar_graph = { label = "Chronologische Balkendiagramme" } # chrono_bar_graph chrono_line_graph = { label = "Chronologische Liniendiagramme" } # chrono_line_graphs bar_graph = { label = "Balkendiagramme" } # bar_graph line_graph = { label = "Liniendiagramme" } # line_graph table_bar_graph = { label = "Tabellenbalkendiagramme" } # table_bar_graph } # color_schemes } # graphs reports = { report = { description = { label = "Beschreibung" short_description = "" long_description = "" } # description header = { label = "Kopfbereich" short_description = "" long_description = "" } # header footer = { label = "Fußbereich" short_description = "" long_description = "" } # footer date_filter = { label = "Datumsfilter" short_description = "" long_description = "This specifies a build in date filter which applies to all report elements of this report. \t\t\t This date filter overrides any date filter selected by calendar or the date picker or a date filter \t\t\t given in the URL or command line. See {=docs_chapter_link('date_filter')=} for more details." } # date_filter filter = { expression = { label = "Reportfilter-Ausdruck" short_description = "" long_description = "" } # expression } # filter show_header_bar = { label = "Kopfleiste anzeigen" short_description = "" long_description = "" } # show_header_bar sync_graph_axis_with_relative_date = { label = "Chronologische Diagrammeachsen mit relativen Daten synchronisieren" short_description = "" long_description = "

    This synchronizes the x-axis of a chronological graph with the date range of a relative date filter. The start date and end date of the x-axis will be adjusted to the relative date so that it is independend of the available dates in the log data.

    I.e., a relative date filter of \"recent 3 months\" would show a x-axis for the recent 3 months, regardless of the available start date and end date of the log data. The log data may start on the 15th and end on the 20th, yet the graph x-axis will span for the entire 3 months, from the first day of the first month until the last day of last month.

    This option is useful for reports with multiple report elements where the graphs of each report element should show an equal date range for easier comparison. This could be i.e. exactly one month for all report elements or the 1st quarter for the first report element, the second quarter for the second report element, etc. See also {=docs_chapter_link('date_filter')=}.

    " } # sync_graph_axis_with_relative_date report_elements = { report_element = { description = { label = "Beschreibung" short_description = "" long_description = "" } # description header = { label = "Kopfbereich" short_description = "" long_description = "" } # header footer = { label = "Fußbereich" short_description = "" long_description = "" } # footer omit_parenthesized_items = { label = "Geklammerte Einträge auslassen" short_description = "" long_description = "

    This omits parenthesized table items that starts with \"(\" and ends with \")\", i.e. \"(no search engine)\", \"(no search phrase)\" or \"(no referrer)\". In some cases it may be usful to show parenthesized table items, in others to omit them.

    Please note that omitting parenthesized items may increase the time it takes to generate a report element, so the option should only be checked if parenthesized items exist and should be omitted.

    " } # omit_parenthesized_items use_overview_for_totals = { label = "Übersicht für Summen verwenden" short_description = "" long_description = `This controls whether the numbers from the Overview should be used to compute the Total rows of table reports. When this option is checked, a specialized Overview report is generated, to generate the Totals row of each table report. When this option is unchecked, the Total row is computed by summing each column of the table. Totals rows derived from an Overview have the advantage of showing true unique numbers for columns which compute unique values (like "Besucher" in web logs). However, the calculation involved can be much slower than a simple sum, especially if the report element omits parenthesized items (which is default for most reports). The performance cost can be as little as 2x slowdown, but in extreme cases involving very complex fields, it can be much more, hundreds of times slower. Therefore, this option should be set to false unless the unique visitors total is really needed.` } # use_overview_for_totals date_filter = { label = "Datumsfilter" short_description = "" long_description = "This specifies a build in date filter which applies to this report element only. \t\t\t This date filter overrides any other given date filter, i.e. the selected date filter by calendar or the date picker or a date filter \t\t\t given in the URL or command line. See {=docs_chapter_link('date_filter')=} for more details." } # date_filter filter = { expression = { label = "Reportfilter-Ausdruck" short_description = "" long_description = "" } # expression } # filter table_filter_expression = { label = "Tabellenfilter-Ausdruck" short_description = "" long_description = "" } # table_filter_expression session_user_field = { label = "Session-Benutzer-Feld" short_description = "" long_description = "" } session_date_time_field = { label = "Session-Datum/Zeit-Feld" short_description = "" long_description = "" } session_id_field = { label = "Session-ID-Feld" short_description = "" long_description = "" } session_duration_field = { label = "Session-Dauer-Feld" short_description = "" long_description = "" } session_events_field = { label = "Session-Ereignisse-Feld" short_description = "" long_description = "" } session_entrances_field = { label = "Session-Einstiege-Feld" short_description = "" long_description = "" } session_exits_field = { label = "Session-Ausstiege-Feld" short_description = "" long_description = "" } session_sequence_number_field = { label = "Session-Sequenzanzahl-Feld" short_description = "" long_description = "" } session_page_field = { label = "Session-Seiten-Feld" short_description = "" long_description = "" } } # report_element } # report_elements } # report } # reports report_fields = { label = "Reportfelder" column_label = { label = "Spaltenbeschriftung" short_description = "" long_description = "This specifies an alternative label for report table columns. If a column label is specified $PRODUCT_NAME displays it in table columns, otherwise it displays the default report field name." } # column_label column_info = { label = "Spalteninfo" short_description = "" long_description = "This specifies a text to be displayed as column info in reports. Tables in reports will show an info icon on the left in table headers if a column info is defined and if the column is visible." } # column_info # database_field = { # label = "Database field" # } # database_field display_format_type = { label = "Anzeigeformat" short_description = "" long_description = "This specifies the format to be displayed in reports. There are a number of default formats and a \"Custom\" format which supporst printf formatting." } # display_format_type custom_display_format_type = { label = "Angepasster Anzeigeformattyp" short_description = "" long_description = "

    This formats a value in printf formatting style, i.e:

    \"\$ %0.4f\" formats the value \"2.345678\" as \"$ 2.3456\"

    \"%0.2f\" formats the value \"2.345678\" as \"2.34\"

    " } # custom_display_format_type column_alignment = { label = "Spaltenausrichtung" short_description = "" long_description = "This specifies the column alignment in table columns.

    Auto aligns non-numerical values on the left and numerical values on the right.

    Left or Right aligns the values independent of its type.

    " } # column_alignment subitems_level = { label = "Unterobjekte-Level" short_description = "" long_description = "

    The subitems level defines of how to display hierarchical database field items such as date time, location or page. Report fields allow to display different variations of hierarchical database fields by defining specific subitem levels.

    Bottom level (equal -1) This displays table items at the bottom level, which means that they are expanded up to the last item, i.e. dir1/subdir/page.html

    Hierarchical level (equal 0) This displays table items hierarchically by displaying only the root items first. If a root item or subitem contains subitems then it is possible to expand that item to display the subitems. Items with subitems are displayed as a link, clicking on it will show the subitems.

    Specific level (equal -2 or >= 1) This displays table items at the specified subitems level, i.e. \"dir1/subdir/\". Note, -2 defines a source item field (i.e. date_time timestamp in case for date_time database field in log_detail report)

    " } # subitems_level expression = { label = "Ausdruck" short_description = "" long_description = "" } # expression sort_type = { label = "Sortierungsart" short_description = "" long_description = "" } # sort_type category = { label = "Kategorie" short_description = "" long_description = "" } # category show_remainder_value = { label = "Übrige Werte anzeigen" short_description = "" long_description = "" } # show_remainder_value show_average_value = { label = "Durchschnittswerte anzeigen" short_description = "" long_description = "" } # show_average_value show_min_value = { label = "Min-Werte Anzeigen" short_description = "" long_description = "" } # show_min_value show_max_value = { label = "Max-Werte anzeigen" short_description = "" long_description = "" } # show_max_value show_total_value = { label = "Summenwerte anzeigen" short_description = "" long_description = "" } # show_total_value skip_escaping = { label = "HTML-Escaping überspringen" short_description = "" long_description = "This skips HTML escaping, Salang escaping and text truncation of the column value. HTML markup will be displayed as HTML. Skip escaping should only be used for values where you are sure that it doesn't contain and malicious HTML markup or Salang code." } # skip_escaping } # report_fields } # statistics } # profile } # lang_options