<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Stroom – httpd</title>
    <link>/tags/httpd/</link>
    <description>Recent content in httpd on Stroom</description>
    <generator>Hugo -- gohugo.io</generator>
    <lastBuildDate>Mon, 12 Jul 2021 00:00:00 +0000</lastBuildDate>
    
	  <atom:link href="/tags/httpd/index.xml" rel="self" type="application/rss+xml" />
    
    
      
        
      
    
    
    <item>
      <title>Docs: Apache Httpd/Mod_JK configuration for Stroom</title>
      <link>/docs/howtos/install/installhttpdhowto/</link>
      <pubDate>Mon, 12 Jul 2021 00:00:00 +0000</pubDate>
      
      <guid>/docs/howtos/install/installhttpdhowto/</guid>
      <description>
        
        
        &lt;h2 id=&#34;assumptions&#34;&gt;Assumptions&lt;/h2&gt;
&lt;p&gt;The following assumptions are used in this document.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The user has reasonable RHEL/Centos System administration skills&lt;/li&gt;
&lt;li&gt;Installations are on Centos 7.3 minimal systems (fully patched)&lt;/li&gt;
&lt;li&gt;The security of the HTTPD deployment should be reviewed for a production environment.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;installation-of-apache-httpd-and-mod_jk-software&#34;&gt;Installation of Apache httpd and Mod_JK Software&lt;/h2&gt;
&lt;p&gt;To deploy Stroom using Apache&amp;rsquo;s httpd web service as a front end (https) and Apache&amp;rsquo;s mod_jk as the interface between Apache and the Stroom tomcat applications, we also need&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;apr&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;apr-util&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;apr-devel&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;gcc&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;httpd&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;httpd-devel&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;mod_ssl&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;epel-release&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;tomcat-native&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Apache&amp;rsquo;s &lt;code&gt;mod_jk&lt;/code&gt; Tomcat connector plugin&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Most of the required software are packages available via standard repositories and hence we can simply execute&lt;/p&gt;

  






&lt;div class=&#34;code-toolbar&#34;&gt;
  &lt;pre 
    class=&#34;command-line language-bash&#34; 
    data-user=&#34;user&#34; 
    data-host=&#34;localhost&#34; 
    data-continuation-str=&#34;\&#34;
    data-filter-output=&#34;(out)&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;sudo yum -y install apr apr-util apr-devel gcc httpd httpd-devel mod_ssl epel-release
sudo yum -y install tomcat-native&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;The reason for the distinct &lt;code&gt;tomcat-native&lt;/code&gt; installation is that this package is from the &lt;span class=&#34;external-link&#34;&gt;
  &lt;a href=&#34;https://fedoraproject.org/wiki/EPEL&#34; target=&#34;_blank&#34; class=&#34;external-link&#34; title=&#34;EPEL (external link to https://fedoraproject.org/wiki/EPEL)&#34;&gt;
    &lt;span&gt;EPEL&lt;/span&gt;
    &lt;i class=&#34;external-link-icon fas fa-external-link-alt fa-sm text-secondary&#34;&gt;&lt;/i&gt;
  &lt;/a&gt;
&lt;/span&gt;
 repository so it must be installed first.&lt;/p&gt;
&lt;p&gt;For the Apache mod_jk Tomcat connector we need to acquire a recent &lt;span class=&#34;external-link&#34;&gt;
  &lt;a href=&#34;https://tomcat.apache.org/connectors-doc/&#34; target=&#34;_blank&#34; class=&#34;external-link&#34; title=&#34;release (external link to https://tomcat.apache.org/connectors-doc/)&#34;&gt;
    &lt;span&gt;release&lt;/span&gt;
    &lt;i class=&#34;external-link-icon fas fa-external-link-alt fa-sm text-secondary&#34;&gt;&lt;/i&gt;
  &lt;/a&gt;
&lt;/span&gt;
 and install it.
The following commands achieve this for the 1.2.42 release.&lt;/p&gt;

  






&lt;div class=&#34;code-toolbar&#34;&gt;
  &lt;pre 
    class=&#34;command-line language-bash&#34; 
    data-user=&#34;user&#34; 
    data-host=&#34;localhost&#34; 
    data-continuation-str=&#34;\&#34;
    data-filter-output=&#34;(out)&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;sudo bash
cd /tmp
V=1.2.42
wget https://www.apache.org/dist/tomcat/tomcat-connectors/jk/tomcat-connectors-${V}-src.tar.gz
tar xf tomcat-connectors-${V}-src.tar.gz
cd tomcat-connectors-*-src/native
./configure --with-apxs=/bin/apxs
make &amp;amp;&amp;amp; make install
cd /tmp
rm -rf tomcat-connectors-*-src&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;Although you could remove the gcc compiler at this point, we leave it installed as one &lt;em&gt;should&lt;/em&gt; continue to upgrade the Tomcat Connectors to later releases.&lt;/p&gt;
&lt;h2 id=&#34;configure-apache-httpd&#34;&gt;Configure Apache httpd&lt;/h2&gt;
&lt;p&gt;We need to configure Apache as the &lt;code&gt;root&lt;/code&gt; user.&lt;/p&gt;
&lt;p&gt;If the Apache httpd service is &amp;lsquo;fronting&amp;rsquo; a Stroom user interface, we should create an index file (/var/www/html/index.html) on all nodes so browsing to
the root of the node will present the Stroom UI. This is not needed if you are deploying a Forwarding or Standalone Stroom proxy.&lt;/p&gt;
&lt;h3 id=&#34;forwarding-file-for-stroom-user-interface-deployments&#34;&gt;Forwarding file for Stroom User Interface deployments&lt;/h3&gt;

  






&lt;div class=&#34;code-toolbar&#34;&gt;
  &lt;pre 
    class=&#34;command-line language-bash&#34; 
    data-user=&#34;user&#34; 
    data-host=&#34;localhost&#34; 
    data-continuation-str=&#34;\&#34;
    data-filter-output=&#34;(out)&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;F=/var/www/html/index.html
printf &amp;#39;&amp;lt;html&amp;gt;\n&amp;#39; &amp;gt; ${F}
printf &amp;#39;&amp;lt;head&amp;gt;\n&amp;#39; &amp;gt;&amp;gt; ${F}
printf &amp;#39;  &amp;lt;meta http-equiv=&amp;#34;Refresh&amp;#34; content=&amp;#34;0; URL=stroom&amp;#34;/&amp;gt;\n&amp;#39; &amp;gt;&amp;gt; ${F}
printf &amp;#39;&amp;lt;/head&amp;gt;\n&amp;#39; &amp;gt;&amp;gt; ${F}
printf &amp;#39;&amp;lt;/html&amp;gt;\n&amp;#39; &amp;gt;&amp;gt; ${F}
chmod 644 ${F}&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;Remember, deploy this file on all nodes running the Stroom Application.&lt;/p&gt;
&lt;h3 id=&#34;httpdconf-configuration&#34;&gt;Httpd.conf Configuration&lt;/h3&gt;
&lt;p&gt;We modify &lt;code&gt;/etc/httpd/conf/httpd.conf&lt;/code&gt; on all nodes, but backup the file first with

  






&lt;div class=&#34;code-toolbar&#34;&gt;
  &lt;pre 
    class=&#34;command-line language-bash&#34; 
    data-user=&#34;user&#34; 
    data-host=&#34;localhost&#34; 
    data-continuation-str=&#34;\&#34;
    data-filter-output=&#34;(out)&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.ORIG&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;Irrespective of the Stroom scenario being deployed - Multi Node Stroom (Application and Proxy), single Standalone Stroom Proxy or single Forwarding
Stroom Proxy, the configuration of the &lt;code&gt;/etc/httpd/conf/httpd.conf&lt;/code&gt; file is the same.&lt;/p&gt;
&lt;p&gt;We start by modifying the configuration file by adding just before the ServerRoot directive the following directives which are designed to make the httpd service more secure.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-text&#34;&gt;# Stroom Change: Start - Apply generic security directives
ServerTokens Prod
ServerSignature Off
FileETag None
RewriteEngine On
RewriteCond %{THE_REQUEST} !HTTP/1.1$
RewriteRule .* - [F]
Header set X-XSS-Protection &amp;quot;1; mode=block&amp;quot;
# Stroom Change: End
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;That is,&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-text&#34;&gt;...
# Do not add a slash at the end of the directory path.  If you point
# ServerRoot at a non-local disk, be sure to specify a local disk on the
# Mutex directive, if file-based mutexes are used.  If you wish to share the
# same ServerRoot for multiple httpd daemons, you will need to change at
# least PidFile.
#
ServerRoot &amp;quot;/etc/httpd&amp;quot;

#
# Listen: Allows you to bind Apache to specific IP addresses and/or
...
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Becomes&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-text&#34;&gt;...
# Do not add a slash at the end of the directory path.  If you point
# ServerRoot at a non-local disk, be sure to specify a local disk on the
# Mutex directive, if file-based mutexes are used.  If you wish to share the
# same ServerRoot for multiple httpd daemons, you will need to change at
# least PidFile.
#
# Stroom Change: Start - Apply generic security directives
ServerTokens Prod
ServerSignature Off
FileETag None
RewriteEngine On
RewriteCond %{THE_REQUEST} !HTTP/1.1$
RewriteRule .* - [F]
Header set X-XSS-Protection &amp;quot;1; mode=block&amp;quot;
# Stroom Change: End
ServerRoot &amp;quot;/etc/httpd&amp;quot;

#
# Listen: Allows you to bind Apache to specific IP addresses and/or
...
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;We now block access to the /var/www directory by commenting out&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;Directory &amp;quot;/var/www&amp;quot;&amp;gt;
  AllowOverride None
  # Allow open access:
  Require all granted
&amp;lt;/Directory&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;that is&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;...
#
# Relax access to content within /var/www.
#
&amp;lt;Directory &amp;quot;/var/www&amp;quot;&amp;gt;
    AllowOverride None
    # Allow open access:
    Require all granted
&amp;lt;/Directory&amp;gt;

# Further relax access to the default document root:
...
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Becomes&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-text&#34;&gt;...
#
# Relax access to content within /var/www.
#
# Stroom Change: Start - Block access to /var/www
# &amp;lt;Directory &amp;quot;/var/www&amp;quot;&amp;gt;
#     AllowOverride None
#     # Allow open access:
#     Require all granted
# &amp;lt;/Directory&amp;gt;
# Stroom Change: End

# Further relax access to the default document root:
...
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then within the &lt;code&gt;/var/www/html&lt;/code&gt; directory turn off &lt;code&gt;Indexes FollowSymLinks&lt;/code&gt; by commenting out the line:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-text&#34;&gt;Options Indexes FollowSymLinks
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;That is&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-text&#34;&gt;...
    # The Options directive is both complicated and important.  Please see
    # http://httpd.apache.org/docs/2.4/mod/core.html#options
    # for more information.
    #
    Options Indexes FollowSymLinks

    #
    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be &amp;quot;All&amp;quot;, &amp;quot;None&amp;quot;, or any combination of the keywords:
...
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Becomes&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-text&#34;&gt;...
    # The Options directive is both complicated and important.  Please see
    # http://httpd.apache.org/docs/2.4/mod/core.html#options
    # for more information.
    #
    # Stroom Change: Start - turn off indexes and FollowSymLinks
    # Options Indexes FollowSymLinks
    # Stroom Change: End

    #
    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be &amp;quot;All&amp;quot;, &amp;quot;None&amp;quot;, or any combination of the keywords:
...
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then finally we add two new log formats and configure the access log to use the new format. This is done within the &lt;code&gt;&amp;lt;IfModule logio_module&amp;gt;&lt;/code&gt; by adding the two new LogFormat directives&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-text&#34;&gt;LogFormat &amp;quot;%a/%{REMOTE_PORT}e %X %t %l \&amp;quot;%u\&amp;quot; \&amp;quot;%r\&amp;quot; %s/%&amp;gt;s %D %I/%O/%B \&amp;quot;%{Referer}i\&amp;quot; \&amp;quot;%{User-Agent}i\&amp;quot; %V/%p&amp;quot; blackboxUser
LogFormat &amp;quot;%a/%{REMOTE_PORT}e %X %t %l \&amp;quot;%{SSL_CLIENT_S_DN}x\&amp;quot; \&amp;quot;%r\&amp;quot; %s/%&amp;gt;s %D %I/%O/%B \&amp;quot;%{Referer}i\&amp;quot; \&amp;quot;%{User-Agent}i\&amp;quot; %V/%p&amp;quot; blackboxSSLUser
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;And replacing the CustomLog directive&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-text&#34;&gt;CustomLog &amp;quot;logs/access_log&amp;quot; combined
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;With&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-text&#34;&gt;CustomLog logs/access_log blackboxSSLUser
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;That is&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-text&#34;&gt;...
    LogFormat &amp;quot;%h %l %u %t \&amp;quot;%r\&amp;quot; %&amp;gt;s %b&amp;quot; common

    &amp;lt;IfModule logio_module&amp;gt;
      # You need to enable mod_logio.c to use %I and %O
      LogFormat &amp;quot;%h %l %u %t \&amp;quot;%r\&amp;quot; %&amp;gt;s %b \&amp;quot;%{Referer}i\&amp;quot; \&amp;quot;%{User-Agent}i\&amp;quot; %I %O&amp;quot; combinedio
    &amp;lt;/IfModule&amp;gt;

    #
    # The location and format of the access logfile (Common Logfile Format).
    # If you do not define any access logfiles within a &amp;lt;VirtualHost&amp;gt;
    # container, they will be logged here.  Contrariwise, if you *do*
    # define per-&amp;lt;VirtualHost&amp;gt; access logfiles, transactions will be
    # logged therein and *not* in this file.
    #
    #CustomLog &amp;quot;logs/access_log&amp;quot; common

    #
    # If you prefer a logfile with access, agent, and referer information
    # (Combined Logfile Format) you can use the following directive.
    #
    CustomLog &amp;quot;logs/access_log&amp;quot; combined
&amp;lt;/IfModule&amp;gt;
...
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Becomes&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-text&#34;&gt;...
    LogFormat &amp;quot;%h %l %u %t \&amp;quot;%r\&amp;quot; %&amp;gt;s %b&amp;quot; common

    &amp;lt;IfModule logio_module&amp;gt;
      # You need to enable mod_logio.c to use %I and %O
      LogFormat &amp;quot;%h %l %u %t \&amp;quot;%r\&amp;quot; %&amp;gt;s %b \&amp;quot;%{Referer}i\&amp;quot; \&amp;quot;%{User-Agent}i\&amp;quot; %I %O&amp;quot; combinedio
      # Stroom Change: Start - Add new logformats
      LogFormat &amp;quot;%a/%{REMOTE_PORT}e %X %t %l \&amp;quot;%u\&amp;quot; \&amp;quot;%r\&amp;quot; %s/%&amp;gt;s %D %I/%O/%B \&amp;quot;%{Referer}i\&amp;quot; \&amp;quot;%{User-Agent}i\&amp;quot; %V/%p&amp;quot; blackboxUser
      LogFormat &amp;quot;%a/%{REMOTE_PORT}e %X %t %l \&amp;quot;%{SSL_CLIENT_S_DN}x\&amp;quot; \&amp;quot;%r\&amp;quot; %s/%&amp;gt;s %D %I/%O/%B \&amp;quot;%{Referer}i\&amp;quot; \&amp;quot;%{User-Agent}i\&amp;quot; %V/%p&amp;quot; blackboxSSLUser
      # Stroom Change: End
    &amp;lt;/IfModule&amp;gt;
    # Stroom Change: Start - Add new logformats without the additional byte values
    &amp;lt;IfModule !logio_module&amp;gt;
      LogFormat &amp;quot;%a/%{REMOTE_PORT}e %X %t %l \&amp;quot;%u\&amp;quot; \&amp;quot;%r\&amp;quot; %s/%&amp;gt;s %D 0/0/%B \&amp;quot;%{Referer}i\&amp;quot; \&amp;quot;%{User-Agent}i\&amp;quot; %V/%p&amp;quot; blackboxUser
      LogFormat &amp;quot;%a/%{REMOTE_PORT}e %X %t %l \&amp;quot;%{SSL_CLIENT_S_DN}x\&amp;quot; \&amp;quot;%r\&amp;quot; %s/%&amp;gt;s %D 0/0/%B \&amp;quot;%{Referer}i\&amp;quot; \&amp;quot;%{User-Agent}i\&amp;quot; %V/%p&amp;quot; blackboxSSLUser
    &amp;lt;/IfModule&amp;gt;
    # Stroom Change: End

    #
    # The location and format of the access logfile (Common Logfile Format).
    # If you do not define any access logfiles within a &amp;lt;VirtualHost&amp;gt;
    # container, they will be logged here.  Contrariwise, if you *do*
    # define per-&amp;lt;VirtualHost&amp;gt; access logfiles, transactions will be
    # logged therein and *not* in this file.
    #
    #CustomLog &amp;quot;logs/access_log&amp;quot; common

    #
    # If you prefer a logfile with access, agent, and referer information
    # (Combined Logfile Format) you can use the following directive.
    #
    # Stroom Change: Start - Make the access log use a new format
    # CustomLog &amp;quot;logs/access_log&amp;quot; combined
    CustomLog logs/access_log blackboxSSLUser
    # Stroom Change: End
&amp;lt;/IfModule&amp;gt;
...
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Remember, deploy this file on all nodes.&lt;/p&gt;
&lt;h3 id=&#34;configuration-of-sslconf&#34;&gt;Configuration of &lt;code&gt;ssl.conf&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;We modify &lt;code&gt;/etc/httpd/conf.d/ssl.conf&lt;/code&gt; on all nodes, backing up first,&lt;/p&gt;

  






&lt;div class=&#34;code-toolbar&#34;&gt;
  &lt;pre 
    class=&#34;command-line language-bash&#34; 
    data-user=&#34;root&#34; 
    data-host=&#34;localhost&#34; 
    data-continuation-str=&#34;\&#34;
    data-filter-output=&#34;(out)&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;cp /etc/httpd/conf.d/ssl.conf /etc/httpd/conf.d/ssl.conf.ORIG&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;The configuration of the &lt;code&gt;/etc/httpd/conf.d/ssl.conf&lt;/code&gt; &lt;strong&gt;does&lt;/strong&gt; change depending on the Stroom scenario deployed. In the following we will indicate
differences by tagged sub-headings. If the configuration applies irrespective of scenario, then &lt;strong&gt;All scenarios&lt;/strong&gt; is the tag, else the tag indicated the
type of Stroom deployment.&lt;/p&gt;
&lt;h4 id=&#34;sslconf-http-to-https-redirection---all-scenarios&#34;&gt;&lt;code&gt;ssl.conf&lt;/code&gt;: HTTP to HTTPS Redirection - All scenarios&lt;/h4&gt;
&lt;p&gt;Before the &lt;VirtualHost _default_:443&gt; context we add http to https redirection by adding the directives (noting we specify the actual server name)&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-text&#34;&gt;&amp;lt;VirtualHost *:80&amp;gt;
  ServerName stroomp00.strmdev00.org
  Redirect permanent &amp;quot;/&amp;quot; &amp;quot;https://stroomp00.strmdev00.org/&amp;quot;
&amp;lt;/VirtualHost&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;That is, we change&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-text&#34;&gt;...
## SSL Virtual Host Context
##

&amp;lt;VirtualHost _default_:443&amp;gt;
...
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;To&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-text&#34;&gt;...
## SSL Virtual Host Context
##

# Stroom Change: Start - Add http redirection to https
&amp;lt;VirtualHost *:80&amp;gt;
  ServerName stroomp00.strmdev00.org
  Redirect permanent &amp;quot;/&amp;quot; &amp;quot;https://stroomp00.strmdev00.org/&amp;quot;
&amp;lt;/VirtualHost&amp;gt;
# Stroom Change: End

&amp;lt;VirtualHost _default_:443&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h4 id=&#34;sslconf-virtualhost-directives---multi-node-application-and-proxy-deployment&#34;&gt;&lt;code&gt;ssl.conf&lt;/code&gt;: VirtualHost directives - Multi Node &amp;lsquo;Application and Proxy&amp;rsquo; deployment&lt;/h4&gt;
&lt;p&gt;Within the &lt;VirtualHost _default_:443&gt; context we set the directives, in this case, we use the CNAME &lt;code&gt;stroomp.strmdev00.org&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-text&#34;&gt;ServerName stroomp.strmdev00.org
JkMount /stroom* loadbalancer
JkMount /stroom/remoting/cluster* local
JkMount /stroom/datafeed* loadbalancer_proxy
JkMount /stroom/remoting* loadbalancer_proxy
JkMount /stroom/datafeeddirect* loadbalancer
JkOptions +ForwardKeySize +ForwardURICompat +ForwardSSLCertChain -ForwardDirectories
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;That is, we change&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-text&#34;&gt;...
&amp;lt;VirtualHost _default_:443&amp;gt;

# General setup for the virtual host, inherited from global configuration
#DocumentRoot &amp;quot;/var/www/html&amp;quot;
#ServerName www.example.com:443

# Use separate log files for the SSL virtual host; note that LogLevel
# is not inherited from httpd.conf.
...
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;To&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-text&#34;&gt;...
&amp;lt;VirtualHost _default_:443&amp;gt;

# General setup for the virtual host, inherited from global configuration
#DocumentRoot &amp;quot;/var/www/html&amp;quot;
#ServerName www.example.com:443
# Stroom Change: Start - Set servername and mod_jk connectivity
ServerName stroomp.strmdev00.org
JkMount /stroom* loadbalancer
JkMount /stroom/remoting/cluster* local
JkMount /stroom/datafeed* loadbalancer_proxy
JkMount /stroom/remoting* loadbalancer_proxy
JkMount /stroom/datafeeddirect* loadbalancer
JkOptions +ForwardKeySize +ForwardURICompat +ForwardSSLCertChain -ForwardDirectories
# Stroom Change: End

# Use separate log files for the SSL virtual host; note that LogLevel
# is not inherited from httpd.conf.
...
&lt;/code&gt;&lt;/pre&gt;
&lt;h4 id=&#34;sslconf-virtualhost-directives---standalone-or-forwarding-proxy-deployment&#34;&gt;&lt;code&gt;ssl.conf&lt;/code&gt;: VirtualHost directives - Standalone or Forwarding Proxy deployment&lt;/h4&gt;
&lt;p&gt;Within the &lt;VirtualHost _default_:443&gt; context set the directives, in this case, for a node named say &lt;code&gt;stroomfp0.strmdev00.org&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-text&#34;&gt;ServerName stroomfp0.strmdev00.org
JkMount /stroom/datafeed* local_proxy
JkOptions +ForwardKeySize +ForwardURICompat +ForwardSSLCertChain -ForwardDirectories
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;That is, we change&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-text&#34;&gt;...
&amp;lt;VirtualHost _default_:443&amp;gt;

# General setup for the virtual host, inherited from global configuration
#DocumentRoot &amp;quot;/var/www/html&amp;quot;
#ServerName www.example.com:443

# Use separate log files for the SSL virtual host; note that LogLevel
# is not inherited from httpd.conf.
...
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;To&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-text&#34;&gt;...
&amp;lt;VirtualHost _default_:443&amp;gt;

# General setup for the virtual host, inherited from global configuration
#DocumentRoot &amp;quot;/var/www/html&amp;quot;
#ServerName www.example.com:443
# Stroom Change: Start - Set servername and mod_jk connectivity
ServerName stroomfp0.strmdev00.org
JkMount /stroom/datafeed* local_proxy
JkOptions +ForwardKeySize +ForwardURICompat +ForwardSSLCertChain -ForwardDirectories
# Stroom Change: End

# Use separate log files for the SSL virtual host; note that LogLevel
# is not inherited from httpd.conf.
...
&lt;/code&gt;&lt;/pre&gt;
&lt;h4 id=&#34;sslconf-virtualhost-directives---single-node-application-and-proxy-deployment&#34;&gt;&lt;code&gt;ssl.conf&lt;/code&gt;: VirtualHost directives - Single Node &amp;lsquo;Application and Proxy&amp;rsquo; deployment&lt;/h4&gt;
&lt;p&gt;Within the &lt;VirtualHost _default_:443&gt; context set the directives, in this case, for a node name &lt;code&gt;stroomp00.strmdev00.org&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-text&#34;&gt;ServerName stroomp00.strmdev00.org
JkMount /stroom* local
JkMount /stroom/remoting/cluster* local
JkMount /stroom/datafeed* local_proxy
JkMount /stroom/remoting* local_proxy
JkMount /stroom/datafeeddirect* local
JkOptions +ForwardKeySize +ForwardURICompat +ForwardSSLCertChain -ForwardDirectories
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;That is, we change&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-text&#34;&gt;...
&amp;lt;VirtualHost _default_:443&amp;gt;

# General setup for the virtual host, inherited from global configuration
#DocumentRoot &amp;quot;/var/www/html&amp;quot;
#ServerName www.example.com:443

# Use separate log files for the SSL virtual host; note that LogLevel
# is not inherited from httpd.conf.
...
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;To&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-text&#34;&gt;...
&amp;lt;VirtualHost _default_:443&amp;gt;

# General setup for the virtual host, inherited from global configuration
#DocumentRoot &amp;quot;/var/www/html&amp;quot;
#ServerName www.example.com:443
# Stroom Change: Start - Set servername and mod_jk connectivity
ServerName stroomp00.strmdev00.org
JkMount /stroom* local
JkMount /stroom/remoting/cluster* local
JkMount /stroom/datafeed* local_proxy
JkMount /stroom/remoting* local_proxy
JkMount /stroom/datafeeddirect* local
JkOptions +ForwardKeySize +ForwardURICompat +ForwardSSLCertChain -ForwardDirectories
# Stroom Change: End

# Use separate log files for the SSL virtual host; note that LogLevel
# is not inherited from httpd.conf.
...
&lt;/code&gt;&lt;/pre&gt;
&lt;h4 id=&#34;sslconf-certificate-file-changes---all-scenarios&#34;&gt;&lt;code&gt;ssl.conf&lt;/code&gt;: Certificate file changes - All scenarios&lt;/h4&gt;
&lt;p&gt;We replace the standard certificate files with the generated certificates. In the example below, we are using the multi node scenario, in
that the key file names are &lt;code&gt;stroomp.crt&lt;/code&gt; and &lt;code&gt;stroomp.key&lt;/code&gt;. For other scenarios, use the appropriate file names generated. We replace&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;SSLCertificateFile /etc/pki/tls/certs/localhost.crt
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;with&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;SSLCertificateFile /home/stroomuser/stroom-jks/public/stroomp.crt
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;and&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;with&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;SSLCertificateKeyFile /home/stroomuser/stroom-jks/private/stroomp.key
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;That is, change&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;...
# pass phrase.  Note that a kill -HUP will prompt again.  A new
# certificate can be generated using the genkey(1) command.
SSLCertificateFile /etc/pki/tls/certs/localhost.crt

#   Server Private Key:
#   If the key is not combined with the certificate, use this
#   directive to point at the key file.  Keep in mind that if
#   you&#39;ve both a RSA and a DSA private key you can configure
#   both in parallel (to also allow the use of DSA ciphers, etc.)
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key

#   Server Certificate Chain:
#   Point SSLCertificateChainFile at a file containing the
...
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;to&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;...
# pass phrase.  Note that a kill -HUP will prompt again.  A new
# certificate can be generated using the genkey(1) command.
# Stroom Change: Start - Replace with Stroom server certificate
# SSLCertificateFile /etc/pki/tls/certs/localhost.crt
SSLCertificateFile /home/stroomuser/stroom-jks/public/stroomp.crt
# Stroom Change: End

#   Server Private Key:
#   If the key is not combined with the certificate, use this
#   directive to point at the key file.  Keep in mind that if
#   you&#39;ve both a RSA and a DSA private key you can configure
#   both in parallel (to also allow the use of DSA ciphers, etc.)
# Stroom Change: Start - Replace with Stroom server private key file
# SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
SSLCertificateKeyFile /home/stroomuser/stroom-jks/private/stroomp.key
# Stroom Change: End

#   Server Certificate Chain:
#   Point SSLCertificateChainFile at a file containing the
...
&lt;/code&gt;&lt;/pre&gt;
&lt;h4 id=&#34;sslconf-certificate-bundleno-ca-verification---all-scenarios&#34;&gt;&lt;code&gt;ssl.conf&lt;/code&gt;: Certificate Bundle/NO-CA Verification - All scenarios&lt;/h4&gt;
&lt;p&gt;If you have signed your Stroom server certificate with a Certificate Authority, then change&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;SSLCACertificateFile /etc/pki/tls/certs/ca-bundle.crt
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;to be your own certificate bundle which you should probably store as &lt;code&gt;~stroomuser/stroom-jks/public/stroomp-ca-bundle.crt&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Now if you are using a self signed certificate, you will need to set the Client Authentication to have a value of&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;SSLVerifyClient optional_no_ca
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;noting that this may change if you actually use a CA.
That is, changing&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;...
#   Client Authentication (Type):
#   Client certificate verification type and depth.  Types are
#   none, optional, require and optional_no_ca.  Depth is a
#   number which specifies how deeply to verify the certificate
#   issuer chain before deciding the certificate is not valid.
#SSLVerifyClient require
#SSLVerifyDepth  10

#   Access Control:
#   With SSLRequire you can do per-directory access control based
...
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;to&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;...
#   Client Authentication (Type):
#   Client certificate verification type and depth.  Types are
#   none, optional, require and optional_no_ca.  Depth is a
#   number which specifies how deeply to verify the certificate
#   issuer chain before deciding the certificate is not valid.
#SSLVerifyClient require
#SSLVerifyDepth  10
# Stroom Change: Start - Set optional_no_ca (given we have a self signed certificate)
SSLVerifyClient optional_no_ca
# Stroom Change: End

#   Access Control:
#   With SSLRequire you can do per-directory access control based
...
&lt;/code&gt;&lt;/pre&gt;
&lt;h4 id=&#34;sslconf-servlet-protection---single-or-multi-node-scenarios-not-for-standaloneforwarding-proxy&#34;&gt;&lt;code&gt;ssl.conf&lt;/code&gt;: Servlet Protection - Single or Multi Node scenarios (not for Standalone/Forwarding Proxy)&lt;/h4&gt;
&lt;p&gt;We now need to secure certain Stroom Application servlets, to ensure they are only accessed under appropriate control.&lt;/p&gt;
&lt;p&gt;This set of servlets will be accessible by all nodes in the subnet 192.168.2 (as well as localhost). We achieve this by adding after the example Location directives&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;Location ~ &amp;quot;stroom/(status|echo|sessionList|debug)&amp;quot; &amp;gt;
 Require all denied
 Require ip 127.0.0.1 192.168.2
&amp;lt;/Location&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;We further restrict the &lt;code&gt;clustercall&lt;/code&gt; and &lt;code&gt;export&lt;/code&gt; servlets to just the localhost. If we had multiple Stroom processing nodes, you would specify each node, or preferably, the subnet they are on. In our multi node case this is 192.168.2.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;Location ~ &amp;quot;stroom/export/|stroom/remoting/clustercall.rpc&amp;quot; &amp;gt;
 Require all denied
 Require ip 127.0.0.1 192.168.2
&amp;lt;/Location&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;That is, the following&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;...
#            and %{TIME_WDAY} &amp;gt;= 1 and %{TIME_WDAY} &amp;lt;= 5 \
#            and %{TIME_HOUR} &amp;gt;= 8 and %{TIME_HOUR} &amp;lt;= 20       ) \
#           or %{REMOTE_ADDR} =~ m/^192\.76\.162\.[0-9]+$/
#&amp;lt;/Location&amp;gt;

#   SSL Engine Options:
#   Set various options for the SSL engine.
#   o FakeBasicAuth:
...
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;changes to&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;...
#            and %{TIME_WDAY} &amp;gt;= 1 and %{TIME_WDAY} &amp;lt;= 5 \
#            and %{TIME_HOUR} &amp;gt;= 8 and %{TIME_HOUR} &amp;lt;= 20       ) \
#           or %{REMOTE_ADDR} =~ m/^192\.76\.162\.[0-9]+$/
#&amp;lt;/Location&amp;gt;

# Stroom Change: Start - Lock access to certain servlets
&amp;lt;Location ~ &amp;quot;stroom/(status|echo|sessionList|debug)&amp;quot; &amp;gt;
 Require all denied
 Require ip 127.0.0.1 192.168.2
&amp;lt;/Location&amp;gt;
# Lock these Servlets more securely - to just localhost and processing node(s)
&amp;lt;Location ~ &amp;quot;stroom/export/|stroom/remoting/clustercall.rpc&amp;quot; &amp;gt;
 Require all denied
 Require ip 127.0.0.1 192.168.2
&amp;lt;/Location&amp;gt;
# Stroom Change: End

#   SSL Engine Options:
#   Set various options for the SSL engine.
#   o FakeBasicAuth:
...
&lt;/code&gt;&lt;/pre&gt;
&lt;h4 id=&#34;sslconf-log-formats---all-scenarios&#34;&gt;&lt;code&gt;ssl.conf&lt;/code&gt;: Log formats - All scenarios&lt;/h4&gt;
&lt;p&gt;Finally, as we make use of the Black Box Apache log format, we replace the standard format&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;CustomLog logs/ssl_request_log \
        &amp;quot;%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \&amp;quot;%r\&amp;quot; %b&amp;quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;with&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;CustomLog logs/ssl_request_log blackboxSSLUser
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;That is, change&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;...
#   Per-Server Logging:
#   The home of a custom SSL log file. Use this when you want a
#   compact non-error SSL logfile on a virtual host basis.
CustomLog logs/ssl_request_log \
          &amp;quot;%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \&amp;quot;%r\&amp;quot; %b&amp;quot;

&amp;lt;/VirtualHost&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;to&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;...
#   Per-Server Logging:
#   The home of a custom SSL log file. Use this when you want a
#   compact non-error SSL logfile on a virtual host basis.
# Stroom Change: Start - Change ssl_request log to use our BlackBox format
# CustomLog logs/ssl_request_log \
#           &amp;quot;%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \&amp;quot;%r\&amp;quot; %b&amp;quot;
CustomLog logs/ssl_request_log blackboxSSLUser
# Stroom Change: End

&amp;lt;/VirtualHost&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Remember, in the case of Multi node stroom Application servers, deploy this file on all servers.&lt;/p&gt;
&lt;h3 id=&#34;apache-mod_jk-configuration&#34;&gt;Apache Mod_JK configuration&lt;/h3&gt;
&lt;p&gt;Apache Mod_JK has two configuration files&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;/etc/httpd/conf.d/mod_jk.conf - for the http server configuration&lt;/li&gt;
&lt;li&gt;/etc/httpd/conf/workers.properties - to configure the Tomcat workers&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In multi node scenarios, &lt;code&gt;/etc/httpd/conf.d/mod_jk.conf&lt;/code&gt; is the same on all servers, but the &lt;code&gt;/etc/httpd/conf/workers.properties&lt;/code&gt; file is different.
The contents of these two configuration files differ depending on the Stroom deployment. The following provide the various deployment scenarios.&lt;/p&gt;
&lt;h4 id=&#34;mod_jk-multi-node-application-and-proxy-deployment&#34;&gt;Mod_JK Multi Node Application and Proxy Deployment&lt;/h4&gt;
&lt;p&gt;For a Stroom Multi node Application and Proxy server,&lt;/p&gt;
&lt;p&gt;We configure &lt;code&gt;/etc/httpd/conf.d/mod_jk.conf&lt;/code&gt; as per&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;F=/etc/httpd/conf.d/mod_jk.conf
printf &#39;LoadModule jk_module modules/mod_jk.so\n&#39; &amp;gt; ${F}
printf &#39;JkWorkersFile conf/workers.properties\n&#39; &amp;gt;&amp;gt; ${F}
printf &#39;JkLogFile logs/mod_jk.log\n&#39; &amp;gt;&amp;gt; ${F}
printf &#39;JkLogLevel info\n&#39; &amp;gt;&amp;gt; ${F}
printf &#39;JkLogStampFormat  &amp;quot;[%%a %%b %%d %%H:%%M:%%S %%Y]&amp;quot;\n&#39; &amp;gt;&amp;gt; ${F}
printf &#39;JkOptions +ForwardKeySize +ForwardURICompat +ForwardSSLCertChain -ForwardDirectories\n&#39; &amp;gt;&amp;gt; ${F}
printf &#39;JkRequestLogFormat &amp;quot;%%w %%V %%T&amp;quot;\n&#39; &amp;gt;&amp;gt; ${F}
printf &#39;JkMount /stroom* loadbalancer\n&#39; &amp;gt;&amp;gt; ${F}
printf &#39;JkMount /stroom/remoting/cluster* local\n&#39; &amp;gt;&amp;gt; ${F}
printf &#39;JkMount /stroom/datafeed* loadbalancer_proxy\n&#39; &amp;gt;&amp;gt; ${F}
printf &#39;JkMount /stroom/remoting* loadbalancer_proxy\n&#39; &amp;gt;&amp;gt; ${F}
printf &#39;JkMount /stroom/datafeeddirect* loadbalancer\n&#39; &amp;gt;&amp;gt; ${F}
printf &#39;# Note: Replaced JkShmFile logs/jk.shm due to SELinux issues. Refer to\n&#39; &amp;gt;&amp;gt; ${F}
printf &#39;# https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=225452\n&#39; &amp;gt;&amp;gt; ${F}
printf &#39;# The following makes use of the existing /run/httpd directory\n&#39; &amp;gt;&amp;gt; ${F}
printf &#39;JkShmFile run/jk.shm\n&#39; &amp;gt;&amp;gt; ${F}
printf &#39;&amp;lt;Location /jkstatus/&amp;gt;\n&#39; &amp;gt;&amp;gt; ${F}
printf &#39;  JkMount status\n&#39; &amp;gt;&amp;gt; ${F}
printf &#39;  Order deny,allow\n&#39; &amp;gt;&amp;gt; ${F}
printf &#39;  Deny from all\n&#39; &amp;gt;&amp;gt; ${F}
printf &#39;  Allow from 127.0.0.1\n&#39; &amp;gt;&amp;gt; ${F}
printf &#39;&amp;lt;/Location&amp;gt;\n&#39; &amp;gt;&amp;gt; ${F}
chmod 640 ${F}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;We configure &lt;code&gt;/etc/httpd/conf/workers.properties&lt;/code&gt; as per&lt;/p&gt;
&lt;p&gt;Since we are deploying for a cluster with load balancing, we need a &lt;code&gt;workers.properties&lt;/code&gt; file per node. Executing the following will result in two files (&lt;code&gt;workers.properties.stroomp00&lt;/code&gt; and &lt;code&gt;workers.properties.stroomp01&lt;/code&gt;) which should be deployed to their respective servers.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;cd /tmp
# Set the list of nodes
Nodes=&amp;quot;stroomp00.strmdev00.org stroomp01.strmdev00.org&amp;quot;
for oN in ${Nodes}; do
  _n=`echo ${oN} | cut -f1 -d\.`
  (
  printf &#39;# Workers.properties for Stroom Cluster member: %s %s\n&#39; ${oN}
  printf &#39;worker.list=loadbalancer,loadbalancer_proxy,local,local_proxy,status\n&#39;
  L_t=&amp;quot;&amp;quot;
  Lp_t=&amp;quot;&amp;quot;
  for FQDN in ${Nodes}; do
    N=`echo ${FQDN} | cut -f1 -d\.`
    printf &#39;worker.%s.port=8009\n&#39; ${N}
    printf &#39;worker.%s.host=%s\n&#39; ${N} ${FQDN}
    printf &#39;worker.%s.type=ajp13\n&#39; ${N}
    printf &#39;worker.%s.lbfactor=1\n&#39; ${N}
    printf &#39;worker.%s.max_packet_size=65536\n&#39; ${N}
    printf &#39;worker.%s_proxy.port=9009\n&#39; ${N}
    printf &#39;worker.%s_proxy.host=%s\n&#39; ${N} ${FQDN}
    printf &#39;worker.%s_proxy.type=ajp13\n&#39; ${N}
    printf &#39;worker.%s_proxy.lbfactor=1\n&#39; ${N}
    printf &#39;worker.%s_proxy.max_packet_size=65536\n&#39; ${N}
    L_t=&amp;quot;${L_t}${N},&amp;quot;
    Lp_t=&amp;quot;${Lp_t}${N}_proxy,&amp;quot;
  done
  L=`echo $L_t | sed -e &#39;s/.$//&#39;`
  Lp=`echo $Lp_t | sed -e &#39;s/.$//&#39;`
  printf &#39;worker.loadbalancer.type=lb\n&#39;
  printf &#39;worker.loadbalancer.balance_workers=%s\n&#39; $L
  printf &#39;worker.loadbalancer.sticky_session=1\n&#39;
  printf &#39;worker.loadbalancer_proxy.type=lb\n&#39;
  printf &#39;worker.loadbalancer_proxy.balance_workers=%s\n&#39; $Lp
  printf &#39;worker.loadbalancer_proxy.sticky_session=1\n&#39;
  printf &#39;worker.local.type=lb\n&#39;
  printf &#39;worker.local.balance_workers=%s\n&#39; ${_n}
  printf &#39;worker.local.sticky_session=1\n&#39;
  printf &#39;worker.local_proxy.type=lb\n&#39;
  printf &#39;worker.local_proxy.balance_workers=%s_proxy\n&#39; ${_n}
  printf &#39;worker.local_proxy.sticky_session=1\n&#39;
  printf &#39;worker.status.type=status\n&#39;
  ) &amp;gt; workers.properties.${_n}
  chmod 640 workers.properties.${_n}
done
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Now depending in the node you are on, copy the relevant &lt;code&gt;workers.properties.nodename&lt;/code&gt; file to &lt;code&gt;/etc/httpd/conf/workers&lt;/code&gt;.properties.
The following command makes this simple.&lt;/p&gt;

  






&lt;div class=&#34;code-toolbar&#34;&gt;
  &lt;pre 
    class=&#34;command-line language-bash&#34; 
    data-user=&#34;user&#34; 
    data-host=&#34;localhost&#34; 
    data-continuation-str=&#34;\&#34;
    data-filter-output=&#34;(out)&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;cp workers.properties.`hostname -s` /etc/httpd/conf/workers.properties&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;If you were to add an additional node to a multi node cluster, say the node &lt;code&gt;stroomp02.strmdev00.org&lt;/code&gt;, then you would re-run the above script with&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;Nodes=&amp;quot;stroomp00.strmdev00.org stroomp01.strmdev00.org stroomp02.strmdev00.org&amp;quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;then redeploy all three files to the respective servers. Also note, that for the newly created workers.properties files for the existing nodes to
take effect you will need to restart the Apache Httpd service on both nodes.&lt;/p&gt;
&lt;p&gt;Remember, in multi node cluster deployments, the following files are the same and hence can be created on one node, but copied to the
others not forgetting to backup the other node&amp;rsquo;s original files. That is, the files&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;/var/www/html/index.html&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/etc/httpd/conf.d/mod_jk.conf&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/etc/httpd/conf/httpd.conf&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Are to be the same on all nodes.
Only the &lt;code&gt;/etc/httpd/conf.d/ssl.conf&lt;/code&gt; and &lt;code&gt;/etc/httpd/conf/workers.properties&lt;/code&gt; files change.&lt;/p&gt;
&lt;h4 id=&#34;mod_jk-standalone-or-forwarding-stroom-proxy-deployment&#34;&gt;Mod_JK Standalone or Forwarding Stroom Proxy Deployment&lt;/h4&gt;
&lt;p&gt;For a Stroom Standalone or Forwarding proxy,&lt;/p&gt;
&lt;p&gt;We configure &lt;code&gt;/etc/httpd/conf.d/mod_jk.conf&lt;/code&gt; as per&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;F=/etc/httpd/conf.d/mod_jk.conf
printf &#39;LoadModule jk_module modules/mod_jk.so\n&#39; &amp;gt; ${F}
printf &#39;JkWorkersFile conf/workers.properties\n&#39; &amp;gt;&amp;gt; ${F}
printf &#39;JkLogFile logs/mod_jk.log\n&#39; &amp;gt;&amp;gt; ${F}
printf &#39;JkLogLevel info\n&#39; &amp;gt;&amp;gt; ${F}
printf &#39;JkLogStampFormat  &amp;quot;[%%a %%b %%d %%H:%%M:%%S %%Y]&amp;quot;\n&#39; &amp;gt;&amp;gt; ${F}
printf &#39;JkOptions +ForwardKeySize +ForwardURICompat +ForwardSSLCertChain -ForwardDirectories\n&#39; &amp;gt;&amp;gt; ${F}
printf &#39;JkRequestLogFormat &amp;quot;%%w %%V %%T&amp;quot;\n&#39; &amp;gt;&amp;gt; ${F}
printf &#39;JkMount /stroom/datafeed* local_proxy\n&#39; &amp;gt;&amp;gt; ${F}
printf &#39;# Note: Replaced JkShmFile logs/jk.shm due to SELinux issues. Refer to\n&#39; &amp;gt;&amp;gt; ${F}
printf &#39;# https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=225452\n&#39; &amp;gt;&amp;gt; ${F}
printf &#39;# The following makes use of the existing /run/httpd directory\n&#39; &amp;gt;&amp;gt; ${F}
printf &#39;JkShmFile run/jk.shm\n&#39; &amp;gt;&amp;gt; ${F}
printf &#39;&amp;lt;Location /jkstatus/&amp;gt;\n&#39; &amp;gt;&amp;gt; ${F}
printf &#39;  JkMount status\n&#39; &amp;gt;&amp;gt; ${F}
printf &#39;  Order deny,allow\n&#39; &amp;gt;&amp;gt; ${F}
printf &#39;  Deny from all\n&#39; &amp;gt;&amp;gt; ${F}
printf &#39;  Allow from 127.0.0.1\n&#39; &amp;gt;&amp;gt; ${F}
printf &#39;&amp;lt;/Location&amp;gt;\n&#39; &amp;gt;&amp;gt; ${F}
chmod 640 ${F}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;We configure &lt;code&gt;/etc/httpd/conf/workers.properties&lt;/code&gt; as per&lt;/p&gt;
&lt;p&gt;The variable &lt;strong&gt;N&lt;/strong&gt; in the script below is to be the node name (not FQDN) of your sever (i.e. &lt;code&gt;stroomfp0&lt;/code&gt;).&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;N=stroomfp0
FQDN=`hostname -f`
F=/etc/httpd/conf/workers.properties
printf &#39;worker.list=local_proxy,status\n&#39; &amp;gt; ${F}
printf &#39;worker.%s_proxy.port=9009\n&#39; ${N} &amp;gt;&amp;gt; ${F}
printf &#39;worker.%s_proxy.host=%s\n&#39; ${N} ${FQDN} &amp;gt;&amp;gt; ${F}
printf &#39;worker.%s_proxy.type=ajp13\n&#39; ${N} &amp;gt;&amp;gt; ${F}
printf &#39;worker.%s_proxy.lbfactor=1\n&#39; ${N} &amp;gt;&amp;gt; ${F}
printf &#39;worker.local_proxy.type=lb\n&#39; &amp;gt;&amp;gt; ${F}
printf &#39;worker.local_proxy.balance_workers=%s_proxy\n&#39; ${N} &amp;gt;&amp;gt; ${F}
printf &#39;worker.local_proxy.sticky_session=1\n&#39; &amp;gt;&amp;gt; ${F}
printf &#39;worker.status.type=status\n&#39; &amp;gt;&amp;gt; ${F}
chmod 640 ${F}
&lt;/code&gt;&lt;/pre&gt;
&lt;h4 id=&#34;mod_jk-single-node-application-and-proxy-deployment&#34;&gt;Mod_JK Single Node Application and Proxy Deployment&lt;/h4&gt;
&lt;p&gt;For a Stroom Single node Application and Proxy server,&lt;/p&gt;
&lt;p&gt;We configure &lt;code&gt;/etc/httpd/conf.d/mod_jk.conf&lt;/code&gt; as per&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;F=/etc/httpd/conf.d/mod_jk.conf
printf &#39;LoadModule jk_module modules/mod_jk.so\n&#39; &amp;gt; ${F}
printf &#39;JkWorkersFile conf/workers.properties\n&#39; &amp;gt;&amp;gt; ${F}
printf &#39;JkLogFile logs/mod_jk.log\n&#39; &amp;gt;&amp;gt; ${F}
printf &#39;JkLogLevel info\n&#39; &amp;gt;&amp;gt; ${F}
printf &#39;JkLogStampFormat  &amp;quot;[%%a %%b %%d %%H:%%M:%%S %%Y]&amp;quot;\n&#39; &amp;gt;&amp;gt; ${F}
printf &#39;JkOptions +ForwardKeySize +ForwardURICompat +ForwardSSLCertChain -ForwardDirectories\n&#39; &amp;gt;&amp;gt; ${F}
printf &#39;JkRequestLogFormat &amp;quot;%%w %%V %%T&amp;quot;\n&#39; &amp;gt;&amp;gt; ${F}
printf &#39;JkMount /stroom* local\n&#39; &amp;gt;&amp;gt; ${F}
printf &#39;JkMount /stroom/remoting/cluster* local\n&#39; &amp;gt;&amp;gt; ${F}
printf &#39;JkMount /stroom/datafeed* local_proxy\n&#39; &amp;gt;&amp;gt; ${F}
printf &#39;JkMount /stroom/remoting* local_proxy\n&#39; &amp;gt;&amp;gt; ${F}
printf &#39;JkMount /stroom/datafeeddirect* local\n&#39; &amp;gt;&amp;gt; ${F}
printf &#39;# Note: Replaced JkShmFile logs/jk.shm due to SELinux issues. Refer to\n&#39; &amp;gt;&amp;gt; ${F}
printf &#39;# https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=225452\n&#39; &amp;gt;&amp;gt; ${F}
printf &#39;# The following makes use of the existing /run/httpd directory\n&#39; &amp;gt;&amp;gt; ${F}
printf &#39;JkShmFile run/jk.shm\n&#39; &amp;gt;&amp;gt; ${F}
printf &#39;&amp;lt;Location /jkstatus/&amp;gt;\n&#39; &amp;gt;&amp;gt; ${F}
printf &#39;  JkMount status\n&#39; &amp;gt;&amp;gt; ${F}
printf &#39;  Order deny,allow\n&#39; &amp;gt;&amp;gt; ${F}
printf &#39;  Deny from all\n&#39; &amp;gt;&amp;gt; ${F}
printf &#39;  Allow from 127.0.0.1\n&#39; &amp;gt;&amp;gt; ${F}
printf &#39;&amp;lt;/Location&amp;gt;\n&#39; &amp;gt;&amp;gt; ${F}
chmod 640 ${F}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;We configure &lt;code&gt;/etc/httpd/conf/workers.properties&lt;/code&gt; as per&lt;/p&gt;
&lt;p&gt;The variable &lt;strong&gt;N&lt;/strong&gt; in the script below is to be the node name (not FQDN) of your sever (i.e. &lt;code&gt;stroomp00&lt;/code&gt;).&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;N=stroomp00
FQDN=`hostname -f`
F=/etc/httpd/conf/workers.properties
printf &#39;worker.list=local,local_proxy,status\n&#39; &amp;gt; ${F}
printf &#39;worker.%s.port=8009\n&#39; ${N} &amp;gt;&amp;gt; ${F}
printf &#39;worker.%s.host=%s\n&#39; ${N} ${FQDN} &amp;gt;&amp;gt; ${F}
printf &#39;worker.%s.type=ajp13\n&#39; ${N} &amp;gt;&amp;gt; ${F}
printf &#39;worker.%s.lbfactor=1\n&#39; ${N} &amp;gt;&amp;gt; ${F}
printf &#39;worker.%s.max_packet_size=65536\n&#39; ${N} &amp;gt;&amp;gt; ${F}
printf &#39;worker.%s_proxy.port=9009\n&#39; ${N} &amp;gt;&amp;gt; ${F}
printf &#39;worker.%s_proxy.host=%s\n&#39; ${N} ${FQDN} &amp;gt;&amp;gt; ${F}
printf &#39;worker.%s_proxy.type=ajp13\n&#39; ${N} &amp;gt;&amp;gt; ${F}
printf &#39;worker.%s_proxy.lbfactor=1\n&#39; ${N} &amp;gt;&amp;gt; ${F}
printf &#39;worker.%s_proxy.max_packet_size=65536\n&#39; ${N} &amp;gt;&amp;gt; ${F}
printf &#39;worker.local.type=lb\n&#39; &amp;gt;&amp;gt; ${F}
printf &#39;worker.local.balance_workers=%s\n&#39; ${N} &amp;gt;&amp;gt; ${F}
printf &#39;worker.local.sticky_session=1\n&#39; &amp;gt;&amp;gt; ${F}
printf &#39;worker.local_proxy.type=lb\n&#39; &amp;gt;&amp;gt; ${F}
printf &#39;worker.local_proxy.balance_workers=%s_proxy\n&#39; ${N} &amp;gt;&amp;gt; ${F}
printf &#39;worker.local_proxy.sticky_session=1\n&#39; &amp;gt;&amp;gt; ${F}
printf &#39;worker.status.type=status\n&#39; &amp;gt;&amp;gt; ${F}
chmod 640 ${F}
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&#34;final-host-configuration-and-web-service-enablement&#34;&gt;Final host configuration and web service enablement&lt;/h2&gt;
&lt;p&gt;Now tidy up the SELinux context for access on all nodes and files via the commands&lt;/p&gt;

  






&lt;div class=&#34;code-toolbar&#34;&gt;
  &lt;pre 
    class=&#34;command-line language-bash&#34; 
    data-user=&#34;user&#34; 
    data-host=&#34;localhost&#34; 
    data-continuation-str=&#34;\&#34;
    data-filter-output=&#34;(out)&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;setsebool -P httpd_enable_homedirs on
setsebool -P httpd_can_network_connect on
chcon --reference /etc/httpd/conf.d/README /etc/httpd/conf.d/mod_jk.conf
chcon --reference /etc/httpd/conf/magic /etc/httpd/conf/workers.properties&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;We also enable both http and https services via the firewall on all nodes. If you don&amp;rsquo;t want to present a http access point,
then don&amp;rsquo;t enable it in the firewall setting. This is done with&lt;/p&gt;

  






&lt;div class=&#34;code-toolbar&#34;&gt;
  &lt;pre 
    class=&#34;command-line language-bash&#34; 
    data-user=&#34;user&#34; 
    data-host=&#34;localhost&#34; 
    data-continuation-str=&#34;\&#34;
    data-filter-output=&#34;(out)&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;firewall-cmd --zone=public --add-service=http --permanent
firewall-cmd --zone=public --add-service=https --permanent
firewall-cmd --reload
firewall-cmd --zone=public --list-all&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;Finally enable then start the httpd service, correcting any errors. It should be noted that on any errors,
the suggestion of a systemctl status or viewing the journal are good, but also review information in the httpd error logs found in &lt;code&gt;/var/log/httpd/&lt;/code&gt;.&lt;/p&gt;

  






&lt;div class=&#34;code-toolbar&#34;&gt;
  &lt;pre 
    class=&#34;command-line language-bash&#34; 
    data-user=&#34;user&#34; 
    data-host=&#34;localhost&#34; 
    data-continuation-str=&#34;\&#34;
    data-filter-output=&#34;(out)&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;systemctl enable httpd.service
systemctl start httpd.service&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;


      </description>
    </item>
    
    <item>
      <title>Docs: Apache HTTPD Event Feed</title>
      <link>/docs/howtos/eventfeeds/createapachehttpdeventfeed/</link>
      <pubDate>Fri, 09 Jul 2021 00:00:00 +0000</pubDate>
      
      <guid>/docs/howtos/eventfeeds/createapachehttpdeventfeed/</guid>
      <description>
        
        
        &lt;!-- Created with Stroom v6.1-beta.16 --&gt;

&lt;div class=&#34;alert alert-primary&#34; role=&#34;alert&#34;&gt;
&lt;h4 class=&#34;alert-heading&#34;&gt;See Also&lt;/h4&gt;
&lt;div class=&#34;alert-content&#34;&gt;
  
  &lt;p&gt;&lt;a href=&#34;../../docs/howtos/general/enablingprocessorshowto/&#34;&gt;HOWTO - Enabling Processors for a Pipeline&lt;/a&gt;&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;The following will take you through the process of creating an Event Feed in Stroom.&lt;/p&gt;
&lt;p&gt;In this example, the logs are in a well-defined, line based, text format so we will use a Data Splitter parser to transform the logs into simple record-based XML and then a XSLT translation to normalise them into the Event schema.&lt;/p&gt;
&lt;p&gt;A separate document will describe the method of automating the storage of normalised events for this feed.
Further, we will not Decorate these events.
Again, Event Decoration is described in another document.&lt;/p&gt;
&lt;h2 id=&#34;event-log-source&#34;&gt;Event Log Source&lt;/h2&gt;
&lt;p&gt;For this example, we will use logs from an Apache HTTPD Web server.
In fact, the web server in front of Stroom v5 and earlier.&lt;/p&gt;
&lt;p&gt;To get the optimal information from the Apache HTTPD access logs, we define our log format based on an extension of the &lt;em&gt;BlackBox&lt;/em&gt; format.
The format is described and defined below.
This is an extract from a HTTPD configuration file (&lt;code&gt;/etc/httpd/conf/httpd.conf&lt;/code&gt;)&lt;/p&gt;






&lt;div class=&#34;text-file card rounded shadow-stroom p-2 td-post-card mb-4 mt-4&#34; style=&#34;&#34;&gt;

  &lt;div class=&#34;card-body px-0 pt-2 pb-0&#34;&gt;
    
    &lt;pre&gt;&lt;code class=&#34;language-text&#34;&gt;
# Stroom - Black Box Auditing configuration
#
# %a - Client IP address (not hostname (%h) to ensure ip address only)
# When logging the remote host, it is important to log the client IP address, not the
# hostname. We do this with the &#39;%a&#39; directive. Even if HostnameLookups are turned on,
# using &#39;%a&#39; will only record the IP address. For the purposes of BlackBox formats,
# reversed DNS should not be trusted

# %{REMOTE_PORT}e - Client source port
# Logging the client source TCP port can provide some useful network data and can help
# one associate a single client with multiple requests.
# If two clients from the same IP address make simultaneous connections, the &#39;common log&#39;
# file format cannot distinguish between those clients. Otherwise, if the client uses
# keep-alives, then every hit made from a single TCP session will be associated by the same
# client port number.
# The port information can indicate how many connections our server is handling at once,
# which may help in tuning server TCP/OP settings. It will also identify which client ports
# are legitimate requests if the administrator is examining a possible SYN-attack against a
# server.
# Note we are using the REMOTE_PORT environment variable. Environment variables only come
# into play when mod_cgi or mod_cgid is handling the request.

# %X - Connection status (use %c for Apache 1.3)
# The connection status directive tells us detailed information about the client connection.
# It returns one of three flags:
# x if the client aborted the connection before completion,
# + if the client has indicated that it will use keep-alives (and request additional URLS),
# - if the connection will be closed after the event
# Keep-Alive is a HTTP 1.1. directive that informs a web server that a client can request multiple
# files during the same connection. This way a client doesn&#39;t need to go through the overhead
# of re-establishing a TCP connection to retrieve a new file.

# %t - time - or [%{%d/%b/%Y:%T}t.%{msec_frac}t %{%z}t] for Apache 2.4
# The %t directive records the time that the request started.
# NOTE: When deployed on an Apache 2.4, or better, environment, you should use
# strftime format in order to get microsecond resolution.

# %l - remote logname

# %u - username [in quotes]
# The remote user (from auth; This may be bogus if the return status (%s) is 401
# for non-ssl services)
# For SSL services, user names need to be delivered as DNs to deliver PKI user details
# in full. To pass through PKI certificate properties in the correct form you need to
# add the following directives to your Apache configuration:
#   SSLUserName SSL_CLIENT_S_DN
#   SSLOptions +StdEnvVars
# If you cannot, then use %{SSL_CLIENT_S_DN}x in place of %u and use blackboxSSLUser
# LogFormat nickname

# %r - first line of text sent by web client [in quotes]
# This is the first line of text send by the web client, which includes the request
# method, the full URL, and the HTTP protocol.

# %s - status code before any redirection
# This is the status code of the original request.

# %&amp;gt;s - status code after any redirection has taken place
# This is the final status code of the request, after any internal redirections may
# have taken place.

# %D - time in microseconds to handle the request
# This is the number of microseconds the server took to handle the request in microseconds

# %I - incoming bytes
# This is the bytes received, include request and headers. It cannot, by definition be zero.

# %O - outgoing bytes
# This is the size in bytes of the outgoing data, including HTTP headers. It cannot, by
# definition be zero.

# %B - outgoing content bytes
# This is the size in bytes of the outgoing data, EXCLUDING HTTP headers. Unlike %b, which
# records &#39;-&#39; for zero bytes transferred, %B will record &#39;0&#39;.

# %{Referer}i - Referrer HTTP Request Header [in quotes]
# This is typically the URL of the page that made the request. If linked from
# e-mail or direct entry this value will be empty. Note, this can be spoofed
# or turned off

# %{User-Agent}i - User agent HTTP Request Header [in quotes]
# This is the identifying information the client (browser) reports about itself.
# It can be spoofed or turned off

# %V - the server name according to the UseCannonicalName setting
# This identifies the virtual host in a multi host webservice

# %p - the canonical port of the server servicing the request

# Define a variation of the Black Box logs
#
# Note, you only need to use the &#39;blackboxSSLUser&#39; nickname if you cannot set the
# following directives for any SSL configurations
# SSLUserName SSL_CLIENT_S_DN
# SSLOptions +StdEnvVars
# You will also note the variation for no logio module. The logio module supports
# the %I and %O formatting directive
#
&amp;lt;IfModule mod_logio.c&amp;gt;
   LogFormat &amp;quot;%a/%{REMOTE_PORT}e %X %t %l \&amp;quot;../../&amp;quot;%r\&amp;quot; %s/%&amp;gt;s %D %I/%O/%B \&amp;quot;%{Referer}i\&amp;quot; \&amp;quot;%{User-Agent}i\&amp;quot; %V/%p&amp;quot; blackboxUser
   LogFormat &amp;quot;%a/%{REMOTE_PORT}e %X %t %l \&amp;quot;%{SSL_CLIENT_S_DN../../&amp;quot;%r\&amp;quot; %s/%&amp;gt;s %D %I/%O/%B \&amp;quot;%{Referer}i\&amp;quot; \&amp;quot;%{User-Agent}i\&amp;quot; %V/%p&amp;quot; blackboxSSLUser
&amp;lt;/IfModule&amp;gt;
&amp;lt;IfModule !mod_logio.c&amp;gt;
   LogFormat &amp;quot;%a/%{REMOTE_PORT}e %X %t %l \&amp;quot;../../&amp;quot;%r\&amp;quot; %s/%&amp;gt;s %D 0/0/%B \&amp;quot;%{Referer}i\&amp;quot; \&amp;quot;%{User-Agent}i\&amp;quot; %V/$p&amp;quot; blackboxUser
   LogFormat &amp;quot;%a/%{REMOTE_PORT}e %X %t %l \&amp;quot;%{SSL_CLIENT_S_DN../../&amp;quot;%r\&amp;quot; %s/%&amp;gt;s %D 0/0/%B \&amp;quot;%{Referer}i\&amp;quot; \&amp;quot;%{User-Agent}i\&amp;quot; %V/$p&amp;quot; blackboxSSLUser
&amp;lt;/IfModule&amp;gt;


&lt;/code&gt;&lt;/pre&gt;


    &lt;hr style=&#34;border-top: 1px solid #ddd; margin-top: 0px; margin-bottom:4px;&#34;&gt;
    &lt;div class=&#34;card-text&#34; style=&#34;font-size: smaller; text-align: center;&#34;&gt;
      
      &lt;span class=&#34;&#34; style=&#34;font-size: smaller&#34;&gt;_Apache BlackBox_ Auditing Configuration&lt;/span&gt;
      
      (
      &lt;a href=&#34;../../files/HOWTOs/EventFeeds/CreateApacheHTTPDEventFeed/ApacheHTTPDAuditConfig.txt&#34; class=&#34;&#34; style=&#34;font-size: smaller&#34;&gt;Download ApacheHTTPDAuditConfig.txt&lt;/a&gt;
      &lt;i class=&#34;external-link-icon fas fa-file-download fa-sm text-secondary&#34; title=&#34;External link&#34;&gt;&lt;/i&gt;
      )
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;As Stroom can use PKI for login, you can configure Stroom’s Apache to make use of the &lt;em&gt;blackboxSSLUser&lt;/em&gt; log format.
A sample set of logs in this format appear below.&lt;/p&gt;






&lt;div class=&#34;text-file card rounded shadow-stroom p-2 td-post-card mb-4 mt-4&#34; style=&#34;&#34;&gt;

  &lt;div class=&#34;card-body px-0 pt-2 pb-0&#34;&gt;
    
    &lt;pre&gt;&lt;code class=&#34;language-text&#34;&gt;192.168.4.220/61801 - [18/Jan/2020:12:39:04 -0800] - &amp;quot;/C=USA/ST=CA/L=Los Angeles/O=Default Company Ltd/CN=Burn Frank (burn)&amp;quot; &amp;quot;POST /stroom/stroom/dispatch.rpc HTTP/1.1&amp;quot; 200/200 21221 2289/415/14 &amp;quot;https://stroomnode00.strmdev00.org/stroom/&amp;quot; &amp;quot;Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.113 Safari/537.36&amp;quot; stroomnode00.strmdev00.org/443
192.168.4.220/61854 - [18/Jan/2020:12:40:04 -0800] - &amp;quot;/C=USA/ST=CA/L=Los Angeles/O=Default Company Ltd/CN=Burn Frank (burn)&amp;quot; &amp;quot;POST /stroom/stroom/dispatch.rpc HTTP/1.1&amp;quot; 200/200 7889 2289/415/14 &amp;quot;https://stroomnode00.strmdev00.org/stroom/&amp;quot; &amp;quot;Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.113 Safari/537.36&amp;quot; stroomnode00.strmdev00.org/443
192.168.4.220/61909 - [18/Jan/2020:12:41:04 -0800] - &amp;quot;/C=USA/ST=CA/L=Los Angeles/O=Default Company Ltd/CN=Burn Frank (burn)&amp;quot; &amp;quot;POST /stroom/stroom/dispatch.rpc HTTP/1.1&amp;quot; 200/200 6901 2389/3796/14 &amp;quot;https://stroomnode00.strmdev00.org/stroom/&amp;quot; &amp;quot;Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.113 Safari/537.36&amp;quot; stroomnode00.strmdev00.org/443
192.168.4.220/61962 - [18/Jan/2020:12:42:04 -0800] - &amp;quot;/C=USA/ST=CA/L=Los Angeles/O=Default Company Ltd/CN=Burn Frank (burn)&amp;quot; &amp;quot;POST /stroom/stroom/dispatch.rpc HTTP/1.1&amp;quot; 200/200 11219 2289/415/14 &amp;quot;https://stroomnode00.strmdev00.org/stroom/&amp;quot; &amp;quot;Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.113 Safari/537.36&amp;quot; stroomnode00.strmdev00.org/443
192.168.8.151/62015 - [18/Jan/2020:12:43:04 +1100] - &amp;quot;/C=AUS/ST=NSW/L=Sydney/O=Default Company Ltd/CN=Max Bergman (maxb)&amp;quot; &amp;quot;POST /stroom/stroom/dispatch.rpc HTTP/1.1&amp;quot; 200/200 4265 2289/415/14 &amp;quot;https://stroomnode00.strmdev00.org/stroom/&amp;quot; &amp;quot;Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.113 Safari/537.36&amp;quot; stroomnode00.strmdev00.org/443
192.168.8.151/62092 - [18/Jan/2020:12:44:04 +1100] - &amp;quot;/C=AUS/ST=NSW/L=Sydney/O=Default Company Ltd/CN=Max Bergman (maxb)&amp;quot; &amp;quot;POST /stroom/stroom/dispatch.rpc HTTP/1.1&amp;quot; 200/200 9791 2289/415/14 &amp;quot;https://stroomnode00.strmdev00.org/stroom/&amp;quot; &amp;quot;Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.113 Safari/537.36&amp;quot; stroomnode00.strmdev00.org/443
192.168.8.151/62147 - [18/Jan/2020:12:44:10 +1100] - &amp;quot;/C=AUS/ST=NSW/L=Sydney/O=Default Company Ltd/CN=Max Bergman (maxb)&amp;quot; &amp;quot;POST /stroom/stroom/dispatch.rpc HTTP/1.1&amp;quot; 200/200 9791 2289/415/14 &amp;quot;https://stroomnode00.strmdev00.org/stroom/&amp;quot; &amp;quot;Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.113 Safari/537.36&amp;quot; stroomnode00.strmdev00.org/443
192.168.8.151/62147 - [18/Jan/2020:12:44:20 +1100] - &amp;quot;/C=AUS/ST=NSW/L=Sydney/O=Default Company Ltd/CN=Max Bergman (maxb)&amp;quot; &amp;quot;POST /stroom/stroom/dispatch.rpc HTTP/1.1&amp;quot; 200/200 11509 2289/415/14 &amp;quot;https://stroomnode00.strmdev00.org/stroom/&amp;quot; &amp;quot;Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.113 Safari/537.36&amp;quot; stroomnode00.strmdev00.org/443
192.168.8.151/62202 - [18/Jan/2020:12:44:21 +1100] - &amp;quot;/C=AUS/ST=NSW/L=Sydney/O=Default Company Ltd/CN=Max Bergman (maxb)&amp;quot; &amp;quot;POST /stroom/stroom/dispatch.rpc HTTP/1.1&amp;quot; 200/200 4627 2389/3796/14 &amp;quot;https://stroomnode00.strmdev00.org/stroom/&amp;quot; &amp;quot;Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.113 Safari/537.36&amp;quot; stroomnode00.strmdev00.org/443
192.168.8.151/62294 - [18/Jan/2020:12:44:21 +1100] - &amp;quot;/C=AUS/ST=NSW/L=Sydney/O=Default Company Ltd/CN=Max Bergman (maxb)&amp;quot; &amp;quot;POST /stroom/stroom/dispatch.rpc HTTP/1.1&amp;quot; 200/200 12367 2289/415/14 &amp;quot;https://stroomnode00.strmdev00.org/stroom/&amp;quot; &amp;quot;Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.113 Safari/537.36&amp;quot; stroomnode00.strmdev00.org/443
192.168.8.151/62349 - [18/Jan/2020:12:44:25 +1100] - &amp;quot;/C=AUS/ST=NSW/L=Sydney/O=Default Company Ltd/CN=Max Bergman (maxb)&amp;quot; &amp;quot;POST /stroom/stroom/dispatch.rpc HTTP/1.1&amp;quot; 200/200 12765 2289/415/14 &amp;quot;https://stroomnode00.strmdev00.org/stroom/&amp;quot; &amp;quot;Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.113 Safari/537.36&amp;quot; stroomnode00.strmdev00.org/443
192.168.234.9/62429 - [18/Jan/2020:12:50:06 +0000] - &amp;quot;/C=GBR/ST=GLOUCESTERSHIRE/L=Bristol/O=Default Company Ltd/CN=Kostas Kosta (kk)&amp;quot; &amp;quot;POST /stroom/stroom/dispatch.rpc HTTP/1.1&amp;quot; 200/200 12245 2289/415/14 &amp;quot;https://stroomnode00.strmdev00.org/stroom/&amp;quot; &amp;quot;Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.113 Safari/537.36&amp;quot; stroomnode00.strmdev00.org/443
192.168.234.9/62429 - [18/Jan/2020:12:50:04 +0000] - &amp;quot;/C=GBR/ST=GLOUCESTERSHIRE/L=Bristol/O=Default Company Ltd/CN=Kostas Kosta (kk)&amp;quot; &amp;quot;POST /stroom/stroom/dispatch.rpc HTTP/1.1&amp;quot; 200/200 12245 2289/415/14 &amp;quot;https://stroomnode00.strmdev00.org/stroom/&amp;quot; &amp;quot;Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.113 Safari/537.36&amp;quot; stroomnode00.strmdev00.org/443
192.168.234.9/62495 - [18/Jan/2020:12:51:04 +0000] - &amp;quot;/C=GBR/ST=GLOUCESTERSHIRE/L=Bristol/O=Default Company Ltd/CN=Kostas Kosta (kk)&amp;quot; &amp;quot;POST /stroom/stroom/dispatch.rpc HTTP/1.1&amp;quot; 200/200 4327 2289/415/14 &amp;quot;https://stroomnode00.strmdev00.org/stroom/&amp;quot; &amp;quot;Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.113 Safari/537.36&amp;quot; stroomnode00.strmdev00.org/443
192.168.234.9/62549 - [18/Jan/2020:12:52:04 +0000] - &amp;quot;/C=GBR/ST=GLOUCESTERSHIRE/L=Bristol/O=Default Company Ltd/CN=Kostas Kosta (kk)&amp;quot; &amp;quot;POST /stroom/stroom/dispatch.rpc HTTP/1.1&amp;quot; 200/200 7148 2289/415/14 &amp;quot;https://stroomnode00.strmdev00.org/stroom/&amp;quot; &amp;quot;Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.113 Safari/537.36&amp;quot; stroomnode00.strmdev00.org/443
192.168.234.9/62626 - [18/Jan/2020:12:52:06 +0000] - &amp;quot;/C=GBR/ST=GLOUCESTERSHIRE/L=Bristol/O=Default Company Ltd/CN=Kostas Kosta (kk)&amp;quot; &amp;quot;POST /stroom/stroom/dispatch.rpc HTTP/1.1&amp;quot; 200/200 11386 2289/415/14 &amp;quot;https://stroomnode00.strmdev00.org/stroom/&amp;quot; &amp;quot;Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.113 Safari/537.36&amp;quot; stroomnode00.strmdev00.org/443

&lt;/code&gt;&lt;/pre&gt;


    &lt;hr style=&#34;border-top: 1px solid #ddd; margin-top: 0px; margin-bottom:4px;&#34;&gt;
    &lt;div class=&#34;card-text&#34; style=&#34;font-size: smaller; text-align: center;&#34;&gt;
      
      &lt;span class=&#34;&#34; style=&#34;font-size: smaller&#34;&gt;_Apache BlackBox_ sample log&lt;/span&gt;
      
      (
      &lt;a href=&#34;../../files/HOWTOs/EventFeeds/CreateApacheHTTPDEventFeed/sampleApacheBlackBox.log&#34; class=&#34;&#34; style=&#34;font-size: smaller&#34;&gt;Download sampleApacheBlackBox.log&lt;/a&gt;
      &lt;i class=&#34;external-link-icon fas fa-file-download fa-sm text-secondary&#34; title=&#34;External link&#34;&gt;&lt;/i&gt;
      )
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Save a copy of this data to your local environment for use later in this HOWTO.
Save this file as a text document with ANSI encoding.&lt;/p&gt;
&lt;h2 id=&#34;create-the-feed-and-its-pipeline&#34;&gt;Create the Feed and its Pipeline&lt;/h2&gt;
&lt;p&gt;To reflect the source of these Accounting Logs, we will name our feed and its pipeline &lt;em&gt;Apache-SSLBlackBox-V2.0-EVENTS&lt;/em&gt; and it will be stored in the system group Apache HTTPD under the main system group - &lt;code&gt;Event Sources&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;create-system-group&#34;&gt;Create System Group&lt;/h3&gt;
&lt;p&gt;To create the system group Apache HTTPD, navigate to the &lt;em&gt;Event Sources/Infrastructure/WebServer&lt;/em&gt; system group within the Explorer pane (if this system group structure does not already exist in your Stroom instance then refer to the &lt;strong&gt;HOWTO Stroom Explorer Management&lt;/strong&gt; for guidance).
Left click to highlight the
&lt;em&gt;WebServer&lt;/em&gt; system group then right click to bring up the object context menu.
Navigate to the &lt;em&gt;New&lt;/em&gt; icon, then the &lt;em&gt;Folder&lt;/em&gt; icon to reveal the &lt;em&gt;New Folder&lt;/em&gt; selection window.&lt;/p&gt;







  
  
  
  
  







  



&lt;div class=&#34;card rounded shadow-stroom p-2 td-post-card mb-4 mt-4&#34; style=&#34;width: fit-content;&#34;&gt;

  &lt;a title=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-00.png&#34; href=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-00.png&#34;&gt;
    &lt;figure style=&#34;margin-block-end: 0px&#34; &gt;
      
      &lt;img class=&#34;card-img-top&#34; src=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-00.png&#34; style=&#34;max-width: fit-content&#34; alt=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-00.png&#34;&gt;
      

      
      &lt;div class=&#34;card-body px-0 pt-2 pb-0&#34;&gt;
        &lt;hr style=&#34;border-top: 1px solid #ddd; margin-top: 0px; margin-bottom:4px;&#34;&gt;
        &lt;figcaption class=&#34;card-text&#34; style=&#34;font-size: smaller; text-align: center;&#34;&gt;Navigate Explorer&lt;/figcaption&gt;
      &lt;/div&gt;
      
    &lt;/figure&gt;
  &lt;/a&gt;
&lt;/div&gt;

&lt;p&gt;In the New Folder window enter Apache HTTPD into the &lt;strong&gt;Name:&lt;/strong&gt; text entry box.&lt;/p&gt;







  
  
  
  
  







  



&lt;div class=&#34;card rounded shadow-stroom p-2 td-post-card mb-4 mt-4&#34; style=&#34;width: fit-content;&#34;&gt;

  &lt;a title=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-01.png&#34; href=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-01.png&#34;&gt;
    &lt;figure style=&#34;margin-block-end: 0px&#34; &gt;
      
      &lt;img class=&#34;card-img-top&#34; src=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-01.png&#34; style=&#34;max-width: fit-content&#34; alt=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-01.png&#34;&gt;
      

      
      &lt;div class=&#34;card-body px-0 pt-2 pb-0&#34;&gt;
        &lt;hr style=&#34;border-top: 1px solid #ddd; margin-top: 0px; margin-bottom:4px;&#34;&gt;
        &lt;figcaption class=&#34;card-text&#34; style=&#34;font-size: smaller; text-align: center;&#34;&gt;Create System Group&lt;/figcaption&gt;
      &lt;/div&gt;
      
    &lt;/figure&gt;
  &lt;/a&gt;
&lt;/div&gt;

&lt;p&gt;Then click on 






  
  
  


&lt;span class=&#34;stroom-theme-dark stroom-button stroom-button-primary&#34; title=&#34;OK button&#34; &gt;
  &lt;span class=&#34;stroom-icon inline-svg-button icon-button  icon-colour__grey&#34; &gt;
    &lt;span class=&#34;face&#34; title=&#34;OK&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; viewBox=&#34;0 0 512 512&#34;&gt;&lt;!-- Font Awesome Free 5.15.3 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --&gt;&lt;path style=&#34;fill:#fff&#34; d=&#34;M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z&#34;/&gt;&lt;/svg&gt; &lt;/span&gt;
  &lt;/span&gt;
  &lt;span class=&#34;stroom-button-text&#34;&gt;OK&lt;/span&gt;
&lt;/span&gt;
 at which point you will be presented with the Apache HTTPD system group configuration tab.
Also note, the &lt;em&gt;WebServer&lt;/em&gt; system group within the Explorer pane has automatically expanded to display the &lt;code&gt;Apache HTTPD&lt;/code&gt; system group.&lt;/p&gt;
&lt;p&gt;Close the Apache HTTPD system group configuration tab by clicking on the close item icon on the right-hand side of the tab 








  





&lt;span class=&#34;stroom-theme-dark stroom-tab stroom-tab-active&#34; title=&#34;Folder tab - &#39;Apache HTTPD&#39;&#34; &gt;
  &lt;span class=&#34;stroom-tab-icon&#34;&gt;
    &lt;span class=&#34;stroom-icon inline-svg-button icon-button  &#34; &gt;
    &lt;span class=&#34;face&#34; title=&#34;Folder&#34;&gt;&lt;svg width=&#34;1792&#34; height=&#34;1792&#34; viewBox=&#34;0 0 1792 1792&#34; version=&#34;1.1&#34; id=&#34;svg1&#34; sodipodi:docname=&#34;Folder.svg&#34; inkscape:version=&#34;1.4.2 (f4327f4, 2025-05-13)&#34; xmlns:inkscape=&#34;http://www.inkscape.org/namespaces/inkscape&#34; xmlns:sodipodi=&#34;http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34; xmlns:svg=&#34;http://www.w3.org/2000/svg&#34;&gt;&lt;defs id=&#34;defs1&#34; /&gt;&lt;sodipodi:namedview id=&#34;namedview1&#34; pagecolor=&#34;var(--icon-colour__white)&#34; bordercolor=&#34;var(--icon-colour__black)&#34; borderopacity=&#34;0.25&#34; inkscape:showpageshadow=&#34;2&#34; inkscape:pageopacity=&#34;0.0&#34; inkscape:pagecheckerboard=&#34;0&#34; inkscape:deskcolor=&#34;#d1d1d1&#34; inkscape:zoom=&#34;0.51702009&#34; inkscape:cx=&#34;814.2817&#34; inkscape:cy=&#34;683.72585&#34; inkscape:window-width=&#34;3840&#34; inkscape:window-height=&#34;2071&#34; inkscape:window-x=&#34;3191&#34; inkscape:window-y=&#34;-9&#34; inkscape:window-maximized=&#34;1&#34; inkscape:current-layer=&#34;svg1&#34; /&gt;&lt;path style=&#34;stroke-width:1.07898&#34; d=&#34;m 1792,646.90301 v 761.05769 q 0,99.4565 -71.077,170.8056 -71.0768,71.3493 -170.1538,71.3493 H 241.23076 q -99.07692,0 -170.153839,-71.3493 Q 0,1507.4172 0,1407.9607 V 370.15473 Q 0,270.69833 71.076921,199.34916 142.15384,128 241.23076,128 h 344.6154 q 99.07692,0 170.15384,71.34916 71.07692,71.34917 71.07692,170.80557 v 34.59355 h 723.69228 q 99.077,0 170.1538,71.34915 Q 1792,547.44659 1792,646.90301 Z&#34; id=&#34;path1&#34; /&gt;&lt;/svg&gt; &lt;/span&gt;
  &lt;/span&gt;
  &lt;/span&gt;
  &lt;span class=&#34;stroom-tab-name&#34;&gt;Apache HTTPD&lt;/span&gt;
  &lt;span class=&#34;stroom-tab-cross&#34;&gt;
    &lt;span class=&#34;stroom-icon inline-svg-button icon-button  &#34; &gt;
    &lt;span class=&#34;face&#34; title=&#34;Tab close&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; version=&#34;1.1&#34; height=&#34;45&#34; width=&#34;45&#34; viewBox=&#34;0 0 45 45&#34;&gt;&lt;g style=&#34;stroke:currentColor;stroke-width:4.5;stroke-linecap:round;&#34; transform=&#34;translate(13.9661017,13.5677966)&#34;&gt;&lt;path d=&#34;M -2.5783352e-4,-0.00146808 17.435473,18.212367&#34;/&gt;&lt;path d=&#34;M -2.5783352e-4,18.212367 17.435473,-0.00146808&#34;/&gt;&lt;/g&gt;&lt;/svg&gt; &lt;/span&gt;
  &lt;/span&gt;
  &lt;/span&gt;
&lt;/span&gt;

.&lt;/p&gt;
&lt;p&gt;We now need to create, in order&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;the Feed,&lt;/li&gt;
&lt;li&gt;the Text Parser,&lt;/li&gt;
&lt;li&gt;the Translation and finally,&lt;/li&gt;
&lt;li&gt;the Pipeline.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;create-feed&#34;&gt;Create Feed&lt;/h3&gt;
&lt;p&gt;Within the Explorer pane, and having selected the Apache HTTPD group, right click to bring up object context menu.
Navigate to New, Feed&lt;/p&gt;







  
  
  
  
  







  



&lt;div class=&#34;card rounded shadow-stroom p-2 td-post-card mb-4 mt-4&#34; style=&#34;width: fit-content;&#34;&gt;

  &lt;a title=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-03.png&#34; href=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-03.png&#34;&gt;
    &lt;figure style=&#34;margin-block-end: 0px&#34; &gt;
      
      &lt;img class=&#34;card-img-top&#34; src=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-03.png&#34; style=&#34;max-width: fit-content&#34; alt=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-03.png&#34;&gt;
      

      
      &lt;div class=&#34;card-body px-0 pt-2 pb-0&#34;&gt;
        &lt;hr style=&#34;border-top: 1px solid #ddd; margin-top: 0px; margin-bottom:4px;&#34;&gt;
        &lt;figcaption class=&#34;card-text&#34; style=&#34;font-size: smaller; text-align: center;&#34;&gt;Apache Create Feed&lt;/figcaption&gt;
      &lt;/div&gt;
      
    &lt;/figure&gt;
  &lt;/a&gt;
&lt;/div&gt;

&lt;p&gt;Select the Feed icon &lt;span class=&#34;stroom-icon inline-svg-button icon-button  &#34; &gt;
    &lt;span class=&#34;face&#34; title=&#34;Feed&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; width=&#34;1792&#34; height=&#34;1792&#34; viewBox=&#34;0 0 1792 1792&#34;&gt;&lt;path style=&#34;fill:var(--icon-colour__green)&#34; d=&#34;m 938.50195,211.41007 c -5.56299,0.0388 -11.74705,1.29983 -18.55468,3.7832 -18.1537,6.6223 -30.41561,18.62426 -36.78321,36.00781 L 781.2832,529.3378 l -636.59961,0 c -11.58903,0 -22.47327,3.72569 -32.65234,11.17578 -10.17907,7.4501 -17.391684,16.96956 -21.636719,28.5586 L 3.0683594,807.47452 c -4.2450584,11.5891 -4.00823944,21.10849 0.7128906,28.55859 4.72114,7.4501 12.877765,11.17578 24.466797,11.17578 358.940143,-0.86657 728.661783,-0.53744 1037.093753,-0.52148 l 192.0293,-132.33789 c 11.3101,-8.27788 19.0869,-18.21175 23.332,-29.80078 3.9418,-10.76125 3.2906,-20.28072 -1.9551,-28.5586 L 961.13086,221.4003 c -5.81425,-6.72578 -13.35726,-10.05491 -22.62891,-9.99023 z m 509.37505,415.625 c -5.563,0.0388 -11.7471,1.29983 -18.5547,3.7832 -18.1537,6.6223 -30.4156,18.62426 -36.7832,36.00781 l -101.8809,278.13672 -762.55273,0 c -11.58903,0 -22.47327,3.72569 -32.65235,11.17578 -10.17906,7.4501 -17.39165,16.96957 -21.63671,28.5586 l -87.32618,238.40232 c -4.24506,11.5891 -4.00824,21.1085 0.71289,28.5586 4.72113,7.4501 12.87777,11.1758 24.4668,11.1758 l 762.55278,0 -101.8809,278.1367 c -6.0644,16.5558 -2.5987,28.5577 10.4004,36.0078 13.3022,6.6223 28.6997,4.1399 46.1894,-7.4492 l 637.8145,-439.5547 c 11.3101,-8.2779 19.0869,-18.2117 23.332,-29.8008 3.9418,-10.7612 3.2906,-20.2807 -1.9551,-28.5586 L 1470.5059,637.0253 c -5.8143,-6.72578 -13.3573,-10.05491 -22.6289,-9.99023 z&#34;/&gt;&lt;/svg&gt;&lt;/span&gt;
  &lt;/span&gt;, when the &lt;strong&gt;New Feed&lt;/strong&gt; selection window comes up, ensure the &lt;code&gt;Apache HTTPD&lt;/code&gt; system group is selected or navigate to it.
Then enter the name of the feed, Apache-SSLBlackBox-V2.0-EVENTS, into the &lt;strong&gt;Name:&lt;/strong&gt; text entry box then press 






  
  
  


&lt;span class=&#34;stroom-theme-dark stroom-button stroom-button-primary&#34; title=&#34;OK button&#34; &gt;
  &lt;span class=&#34;stroom-icon inline-svg-button icon-button  icon-colour__grey&#34; &gt;
    &lt;span class=&#34;face&#34; title=&#34;OK&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; viewBox=&#34;0 0 512 512&#34;&gt;&lt;!-- Font Awesome Free 5.15.3 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --&gt;&lt;path style=&#34;fill:#fff&#34; d=&#34;M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z&#34;/&gt;&lt;/svg&gt; &lt;/span&gt;
  &lt;/span&gt;
  &lt;span class=&#34;stroom-button-text&#34;&gt;OK&lt;/span&gt;
&lt;/span&gt;
.&lt;/p&gt;
&lt;p&gt;It should be noted that the default Stroom FeedName pattern will not accept this name.
One needs to modify the &lt;code&gt;stroom.feedNamePattern&lt;/code&gt; stroom property to change the default pattern to &lt;code&gt;^[a-zA-Z0-9_-\.]{3,}$&lt;/code&gt;.
See the &lt;a href=&#34;../../docs/howtos/administration/systemproperties/&#34;&gt;HOWTO on System Properties&lt;/a&gt; document to see how to make this change.&lt;/p&gt;







  
  
  
  
  







  



&lt;div class=&#34;card rounded shadow-stroom p-2 td-post-card mb-4 mt-4&#34; style=&#34;width: fit-content;&#34;&gt;

  &lt;a title=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-04.png&#34; href=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-04.png&#34;&gt;
    &lt;figure style=&#34;margin-block-end: 0px&#34; &gt;
      
      &lt;img class=&#34;card-img-top&#34; src=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-04.png&#34; style=&#34;max-width: fit-content&#34; alt=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-04.png&#34;&gt;
      

      
      &lt;div class=&#34;card-body px-0 pt-2 pb-0&#34;&gt;
        &lt;hr style=&#34;border-top: 1px solid #ddd; margin-top: 0px; margin-bottom:4px;&#34;&gt;
        &lt;figcaption class=&#34;card-text&#34; style=&#34;font-size: smaller; text-align: center;&#34;&gt;New Feed dialog&lt;/figcaption&gt;
      &lt;/div&gt;
      
    &lt;/figure&gt;
  &lt;/a&gt;
&lt;/div&gt;

&lt;p&gt;At this point you will be presented with the new feed&amp;rsquo;s configuration tab and the feed&amp;rsquo;s Explorer object will automatically appear in the Explorer pane within the &lt;code&gt;Apache HTTPD&lt;/code&gt; system group.&lt;/p&gt;
&lt;p&gt;Select the &lt;em&gt;Settings&lt;/em&gt; tab on the feed&amp;rsquo;s configuration tab.
Enter an appropriate description into the &lt;strong&gt;Description:&lt;/strong&gt; text entry box, for instance:&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Apache HTTPD events for BlackBox Version 2.0. These events are from a Secure service (https).&amp;rdquo;&lt;/p&gt;
&lt;p&gt;In the &lt;strong&gt;Classification:&lt;/strong&gt; text entry box, enter a Classification of the data that the event feed will contain - that is the classification or sensitivity of the accounting log’s content itself.&lt;/p&gt;
&lt;p&gt;As this is not a Reference Feed, leave the &lt;strong&gt;Reference Feed:&lt;/strong&gt; check box unchecked.&lt;/p&gt;
&lt;p&gt;We leave the &lt;strong&gt;Feed Status:&lt;/strong&gt; at &lt;em&gt;Receive&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;We leave the &lt;strong&gt;Stream Type:&lt;/strong&gt; as &lt;em&gt;Raw Events&lt;/em&gt; as we will be sending batches (streams) of raw event logs.&lt;/p&gt;
&lt;p&gt;We leave the &lt;strong&gt;Data Encoding:&lt;/strong&gt; as UTF-8 as the raw logs are in this form.&lt;/p&gt;
&lt;p&gt;We leave the &lt;strong&gt;Context Encoding:&lt;/strong&gt; as UTF-8 as there are no context events for this feed.&lt;/p&gt;
&lt;p&gt;We leave the &lt;strong&gt;Retention Period:&lt;/strong&gt; at &lt;em&gt;Forever&lt;/em&gt; as we do not want to delete the raw logs.&lt;/p&gt;
&lt;p&gt;This results in&lt;/p&gt;







  
  
  
  
  







  



&lt;div class=&#34;card rounded shadow-stroom p-2 td-post-card mb-4 mt-4&#34; style=&#34;width: fit-content;&#34;&gt;

  &lt;a title=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-05.png&#34; href=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-05.png&#34;&gt;
    &lt;figure style=&#34;margin-block-end: 0px&#34; &gt;
      
      &lt;img class=&#34;card-img-top&#34; src=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-05.png&#34; style=&#34;max-width: fit-content&#34; alt=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-05.png&#34;&gt;
      

      
      &lt;div class=&#34;card-body px-0 pt-2 pb-0&#34;&gt;
        &lt;hr style=&#34;border-top: 1px solid #ddd; margin-top: 0px; margin-bottom:4px;&#34;&gt;
        &lt;figcaption class=&#34;card-text&#34; style=&#34;font-size: smaller; text-align: center;&#34;&gt;New Feed tab&lt;/figcaption&gt;
      &lt;/div&gt;
      
    &lt;/figure&gt;
  &lt;/a&gt;
&lt;/div&gt;

&lt;p&gt;Save the feed by clicking on the save icon &lt;span class=&#34;stroom-icon inline-svg-button icon-button  &#34; &gt;
    &lt;span class=&#34;face&#34; title=&#34;Save&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; width=&#34;1792&#34; height=&#34;1792&#34; viewBox=&#34;0 0 1792 1792&#34;&gt;&lt;!--! Font Awesome Free 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --&gt;&lt;path style=&#34;fill:currentColor;stroke-width:0.570676;stroke-dasharray:none&#34; d=&#34;M 339.40234 116.52148 C 216.56504 116.52148 116.69531 216.3912 116.69531 339.22852 L 116.69531 1452.7715 C 116.69531 1575.6089 216.56504 1675.4785 339.40234 1675.4785 L 1452.5977 1675.4785 C 1575.4349 1675.4785 1675.3047 1575.6089 1675.3047 1452.7715 L 1675.3047 598.82422 C 1675.3047 539.66744 1651.9901 482.94523 1610.2324 441.1875 L 1610.5801 440.83984 L 1351.334 181.59375 C 1309.5761 139.83602 1252.8561 116.52148 1193.6992 116.52148 L 339.40234 116.52148 z M 339.40234 283.55273 L 395.08008 283.55273 L 395.08008 645.45312 C 395.08008 691.73461 432.31423 728.96875 478.5957 728.96875 L 1146.7207 728.96875 C 1193.0023 728.96875 1230.2363 691.73461 1230.2363 645.45312 L 1230.2363 297.12305 C 1231.2803 298.167 1231.9756 298.8623 1233.0195 299.90625 L 1492.6152 558.80469 L 1492.2676 559.1543 C 1502.707 569.59373 1508.6211 583.8594 1508.6211 598.47461 L 1508.6211 1452.7715 C 1508.6211 1483.3939 1483.5678 1508.4473 1452.9453 1508.4473 L 1395.6113 1508.4473 L 1395.6113 1059.8359 C 1395.6113 981.08539 1331.5826 917.05859 1252.832 917.05859 L 539.16797 917.05859 C 460.41738 917.05859 396.38867 981.08539 396.38867 1059.8359 L 396.38867 1508.4473 L 339.40234 1508.4473 C 308.78001 1508.4473 283.72656 1483.3939 283.72656 1452.7715 L 283.72656 339.22852 C 283.72656 308.60619 308.78001 283.55273 339.40234 283.55273 z M 562.11133 283.55273 L 1063.2051 283.55273 L 1063.2051 561.9375 L 562.11133 561.9375 L 562.11133 283.55273 z M 538.94531 1024.1426 L 1252.832 1024.1426 C 1272.4639 1024.1426 1288.5273 1040.2041 1288.5273 1059.8359 L 1288.5273 1508.4473 L 503.25 1508.4473 L 503.25 1059.8359 C 503.25 1040.2041 519.31334 1024.1426 538.94531 1024.1426 z &#34; /&gt;&lt;/svg&gt; &lt;/span&gt;
  &lt;/span&gt;.&lt;/p&gt;
&lt;h3 id=&#34;create-text-converter&#34;&gt;Create Text Converter&lt;/h3&gt;
&lt;p&gt;Within the Explorer pane, and having selected the &lt;code&gt;Apache HTTPD&lt;/code&gt; system group, right click to bring up object context menu, then select:&lt;/p&gt;





  &lt;div class=&#34;stroom-theme-dark stroom-menu&#34;&gt;
    
    

      

      
      


      

  
  
  &lt;div class=&#34;stroom-menu-item-background&#34; style=&#34;margin-top: 0px;&#34;&gt;
    
    &lt;div class=&#34;stroom-menu-item &#34; &gt;
        &lt;div class=&#34;stroom-menu-item-icon&#34;&gt;
          &lt;span class=&#34;stroom-icon inline-svg-button icon-button  &#34; &gt;
    &lt;span class=&#34;face&#34; title=&#34;Add&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; width=&#34;1792&#34; height=&#34;1792&#34; viewBox=&#34;0 0 1792 1792&#34;&gt;&lt;path style=&#34;fill:currentColor&#34; d=&#34;m 1600,800 0,192 q 0,40 -28,68 -28,28 -68,28 l -416,0 0,416 q 0,40 -28,68 -28,28 -68,28 l -192,0 q -40,0 -68,-28 -28,-28 -28,-68 l 0,-416 -416,0 q -40,0 -68,-28 -28,-28 -28,-68 l 0,-192 q 0,-40 28,-68 28,-28 68,-28 l 416,0 0,-416 q 0,-40 28,-68 28,-28 68,-28 l 192,0 q 40,0 68,28 28,28 28,68 l 0,416 416,0 q 40,0 68,28 28,28 28,68 z&#34;/&gt;&lt;/svg&gt; &lt;/span&gt;
  &lt;/span&gt;
        &lt;/div&gt;

      &lt;div class=&#34;stroom-menu-item-text&#34;&gt;New
      &lt;/div&gt;
        &lt;div class=&#34;stroom-menu-item-arrow&#34;&gt;
          &lt;span class=&#34;stroom-icon inline-svg-button icon-button  &#34; &gt;
    &lt;span class=&#34;face&#34; title=&#34;Arrow right&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; width=&#34;1427.7665&#34; height=&#34;1427.7665&#34; viewBox=&#34;0 0 1427.7665 1427.7665&#34;&gt;&lt;g style=&#34;stroke:currentColor;stroke-width:167.567&#34;&gt;&lt;path d=&#34;m 415.05387,83.70929 c -39.92654,0.4303 -75.41463,48.3887 -40.0468,81.9121 C 567.552,348.69899 760.75555,531.15431 953.73208,713.82391 760.75555,896.49341 567.552,1078.9486 375.00707,1262.0262 c -46.19471,43.7855 28.48812,112.1966 76.0571,67.1681 195.93558,-185.823 392.95261,-370.82479 587.98693,-557.52749 5.6117,-4.8034 10.4633,-10.2473 14.4855,-16.1231 9.643,-12.4844 13.9638,-27.0796 13.6909,-41.7198 0.2729,-14.6402 -4.0479,-29.2354 -13.6909,-41.7198 -4.0222,-5.8758 -8.8738,-11.3198 -14.4855,-16.1231 C 844.01678,469.27821 646.99975,284.27629 451.06417,98.45319 439.91519,87.89979 427.27628,83.57749 415.05387,83.70929 Z&#34;/&gt;&lt;/g&gt;&lt;/svg&gt; &lt;/span&gt;
  &lt;/span&gt;
        &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;

      

      
      
        
      


      

  
  
  &lt;div class=&#34;stroom-menu-item-background&#34; style=&#34;margin-top: 7px;&#34;&gt;
    
    &lt;div class=&#34;stroom-menu-item stroom-menu-item-leaf&#34; &gt;
        &lt;div class=&#34;stroom-menu-item-icon&#34;&gt;
          &lt;span class=&#34;stroom-icon inline-svg-button icon-button  &#34; &gt;
    &lt;span class=&#34;face&#34; title=&#34;Text converter&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; width=&#34;1792&#34; height=&#34;1792&#34; viewBox=&#34;0 0 1792 1792&#34;&gt;&lt;path style=&#34;fill:var(--icon-colour__black)&#34; d=&#34;m 1522.1543,129.30336 16.9536,359.41707 -42.9492,0 q -12.4327,-94.94036 -33.9073,-135.62908 -35.0375,-65.55406 -93.8101,-96.0706 -57.6424,-31.64679 -152.5827,-31.64679 l -215.8763,0 0,1170.93104 q 0,141.2803 30.5165,176.3178 42.9492,47.4702 132.2384,47.4702 l 53.1214,0 0,41.819 -649.88937,0 0,-41.819 54.25164,0 q 97.20084,0 137.88956,-58.7726 24.86533,-36.1677 24.86533,-165.0154 l 0,-1170.93104 -184.2295,0 q -107.37302,0 -152.58272,15.8234 -58.7726,21.4746 -100.59156,82.50769 -41.81897,61.03308 -49.73067,165.01538 l -42.94921,0 18.08388,-359.41707 1251.17832,0 z&#34;/&gt;&lt;/svg&gt;&lt;/span&gt;
  &lt;/span&gt;
        &lt;/div&gt;

      &lt;div class=&#34;stroom-menu-item-text&#34;&gt;Text Converter
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
  &lt;/div&gt;



&lt;p&gt;When the &lt;strong&gt;New Text Converter&lt;/strong&gt;&lt;/p&gt;







  
  
  
  
  







  



&lt;div class=&#34;card rounded shadow-stroom p-2 td-post-card mb-4 mt-4&#34; style=&#34;width: fit-content;&#34;&gt;

  &lt;a title=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-07.png&#34; href=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-07.png&#34;&gt;
    &lt;figure style=&#34;margin-block-end: 0px&#34; &gt;
      
      &lt;img class=&#34;card-img-top&#34; src=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-07.png&#34; style=&#34;max-width: fit-content&#34; alt=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-07.png&#34;&gt;
      

      
      &lt;div class=&#34;card-body px-0 pt-2 pb-0&#34;&gt;
        &lt;hr style=&#34;border-top: 1px solid #ddd; margin-top: 0px; margin-bottom:4px;&#34;&gt;
        &lt;figcaption class=&#34;card-text&#34; style=&#34;font-size: smaller; text-align: center;&#34;&gt;New Text Converter&lt;/figcaption&gt;
      &lt;/div&gt;
      
    &lt;/figure&gt;
  &lt;/a&gt;
&lt;/div&gt;

&lt;p&gt;selection window comes up enter the name of the feed, Apache-SSLBlackBox-V2.0-EVENTS, into the &lt;strong&gt;Name:&lt;/strong&gt; text entry box then press 






  
  
  


&lt;span class=&#34;stroom-theme-dark stroom-button stroom-button-primary&#34; title=&#34;OK button&#34; &gt;
  &lt;span class=&#34;stroom-icon inline-svg-button icon-button  icon-colour__grey&#34; &gt;
    &lt;span class=&#34;face&#34; title=&#34;OK&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; viewBox=&#34;0 0 512 512&#34;&gt;&lt;!-- Font Awesome Free 5.15.3 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --&gt;&lt;path style=&#34;fill:#fff&#34; d=&#34;M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z&#34;/&gt;&lt;/svg&gt; &lt;/span&gt;
  &lt;/span&gt;
  &lt;span class=&#34;stroom-button-text&#34;&gt;OK&lt;/span&gt;
&lt;/span&gt;
.
At this point you will be presented with the new text converter&amp;rsquo;s configuration tab.&lt;/p&gt;







  
  
  
  
  







  



&lt;div class=&#34;card rounded shadow-stroom p-2 td-post-card mb-4 mt-4&#34; style=&#34;width: fit-content;&#34;&gt;

  &lt;a title=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-08.png&#34; href=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-08.png&#34;&gt;
    &lt;figure style=&#34;margin-block-end: 0px&#34; &gt;
      
      &lt;img class=&#34;card-img-top&#34; src=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-08.png&#34; style=&#34;max-width: fit-content&#34; alt=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-08.png&#34;&gt;
      

      
      &lt;div class=&#34;card-body px-0 pt-2 pb-0&#34;&gt;
        &lt;hr style=&#34;border-top: 1px solid #ddd; margin-top: 0px; margin-bottom:4px;&#34;&gt;
        &lt;figcaption class=&#34;card-text&#34; style=&#34;font-size: smaller; text-align: center;&#34;&gt;Text Converter configuration tab&lt;/figcaption&gt;
      &lt;/div&gt;
      
    &lt;/figure&gt;
  &lt;/a&gt;
&lt;/div&gt;

&lt;p&gt;Enter an appropriate description into the &lt;strong&gt;Description:&lt;/strong&gt; text entry box, for instance&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Apache HTTPD events for BlackBox Version 2.0 - text converter.
See Conversion for complete documentation.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Set the &lt;strong&gt;Converter Type:&lt;/strong&gt; to be Data Splitter from drop down menu.&lt;/p&gt;







  
  
  
  
  







  



&lt;div class=&#34;card rounded shadow-stroom p-2 td-post-card mb-4 mt-4&#34; style=&#34;width: fit-content;&#34;&gt;

  &lt;a title=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-09.png&#34; href=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-09.png&#34;&gt;
    &lt;figure style=&#34;margin-block-end: 0px&#34; &gt;
      
      &lt;img class=&#34;card-img-top&#34; src=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-09.png&#34; style=&#34;max-width: fit-content&#34; alt=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-09.png&#34;&gt;
      

      
      &lt;div class=&#34;card-body px-0 pt-2 pb-0&#34;&gt;
        &lt;hr style=&#34;border-top: 1px solid #ddd; margin-top: 0px; margin-bottom:4px;&#34;&gt;
        &lt;figcaption class=&#34;card-text&#34; style=&#34;font-size: smaller; text-align: center;&#34;&gt;Text Converter configuration settings&lt;/figcaption&gt;
      &lt;/div&gt;
      
    &lt;/figure&gt;
  &lt;/a&gt;
&lt;/div&gt;

&lt;p&gt;Save the text converter by clicking on the save icon &lt;span class=&#34;stroom-icon inline-svg-button icon-button  &#34; &gt;
    &lt;span class=&#34;face&#34; title=&#34;Save&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; width=&#34;1792&#34; height=&#34;1792&#34; viewBox=&#34;0 0 1792 1792&#34;&gt;&lt;!--! Font Awesome Free 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --&gt;&lt;path style=&#34;fill:currentColor;stroke-width:0.570676;stroke-dasharray:none&#34; d=&#34;M 339.40234 116.52148 C 216.56504 116.52148 116.69531 216.3912 116.69531 339.22852 L 116.69531 1452.7715 C 116.69531 1575.6089 216.56504 1675.4785 339.40234 1675.4785 L 1452.5977 1675.4785 C 1575.4349 1675.4785 1675.3047 1575.6089 1675.3047 1452.7715 L 1675.3047 598.82422 C 1675.3047 539.66744 1651.9901 482.94523 1610.2324 441.1875 L 1610.5801 440.83984 L 1351.334 181.59375 C 1309.5761 139.83602 1252.8561 116.52148 1193.6992 116.52148 L 339.40234 116.52148 z M 339.40234 283.55273 L 395.08008 283.55273 L 395.08008 645.45312 C 395.08008 691.73461 432.31423 728.96875 478.5957 728.96875 L 1146.7207 728.96875 C 1193.0023 728.96875 1230.2363 691.73461 1230.2363 645.45312 L 1230.2363 297.12305 C 1231.2803 298.167 1231.9756 298.8623 1233.0195 299.90625 L 1492.6152 558.80469 L 1492.2676 559.1543 C 1502.707 569.59373 1508.6211 583.8594 1508.6211 598.47461 L 1508.6211 1452.7715 C 1508.6211 1483.3939 1483.5678 1508.4473 1452.9453 1508.4473 L 1395.6113 1508.4473 L 1395.6113 1059.8359 C 1395.6113 981.08539 1331.5826 917.05859 1252.832 917.05859 L 539.16797 917.05859 C 460.41738 917.05859 396.38867 981.08539 396.38867 1059.8359 L 396.38867 1508.4473 L 339.40234 1508.4473 C 308.78001 1508.4473 283.72656 1483.3939 283.72656 1452.7715 L 283.72656 339.22852 C 283.72656 308.60619 308.78001 283.55273 339.40234 283.55273 z M 562.11133 283.55273 L 1063.2051 283.55273 L 1063.2051 561.9375 L 562.11133 561.9375 L 562.11133 283.55273 z M 538.94531 1024.1426 L 1252.832 1024.1426 C 1272.4639 1024.1426 1288.5273 1040.2041 1288.5273 1059.8359 L 1288.5273 1508.4473 L 503.25 1508.4473 L 503.25 1059.8359 C 503.25 1040.2041 519.31334 1024.1426 538.94531 1024.1426 z &#34; /&gt;&lt;/svg&gt; &lt;/span&gt;
  &lt;/span&gt;.&lt;/p&gt;
&lt;h3 id=&#34;create-xslt-translation&#34;&gt;Create XSLT Translation&lt;/h3&gt;
&lt;p&gt;Within the Explorer pane, and having selected the &lt;code&gt;Apache HTTPD&lt;/code&gt; system group, right click to bring up object context menu, then select:&lt;/p&gt;





  &lt;div class=&#34;stroom-theme-dark stroom-menu&#34;&gt;
    
    

      

      
      


      

  
  
  &lt;div class=&#34;stroom-menu-item-background&#34; style=&#34;margin-top: 0px;&#34;&gt;
    
    &lt;div class=&#34;stroom-menu-item &#34; &gt;
        &lt;div class=&#34;stroom-menu-item-icon&#34;&gt;
          &lt;span class=&#34;stroom-icon inline-svg-button icon-button  &#34; &gt;
    &lt;span class=&#34;face&#34; title=&#34;Add&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; width=&#34;1792&#34; height=&#34;1792&#34; viewBox=&#34;0 0 1792 1792&#34;&gt;&lt;path style=&#34;fill:currentColor&#34; d=&#34;m 1600,800 0,192 q 0,40 -28,68 -28,28 -68,28 l -416,0 0,416 q 0,40 -28,68 -28,28 -68,28 l -192,0 q -40,0 -68,-28 -28,-28 -28,-68 l 0,-416 -416,0 q -40,0 -68,-28 -28,-28 -28,-68 l 0,-192 q 0,-40 28,-68 28,-28 68,-28 l 416,0 0,-416 q 0,-40 28,-68 28,-28 68,-28 l 192,0 q 40,0 68,28 28,28 28,68 l 0,416 416,0 q 40,0 68,28 28,28 28,68 z&#34;/&gt;&lt;/svg&gt; &lt;/span&gt;
  &lt;/span&gt;
        &lt;/div&gt;

      &lt;div class=&#34;stroom-menu-item-text&#34;&gt;New
      &lt;/div&gt;
        &lt;div class=&#34;stroom-menu-item-arrow&#34;&gt;
          &lt;span class=&#34;stroom-icon inline-svg-button icon-button  &#34; &gt;
    &lt;span class=&#34;face&#34; title=&#34;Arrow right&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; width=&#34;1427.7665&#34; height=&#34;1427.7665&#34; viewBox=&#34;0 0 1427.7665 1427.7665&#34;&gt;&lt;g style=&#34;stroke:currentColor;stroke-width:167.567&#34;&gt;&lt;path d=&#34;m 415.05387,83.70929 c -39.92654,0.4303 -75.41463,48.3887 -40.0468,81.9121 C 567.552,348.69899 760.75555,531.15431 953.73208,713.82391 760.75555,896.49341 567.552,1078.9486 375.00707,1262.0262 c -46.19471,43.7855 28.48812,112.1966 76.0571,67.1681 195.93558,-185.823 392.95261,-370.82479 587.98693,-557.52749 5.6117,-4.8034 10.4633,-10.2473 14.4855,-16.1231 9.643,-12.4844 13.9638,-27.0796 13.6909,-41.7198 0.2729,-14.6402 -4.0479,-29.2354 -13.6909,-41.7198 -4.0222,-5.8758 -8.8738,-11.3198 -14.4855,-16.1231 C 844.01678,469.27821 646.99975,284.27629 451.06417,98.45319 439.91519,87.89979 427.27628,83.57749 415.05387,83.70929 Z&#34;/&gt;&lt;/g&gt;&lt;/svg&gt; &lt;/span&gt;
  &lt;/span&gt;
        &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;

      

      
      
        
      


      

  
  
  &lt;div class=&#34;stroom-menu-item-background&#34; style=&#34;margin-top: 7px;&#34;&gt;
    
    &lt;div class=&#34;stroom-menu-item stroom-menu-item-leaf&#34; &gt;
        &lt;div class=&#34;stroom-menu-item-icon&#34;&gt;
          &lt;span class=&#34;stroom-icon inline-svg-button icon-button  &#34; &gt;
    &lt;span class=&#34;face&#34; title=&#34;Xslt&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; width=&#34;1792&#34; height=&#34;1792&#34; viewBox=&#34;0 0 1792 1792&#34;&gt;&lt;path style=&#34;fill:var(--icon-colour__xsl-background)&#34; d=&#34;M 684.30664 211.38672 C 672.42766 211.38672 661.91891 215.95413 652.78125 225.0918 L 14.058594 863.81641 C 4.9209141 872.95409 0.3515625 883.46088 0.3515625 895.33984 C 0.3515625 907.21882 4.9209142 917.72756 14.058594 926.86523 L 652.78125 1565.5898 C 661.91891 1574.7275 672.42766 1579.2949 684.30664 1579.2949 C 696.1856 1579.2949 706.69435 1574.7275 715.83203 1565.5898 L 784.36523 1497.0566 C 793.5029 1487.9191 798.07031 1477.4102 798.07031 1465.5312 C 798.07031 1453.6524 793.5029 1443.1436 784.36523 1434.0059 L 245.69922 895.33984 L 784.36523 356.67578 C 793.5029 347.53811 798.07031 337.02937 798.07031 325.15039 C 798.07031 313.27142 793.5029 302.76268 784.36523 293.625 L 715.83203 225.0918 C 706.69435 215.95413 696.1856 211.38672 684.30664 211.38672 z M 1107.9082 211.38672 C 1096.0293 211.38672 1085.5225 215.95414 1076.3848 225.0918 L 1007.8516 293.625 C 998.71402 302.76268 994.14453 313.27142 994.14453 325.15039 C 994.14453 337.02937 998.71402 347.53811 1007.8516 356.67578 L 1546.5176 895.33984 L 1007.8516 1434.0059 C 998.71402 1443.1436 994.14453 1453.6523 994.14453 1465.5312 C 994.14453 1477.4102 998.71402 1487.9191 1007.8516 1497.0566 L 1076.3848 1565.5898 C 1085.5225 1574.7275 1096.0293 1579.2949 1107.9082 1579.2949 C 1119.7872 1579.2949 1130.2959 1574.7275 1139.4336 1565.5898 L 1778.1582 926.86523 C 1787.2959 917.72756 1791.8633 907.21882 1791.8633 895.33984 C 1791.8633 883.46088 1787.2959 872.95409 1778.1582 863.81641 L 1139.4336 225.0918 C 1130.2959 215.95414 1119.7872 211.38672 1107.9082 211.38672 z &#34;/&gt;&lt;path style=&#34;fill:var(--icon-colour__black)&#34; d=&#34;M 914.01562 609.75391 C 846.69543 609.75391 793.7585 624.0295 755.20508 652.58203 C 716.65166 681.13457 697.375 720.39439 697.375 770.36133 C 697.375 809.25185 709.09092 840.2669 732.51953 863.4043 C 755.94815 886.29555 800.72934 908.20094 866.86328 929.12305 L 931.36523 949.42969 C 953.90415 956.5678 971.1042 966.4135 982.9668 978.9668 C 994.82939 991.27392 1000.7617 1005.6745 1000.7617 1022.166 C 1000.7617 1044.0727 991.86421 1061.1792 974.07031 1073.4863 C 956.27643 1085.5473 931.21618 1091.5781 898.89062 1091.5781 C 866.86163 1091.5781 834.38939 1086.5313 801.4707 1076.4395 C 768.84858 1066.3477 735.03956 1050.9651 700.04492 1030.2891 L 700.04492 1142.8984 C 730.88766 1155.6978 762.76881 1165.2975 795.6875 1171.6973 C 828.90275 1178.3431 861.96998 1181.666 894.88867 1181.666 C 974.96115 1181.666 1034.719 1168.0054 1074.1621 1140.6836 C 1113.9018 1113.1156 1133.7715 1071.5169 1133.7715 1015.8887 C 1133.7715 975.02903 1121.167 941.18506 1095.959 914.35547 C 1070.751 887.52595 1031.4559 865.98759 978.07422 849.74219 L 921.57812 832.01953 C 882.43158 819.95854 856.6315 809.00586 844.17578 799.16016 C 832.01663 789.06832 825.93555 776.3917 825.93555 761.13086 C 825.93555 741.43946 834.38878 726.30288 851.29297 715.71875 C 868.19716 705.13462 892.51562 699.8418 924.24805 699.8418 C 952.71826 699.8418 981.4855 704.14869 1010.5488 712.76367 C 1039.6122 721.37867 1068.2307 733.93228 1096.4043 750.42383 L 1096.4043 644.08984 C 1066.4513 632.76728 1036.2005 624.27651 1005.6543 618.61523 C 975.10813 612.70782 944.56179 609.75391 914.01562 609.75391 z M 109.28711 619.72266 L 298.79297 891.09375 L 103.94922 1170.959 L 239.62891 1170.959 L 365.96484 988.56641 L 492.74609 1170.959 L 628.42383 1170.959 L 434.4707 891.09375 L 623.08594 619.72266 L 487.4082 619.72266 L 365.96484 795.09961 L 244.9668 619.72266 L 109.28711 619.72266 z M 1288.1328 619.72266 L 1288.1328 1170.959 L 1700.0605 1170.959 L 1700.0605 1074.9629 L 1419.3633 1074.9629 L 1419.3633 619.72266 L 1288.1328 619.72266 z &#34;/&gt;&lt;/svg&gt;&lt;/span&gt;
  &lt;/span&gt;
        &lt;/div&gt;

      &lt;div class=&#34;stroom-menu-item-text&#34;&gt;XSL Translation
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
  &lt;/div&gt;



&lt;p&gt;When the &lt;strong&gt;New XSLT&lt;/strong&gt; selection window comes up,&lt;/p&gt;







  
  
  
  
  







  



&lt;div class=&#34;card rounded shadow-stroom p-2 td-post-card mb-4 mt-4&#34; style=&#34;width: fit-content;&#34;&gt;

  &lt;a title=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-11.png&#34; href=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-11.png&#34;&gt;
    &lt;figure style=&#34;margin-block-end: 0px&#34; &gt;
      
      &lt;img class=&#34;card-img-top&#34; src=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-11.png&#34; style=&#34;max-width: fit-content&#34; alt=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-11.png&#34;&gt;
      

      
      &lt;div class=&#34;card-body px-0 pt-2 pb-0&#34;&gt;
        &lt;hr style=&#34;border-top: 1px solid #ddd; margin-top: 0px; margin-bottom:4px;&#34;&gt;
        &lt;figcaption class=&#34;card-text&#34; style=&#34;font-size: smaller; text-align: center;&#34;&gt;New XSLT&lt;/figcaption&gt;
      &lt;/div&gt;
      
    &lt;/figure&gt;
  &lt;/a&gt;
&lt;/div&gt;

&lt;p&gt;enter the name of the feed, Apache-SSLBlackBox-V2.0-EVENTS, into the &lt;strong&gt;Name:&lt;/strong&gt; text entry box then press 






  
  
  


&lt;span class=&#34;stroom-theme-dark stroom-button stroom-button-primary&#34; title=&#34;OK button&#34; &gt;
  &lt;span class=&#34;stroom-icon inline-svg-button icon-button  icon-colour__grey&#34; &gt;
    &lt;span class=&#34;face&#34; title=&#34;OK&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; viewBox=&#34;0 0 512 512&#34;&gt;&lt;!-- Font Awesome Free 5.15.3 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --&gt;&lt;path style=&#34;fill:#fff&#34; d=&#34;M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z&#34;/&gt;&lt;/svg&gt; &lt;/span&gt;
  &lt;/span&gt;
  &lt;span class=&#34;stroom-button-text&#34;&gt;OK&lt;/span&gt;
&lt;/span&gt;
.
At this point you will be presented with the new XSLT&amp;rsquo;s configuration tab.&lt;/p&gt;







  
  
  
  
  







  



&lt;div class=&#34;card rounded shadow-stroom p-2 td-post-card mb-4 mt-4&#34; style=&#34;width: fit-content;&#34;&gt;

  &lt;a title=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-12.png&#34; href=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-12.png&#34;&gt;
    &lt;figure style=&#34;margin-block-end: 0px&#34; &gt;
      
      &lt;img class=&#34;card-img-top&#34; src=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-12.png&#34; style=&#34;max-width: fit-content&#34; alt=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-12.png&#34;&gt;
      

      
      &lt;div class=&#34;card-body px-0 pt-2 pb-0&#34;&gt;
        &lt;hr style=&#34;border-top: 1px solid #ddd; margin-top: 0px; margin-bottom:4px;&#34;&gt;
        &lt;figcaption class=&#34;card-text&#34; style=&#34;font-size: smaller; text-align: center;&#34;&gt;New XSLT tab&lt;/figcaption&gt;
      &lt;/div&gt;
      
    &lt;/figure&gt;
  &lt;/a&gt;
&lt;/div&gt;

&lt;p&gt;Enter an appropriate description into the &lt;strong&gt;Description:&lt;/strong&gt; text entry box, for instance&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Apache HTTPD events for BlackBox Version 2.0 - translation.
See Translation for complete documentation.&amp;rdquo;&lt;/p&gt;







  
  
  
  
  







  



&lt;div class=&#34;card rounded shadow-stroom p-2 td-post-card mb-4 mt-4&#34; style=&#34;width: fit-content;&#34;&gt;

  &lt;a title=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-13.png&#34; href=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-13.png&#34;&gt;
    &lt;figure style=&#34;margin-block-end: 0px&#34; &gt;
      
      &lt;img class=&#34;card-img-top&#34; src=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-13.png&#34; style=&#34;max-width: fit-content&#34; alt=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-13.png&#34;&gt;
      

      
      &lt;div class=&#34;card-body px-0 pt-2 pb-0&#34;&gt;
        &lt;hr style=&#34;border-top: 1px solid #ddd; margin-top: 0px; margin-bottom:4px;&#34;&gt;
        &lt;figcaption class=&#34;card-text&#34; style=&#34;font-size: smaller; text-align: center;&#34;&gt;New XSLT settings&lt;/figcaption&gt;
      &lt;/div&gt;
      
    &lt;/figure&gt;
  &lt;/a&gt;
&lt;/div&gt;

&lt;p&gt;Save the XSLT by clicking on the save &lt;span class=&#34;stroom-icon inline-svg-button icon-button  &#34; &gt;
    &lt;span class=&#34;face&#34; title=&#34;Save&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; width=&#34;1792&#34; height=&#34;1792&#34; viewBox=&#34;0 0 1792 1792&#34;&gt;&lt;!--! Font Awesome Free 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --&gt;&lt;path style=&#34;fill:currentColor;stroke-width:0.570676;stroke-dasharray:none&#34; d=&#34;M 339.40234 116.52148 C 216.56504 116.52148 116.69531 216.3912 116.69531 339.22852 L 116.69531 1452.7715 C 116.69531 1575.6089 216.56504 1675.4785 339.40234 1675.4785 L 1452.5977 1675.4785 C 1575.4349 1675.4785 1675.3047 1575.6089 1675.3047 1452.7715 L 1675.3047 598.82422 C 1675.3047 539.66744 1651.9901 482.94523 1610.2324 441.1875 L 1610.5801 440.83984 L 1351.334 181.59375 C 1309.5761 139.83602 1252.8561 116.52148 1193.6992 116.52148 L 339.40234 116.52148 z M 339.40234 283.55273 L 395.08008 283.55273 L 395.08008 645.45312 C 395.08008 691.73461 432.31423 728.96875 478.5957 728.96875 L 1146.7207 728.96875 C 1193.0023 728.96875 1230.2363 691.73461 1230.2363 645.45312 L 1230.2363 297.12305 C 1231.2803 298.167 1231.9756 298.8623 1233.0195 299.90625 L 1492.6152 558.80469 L 1492.2676 559.1543 C 1502.707 569.59373 1508.6211 583.8594 1508.6211 598.47461 L 1508.6211 1452.7715 C 1508.6211 1483.3939 1483.5678 1508.4473 1452.9453 1508.4473 L 1395.6113 1508.4473 L 1395.6113 1059.8359 C 1395.6113 981.08539 1331.5826 917.05859 1252.832 917.05859 L 539.16797 917.05859 C 460.41738 917.05859 396.38867 981.08539 396.38867 1059.8359 L 396.38867 1508.4473 L 339.40234 1508.4473 C 308.78001 1508.4473 283.72656 1483.3939 283.72656 1452.7715 L 283.72656 339.22852 C 283.72656 308.60619 308.78001 283.55273 339.40234 283.55273 z M 562.11133 283.55273 L 1063.2051 283.55273 L 1063.2051 561.9375 L 562.11133 561.9375 L 562.11133 283.55273 z M 538.94531 1024.1426 L 1252.832 1024.1426 C 1272.4639 1024.1426 1288.5273 1040.2041 1288.5273 1059.8359 L 1288.5273 1508.4473 L 503.25 1508.4473 L 503.25 1059.8359 C 503.25 1040.2041 519.31334 1024.1426 538.94531 1024.1426 z &#34; /&gt;&lt;/svg&gt; &lt;/span&gt;
  &lt;/span&gt; icon.&lt;/p&gt;
&lt;h3 id=&#34;create-pipeline&#34;&gt;Create Pipeline&lt;/h3&gt;
&lt;p&gt;In the process of creating this pipeline we have assumed that the &lt;strong&gt;Template Pipeline&lt;/strong&gt; content pack has been loaded, so that we can &lt;em&gt;Inherit&lt;/em&gt; a pipeline structure from this content pack and configure it to support this specific feed.&lt;/p&gt;
&lt;p&gt;Within the Explorer pane, and having selected the Apache HTTPD system group, right click to bring up object context menu, then select:&lt;/p&gt;





  &lt;div class=&#34;stroom-theme-dark stroom-menu&#34;&gt;
    
    

      

      
      


      

  
  
  &lt;div class=&#34;stroom-menu-item-background&#34; style=&#34;margin-top: 0px;&#34;&gt;
    
    &lt;div class=&#34;stroom-menu-item &#34; &gt;
        &lt;div class=&#34;stroom-menu-item-icon&#34;&gt;
          &lt;span class=&#34;stroom-icon inline-svg-button icon-button  &#34; &gt;
    &lt;span class=&#34;face&#34; title=&#34;Add&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; width=&#34;1792&#34; height=&#34;1792&#34; viewBox=&#34;0 0 1792 1792&#34;&gt;&lt;path style=&#34;fill:currentColor&#34; d=&#34;m 1600,800 0,192 q 0,40 -28,68 -28,28 -68,28 l -416,0 0,416 q 0,40 -28,68 -28,28 -68,28 l -192,0 q -40,0 -68,-28 -28,-28 -28,-68 l 0,-416 -416,0 q -40,0 -68,-28 -28,-28 -28,-68 l 0,-192 q 0,-40 28,-68 28,-28 68,-28 l 416,0 0,-416 q 0,-40 28,-68 28,-28 68,-28 l 192,0 q 40,0 68,28 28,28 28,68 l 0,416 416,0 q 40,0 68,28 28,28 28,68 z&#34;/&gt;&lt;/svg&gt; &lt;/span&gt;
  &lt;/span&gt;
        &lt;/div&gt;

      &lt;div class=&#34;stroom-menu-item-text&#34;&gt;New
      &lt;/div&gt;
        &lt;div class=&#34;stroom-menu-item-arrow&#34;&gt;
          &lt;span class=&#34;stroom-icon inline-svg-button icon-button  &#34; &gt;
    &lt;span class=&#34;face&#34; title=&#34;Arrow right&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; width=&#34;1427.7665&#34; height=&#34;1427.7665&#34; viewBox=&#34;0 0 1427.7665 1427.7665&#34;&gt;&lt;g style=&#34;stroke:currentColor;stroke-width:167.567&#34;&gt;&lt;path d=&#34;m 415.05387,83.70929 c -39.92654,0.4303 -75.41463,48.3887 -40.0468,81.9121 C 567.552,348.69899 760.75555,531.15431 953.73208,713.82391 760.75555,896.49341 567.552,1078.9486 375.00707,1262.0262 c -46.19471,43.7855 28.48812,112.1966 76.0571,67.1681 195.93558,-185.823 392.95261,-370.82479 587.98693,-557.52749 5.6117,-4.8034 10.4633,-10.2473 14.4855,-16.1231 9.643,-12.4844 13.9638,-27.0796 13.6909,-41.7198 0.2729,-14.6402 -4.0479,-29.2354 -13.6909,-41.7198 -4.0222,-5.8758 -8.8738,-11.3198 -14.4855,-16.1231 C 844.01678,469.27821 646.99975,284.27629 451.06417,98.45319 439.91519,87.89979 427.27628,83.57749 415.05387,83.70929 Z&#34;/&gt;&lt;/g&gt;&lt;/svg&gt; &lt;/span&gt;
  &lt;/span&gt;
        &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;

      

      
      
        
      


      

  
  
  &lt;div class=&#34;stroom-menu-item-background&#34; style=&#34;margin-top: 7px;&#34;&gt;
    
    &lt;div class=&#34;stroom-menu-item stroom-menu-item-leaf&#34; &gt;
        &lt;div class=&#34;stroom-menu-item-icon&#34;&gt;
          &lt;span class=&#34;stroom-icon inline-svg-button icon-button  &#34; &gt;
    &lt;span class=&#34;face&#34; title=&#34;Pipeline&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; width=&#34;1792&#34; height=&#34;1792&#34; viewBox=&#34;0 0 1792 1792&#34;&gt;&lt;path style=&#34;fill:var(--icon-colour__blue)&#34; d=&#34;m 1440,95.339844 c -9.3333,0 -17,2.999997 -23,8.999996 -6,6 -9,13.66667 -9,23 l 0,192 -256,0 c -45.3333,0 -88,5.5 -128,16.5 -40.00001,11 -75.50001,25 -106.50001,42 -31,17 -61,39.83333 -90,68.5 -29,28.66667 -53.66667,56.33333 -74,83 -20.33333,26.66667 -41.66667,60 -64,100 -19.99699,35.8155 -36.49225,67.59036 -49.54102,95.38868 -0.27492,0.10932 -0.53471,0.21669 -0.81054,0.32617 -16,30.66667 -31,56.5 -45,77.5 -14,21 -31,41.5 -51,61.5 -20,20 -43,35 -69,45 -26,10 -55,15 -87,15 l -355.148435,0 c -9.333333,0 -17,3 -23.0000004,9 -6,6 -9.0000000375455,13.66667 -9.0000000375455,23 l 0,192.00001 c 0,9.3333 3.0000000375455,17 9.0000000375455,23 6.0000004,6 13.6666674,9 23.0000004,9 l 355.148435,0 c 45.33333,0 88,-5.5 128,-16.5 40,-11 75.5,-25 106.5,-42 31,-17 61,-39.8333 90,-68.5 29,-28.6667 53.66667,-56.33334 74,-83.00001 20.33333,-26.66667 41.66667,-60 64,-100 19.8569,-35.56461 36.26775,-67.15315 49.27344,-94.8125 0.36178,-0.305 0.71557,-0.5961 1.07812,-0.90235 16,-30.66667 31,-56.5 45,-77.5 14,-21 31,-41.5 51,-61.5 20.00001,-20 43.00001,-35 69.00001,-45 26,-10 55,-15 87,-15 l 256,0 0,192 c 0,8.66667 3.1667,16.16667 9.5,22.5 6.3333,6.33333 13.8333,9.5 22.5,9.5 9.3333,0 17,-3 23,-9 l 320,-320 c 6,-6 9,-13.66667 9,-23 0,-9.33333 -3,-17 -9,-23 l -319,-319 c -8,-6.666666 -16,-9.999996 -24,-9.999996 z&#34;/&gt;&lt;path style=&#34;fill:var(--icon-colour__green)&#34; d=&#34;M 32 608.88672 C 22.666667 608.88672 15 611.88672 9 617.88672 C 3.0000001 623.88672 0 631.55342 0 640.88672 L 0 832.88672 C -2.3684758e-15 842.22005 3.0000001 849.88672 9 855.88672 C 14.999999 861.88672 22.666667 864.88672 32 864.88672 L 387.14844 864.88672 C 389.01484 864.88672 390.86885 864.90739 392.71484 864.94141 C 424.84023 863.54598 455.12074 854.70213 477.65234 838.51562 C 513.22947 811.0071 542.31317 769.76507 567.46094 723.21289 A 59.082625 59.082625 0 0 1 567.88281 722.44336 C 577.24508 705.7116 585.95748 689.48787 593.56641 673.41992 A 59.082625 59.082625 0 0 1 594.40625 671.7168 C 596.87369 666.9118 599.36286 662.08644 601.86719 657.25195 C 575.79127 644.74345 546.89263 634.11637 515.14844 625.38672 C 475.14844 614.38672 432.48177 608.88672 387.14844 608.88672 L 32 608.88672 z M 870.56641 957.2793 C 853.49205 984.29535 834.72449 1010.8834 813.4375 1036.3711 A 59.082625 59.082625 0 0 1 813.08984 1036.7852 C 777.58172 1078.5162 737.58032 1121.5966 687.80664 1156.543 C 688.3781 1157.5702 688.9227 1158.5676 689.5 1159.6016 C 711.83333 1199.6016 733.16667 1232.9349 753.5 1259.6016 C 773.83333 1286.2683 798.5 1313.9349 827.5 1342.6016 C 856.5 1371.2683 886.5 1394.1016 917.5 1411.1016 C 948.5 1428.1016 983.99999 1442.1016 1024 1453.1016 C 1064 1464.1016 1106.6667 1469.6016 1152 1469.6016 L 1408 1469.6016 L 1408 1661.6016 C 1408 1670.9349 1411 1678.6016 1417 1684.6016 C 1423 1690.6016 1430.6667 1693.6016 1440 1693.6016 C 1448 1693.6016 1456 1690.2683 1464 1683.6016 L 1783 1364.6016 C 1789 1358.6016 1792 1350.9349 1792 1341.6016 C 1792 1332.2683 1789 1324.6016 1783 1318.6016 L 1463 998.60156 C 1457 992.60156 1449.3333 989.60156 1440 989.60156 C 1431.3333 989.60156 1423.8333 992.76823 1417.5 999.10156 C 1411.1667 1005.4348 1408 1012.9349 1408 1021.6016 L 1408 1213.6016 L 1152 1213.6016 C 1120 1213.6016 1091 1208.6016 1065 1198.6016 C 1039 1188.6016 1016 1173.6016 996 1153.6016 C 976 1133.6016 959 1113.1016 945 1092.1016 C 931 1071.1016 916 1045.2683 900 1014.6016 C 899.63745 1014.2954 899.28365 1014.0042 898.92188 1013.6992 C 890.80126 996.429 881.35206 977.6246 870.56641 957.2793 z &#34;/&gt;&lt;/svg&gt;&lt;/span&gt;
  &lt;/span&gt;
        &lt;/div&gt;

      &lt;div class=&#34;stroom-menu-item-text&#34;&gt;Pipeline
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
  &lt;/div&gt;



&lt;p&gt;When the &lt;strong&gt;New Pipeline&lt;/strong&gt; selection window comes up, navigate to, then select the Apache HTTPD system group and then enter the name of the pipeline, Apache-SSLBlackBox-V2.0-EVENTS into the &lt;strong&gt;Name:&lt;/strong&gt; text entry box then press 






  
  
  


&lt;span class=&#34;stroom-theme-dark stroom-button stroom-button-primary&#34; title=&#34;OK button&#34; &gt;
  &lt;span class=&#34;stroom-icon inline-svg-button icon-button  icon-colour__grey&#34; &gt;
    &lt;span class=&#34;face&#34; title=&#34;OK&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; viewBox=&#34;0 0 512 512&#34;&gt;&lt;!-- Font Awesome Free 5.15.3 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --&gt;&lt;path style=&#34;fill:#fff&#34; d=&#34;M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z&#34;/&gt;&lt;/svg&gt; &lt;/span&gt;
  &lt;/span&gt;
  &lt;span class=&#34;stroom-button-text&#34;&gt;OK&lt;/span&gt;
&lt;/span&gt;
.
At this point you will be presented with the new pipeline’s configuration tab&lt;/p&gt;







  
  
  
  
  







  



&lt;div class=&#34;card rounded shadow-stroom p-2 td-post-card mb-4 mt-4&#34; style=&#34;width: fit-content;&#34;&gt;

  &lt;a title=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-15.png&#34; href=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-15.png&#34;&gt;
    &lt;figure style=&#34;margin-block-end: 0px&#34; &gt;
      
      &lt;img class=&#34;card-img-top&#34; src=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-15.png&#34; style=&#34;max-width: fit-content&#34; alt=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-15.png&#34;&gt;
      

      
      &lt;div class=&#34;card-body px-0 pt-2 pb-0&#34;&gt;
        &lt;hr style=&#34;border-top: 1px solid #ddd; margin-top: 0px; margin-bottom:4px;&#34;&gt;
        &lt;figcaption class=&#34;card-text&#34; style=&#34;font-size: smaller; text-align: center;&#34;&gt;New Pipeline tab&lt;/figcaption&gt;
      &lt;/div&gt;
      
    &lt;/figure&gt;
  &lt;/a&gt;
&lt;/div&gt;

&lt;p&gt;As usual, enter an appropriate &lt;strong&gt;Description:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Apache HTTPD events for BlackBox Version 2.0 - pipeline.
This pipeline uses the standard event pipeline to store the events in the Event Store.&amp;rdquo;&lt;/p&gt;







  
  
  
  
  







  



&lt;div class=&#34;card rounded shadow-stroom p-2 td-post-card mb-4 mt-4&#34; style=&#34;width: fit-content;&#34;&gt;

  &lt;a title=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-16.png&#34; href=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-16.png&#34;&gt;
    &lt;figure style=&#34;margin-block-end: 0px&#34; &gt;
      
      &lt;img class=&#34;card-img-top&#34; src=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-16.png&#34; style=&#34;max-width: fit-content&#34; alt=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-16.png&#34;&gt;
      

      
      &lt;div class=&#34;card-body px-0 pt-2 pb-0&#34;&gt;
        &lt;hr style=&#34;border-top: 1px solid #ddd; margin-top: 0px; margin-bottom:4px;&#34;&gt;
        &lt;figcaption class=&#34;card-text&#34; style=&#34;font-size: smaller; text-align: center;&#34;&gt;New Pipeline settings&lt;/figcaption&gt;
      &lt;/div&gt;
      
    &lt;/figure&gt;
  &lt;/a&gt;
&lt;/div&gt;

&lt;p&gt;Save the pipeline by clicking on the save icon &lt;span class=&#34;stroom-icon inline-svg-button icon-button  &#34; &gt;
    &lt;span class=&#34;face&#34; title=&#34;Save&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; width=&#34;1792&#34; height=&#34;1792&#34; viewBox=&#34;0 0 1792 1792&#34;&gt;&lt;!--! Font Awesome Free 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --&gt;&lt;path style=&#34;fill:currentColor;stroke-width:0.570676;stroke-dasharray:none&#34; d=&#34;M 339.40234 116.52148 C 216.56504 116.52148 116.69531 216.3912 116.69531 339.22852 L 116.69531 1452.7715 C 116.69531 1575.6089 216.56504 1675.4785 339.40234 1675.4785 L 1452.5977 1675.4785 C 1575.4349 1675.4785 1675.3047 1575.6089 1675.3047 1452.7715 L 1675.3047 598.82422 C 1675.3047 539.66744 1651.9901 482.94523 1610.2324 441.1875 L 1610.5801 440.83984 L 1351.334 181.59375 C 1309.5761 139.83602 1252.8561 116.52148 1193.6992 116.52148 L 339.40234 116.52148 z M 339.40234 283.55273 L 395.08008 283.55273 L 395.08008 645.45312 C 395.08008 691.73461 432.31423 728.96875 478.5957 728.96875 L 1146.7207 728.96875 C 1193.0023 728.96875 1230.2363 691.73461 1230.2363 645.45312 L 1230.2363 297.12305 C 1231.2803 298.167 1231.9756 298.8623 1233.0195 299.90625 L 1492.6152 558.80469 L 1492.2676 559.1543 C 1502.707 569.59373 1508.6211 583.8594 1508.6211 598.47461 L 1508.6211 1452.7715 C 1508.6211 1483.3939 1483.5678 1508.4473 1452.9453 1508.4473 L 1395.6113 1508.4473 L 1395.6113 1059.8359 C 1395.6113 981.08539 1331.5826 917.05859 1252.832 917.05859 L 539.16797 917.05859 C 460.41738 917.05859 396.38867 981.08539 396.38867 1059.8359 L 396.38867 1508.4473 L 339.40234 1508.4473 C 308.78001 1508.4473 283.72656 1483.3939 283.72656 1452.7715 L 283.72656 339.22852 C 283.72656 308.60619 308.78001 283.55273 339.40234 283.55273 z M 562.11133 283.55273 L 1063.2051 283.55273 L 1063.2051 561.9375 L 562.11133 561.9375 L 562.11133 283.55273 z M 538.94531 1024.1426 L 1252.832 1024.1426 C 1272.4639 1024.1426 1288.5273 1040.2041 1288.5273 1059.8359 L 1288.5273 1508.4473 L 503.25 1508.4473 L 503.25 1059.8359 C 503.25 1040.2041 519.31334 1024.1426 538.94531 1024.1426 z &#34; /&gt;&lt;/svg&gt; &lt;/span&gt;
  &lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;We now need to select the structure this pipeline will use.
We need to move from the &lt;strong&gt;Settings&lt;/strong&gt; sub-item on the pipeline configuration tab to the &lt;strong&gt;Structure&lt;/strong&gt; sub-item.
This is done by clicking on the &lt;strong&gt;Structure&lt;/strong&gt; link, at which we see&lt;/p&gt;







  
  
  
  
  







  



&lt;div class=&#34;card rounded shadow-stroom p-2 td-post-card mb-4 mt-4&#34; style=&#34;width: fit-content;&#34;&gt;

  &lt;a title=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-17.png&#34; href=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-17.png&#34;&gt;
    &lt;figure style=&#34;margin-block-end: 0px&#34; &gt;
      
      &lt;img class=&#34;card-img-top&#34; src=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-17.png&#34; style=&#34;max-width: fit-content&#34; alt=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-17.png&#34;&gt;
      

      
      &lt;div class=&#34;card-body px-0 pt-2 pb-0&#34;&gt;
        &lt;hr style=&#34;border-top: 1px solid #ddd; margin-top: 0px; margin-bottom:4px;&#34;&gt;
        &lt;figcaption class=&#34;card-text&#34; style=&#34;font-size: smaller; text-align: center;&#34;&gt;New Pipeline Structure&lt;/figcaption&gt;
      &lt;/div&gt;
      
    &lt;/figure&gt;
  &lt;/a&gt;
&lt;/div&gt;

&lt;p&gt;Next we will choose an Event Data pipeline.
This is done by inheriting it from a defined set of Template Pipelines.
To do this, click on the menu selection icon to the right of the Inherit From: text display box.&lt;/p&gt;
&lt;p&gt;When the &lt;strong&gt;Choose item&lt;/strong&gt;&lt;/p&gt;







  
  
  
  
  







  



&lt;div class=&#34;card rounded shadow-stroom p-2 td-post-card mb-4 mt-4&#34; style=&#34;width: fit-content;&#34;&gt;

  &lt;a title=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-18.png&#34; href=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-18.png&#34;&gt;
    &lt;figure style=&#34;margin-block-end: 0px&#34; &gt;
      
      &lt;img class=&#34;card-img-top&#34; src=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-18.png&#34; style=&#34;max-width: fit-content&#34; alt=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-18.png&#34;&gt;
      

      
      &lt;div class=&#34;card-body px-0 pt-2 pb-0&#34;&gt;
        &lt;hr style=&#34;border-top: 1px solid #ddd; margin-top: 0px; margin-bottom:4px;&#34;&gt;
        &lt;figcaption class=&#34;card-text&#34; style=&#34;font-size: smaller; text-align: center;&#34;&gt;New Pipeline inherited from&lt;/figcaption&gt;
      &lt;/div&gt;
      
    &lt;/figure&gt;
  &lt;/a&gt;
&lt;/div&gt;

&lt;p&gt;selection window appears, select from the &lt;code&gt;Template Pipelines&lt;/code&gt; system group.
In this instance, as our input data is text, we select (left click) the &lt;span class=&#34;stroom-icon inline-svg-button icon-button  &#34; &gt;
    &lt;span class=&#34;face&#34; title=&#34;Pipeline&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; width=&#34;1792&#34; height=&#34;1792&#34; viewBox=&#34;0 0 1792 1792&#34;&gt;&lt;path style=&#34;fill:var(--icon-colour__blue)&#34; d=&#34;m 1440,95.339844 c -9.3333,0 -17,2.999997 -23,8.999996 -6,6 -9,13.66667 -9,23 l 0,192 -256,0 c -45.3333,0 -88,5.5 -128,16.5 -40.00001,11 -75.50001,25 -106.50001,42 -31,17 -61,39.83333 -90,68.5 -29,28.66667 -53.66667,56.33333 -74,83 -20.33333,26.66667 -41.66667,60 -64,100 -19.99699,35.8155 -36.49225,67.59036 -49.54102,95.38868 -0.27492,0.10932 -0.53471,0.21669 -0.81054,0.32617 -16,30.66667 -31,56.5 -45,77.5 -14,21 -31,41.5 -51,61.5 -20,20 -43,35 -69,45 -26,10 -55,15 -87,15 l -355.148435,0 c -9.333333,0 -17,3 -23.0000004,9 -6,6 -9.0000000375455,13.66667 -9.0000000375455,23 l 0,192.00001 c 0,9.3333 3.0000000375455,17 9.0000000375455,23 6.0000004,6 13.6666674,9 23.0000004,9 l 355.148435,0 c 45.33333,0 88,-5.5 128,-16.5 40,-11 75.5,-25 106.5,-42 31,-17 61,-39.8333 90,-68.5 29,-28.6667 53.66667,-56.33334 74,-83.00001 20.33333,-26.66667 41.66667,-60 64,-100 19.8569,-35.56461 36.26775,-67.15315 49.27344,-94.8125 0.36178,-0.305 0.71557,-0.5961 1.07812,-0.90235 16,-30.66667 31,-56.5 45,-77.5 14,-21 31,-41.5 51,-61.5 20.00001,-20 43.00001,-35 69.00001,-45 26,-10 55,-15 87,-15 l 256,0 0,192 c 0,8.66667 3.1667,16.16667 9.5,22.5 6.3333,6.33333 13.8333,9.5 22.5,9.5 9.3333,0 17,-3 23,-9 l 320,-320 c 6,-6 9,-13.66667 9,-23 0,-9.33333 -3,-17 -9,-23 l -319,-319 c -8,-6.666666 -16,-9.999996 -24,-9.999996 z&#34;/&gt;&lt;path style=&#34;fill:var(--icon-colour__green)&#34; d=&#34;M 32 608.88672 C 22.666667 608.88672 15 611.88672 9 617.88672 C 3.0000001 623.88672 0 631.55342 0 640.88672 L 0 832.88672 C -2.3684758e-15 842.22005 3.0000001 849.88672 9 855.88672 C 14.999999 861.88672 22.666667 864.88672 32 864.88672 L 387.14844 864.88672 C 389.01484 864.88672 390.86885 864.90739 392.71484 864.94141 C 424.84023 863.54598 455.12074 854.70213 477.65234 838.51562 C 513.22947 811.0071 542.31317 769.76507 567.46094 723.21289 A 59.082625 59.082625 0 0 1 567.88281 722.44336 C 577.24508 705.7116 585.95748 689.48787 593.56641 673.41992 A 59.082625 59.082625 0 0 1 594.40625 671.7168 C 596.87369 666.9118 599.36286 662.08644 601.86719 657.25195 C 575.79127 644.74345 546.89263 634.11637 515.14844 625.38672 C 475.14844 614.38672 432.48177 608.88672 387.14844 608.88672 L 32 608.88672 z M 870.56641 957.2793 C 853.49205 984.29535 834.72449 1010.8834 813.4375 1036.3711 A 59.082625 59.082625 0 0 1 813.08984 1036.7852 C 777.58172 1078.5162 737.58032 1121.5966 687.80664 1156.543 C 688.3781 1157.5702 688.9227 1158.5676 689.5 1159.6016 C 711.83333 1199.6016 733.16667 1232.9349 753.5 1259.6016 C 773.83333 1286.2683 798.5 1313.9349 827.5 1342.6016 C 856.5 1371.2683 886.5 1394.1016 917.5 1411.1016 C 948.5 1428.1016 983.99999 1442.1016 1024 1453.1016 C 1064 1464.1016 1106.6667 1469.6016 1152 1469.6016 L 1408 1469.6016 L 1408 1661.6016 C 1408 1670.9349 1411 1678.6016 1417 1684.6016 C 1423 1690.6016 1430.6667 1693.6016 1440 1693.6016 C 1448 1693.6016 1456 1690.2683 1464 1683.6016 L 1783 1364.6016 C 1789 1358.6016 1792 1350.9349 1792 1341.6016 C 1792 1332.2683 1789 1324.6016 1783 1318.6016 L 1463 998.60156 C 1457 992.60156 1449.3333 989.60156 1440 989.60156 C 1431.3333 989.60156 1423.8333 992.76823 1417.5 999.10156 C 1411.1667 1005.4348 1408 1012.9349 1408 1021.6016 L 1408 1213.6016 L 1152 1213.6016 C 1120 1213.6016 1091 1208.6016 1065 1198.6016 C 1039 1188.6016 1016 1173.6016 996 1153.6016 C 976 1133.6016 959 1113.1016 945 1092.1016 C 931 1071.1016 916 1045.2683 900 1014.6016 C 899.63745 1014.2954 899.28365 1014.0042 898.92188 1013.6992 C 890.80126 996.429 881.35206 977.6246 870.56641 957.2793 z &#34;/&gt;&lt;/svg&gt;&lt;/span&gt;
  &lt;/span&gt; &lt;em&gt;Event Data (Text)&lt;/em&gt; pipeline&lt;/p&gt;







  
  
  
  
  







  



&lt;div class=&#34;card rounded shadow-stroom p-2 td-post-card mb-4 mt-4&#34; style=&#34;width: fit-content;&#34;&gt;

  &lt;a title=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-19.png&#34; href=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-19.png&#34;&gt;
    &lt;figure style=&#34;margin-block-end: 0px&#34; &gt;
      
      &lt;img class=&#34;card-img-top&#34; src=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-19.png&#34; style=&#34;max-width: fit-content&#34; alt=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-19.png&#34;&gt;
      

      
      &lt;div class=&#34;card-body px-0 pt-2 pb-0&#34;&gt;
        &lt;hr style=&#34;border-top: 1px solid #ddd; margin-top: 0px; margin-bottom:4px;&#34;&gt;
        &lt;figcaption class=&#34;card-text&#34; style=&#34;font-size: smaller; text-align: center;&#34;&gt;New Pipeline inherited selection&lt;/figcaption&gt;
      &lt;/div&gt;
      
    &lt;/figure&gt;
  &lt;/a&gt;
&lt;/div&gt;

&lt;p&gt;then press 






  
  
  


&lt;span class=&#34;stroom-theme-dark stroom-button stroom-button-primary&#34; title=&#34;OK button&#34; &gt;
  &lt;span class=&#34;stroom-icon inline-svg-button icon-button  icon-colour__grey&#34; &gt;
    &lt;span class=&#34;face&#34; title=&#34;OK&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; viewBox=&#34;0 0 512 512&#34;&gt;&lt;!-- Font Awesome Free 5.15.3 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --&gt;&lt;path style=&#34;fill:#fff&#34; d=&#34;M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z&#34;/&gt;&lt;/svg&gt; &lt;/span&gt;
  &lt;/span&gt;
  &lt;span class=&#34;stroom-button-text&#34;&gt;OK&lt;/span&gt;
&lt;/span&gt;
.
At this point, we see the inherited pipeline structure of&lt;/p&gt;







  
  
  
  
  







  



&lt;div class=&#34;card rounded shadow-stroom p-2 td-post-card mb-4 mt-4&#34; style=&#34;width: fit-content;&#34;&gt;

  &lt;a title=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-20.png&#34; href=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-20.png&#34;&gt;
    &lt;figure style=&#34;margin-block-end: 0px&#34; &gt;
      
      &lt;img class=&#34;card-img-top&#34; src=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-20.png&#34; style=&#34;max-width: fit-content&#34; alt=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-20.png&#34;&gt;
      

      
      &lt;div class=&#34;card-body px-0 pt-2 pb-0&#34;&gt;
        &lt;hr style=&#34;border-top: 1px solid #ddd; margin-top: 0px; margin-bottom:4px;&#34;&gt;
        &lt;figcaption class=&#34;card-text&#34; style=&#34;font-size: smaller; text-align: center;&#34;&gt;New Pipeline inherited structure&lt;/figcaption&gt;
      &lt;/div&gt;
      
    &lt;/figure&gt;
  &lt;/a&gt;
&lt;/div&gt;

&lt;p&gt;For the purpose of this HOWTO, we are only interested in two of the eleven (11) elements in this pipeline&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;the Text Converter labelled &lt;em&gt;dsParser&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;the XSLT Translation labelled &lt;em&gt;translationFilter&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We now need to associate our Text Converter and Translation with the pipeline so that we can pass raw events (logs) through our pipeline in order to save them in the Event Store.&lt;/p&gt;
&lt;p&gt;To associate the Text Converter, select the Text Converter icon, to display.&lt;/p&gt;







  
  
  
  
  







  



&lt;div class=&#34;card rounded shadow-stroom p-2 td-post-card mb-4 mt-4&#34; style=&#34;width: fit-content;&#34;&gt;

  &lt;a title=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-21.png&#34; href=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-21.png&#34;&gt;
    &lt;figure style=&#34;margin-block-end: 0px&#34; &gt;
      
      &lt;img class=&#34;card-img-top&#34; src=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-21.png&#34; style=&#34;max-width: fit-content&#34; alt=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-21.png&#34;&gt;
      

      
      &lt;div class=&#34;card-body px-0 pt-2 pb-0&#34;&gt;
        &lt;hr style=&#34;border-top: 1px solid #ddd; margin-top: 0px; margin-bottom:4px;&#34;&gt;
        &lt;figcaption class=&#34;card-text&#34; style=&#34;font-size: smaller; text-align: center;&#34;&gt;New Pipeline associate textconverter&lt;/figcaption&gt;
      &lt;/div&gt;
      
    &lt;/figure&gt;
  &lt;/a&gt;
&lt;/div&gt;

&lt;p&gt;Now navigate to the &lt;strong&gt;Property&lt;/strong&gt; pane (the middle pane of the pipeline configuration tab), then double click on the &lt;em&gt;textConverter&lt;/em&gt; Property Name to display the &lt;strong&gt;Edit
Property&lt;/strong&gt; selection window that allows you to edit the given property&lt;/p&gt;







  
  
  
  
  







  



&lt;div class=&#34;card rounded shadow-stroom p-2 td-post-card mb-4 mt-4&#34; style=&#34;width: fit-content;&#34;&gt;

  &lt;a title=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-22.png&#34; href=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-22.png&#34;&gt;
    &lt;figure style=&#34;margin-block-end: 0px&#34; &gt;
      
      &lt;img class=&#34;card-img-top&#34; src=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-22.png&#34; style=&#34;max-width: fit-content&#34; alt=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-22.png&#34;&gt;
      

      
      &lt;div class=&#34;card-body px-0 pt-2 pb-0&#34;&gt;
        &lt;hr style=&#34;border-top: 1px solid #ddd; margin-top: 0px; margin-bottom:4px;&#34;&gt;
        &lt;figcaption class=&#34;card-text&#34; style=&#34;font-size: smaller; text-align: center;&#34;&gt;New Pipeline textconverter association&lt;/figcaption&gt;
      &lt;/div&gt;
      
    &lt;/figure&gt;
  &lt;/a&gt;
&lt;/div&gt;

&lt;p&gt;We leave the Property &lt;strong&gt;Source:&lt;/strong&gt; as Inherit but we need to change the Property &lt;strong&gt;Value:&lt;/strong&gt; from &lt;em&gt;None&lt;/em&gt; to be our newly created Apache-SSLBlackBox-V2.0-EVENTS Text Converter.&lt;/p&gt;
&lt;p&gt;To do this, position the cursor over the menu selection icon &lt;span class=&#34;stroom-icon inline-svg-button icon-button  &#34; &gt;
    &lt;span class=&#34;face&#34; title=&#34;Menu selection&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; height=&#34;1792&#34; width=&#34;1792&#34; version=&#34;1.1&#34; viewBox=&#34;0 0 1792 1792&#34;&gt;&lt;g style=&#34;fill:currentColor&#34;&gt;&lt;circle cx=&#34;342.43176&#34; cy=&#34;896&#34; r=&#34;208.83429&#34;/&gt;&lt;circle cx=&#34;896&#34; cy=&#34;896&#34; r=&#34;208.83429&#34;/&gt;&lt;circle cx=&#34;1449.5682&#34; cy=&#34;896&#34; r=&#34;208.83429&#34;/&gt;&lt;/g&gt;&lt;/svg&gt; &lt;/span&gt;
  &lt;/span&gt; to the right of the &lt;strong&gt;Value:&lt;/strong&gt; text display box and click to select.
Navigate to the &lt;code&gt;Apache HTTPD&lt;/code&gt; system group then select the Apache-SSLBlackBox-V2.0-EVENTS text Converter&lt;/p&gt;







  
  
  
  
  







  



&lt;div class=&#34;card rounded shadow-stroom p-2 td-post-card mb-4 mt-4&#34; style=&#34;width: fit-content;&#34;&gt;

  &lt;a title=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-23.png&#34; href=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-23.png&#34;&gt;
    &lt;figure style=&#34;margin-block-end: 0px&#34; &gt;
      
      &lt;img class=&#34;card-img-top&#34; src=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-23.png&#34; style=&#34;max-width: fit-content&#34; alt=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-23.png&#34;&gt;
      

      
      &lt;div class=&#34;card-body px-0 pt-2 pb-0&#34;&gt;
        &lt;hr style=&#34;border-top: 1px solid #ddd; margin-top: 0px; margin-bottom:4px;&#34;&gt;
        &lt;figcaption class=&#34;card-text&#34; style=&#34;font-size: smaller; text-align: center;&#34;&gt;New Pipeline textconverter association&lt;/figcaption&gt;
      &lt;/div&gt;
      
    &lt;/figure&gt;
  &lt;/a&gt;
&lt;/div&gt;

&lt;p&gt;then press 






  
  
  


&lt;span class=&#34;stroom-theme-dark stroom-button stroom-button-primary&#34; title=&#34;OK button&#34; &gt;
  &lt;span class=&#34;stroom-icon inline-svg-button icon-button  icon-colour__grey&#34; &gt;
    &lt;span class=&#34;face&#34; title=&#34;OK&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; viewBox=&#34;0 0 512 512&#34;&gt;&lt;!-- Font Awesome Free 5.15.3 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --&gt;&lt;path style=&#34;fill:#fff&#34; d=&#34;M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z&#34;/&gt;&lt;/svg&gt; &lt;/span&gt;
  &lt;/span&gt;
  &lt;span class=&#34;stroom-button-text&#34;&gt;OK&lt;/span&gt;
&lt;/span&gt;
.
At this point, we will see the Property &lt;em&gt;Value&lt;/em&gt; set&lt;/p&gt;







  
  
  
  
  







  



&lt;div class=&#34;card rounded shadow-stroom p-2 td-post-card mb-4 mt-4&#34; style=&#34;width: fit-content;&#34;&gt;

  &lt;a title=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-24.png&#34; href=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-24.png&#34;&gt;
    &lt;figure style=&#34;margin-block-end: 0px&#34; &gt;
      
      &lt;img class=&#34;card-img-top&#34; src=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-24.png&#34; style=&#34;max-width: fit-content&#34; alt=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-24.png&#34;&gt;
      

      
      &lt;div class=&#34;card-body px-0 pt-2 pb-0&#34;&gt;
        &lt;hr style=&#34;border-top: 1px solid #ddd; margin-top: 0px; margin-bottom:4px;&#34;&gt;
        &lt;figcaption class=&#34;card-text&#34; style=&#34;font-size: smaller; text-align: center;&#34;&gt;New Pipeline textconverter association&lt;/figcaption&gt;
      &lt;/div&gt;
      
    &lt;/figure&gt;
  &lt;/a&gt;
&lt;/div&gt;

&lt;p&gt;Again press 






  
  
  


&lt;span class=&#34;stroom-theme-dark stroom-button stroom-button-primary&#34; title=&#34;OK button&#34; &gt;
  &lt;span class=&#34;stroom-icon inline-svg-button icon-button  icon-colour__grey&#34; &gt;
    &lt;span class=&#34;face&#34; title=&#34;OK&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; viewBox=&#34;0 0 512 512&#34;&gt;&lt;!-- Font Awesome Free 5.15.3 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --&gt;&lt;path style=&#34;fill:#fff&#34; d=&#34;M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z&#34;/&gt;&lt;/svg&gt; &lt;/span&gt;
  &lt;/span&gt;
  &lt;span class=&#34;stroom-button-text&#34;&gt;OK&lt;/span&gt;
&lt;/span&gt;
 to finish editing this property and we see that the &lt;em&gt;textConverter&lt;/em&gt; Property has been set to &lt;strong&gt;Apache-SSLBlackBox-V2.0-EVENTS&lt;/strong&gt;&lt;/p&gt;







  
  
  
  
  







  



&lt;div class=&#34;card rounded shadow-stroom p-2 td-post-card mb-4 mt-4&#34; style=&#34;width: fit-content;&#34;&gt;

  &lt;a title=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-25.png&#34; href=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-25.png&#34;&gt;
    &lt;figure style=&#34;margin-block-end: 0px&#34; &gt;
      
      &lt;img class=&#34;card-img-top&#34; src=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-25.png&#34; style=&#34;max-width: fit-content&#34; alt=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-25.png&#34;&gt;
      

      
      &lt;div class=&#34;card-body px-0 pt-2 pb-0&#34;&gt;
        &lt;hr style=&#34;border-top: 1px solid #ddd; margin-top: 0px; margin-bottom:4px;&#34;&gt;
        &lt;figcaption class=&#34;card-text&#34; style=&#34;font-size: smaller; text-align: center;&#34;&gt;New Pipeline textconverter association&lt;/figcaption&gt;
      &lt;/div&gt;
      
    &lt;/figure&gt;
  &lt;/a&gt;
&lt;/div&gt;

&lt;p&gt;We perform the same actions to associate the translation.&lt;/p&gt;
&lt;p&gt;First, we select the translation Filter’s 







  
  

  
  

  
  
  

  
  

  
  

  

    
    

    
      
      
      

      
      &lt;a href=&#34;../../docs/reference-section/pipeline-elements#xsltfilter&#34; class=&#34;&#34; style=&#34;&#34; title=&#34;&#34;&gt;
        &lt;span class=&#34;stroom-theme-dark pipeline-element&#34; title=&#34;XSLTFilter &amp;#34;translationFilter&amp;#34;&#34; &gt;
          &lt;span class=&#34;pipeline-element-content&#34; &gt;
            &lt;span class=&#34;pipeline-element-icon&#34;&gt;
              &lt;span class=&#34;stroom-icon inline-svg-button icon-button  &#34; &gt;
    &lt;span class=&#34;face&#34; title=&#34;Xslt&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; width=&#34;1792&#34; height=&#34;1792&#34; viewBox=&#34;0 0 1792 1792&#34;&gt;&lt;path style=&#34;fill:var(--icon-colour__xsl-background)&#34; d=&#34;M 684.30664 211.38672 C 672.42766 211.38672 661.91891 215.95413 652.78125 225.0918 L 14.058594 863.81641 C 4.9209141 872.95409 0.3515625 883.46088 0.3515625 895.33984 C 0.3515625 907.21882 4.9209142 917.72756 14.058594 926.86523 L 652.78125 1565.5898 C 661.91891 1574.7275 672.42766 1579.2949 684.30664 1579.2949 C 696.1856 1579.2949 706.69435 1574.7275 715.83203 1565.5898 L 784.36523 1497.0566 C 793.5029 1487.9191 798.07031 1477.4102 798.07031 1465.5312 C 798.07031 1453.6524 793.5029 1443.1436 784.36523 1434.0059 L 245.69922 895.33984 L 784.36523 356.67578 C 793.5029 347.53811 798.07031 337.02937 798.07031 325.15039 C 798.07031 313.27142 793.5029 302.76268 784.36523 293.625 L 715.83203 225.0918 C 706.69435 215.95413 696.1856 211.38672 684.30664 211.38672 z M 1107.9082 211.38672 C 1096.0293 211.38672 1085.5225 215.95414 1076.3848 225.0918 L 1007.8516 293.625 C 998.71402 302.76268 994.14453 313.27142 994.14453 325.15039 C 994.14453 337.02937 998.71402 347.53811 1007.8516 356.67578 L 1546.5176 895.33984 L 1007.8516 1434.0059 C 998.71402 1443.1436 994.14453 1453.6523 994.14453 1465.5312 C 994.14453 1477.4102 998.71402 1487.9191 1007.8516 1497.0566 L 1076.3848 1565.5898 C 1085.5225 1574.7275 1096.0293 1579.2949 1107.9082 1579.2949 C 1119.7872 1579.2949 1130.2959 1574.7275 1139.4336 1565.5898 L 1778.1582 926.86523 C 1787.2959 917.72756 1791.8633 907.21882 1791.8633 895.33984 C 1791.8633 883.46088 1787.2959 872.95409 1778.1582 863.81641 L 1139.4336 225.0918 C 1130.2959 215.95414 1119.7872 211.38672 1107.9082 211.38672 z &#34;/&gt;&lt;path style=&#34;fill:var(--icon-colour__black)&#34; d=&#34;M 914.01562 609.75391 C 846.69543 609.75391 793.7585 624.0295 755.20508 652.58203 C 716.65166 681.13457 697.375 720.39439 697.375 770.36133 C 697.375 809.25185 709.09092 840.2669 732.51953 863.4043 C 755.94815 886.29555 800.72934 908.20094 866.86328 929.12305 L 931.36523 949.42969 C 953.90415 956.5678 971.1042 966.4135 982.9668 978.9668 C 994.82939 991.27392 1000.7617 1005.6745 1000.7617 1022.166 C 1000.7617 1044.0727 991.86421 1061.1792 974.07031 1073.4863 C 956.27643 1085.5473 931.21618 1091.5781 898.89062 1091.5781 C 866.86163 1091.5781 834.38939 1086.5313 801.4707 1076.4395 C 768.84858 1066.3477 735.03956 1050.9651 700.04492 1030.2891 L 700.04492 1142.8984 C 730.88766 1155.6978 762.76881 1165.2975 795.6875 1171.6973 C 828.90275 1178.3431 861.96998 1181.666 894.88867 1181.666 C 974.96115 1181.666 1034.719 1168.0054 1074.1621 1140.6836 C 1113.9018 1113.1156 1133.7715 1071.5169 1133.7715 1015.8887 C 1133.7715 975.02903 1121.167 941.18506 1095.959 914.35547 C 1070.751 887.52595 1031.4559 865.98759 978.07422 849.74219 L 921.57812 832.01953 C 882.43158 819.95854 856.6315 809.00586 844.17578 799.16016 C 832.01663 789.06832 825.93555 776.3917 825.93555 761.13086 C 825.93555 741.43946 834.38878 726.30288 851.29297 715.71875 C 868.19716 705.13462 892.51562 699.8418 924.24805 699.8418 C 952.71826 699.8418 981.4855 704.14869 1010.5488 712.76367 C 1039.6122 721.37867 1068.2307 733.93228 1096.4043 750.42383 L 1096.4043 644.08984 C 1066.4513 632.76728 1036.2005 624.27651 1005.6543 618.61523 C 975.10813 612.70782 944.56179 609.75391 914.01562 609.75391 z M 109.28711 619.72266 L 298.79297 891.09375 L 103.94922 1170.959 L 239.62891 1170.959 L 365.96484 988.56641 L 492.74609 1170.959 L 628.42383 1170.959 L 434.4707 891.09375 L 623.08594 619.72266 L 487.4082 619.72266 L 365.96484 795.09961 L 244.9668 619.72266 L 109.28711 619.72266 z M 1288.1328 619.72266 L 1288.1328 1170.959 L 1700.0605 1170.959 L 1700.0605 1074.9629 L 1419.3633 1074.9629 L 1419.3633 619.72266 L 1288.1328 619.72266 z &#34;/&gt;&lt;/svg&gt; &lt;/span&gt;
  &lt;/span&gt;
            &lt;/span&gt;
            &lt;span class=&#34;pipeline-element-text&#34;&gt;translationFilter&lt;/span&gt;
          &lt;/span&gt;
        &lt;/span&gt;
      &lt;/a&gt;

      
      &lt;span style=&#34;display:none;&#34; class=&#34;USED FOR SPLITTING&#34; &gt;&lt;/span&gt;

    
  







 element and then within translation Filter’s &lt;strong&gt;Property&lt;/strong&gt; pane we double click on the &lt;em&gt;xslt&lt;/em&gt; Property Name to bring up the &lt;strong&gt;Property Editor&lt;/strong&gt;.
As before, bring up the &lt;strong&gt;Choose item&lt;/strong&gt; selection window, navigate to the &lt;code&gt;Apache HTTPD&lt;/code&gt; system group and select the
Apache-SSLBlackBox-V2.0-EVENTS xslt Translation.&lt;/p&gt;







  
  
  
  
  







  



&lt;div class=&#34;card rounded shadow-stroom p-2 td-post-card mb-4 mt-4&#34; style=&#34;width: fit-content;&#34;&gt;

  &lt;a title=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-26.png&#34; href=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-26.png&#34;&gt;
    &lt;figure style=&#34;margin-block-end: 0px&#34; &gt;
      
      &lt;img class=&#34;card-img-top&#34; src=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-26.png&#34; style=&#34;max-width: fit-content&#34; alt=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-26.png&#34;&gt;
      

      
      &lt;div class=&#34;card-body px-0 pt-2 pb-0&#34;&gt;
        &lt;hr style=&#34;border-top: 1px solid #ddd; margin-top: 0px; margin-bottom:4px;&#34;&gt;
        &lt;figcaption class=&#34;card-text&#34; style=&#34;font-size: smaller; text-align: center;&#34;&gt;New Pipeline Translation association&lt;/figcaption&gt;
      &lt;/div&gt;
      
    &lt;/figure&gt;
  &lt;/a&gt;
&lt;/div&gt;

&lt;p&gt;We leave the remaining properties in the translation Filter’s &lt;strong&gt;Property&lt;/strong&gt; pane at their default values.
The result is the assignment of our translation to the &lt;em&gt;xslt&lt;/em&gt; Property.&lt;/p&gt;







  
  
  
  
  







  



&lt;div class=&#34;card rounded shadow-stroom p-2 td-post-card mb-4 mt-4&#34; style=&#34;width: fit-content;&#34;&gt;

  &lt;a title=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-27.png&#34; href=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-27.png&#34;&gt;
    &lt;figure style=&#34;margin-block-end: 0px&#34; &gt;
      
      &lt;img class=&#34;card-img-top&#34; src=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-27.png&#34; style=&#34;max-width: fit-content&#34; alt=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-27.png&#34;&gt;
      

      
      &lt;div class=&#34;card-body px-0 pt-2 pb-0&#34;&gt;
        &lt;hr style=&#34;border-top: 1px solid #ddd; margin-top: 0px; margin-bottom:4px;&#34;&gt;
        &lt;figcaption class=&#34;card-text&#34; style=&#34;font-size: smaller; text-align: center;&#34;&gt;New Pipeline Translation association&lt;/figcaption&gt;
      &lt;/div&gt;
      
    &lt;/figure&gt;
  &lt;/a&gt;
&lt;/div&gt;

&lt;p&gt;For the moment, we will not associate a decoration filter.&lt;/p&gt;
&lt;p&gt;Save the pipeline by clicking on its &lt;span class=&#34;stroom-icon inline-svg-button icon-button  &#34; &gt;
    &lt;span class=&#34;face&#34; title=&#34;Save&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; width=&#34;1792&#34; height=&#34;1792&#34; viewBox=&#34;0 0 1792 1792&#34;&gt;&lt;!--! Font Awesome Free 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --&gt;&lt;path style=&#34;fill:currentColor;stroke-width:0.570676;stroke-dasharray:none&#34; d=&#34;M 339.40234 116.52148 C 216.56504 116.52148 116.69531 216.3912 116.69531 339.22852 L 116.69531 1452.7715 C 116.69531 1575.6089 216.56504 1675.4785 339.40234 1675.4785 L 1452.5977 1675.4785 C 1575.4349 1675.4785 1675.3047 1575.6089 1675.3047 1452.7715 L 1675.3047 598.82422 C 1675.3047 539.66744 1651.9901 482.94523 1610.2324 441.1875 L 1610.5801 440.83984 L 1351.334 181.59375 C 1309.5761 139.83602 1252.8561 116.52148 1193.6992 116.52148 L 339.40234 116.52148 z M 339.40234 283.55273 L 395.08008 283.55273 L 395.08008 645.45312 C 395.08008 691.73461 432.31423 728.96875 478.5957 728.96875 L 1146.7207 728.96875 C 1193.0023 728.96875 1230.2363 691.73461 1230.2363 645.45312 L 1230.2363 297.12305 C 1231.2803 298.167 1231.9756 298.8623 1233.0195 299.90625 L 1492.6152 558.80469 L 1492.2676 559.1543 C 1502.707 569.59373 1508.6211 583.8594 1508.6211 598.47461 L 1508.6211 1452.7715 C 1508.6211 1483.3939 1483.5678 1508.4473 1452.9453 1508.4473 L 1395.6113 1508.4473 L 1395.6113 1059.8359 C 1395.6113 981.08539 1331.5826 917.05859 1252.832 917.05859 L 539.16797 917.05859 C 460.41738 917.05859 396.38867 981.08539 396.38867 1059.8359 L 396.38867 1508.4473 L 339.40234 1508.4473 C 308.78001 1508.4473 283.72656 1483.3939 283.72656 1452.7715 L 283.72656 339.22852 C 283.72656 308.60619 308.78001 283.55273 339.40234 283.55273 z M 562.11133 283.55273 L 1063.2051 283.55273 L 1063.2051 561.9375 L 562.11133 561.9375 L 562.11133 283.55273 z M 538.94531 1024.1426 L 1252.832 1024.1426 C 1272.4639 1024.1426 1288.5273 1040.2041 1288.5273 1059.8359 L 1288.5273 1508.4473 L 503.25 1508.4473 L 503.25 1059.8359 C 503.25 1040.2041 519.31334 1024.1426 538.94531 1024.1426 z &#34; /&gt;&lt;/svg&gt; &lt;/span&gt;
  &lt;/span&gt; icon.&lt;/p&gt;
&lt;h3 id=&#34;manually-load-raw-event-test-data&#34;&gt;Manually load Raw Event test data&lt;/h3&gt;
&lt;p&gt;Having established the pipeline, we can now start authoring our text converter and translation.
The first step is to load some Raw Event test data.
Previously in the &lt;strong&gt;Event Log Source&lt;/strong&gt; of this HOWTO you saved a copy of the file &lt;em&gt;sampleApacheBlackBox.log&lt;/em&gt; to your local environment.
It contains only a few events as the content is consistently formatted.
We could feed the test data by posting the file to Stroom’s accounting/datafeed url, but for this example we will manually load the file.
Once developed, raw data is posted to the web service.&lt;/p&gt;
&lt;p&gt;Select the 












&lt;span class=&#34;stroom-theme-dark stroom-tab &#34; title=&#34;Feed tab - &#39;ApacheHHTPDFeed&#39;&#34; &gt;
  &lt;span class=&#34;stroom-tab-icon&#34;&gt;
    &lt;span class=&#34;stroom-icon inline-svg-button icon-button  &#34; &gt;
    &lt;span class=&#34;face&#34; title=&#34;Feed&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; width=&#34;1792&#34; height=&#34;1792&#34; viewBox=&#34;0 0 1792 1792&#34;&gt;&lt;path style=&#34;fill:var(--icon-colour__green)&#34; d=&#34;m 938.50195,211.41007 c -5.56299,0.0388 -11.74705,1.29983 -18.55468,3.7832 -18.1537,6.6223 -30.41561,18.62426 -36.78321,36.00781 L 781.2832,529.3378 l -636.59961,0 c -11.58903,0 -22.47327,3.72569 -32.65234,11.17578 -10.17907,7.4501 -17.391684,16.96956 -21.636719,28.5586 L 3.0683594,807.47452 c -4.2450584,11.5891 -4.00823944,21.10849 0.7128906,28.55859 4.72114,7.4501 12.877765,11.17578 24.466797,11.17578 358.940143,-0.86657 728.661783,-0.53744 1037.093753,-0.52148 l 192.0293,-132.33789 c 11.3101,-8.27788 19.0869,-18.21175 23.332,-29.80078 3.9418,-10.76125 3.2906,-20.28072 -1.9551,-28.5586 L 961.13086,221.4003 c -5.81425,-6.72578 -13.35726,-10.05491 -22.62891,-9.99023 z m 509.37505,415.625 c -5.563,0.0388 -11.7471,1.29983 -18.5547,3.7832 -18.1537,6.6223 -30.4156,18.62426 -36.7832,36.00781 l -101.8809,278.13672 -762.55273,0 c -11.58903,0 -22.47327,3.72569 -32.65235,11.17578 -10.17906,7.4501 -17.39165,16.96957 -21.63671,28.5586 l -87.32618,238.40232 c -4.24506,11.5891 -4.00824,21.1085 0.71289,28.5586 4.72113,7.4501 12.87777,11.1758 24.4668,11.1758 l 762.55278,0 -101.8809,278.1367 c -6.0644,16.5558 -2.5987,28.5577 10.4004,36.0078 13.3022,6.6223 28.6997,4.1399 46.1894,-7.4492 l 637.8145,-439.5547 c 11.3101,-8.2779 19.0869,-18.2117 23.332,-29.8008 3.9418,-10.7612 3.2906,-20.2807 -1.9551,-28.5586 L 1470.5059,637.0253 c -5.8143,-6.72578 -13.3573,-10.05491 -22.6289,-9.99023 z&#34;/&gt;&lt;/svg&gt;&lt;/span&gt;
  &lt;/span&gt;
  &lt;/span&gt;
  &lt;span class=&#34;stroom-tab-name&#34;&gt;ApacheHHTPDFeed&lt;/span&gt;
  &lt;span class=&#34;stroom-tab-cross&#34;&gt;
    &lt;span class=&#34;stroom-icon inline-svg-button icon-button  &#34; &gt;
    &lt;span class=&#34;face&#34; title=&#34;Tab close&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; version=&#34;1.1&#34; height=&#34;45&#34; width=&#34;45&#34; viewBox=&#34;0 0 45 45&#34;&gt;&lt;g style=&#34;stroke:currentColor;stroke-width:4.5;stroke-linecap:round;&#34; transform=&#34;translate(13.9661017,13.5677966)&#34;&gt;&lt;path d=&#34;M -2.5783352e-4,-0.00146808 17.435473,18.212367&#34;/&gt;&lt;path d=&#34;M -2.5783352e-4,18.212367 17.435473,-0.00146808&#34;/&gt;&lt;/g&gt;&lt;/svg&gt; &lt;/span&gt;
  &lt;/span&gt;
  &lt;/span&gt;
&lt;/span&gt;

 tab and select the &lt;strong&gt;Data&lt;/strong&gt; sub-tab to display&lt;/p&gt;







  
  
  
  
  







  



&lt;div class=&#34;card rounded shadow-stroom p-2 td-post-card mb-4 mt-4&#34; style=&#34;width: fit-content;&#34;&gt;

  &lt;a title=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-29.png&#34; href=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-29.png&#34;&gt;
    &lt;figure style=&#34;margin-block-end: 0px&#34; &gt;
      
      &lt;img class=&#34;card-img-top&#34; src=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-29.png&#34; style=&#34;max-width: fit-content&#34; alt=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-29.png&#34;&gt;
      

      
      &lt;div class=&#34;card-body px-0 pt-2 pb-0&#34;&gt;
        &lt;hr style=&#34;border-top: 1px solid #ddd; margin-top: 0px; margin-bottom:4px;&#34;&gt;
        &lt;figcaption class=&#34;card-text&#34; style=&#34;font-size: smaller; text-align: center;&#34;&gt;Data Loading&lt;/figcaption&gt;
      &lt;/div&gt;
      
    &lt;/figure&gt;
  &lt;/a&gt;
&lt;/div&gt;

&lt;p&gt;This window is divided into three panes.&lt;/p&gt;
&lt;p&gt;The top pane displays the &lt;em&gt;Stream Table&lt;/em&gt;, which is a table of the latest streams that belong to the feed (clearly it’s empty).&lt;/p&gt;







  
  
  
  
  







  



&lt;div class=&#34;card rounded shadow-stroom p-2 td-post-card mb-4 mt-4&#34; style=&#34;width: fit-content;&#34;&gt;

  &lt;a title=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-30.png&#34; href=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-30.png&#34;&gt;
    &lt;figure style=&#34;margin-block-end: 0px&#34; &gt;
      
      &lt;img class=&#34;card-img-top&#34; src=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-30.png&#34; style=&#34;max-width: fit-content&#34; alt=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-30.png&#34;&gt;
      

      
      &lt;div class=&#34;card-body px-0 pt-2 pb-0&#34;&gt;
        &lt;hr style=&#34;border-top: 1px solid #ddd; margin-top: 0px; margin-bottom:4px;&#34;&gt;
        &lt;figcaption class=&#34;card-text&#34; style=&#34;font-size: smaller; text-align: center;&#34;&gt;Data Loading - Stream Table&lt;/figcaption&gt;
      &lt;/div&gt;
      
    &lt;/figure&gt;
  &lt;/a&gt;
&lt;/div&gt;

&lt;p&gt;Note that a Raw Event &lt;em&gt;stream&lt;/em&gt; is made up of data from a single file of data or aggregation of multiple data files and also meta-data associated with the data file(s).
For example, file names, file size, etc.&lt;/p&gt;
&lt;p&gt;The middle pane displays a &lt;em&gt;Specific&lt;/em&gt; feed and any linked streams.
To display a &lt;em&gt;Specific&lt;/em&gt; feed, you select it from the &lt;em&gt;Stream Table&lt;/em&gt; above.&lt;/p&gt;







  
  
  
  
  







  



&lt;div class=&#34;card rounded shadow-stroom p-2 td-post-card mb-4 mt-4&#34; style=&#34;width: fit-content;&#34;&gt;

  &lt;a title=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-31.png&#34; href=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-31.png&#34;&gt;
    &lt;figure style=&#34;margin-block-end: 0px&#34; &gt;
      
      &lt;img class=&#34;card-img-top&#34; src=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-31.png&#34; style=&#34;max-width: fit-content&#34; alt=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-31.png&#34;&gt;
      

      
      &lt;div class=&#34;card-body px-0 pt-2 pb-0&#34;&gt;
        &lt;hr style=&#34;border-top: 1px solid #ddd; margin-top: 0px; margin-bottom:4px;&#34;&gt;
        &lt;figcaption class=&#34;card-text&#34; style=&#34;font-size: smaller; text-align: center;&#34;&gt;Data Loading - Specific Stream&lt;/figcaption&gt;
      &lt;/div&gt;
      
    &lt;/figure&gt;
  &lt;/a&gt;
&lt;/div&gt;

&lt;p&gt;The bottom pane displays the selected stream’s data or meta-data.&lt;/p&gt;







  
  
  
  
  







  



&lt;div class=&#34;card rounded shadow-stroom p-2 td-post-card mb-4 mt-4&#34; style=&#34;width: fit-content;&#34;&gt;

  &lt;a title=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-32.png&#34; href=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-32.png&#34;&gt;
    &lt;figure style=&#34;margin-block-end: 0px&#34; &gt;
      
      &lt;img class=&#34;card-img-top&#34; src=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-32.png&#34; style=&#34;max-width: fit-content&#34; alt=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-32.png&#34;&gt;
      

      
      &lt;div class=&#34;card-body px-0 pt-2 pb-0&#34;&gt;
        &lt;hr style=&#34;border-top: 1px solid #ddd; margin-top: 0px; margin-bottom:4px;&#34;&gt;
        &lt;figcaption class=&#34;card-text&#34; style=&#34;font-size: smaller; text-align: center;&#34;&gt;Data Loading - Data/Metadata&lt;/figcaption&gt;
      &lt;/div&gt;
      
    &lt;/figure&gt;
  &lt;/a&gt;
&lt;/div&gt;

&lt;p&gt;Note the Upload icon &lt;span class=&#34;stroom-icon inline-svg-button icon-button  &#34; &gt;
    &lt;span class=&#34;face&#34; title=&#34;Upload&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; width=&#34;1792&#34; height=&#34;1792&#34; viewBox=&#34;0 0 1792 1792&#34;&gt;&lt;path style=&#34;fill:var(--icon-colour__green)&#34; d=&#34;M1675 971q0 51-37 90l-75 75q-38 38-91 38-54 0-90-38l-294-293v704q0 52-37.5 84.5t-90.5 32.5h-128q-53 0-90.5-32.5t-37.5-84.5v-704l-294 293q-36 38-90 38t-90-38l-75-75q-38-38-38-90 0-53 38-91l651-651q35-37 90-37 54 0 91 37l651 651q37 39 37 91z&#34;/&gt;&lt;/svg&gt;&lt;/span&gt;
  &lt;/span&gt; in the top left of the Stream table pane.
On clicking the Upload icon, we are presented with the data &lt;strong&gt;Upload&lt;/strong&gt; selection window.&lt;/p&gt;







  
  
  
  
  







  



&lt;div class=&#34;card rounded shadow-stroom p-2 td-post-card mb-4 mt-4&#34; style=&#34;width: fit-content;&#34;&gt;

  &lt;a title=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-33.png&#34; href=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-33.png&#34;&gt;
    &lt;figure style=&#34;margin-block-end: 0px&#34; &gt;
      
      &lt;img class=&#34;card-img-top&#34; src=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-33.png&#34; style=&#34;max-width: fit-content&#34; alt=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-33.png&#34;&gt;
      

      
      &lt;div class=&#34;card-body px-0 pt-2 pb-0&#34;&gt;
        &lt;hr style=&#34;border-top: 1px solid #ddd; margin-top: 0px; margin-bottom:4px;&#34;&gt;
        &lt;figcaption class=&#34;card-text&#34; style=&#34;font-size: smaller; text-align: center;&#34;&gt;Data Loading - Upload Data&lt;/figcaption&gt;
      &lt;/div&gt;
      
    &lt;/figure&gt;
  &lt;/a&gt;
&lt;/div&gt;

&lt;p&gt;As stated earlier, raw event data is normally posted as a file to the Stroom web server.
As part of this posting action, a set of well-defined HTTP &lt;em&gt;extra headers&lt;/em&gt; are sent as part of the post.
These headers, in the form of key value pairs, provide additional context associated with the system sending the logs.
These standard headers become Stroom &lt;em&gt;feed attributes&lt;/em&gt; available to the Stroom translation.
Common attributes are&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;System - the name of the System providing the logs&lt;/li&gt;
&lt;li&gt;Environment - the environment of the system (Production, Quality Assurance, Reference, Development)&lt;/li&gt;
&lt;li&gt;Feed - the feedname itself&lt;/li&gt;
&lt;li&gt;MyHost - the fully qualified domain name of the system sending the logs&lt;/li&gt;
&lt;li&gt;MyIPaddress - the IP address of the system sending the logs&lt;/li&gt;
&lt;li&gt;MyNameServer - the name server the system resolves names through&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Since our translation will want these feed attributes, we will set them in the Meta Data text entry box of the &lt;strong&gt;Upload&lt;/strong&gt; selection window.
Note we can skip &lt;em&gt;Feed&lt;/em&gt; as this will automatically be assigned correctly as part of the upload action (setting it to &lt;code&gt;Apache-SSLBlackBox-V2.0-EVENTS&lt;/code&gt; obviously).&lt;/p&gt;
&lt;p&gt;Our &lt;strong&gt;Meta Data:&lt;/strong&gt; will have&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-properties&#34;&gt;System:LinuxWebServer 
Environment:Production 
MyHost:stroomnode00.strmdev00.org 
MyIPaddress:192.168.2.245
MyNameServer:192.168.2.254
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;We select a &lt;strong&gt;Stream Type:&lt;/strong&gt; of &lt;em&gt;Raw Events&lt;/em&gt; as this data is for an &lt;em&gt;Event Feed&lt;/em&gt;.
As this is not a &lt;em&gt;Reference Feed&lt;/em&gt; we ignore the &lt;strong&gt;Effective:&lt;/strong&gt; entry box (a date/time selector).&lt;/p&gt;







  
  
  
  
  







  



&lt;div class=&#34;card rounded shadow-stroom p-2 td-post-card mb-4 mt-4&#34; style=&#34;width: fit-content;&#34;&gt;

  &lt;a title=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-34.png&#34; href=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-34.png&#34;&gt;
    &lt;figure style=&#34;margin-block-end: 0px&#34; &gt;
      
      &lt;img class=&#34;card-img-top&#34; src=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-34.png&#34; style=&#34;max-width: fit-content&#34; alt=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-34.png&#34;&gt;
      

      
      &lt;div class=&#34;card-body px-0 pt-2 pb-0&#34;&gt;
        &lt;hr style=&#34;border-top: 1px solid #ddd; margin-top: 0px; margin-bottom:4px;&#34;&gt;
        &lt;figcaption class=&#34;card-text&#34; style=&#34;font-size: smaller; text-align: center;&#34;&gt;Upload Data&lt;/figcaption&gt;
      &lt;/div&gt;
      
    &lt;/figure&gt;
  &lt;/a&gt;
&lt;/div&gt;

&lt;p&gt;We now click the &lt;strong&gt;Choose File&lt;/strong&gt; button, then navigate to the location of the raw log file you downloaded earlier, &lt;em&gt;sampleApacheBlackBox.log&lt;/em&gt;&lt;/p&gt;







  
  
  
  
  







  



&lt;div class=&#34;card rounded shadow-stroom p-2 td-post-card mb-4 mt-4&#34; style=&#34;width: fit-content;&#34;&gt;

  &lt;a title=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-35.png&#34; href=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-35.png&#34;&gt;
    &lt;figure style=&#34;margin-block-end: 0px&#34; &gt;
      
      &lt;img class=&#34;card-img-top&#34; src=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-35.png&#34; style=&#34;max-width: fit-content&#34; alt=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-35.png&#34;&gt;
      

      
      &lt;div class=&#34;card-body px-0 pt-2 pb-0&#34;&gt;
        &lt;hr style=&#34;border-top: 1px solid #ddd; margin-top: 0px; margin-bottom:4px;&#34;&gt;
        &lt;figcaption class=&#34;card-text&#34; style=&#34;font-size: smaller; text-align: center;&#34;&gt;Upload Data&lt;/figcaption&gt;
      &lt;/div&gt;
      
    &lt;/figure&gt;
  &lt;/a&gt;
&lt;/div&gt;

&lt;p&gt;then click &lt;strong&gt;Open&lt;/strong&gt; to return to the &lt;strong&gt;Upload&lt;/strong&gt; selection window where we can then press 






  
  
  


&lt;span class=&#34;stroom-theme-dark stroom-button stroom-button-primary&#34; title=&#34;OK button&#34; &gt;
  &lt;span class=&#34;stroom-icon inline-svg-button icon-button  icon-colour__grey&#34; &gt;
    &lt;span class=&#34;face&#34; title=&#34;OK&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; viewBox=&#34;0 0 512 512&#34;&gt;&lt;!-- Font Awesome Free 5.15.3 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --&gt;&lt;path style=&#34;fill:#fff&#34; d=&#34;M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z&#34;/&gt;&lt;/svg&gt; &lt;/span&gt;
  &lt;/span&gt;
  &lt;span class=&#34;stroom-button-text&#34;&gt;OK&lt;/span&gt;
&lt;/span&gt;
 to perform the upload.&lt;/p&gt;







  
  
  
  
  







  



&lt;div class=&#34;card rounded shadow-stroom p-2 td-post-card mb-4 mt-4&#34; style=&#34;width: fit-content;&#34;&gt;

  &lt;a title=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-36.png&#34; href=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-36.png&#34;&gt;
    &lt;figure style=&#34;margin-block-end: 0px&#34; &gt;
      
      &lt;img class=&#34;card-img-top&#34; src=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-36.png&#34; style=&#34;max-width: fit-content&#34; alt=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-36.png&#34;&gt;
      

      
      &lt;div class=&#34;card-body px-0 pt-2 pb-0&#34;&gt;
        &lt;hr style=&#34;border-top: 1px solid #ddd; margin-top: 0px; margin-bottom:4px;&#34;&gt;
        &lt;figcaption class=&#34;card-text&#34; style=&#34;font-size: smaller; text-align: center;&#34;&gt;Upload Data&lt;/figcaption&gt;
      &lt;/div&gt;
      
    &lt;/figure&gt;
  &lt;/a&gt;
&lt;/div&gt;

&lt;p&gt;An Alert dialog window is presented 






  
  
  
  
  







  



&lt;div class=&#34;card rounded shadow-stroom p-2 td-post-card mb-4 mt-4&#34; style=&#34;width: fit-content;&#34;&gt;

  &lt;a title=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-37.png&#34; href=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-37.png&#34;&gt;
    &lt;figure style=&#34;margin-block-end: 0px&#34; &gt;
      
      &lt;img class=&#34;card-img-top&#34; src=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-37.png&#34; style=&#34;max-width: fit-content&#34; alt=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-37.png&#34;&gt;
      

      
      &lt;div class=&#34;card-body px-0 pt-2 pb-0&#34;&gt;
        &lt;hr style=&#34;border-top: 1px solid #ddd; margin-top: 0px; margin-bottom:4px;&#34;&gt;
        &lt;figcaption class=&#34;card-text&#34; style=&#34;font-size: smaller; text-align: center;&#34;&gt;Alert&lt;/figcaption&gt;
      &lt;/div&gt;
      
    &lt;/figure&gt;
  &lt;/a&gt;
&lt;/div&gt;
 which should be &lt;strong&gt;closed&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The stream we have just loaded will now be displayed in the &lt;em&gt;Streams Table&lt;/em&gt; pane.
Note that the &lt;em&gt;Specific Stream&lt;/em&gt;
and &lt;em&gt;Data/Meta-data&lt;/em&gt; panes are still blank.&lt;/p&gt;







  
  
  
  
  







  



&lt;div class=&#34;card rounded shadow-stroom p-2 td-post-card mb-4 mt-4&#34; style=&#34;width: fit-content;&#34;&gt;

  &lt;a title=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-38.png&#34; href=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-38.png&#34;&gt;
    &lt;figure style=&#34;margin-block-end: 0px&#34; &gt;
      
      &lt;img class=&#34;card-img-top&#34; src=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-38.png&#34; style=&#34;max-width: fit-content&#34; alt=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-38.png&#34;&gt;
      

      
      &lt;div class=&#34;card-body px-0 pt-2 pb-0&#34;&gt;
        &lt;hr style=&#34;border-top: 1px solid #ddd; margin-top: 0px; margin-bottom:4px;&#34;&gt;
        &lt;figcaption class=&#34;card-text&#34; style=&#34;font-size: smaller; text-align: center;&#34;&gt;Data Loading - Streams Table&lt;/figcaption&gt;
      &lt;/div&gt;
      
    &lt;/figure&gt;
  &lt;/a&gt;
&lt;/div&gt;

&lt;p&gt;If we select the stream by clicking anywhere along its line, the stream is highlighted and the &lt;em&gt;Specific Stream&lt;/em&gt; and Data/Meta-data_ panes now display data.&lt;/p&gt;







  
  
  
  
  







  



&lt;div class=&#34;card rounded shadow-stroom p-2 td-post-card mb-4 mt-4&#34; style=&#34;width: fit-content;&#34;&gt;

  &lt;a title=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-39.png&#34; href=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-39.png&#34;&gt;
    &lt;figure style=&#34;margin-block-end: 0px&#34; &gt;
      
      &lt;img class=&#34;card-img-top&#34; src=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-39.png&#34; style=&#34;max-width: fit-content&#34; alt=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-39.png&#34;&gt;
      

      
      &lt;div class=&#34;card-body px-0 pt-2 pb-0&#34;&gt;
        &lt;hr style=&#34;border-top: 1px solid #ddd; margin-top: 0px; margin-bottom:4px;&#34;&gt;
        &lt;figcaption class=&#34;card-text&#34; style=&#34;font-size: smaller; text-align: center;&#34;&gt;Data Loading - Streams Table&lt;/figcaption&gt;
      &lt;/div&gt;
      
    &lt;/figure&gt;
  &lt;/a&gt;
&lt;/div&gt;

&lt;p&gt;The &lt;em&gt;Specific Stream&lt;/em&gt; pane only displays the Raw Event stream and the &lt;em&gt;Data/Meta-data&lt;/em&gt; pane displays the content of the log file just uploaded (the &lt;strong&gt;Data&lt;/strong&gt; link).
If we were to click on the &lt;strong&gt;Meta&lt;/strong&gt; link at the top of the &lt;em&gt;Data/Meta-data&lt;/em&gt; pane, the log data is replaced by this stream’s meta-data.&lt;/p&gt;







  
  
  
  
  







  



&lt;div class=&#34;card rounded shadow-stroom p-2 td-post-card mb-4 mt-4&#34; style=&#34;width: fit-content;&#34;&gt;

  &lt;a title=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-40.png&#34; href=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-40.png&#34;&gt;
    &lt;figure style=&#34;margin-block-end: 0px&#34; &gt;
      
      &lt;img class=&#34;card-img-top&#34; src=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-40.png&#34; style=&#34;max-width: fit-content&#34; alt=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-40.png&#34;&gt;
      

      
      &lt;div class=&#34;card-body px-0 pt-2 pb-0&#34;&gt;
        &lt;hr style=&#34;border-top: 1px solid #ddd; margin-top: 0px; margin-bottom:4px;&#34;&gt;
        &lt;figcaption class=&#34;card-text&#34; style=&#34;font-size: smaller; text-align: center;&#34;&gt;Data Loading - Meta-data&lt;/figcaption&gt;
      &lt;/div&gt;
      
    &lt;/figure&gt;
  &lt;/a&gt;
&lt;/div&gt;

&lt;p&gt;Note that, in addition to the feed attributes we set, the upload process added additional feed attributes of&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Feed - the feed name&lt;/li&gt;
&lt;li&gt;ReceivedTime - the time the feed was received by Stroom&lt;/li&gt;
&lt;li&gt;RemoteFile - the name of the file loaded&lt;/li&gt;
&lt;li&gt;StreamSize - the size, in bytes, of the loaded data within the stream&lt;/li&gt;
&lt;li&gt;user-agent - the user agent used to present the stream to Stroom - in this case, the Stroom user Interface&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We now have data that will allow us to develop our text converter and translation.&lt;/p&gt;
&lt;h3 id=&#34;step-data-through-pipeline---source&#34;&gt;Step data through Pipeline - Source&lt;/h3&gt;
&lt;p&gt;We now need to step our data through the pipeline.&lt;/p&gt;
&lt;p&gt;To do this, set the check-box on the &lt;em&gt;Specific Stream&lt;/em&gt; pane and we note that the previously greyed out action icons (&lt;span class=&#34;stroom-icon inline-svg-button icon-button  &#34; &gt;
    &lt;span class=&#34;face&#34; title=&#34;Process&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; width=&#34;1792&#34; height=&#34;1792&#34; viewBox=&#34;0 0 1792 1792&#34;&gt;&lt;path style=&#34;fill:var(--icon-colour__blue)&#34; d=&#34;m 1440,95.339844 c -9.3333,0 -17,2.999997 -23,8.999996 -6,6 -9,13.66667 -9,23 l 0,192 -256,0 c -45.3333,0 -88,5.5 -128,16.5 -40.00001,11 -75.50001,25 -106.50001,42 -31,17 -61,39.83333 -90,68.5 -29,28.66667 -53.66667,56.33333 -74,83 -20.33333,26.66667 -41.66667,60 -64,100 -19.99699,35.8155 -36.49225,67.59036 -49.54102,95.38868 -0.27492,0.10932 -0.53471,0.21669 -0.81054,0.32617 -16,30.66667 -31,56.5 -45,77.5 -14,21 -31,41.5 -51,61.5 -20,20 -43,35 -69,45 -26,10 -55,15 -87,15 l -355.148435,0 c -9.333333,0 -17,3 -23.0000004,9 -6,6 -9.0000000375455,13.66667 -9.0000000375455,23 l 0,192.00001 c 0,9.3333 3.0000000375455,17 9.0000000375455,23 6.0000004,6 13.6666674,9 23.0000004,9 l 355.148435,0 c 45.33333,0 88,-5.5 128,-16.5 40,-11 75.5,-25 106.5,-42 31,-17 61,-39.8333 90,-68.5 29,-28.6667 53.66667,-56.33334 74,-83.00001 20.33333,-26.66667 41.66667,-60 64,-100 19.8569,-35.56461 36.26775,-67.15315 49.27344,-94.8125 0.36178,-0.305 0.71557,-0.5961 1.07812,-0.90235 16,-30.66667 31,-56.5 45,-77.5 14,-21 31,-41.5 51,-61.5 20.00001,-20 43.00001,-35 69.00001,-45 26,-10 55,-15 87,-15 l 256,0 0,192 c 0,8.66667 3.1667,16.16667 9.5,22.5 6.3333,6.33333 13.8333,9.5 22.5,9.5 9.3333,0 17,-3 23,-9 l 320,-320 c 6,-6 9,-13.66667 9,-23 0,-9.33333 -3,-17 -9,-23 l -319,-319 c -8,-6.666666 -16,-9.999996 -24,-9.999996 z&#34;/&gt;&lt;path style=&#34;fill:var(--icon-colour__green)&#34; d=&#34;M 32 608.88672 C 22.666667 608.88672 15 611.88672 9 617.88672 C 3.0000001 623.88672 0 631.55342 0 640.88672 L 0 832.88672 C -2.3684758e-15 842.22005 3.0000001 849.88672 9 855.88672 C 14.999999 861.88672 22.666667 864.88672 32 864.88672 L 387.14844 864.88672 C 389.01484 864.88672 390.86885 864.90739 392.71484 864.94141 C 424.84023 863.54598 455.12074 854.70213 477.65234 838.51562 C 513.22947 811.0071 542.31317 769.76507 567.46094 723.21289 A 59.082625 59.082625 0 0 1 567.88281 722.44336 C 577.24508 705.7116 585.95748 689.48787 593.56641 673.41992 A 59.082625 59.082625 0 0 1 594.40625 671.7168 C 596.87369 666.9118 599.36286 662.08644 601.86719 657.25195 C 575.79127 644.74345 546.89263 634.11637 515.14844 625.38672 C 475.14844 614.38672 432.48177 608.88672 387.14844 608.88672 L 32 608.88672 z M 870.56641 957.2793 C 853.49205 984.29535 834.72449 1010.8834 813.4375 1036.3711 A 59.082625 59.082625 0 0 1 813.08984 1036.7852 C 777.58172 1078.5162 737.58032 1121.5966 687.80664 1156.543 C 688.3781 1157.5702 688.9227 1158.5676 689.5 1159.6016 C 711.83333 1199.6016 733.16667 1232.9349 753.5 1259.6016 C 773.83333 1286.2683 798.5 1313.9349 827.5 1342.6016 C 856.5 1371.2683 886.5 1394.1016 917.5 1411.1016 C 948.5 1428.1016 983.99999 1442.1016 1024 1453.1016 C 1064 1464.1016 1106.6667 1469.6016 1152 1469.6016 L 1408 1469.6016 L 1408 1661.6016 C 1408 1670.9349 1411 1678.6016 1417 1684.6016 C 1423 1690.6016 1430.6667 1693.6016 1440 1693.6016 C 1448 1693.6016 1456 1690.2683 1464 1683.6016 L 1783 1364.6016 C 1789 1358.6016 1792 1350.9349 1792 1341.6016 C 1792 1332.2683 1789 1324.6016 1783 1318.6016 L 1463 998.60156 C 1457 992.60156 1449.3333 989.60156 1440 989.60156 C 1431.3333 989.60156 1423.8333 992.76823 1417.5 999.10156 C 1411.1667 1005.4348 1408 1012.9349 1408 1021.6016 L 1408 1213.6016 L 1152 1213.6016 C 1120 1213.6016 1091 1208.6016 1065 1198.6016 C 1039 1188.6016 1016 1173.6016 996 1153.6016 C 976 1133.6016 959 1113.1016 945 1092.1016 C 931 1071.1016 916 1045.2683 900 1014.6016 C 899.63745 1014.2954 899.28365 1014.0042 898.92188 1013.6992 C 890.80126 996.429 881.35206 977.6246 870.56641 957.2793 z &#34;/&gt;&lt;/svg&gt;&lt;/span&gt;
  &lt;/span&gt; &lt;span class=&#34;stroom-icon inline-svg-button icon-button  &#34; &gt;
    &lt;span class=&#34;face&#34; title=&#34;Delete&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; width=&#34;1792&#34; height=&#34;1792&#34; viewBox=&#34;0 0 1792 1792&#34;&gt;&lt;path style=&#34;fill:currentColor&#34; d=&#34;M704 1376v-704q0-14-9-23t-23-9h-64q-14 0-23 9t-9 23v704q0 14 9 23t23 9h64q14 0 23-9t9-23zm256 0v-704q0-14-9-23t-23-9h-64q-14 0-23 9t-9 23v704q0 14 9 23t23 9h64q14 0 23-9t9-23zm256 0v-704q0-14-9-23t-23-9h-64q-14 0-23 9t-9 23v704q0 14 9 23t23 9h64q14 0 23-9t9-23zm-544-992h448l-48-117q-7-9-17-11h-317q-10 2-17 11zm928 32v64q0 14-9 23t-23 9h-96v948q0 83-47 143.5t-113 60.5h-832q-66 0-113-58.5t-47-141.5v-952h-96q-14 0-23-9t-9-23v-64q0-14 9-23t23-9h309l70-167q15-37 54-63t79-26h320q40 0 79 26t54 63l70 167h309q14 0 23 9t9 23z&#34;/&gt;&lt;/svg&gt;&lt;/span&gt;
  &lt;/span&gt; &lt;span class=&#34;stroom-icon inline-svg-button icon-button  &#34; &gt;
    &lt;span class=&#34;face&#34; title=&#34;Download&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; width=&#34;1792&#34; height=&#34;1792&#34; viewBox=&#34;0 0 1792 1792&#34;&gt;&lt;path style=&#34;fill:var(--icon-colour__green)&#34; d=&#34;M1675 832q0 53-37 90l-651 652q-39 37-91 37-53 0-90-37l-651-652q-38-36-38-90 0-53 38-91l74-75q39-37 91-37 53 0 90 37l294 294v-704q0-52 38-90t90-38h128q52 0 90 38t38 90v704l294-294q37-37 90-37 52 0 91 37l75 75q37 39 37 91z&#34;/&gt;&lt;/svg&gt;&lt;/span&gt;
  &lt;/span&gt;) are now enabled.&lt;/p&gt;







  
  
  
  
  







  



&lt;div class=&#34;card rounded shadow-stroom p-2 td-post-card mb-4 mt-4&#34; style=&#34;width: fit-content;&#34;&gt;

  &lt;a title=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-43.png&#34; href=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-43.png&#34;&gt;
    &lt;figure style=&#34;margin-block-end: 0px&#34; &gt;
      
      &lt;img class=&#34;card-img-top&#34; src=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-43.png&#34; style=&#34;max-width: fit-content&#34; alt=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-43.png&#34;&gt;
      

      
      &lt;div class=&#34;card-body px-0 pt-2 pb-0&#34;&gt;
        &lt;hr style=&#34;border-top: 1px solid #ddd; margin-top: 0px; margin-bottom:4px;&#34;&gt;
        &lt;figcaption class=&#34;card-text&#34; style=&#34;font-size: smaller; text-align: center;&#34;&gt;Select Stream to Step&lt;/figcaption&gt;
      &lt;/div&gt;
      
    &lt;/figure&gt;
  &lt;/a&gt;
&lt;/div&gt;

&lt;p&gt;We now want to step our data through the first element of the pipeline, the Text Converter.
We enter Stepping Mode by pressing the stepping button &lt;span class=&#34;stroom-icon inline-svg-button icon-button  &#34; &gt;
    &lt;span class=&#34;face&#34; title=&#34;Stepping&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; viewBox=&#34;0 0 1792 1792&#34; height=&#34;1792&#34; width=&#34;1792&#34;&gt;&lt;path style=&#34;fill:#fff&#34; d=&#34;m 1303.3748,386.71917 0,1018.43693 c 0,18.6714 -15.2766,33.948 -33.948,33.948 l -113.1596,0 c -18.6713,0 -33.9479,-15.2766 -33.9479,-33.948 l 0,-429.72386 -485.17205,442.73726 c -58.27722,48.6587 -148.52205,7.9212 -148.52205,-69.5932 0,-571.78462 0,-247.4743 0,-905.2773 0,-77.51437 90.24483,-117.96894 148.52205,-69.59319 l 485.17205,439.62531 0,-426.61195 c 0,-18.67134 15.2766,-33.94789 33.9479,-33.94789 l 113.1596,0 c 18.6714,0 33.948,15.27655 33.948,33.94789 z&#34; /&gt;&lt;/svg&gt; &lt;/span&gt;
  &lt;/span&gt; found at the bottom right corner of the &lt;em&gt;Data/Meta-data&lt;/em&gt; pane.&lt;/p&gt;
&lt;p&gt;We will then be requested to choose a pipeline to step with, at which point you should navigate to the &lt;code&gt;Apache-SSLBlackBox-V2.0-EVENTS&lt;/code&gt; pipeline as per&lt;/p&gt;







  
  
  
  
  







  



&lt;div class=&#34;card rounded shadow-stroom p-2 td-post-card mb-4 mt-4&#34; style=&#34;width: fit-content;&#34;&gt;

  &lt;a title=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-44.png&#34; href=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-44.png&#34;&gt;
    &lt;figure style=&#34;margin-block-end: 0px&#34; &gt;
      
      &lt;img class=&#34;card-img-top&#34; src=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-44.png&#34; style=&#34;max-width: fit-content&#34; alt=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-44.png&#34;&gt;
      

      
      &lt;div class=&#34;card-body px-0 pt-2 pb-0&#34;&gt;
        &lt;hr style=&#34;border-top: 1px solid #ddd; margin-top: 0px; margin-bottom:4px;&#34;&gt;
        &lt;figcaption class=&#34;card-text&#34; style=&#34;font-size: smaller; text-align: center;&#34;&gt;Select pipeline to Step&lt;/figcaption&gt;
      &lt;/div&gt;
      
    &lt;/figure&gt;
  &lt;/a&gt;
&lt;/div&gt;

&lt;p&gt;Then press 






  
  
  


&lt;span class=&#34;stroom-theme-dark stroom-button stroom-button-primary&#34; title=&#34;OK button&#34; &gt;
  &lt;span class=&#34;stroom-icon inline-svg-button icon-button  icon-colour__grey&#34; &gt;
    &lt;span class=&#34;face&#34; title=&#34;OK&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; viewBox=&#34;0 0 512 512&#34;&gt;&lt;!-- Font Awesome Free 5.15.3 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --&gt;&lt;path style=&#34;fill:#fff&#34; d=&#34;M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z&#34;/&gt;&lt;/svg&gt; &lt;/span&gt;
  &lt;/span&gt;
  &lt;span class=&#34;stroom-button-text&#34;&gt;OK&lt;/span&gt;
&lt;/span&gt;
.&lt;/p&gt;
&lt;p&gt;At this point, we enter the pipeline Stepping tab&lt;/p&gt;







  
  
  
  
  







  



&lt;div class=&#34;card rounded shadow-stroom p-2 td-post-card mb-4 mt-4&#34; style=&#34;width: fit-content;&#34;&gt;

  &lt;a title=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-45.png&#34; href=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-45.png&#34;&gt;
    &lt;figure style=&#34;margin-block-end: 0px&#34; &gt;
      
      &lt;img class=&#34;card-img-top&#34; src=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-45.png&#34; style=&#34;max-width: fit-content&#34; alt=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-45.png&#34;&gt;
      

      
      &lt;div class=&#34;card-body px-0 pt-2 pb-0&#34;&gt;
        &lt;hr style=&#34;border-top: 1px solid #ddd; margin-top: 0px; margin-bottom:4px;&#34;&gt;
        &lt;figcaption class=&#34;card-text&#34; style=&#34;font-size: smaller; text-align: center;&#34;&gt;pipeline Stepping tab - Source&lt;/figcaption&gt;
      &lt;/div&gt;
      
    &lt;/figure&gt;
  &lt;/a&gt;
&lt;/div&gt;

&lt;p&gt;Which, initially displays the Raw Event data from our stream.
This is the Source display for the Event Pipeline.&lt;/p&gt;
&lt;h3 id=&#34;step-data-through-pipeline---text-converter&#34;&gt;Step data through Pipeline - Text Converter&lt;/h3&gt;
&lt;p&gt;We click on the 







  
  

  
  

  
  
  

  
  

  
  

  

    
    

    
      
      
      

      
      &lt;a href=&#34;../../docs/reference-section/pipeline-elements#dsparser&#34; class=&#34;&#34; style=&#34;&#34; title=&#34;&#34;&gt;
        &lt;span class=&#34;stroom-theme-dark pipeline-element&#34; title=&#34;DSParser &amp;#34;DSParser&amp;#34;&#34; &gt;
          &lt;span class=&#34;pipeline-element-content&#34; &gt;
            &lt;span class=&#34;pipeline-element-icon&#34;&gt;
              &lt;span class=&#34;stroom-icon inline-svg-button icon-button  &#34; &gt;
    &lt;span class=&#34;face&#34; title=&#34;Text&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; width=&#34;1792&#34; height=&#34;1792&#34; viewBox=&#34;0 0 1792 1792&#34;&gt;&lt;path style=&#34;fill:var(--icon-colour__black)&#34; d=&#34;m 1522.1543,129.30336 16.9536,359.41707 -42.9492,0 q -12.4327,-94.94036 -33.9073,-135.62908 -35.0375,-65.55406 -93.8101,-96.0706 -57.6424,-31.64679 -152.5827,-31.64679 l -215.8763,0 0,1170.93104 q 0,141.2803 30.5165,176.3178 42.9492,47.4702 132.2384,47.4702 l 53.1214,0 0,41.819 -649.88937,0 0,-41.819 54.25164,0 q 97.20084,0 137.88956,-58.7726 24.86533,-36.1677 24.86533,-165.0154 l 0,-1170.93104 -184.2295,0 q -107.37302,0 -152.58272,15.8234 -58.7726,21.4746 -100.59156,82.50769 -41.81897,61.03308 -49.73067,165.01538 l -42.94921,0 18.08388,-359.41707 1251.17832,0 z&#34;/&gt;&lt;/svg&gt; &lt;/span&gt;
  &lt;/span&gt;
            &lt;/span&gt;
            &lt;span class=&#34;pipeline-element-text&#34;&gt;DSParser&lt;/span&gt;
          &lt;/span&gt;
        &lt;/span&gt;
      &lt;/a&gt;

      
      &lt;span style=&#34;display:none;&#34; class=&#34;USED FOR SPLITTING&#34; &gt;&lt;/span&gt;

    
  







 element to enter the Text Converter stepping window.&lt;/p&gt;







  
  
  
  
  







  



&lt;div class=&#34;card rounded shadow-stroom p-2 td-post-card mb-4 mt-4&#34; style=&#34;width: fit-content;&#34;&gt;

  &lt;a title=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-46.png&#34; href=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-46.png&#34;&gt;
    &lt;figure style=&#34;margin-block-end: 0px&#34; &gt;
      
      &lt;img class=&#34;card-img-top&#34; src=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-46.png&#34; style=&#34;max-width: fit-content&#34; alt=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-46.png&#34;&gt;
      

      
      &lt;div class=&#34;card-body px-0 pt-2 pb-0&#34;&gt;
        &lt;hr style=&#34;border-top: 1px solid #ddd; margin-top: 0px; margin-bottom:4px;&#34;&gt;
        &lt;figcaption class=&#34;card-text&#34; style=&#34;font-size: smaller; text-align: center;&#34;&gt;pipeline Stepping tab - Text Converter&lt;/figcaption&gt;
      &lt;/div&gt;
      
    &lt;/figure&gt;
  &lt;/a&gt;
&lt;/div&gt;

&lt;p&gt;This &lt;em&gt;stepping&lt;/em&gt; tab is divided into three sub-panes.
The top one is the Text Converter editor and it will allow you to edit the text conversion.
The bottom left window displays the &lt;em&gt;input&lt;/em&gt; to the Text Converter.
The bottom right window displays the &lt;em&gt;output&lt;/em&gt; from the Text Converter for the given input.&lt;/p&gt;
&lt;p&gt;We also note an error indicator - that of an error in the editor pane as indicated by the black back-grounded x and rectangular black boxes to the right of the editor’s scroll bar.&lt;/p&gt;







  
  
  
  
  







  



&lt;div class=&#34;card rounded shadow-stroom p-2 td-post-card mb-4 mt-4&#34; style=&#34;width: fit-content;&#34;&gt;

  &lt;a title=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-47.png&#34; href=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-47.png&#34;&gt;
    &lt;figure style=&#34;margin-block-end: 0px&#34; &gt;
      
      &lt;img class=&#34;card-img-top&#34; src=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-47.png&#34; style=&#34;max-width: fit-content&#34; alt=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-47.png&#34;&gt;
      

      
      &lt;div class=&#34;card-body px-0 pt-2 pb-0&#34;&gt;
        &lt;hr style=&#34;border-top: 1px solid #ddd; margin-top: 0px; margin-bottom:4px;&#34;&gt;
        &lt;figcaption class=&#34;card-text&#34; style=&#34;font-size: smaller; text-align: center;&#34;&gt;pipeline Stepping tab - Error&lt;/figcaption&gt;
      &lt;/div&gt;
      
    &lt;/figure&gt;
  &lt;/a&gt;
&lt;/div&gt;

&lt;p&gt;In essence, this means that we have no text converter to pass the Raw Event data through.&lt;/p&gt;
&lt;p&gt;To correct this, we will author our text converter using the Data Splitter &lt;em&gt;language&lt;/em&gt;.
Normally this is done incrementally to more easily develop the parser.
The minimum text converter contains&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-xml&#34;&gt;&amp;lt;?xml version=&amp;quot;1.1&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;
&amp;lt;dataSplitter xmlns=&amp;quot;data-splitter:3&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot; xsi:schemaLocation=&amp;quot;data-splitter:3 file://data-splitter-v3.0.1.xsd&amp;quot; version=&amp;quot;3.0&amp;quot;&amp;gt;
    &amp;lt;split  delimiter=&amp;quot;\n&amp;quot;&amp;gt;
        &amp;lt;group&amp;gt;
            &amp;lt;regex pattern=&amp;quot;^(.*)$&amp;quot;&amp;gt;
                &amp;lt;data name=&amp;quot;rest&amp;quot; value=&amp;quot;$1&amp;quot; /&amp;gt;
            &amp;lt;/regex&amp;gt;
        &amp;lt;/group&amp;gt;
    &amp;lt;/split&amp;gt;
&amp;lt;/dataSplitter&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If we now press the Step First &lt;span class=&#34;stroom-icon inline-svg-button icon-button  icon-colour__green&#34; &gt;
    &lt;span class=&#34;face&#34; title=&#34;Step first&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; viewBox=&#34;0 0 512 512&#34;&gt;&lt;!-- Font Awesome Free 5.15.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --&gt;&lt;path style=&#34;fill:currentColor&#34; d=&#34;M0 436V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v151.9L235.5 71.4C256.1 54.3 288 68.6 288 96v131.9L459.5 71.4C480.1 54.3 512 68.6 512 96v320c0 27.4-31.9 41.7-52.5 24.6L288 285.3V416c0 27.4-31.9 41.7-52.5 24.6L64 285.3V436c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12z&#34;/&gt;&lt;/svg&gt;&lt;/span&gt;
  &lt;/span&gt; icon the error will disappear and the stepping window will show.&lt;/p&gt;







  
  
  
  
  







  



&lt;div class=&#34;card rounded shadow-stroom p-2 td-post-card mb-4 mt-4&#34; style=&#34;width: fit-content;&#34;&gt;

  &lt;a title=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-48.png&#34; href=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-48.png&#34;&gt;
    &lt;figure style=&#34;margin-block-end: 0px&#34; &gt;
      
      &lt;img class=&#34;card-img-top&#34; src=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-48.png&#34; style=&#34;max-width: fit-content&#34; alt=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-48.png&#34;&gt;
      

      
      &lt;div class=&#34;card-body px-0 pt-2 pb-0&#34;&gt;
        &lt;hr style=&#34;border-top: 1px solid #ddd; margin-top: 0px; margin-bottom:4px;&#34;&gt;
        &lt;figcaption class=&#34;card-text&#34; style=&#34;font-size: smaller; text-align: center;&#34;&gt;pipeline Stepping tab - Text Converter Simple A&lt;/figcaption&gt;
      &lt;/div&gt;
      
    &lt;/figure&gt;
  &lt;/a&gt;
&lt;/div&gt;

&lt;p&gt;As we can see, the first line of our Raw Event is displayed in the &lt;em&gt;input&lt;/em&gt; pane and the &lt;em&gt;output&lt;/em&gt; window holds the converted XML output where we just have a single &lt;em&gt;data&lt;/em&gt; element with a &lt;em&gt;name&lt;/em&gt; attribute of &lt;em&gt;rest&lt;/em&gt; and a &lt;em&gt;value&lt;/em&gt; attribute of the complete raw event as our regular expression matched the entire line.&lt;/p&gt;
&lt;p&gt;The next incremental step in the parser, would be to &lt;em&gt;parse out&lt;/em&gt; additional &lt;em&gt;data&lt;/em&gt; elements.
For example, in this next iteration we extract the client ip address, the client port and hold the rest of the Event in the rest data element.&lt;/p&gt;
&lt;p&gt;With the text converter containing&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-xml&#34;&gt;&amp;lt;?xml version=&amp;quot;1.1&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;
&amp;lt;dataSplitter xmlns=&amp;quot;data-splitter:3&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot; xsi:schemaLocation=&amp;quot;data-splitter:3 file://data-splitter-v3.0.1.xsd&amp;quot; version=&amp;quot;3.0&amp;quot;&amp;gt;
    &amp;lt;split  delimiter=&amp;quot;\n&amp;quot;&amp;gt;
        &amp;lt;group&amp;gt;
            &amp;lt;regex pattern=&amp;quot;^([^/]+)/([^  ]+) (.*)$&amp;quot;&amp;gt;
                &amp;lt;data name=&amp;quot;clientip&amp;quot;  value=&amp;quot;$1&amp;quot; /&amp;gt;
                &amp;lt;data name=&amp;quot;clientport&amp;quot;  value=&amp;quot;$2&amp;quot; /&amp;gt;
                &amp;lt;data name=&amp;quot;rest&amp;quot; value=&amp;quot;$3&amp;quot; /&amp;gt;
            &amp;lt;/regex&amp;gt;
        &amp;lt;/group&amp;gt;
    &amp;lt;/split&amp;gt;
&amp;lt;/dataSplitter&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;and a click on the Refresh Current Step &lt;span class=&#34;stroom-icon inline-svg-button icon-button  icon-colour__green&#34; &gt;
    &lt;span class=&#34;face&#34; title=&#34;Refresh&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; width=&#34;1792&#34; height=&#34;1792&#34; viewBox=&#34;0 0 1792 1792&#34;&gt;&lt;path style=&#34;fill:currentColor&#34; d=&#34;M1639 1056q0 5-1 7-64 268-268 434.5t-478 166.5q-146 0-282.5-55t-243.5-157l-129 129q-19 19-45 19t-45-19-19-45v-448q0-26 19-45t45-19h448q26 0 45 19t19 45-19 45l-137 137q71 66 161 102t187 36q134 0 250-65t186-179q11-17 53-117 8-23 30-23h192q13 0 22.5 9.5t9.5 22.5zm25-800v448q0 26-19 45t-45 19h-448q-26 0-45-19t-19-45 19-45l138-138q-148-137-349-137-134 0-250 65t-186 179q-11 17-53 117-8 23-30 23h-199q-13 0-22.5-9.5t-9.5-22.5v-7q65-268 270-434.5t480-166.5q146 0 284 55.5t245 156.5l130-129q19-19 45-19t45 19 19 45z&#34;/&gt;&lt;/svg&gt;&lt;/span&gt;
  &lt;/span&gt; icon we will see the &lt;em&gt;output&lt;/em&gt; pane contain&lt;/p&gt;







  
  
  
  
  







  



&lt;div class=&#34;card rounded shadow-stroom p-2 td-post-card mb-4 mt-4&#34; style=&#34;width: fit-content;&#34;&gt;

  &lt;a title=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-49.png&#34; href=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-49.png&#34;&gt;
    &lt;figure style=&#34;margin-block-end: 0px&#34; &gt;
      
      &lt;img class=&#34;card-img-top&#34; src=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-49.png&#34; style=&#34;max-width: fit-content&#34; alt=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-49.png&#34;&gt;
      

      
      &lt;div class=&#34;card-body px-0 pt-2 pb-0&#34;&gt;
        &lt;hr style=&#34;border-top: 1px solid #ddd; margin-top: 0px; margin-bottom:4px;&#34;&gt;
        &lt;figcaption class=&#34;card-text&#34; style=&#34;font-size: smaller; text-align: center;&#34;&gt;Text Converter Simple B&lt;/figcaption&gt;
      &lt;/div&gt;
      
    &lt;/figure&gt;
  &lt;/a&gt;
&lt;/div&gt;

&lt;p&gt;We continue this incremental parsing until we have our complete parser.&lt;/p&gt;
&lt;p&gt;The following is our complete Text Converter which generates xml records as defined by the Stroom &lt;strong&gt;records v3.0&lt;/strong&gt; schema.&lt;/p&gt;






&lt;div class=&#34;text-file card rounded shadow-stroom p-2 td-post-card mb-4 mt-4&#34; style=&#34;&#34;&gt;

  &lt;div class=&#34;card-body px-0 pt-2 pb-0&#34;&gt;
    
    &lt;pre&gt;&lt;code class=&#34;language-xml&#34;&gt;&amp;lt;?xml version=&amp;quot;1.1&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;
&amp;lt;dataSplitter 
    xmlns=&amp;quot;data-splitter:3&amp;quot; 
    xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot; 
    xsi:schemaLocation=&amp;quot;data-splitter:3 file://data-splitter-v3.0.1.xsd&amp;quot; 
    version=&amp;quot;3.0&amp;quot;&amp;gt;

&amp;lt;!-- CLASSIFICATION: UNCLASSIFIED --&amp;gt;

&amp;lt;!-- Release History:
Release 20131001, 1 Oct 2013 - Initial release 

General Notes: 
This data splitter takes audit events for the Stroom variant of the Black Box Apache Auditing.

Event Format: The following is extracted from the Configuration settings for the Stroom variant of the Black Box Apache Auditing format.

#  Stroom - Black  Box  Auditing configuration
#
#  %a  - Client  IP address  (not  hostname (%h) to ensure ip address only)
#  When  logging the remote host,  it is important to log the client  IP address, not the
#  hostname. We do   this  with the &#39;%a&#39; directive.  Even  if HostnameLookups  are turned on,
#  using &#39;%a&#39; will  only record the IP address.  For the purposes of BlackBox formats,
#  reversed DNS should not  be trusted

#  %{REMOTE_PORT}e  - Client source port
#  Logging the client  source TCP  port  can provide some   useful  network data and can help
#  one associate a single client  with multiple requests.
#  If two   clients from the  same IP address  make   simultaneous connections, the &#39;common  log&#39;
#  file format cannot distinguish  between those  clients. Otherwise, if  the client uses
#  keep-alives, then every hit  made   from a single  TCP  session will  be associated  by   the  same
#  client  port number.
#  The   port information can indicate  how  many   connections our server is  handling at  once,
#  which may  help in tuning server TCP/OP   settings. It will also identify which client ports
#  are legitimate requests if  the administrator is examining a possible  SYN-attack against  a
#  server.
#  Note we  are using the REMOTE_PORT  environment variable. Environment variables  only come
#  into play when   mod_cgi or  mod_cgid is  handling the request.

#  %X   - Connection status  (use %c  for  Apache 1.3)
#  The   connection status  directive  tells us detailed  information about the client  connection.
#  It returns  one of three flags:
#  x  if the client aborted the connection before completion,
#  +  if  the client has indicated that it will  use keep-alives (and request additional  URLS),
#  - if the connection will  be closed after  the event
#  Keep-Alive is a HTTP 1.1.  directive  that  informs a web  server that  a client  can request multiple
#  files during the  same connection.  This way  a client  doesn&#39;t need to go   through the  overhead
#  of re-establishing  a TCP  connection to retrieve  a new  file.

#  %t  - time - or  [%{%d/%b/%Y:%T}t.%{msec_frac}t %{%z}t] for  Apache 2.4
#  The   %t  directive  records the time that  the request started.
#  NOTE:  When  deployed on   an  Apache 2.4, or better,  environment, you   should use
#  strftime  format in  order  to  get  microsecond resolution.

#  %l  - remote logname
#

#  %u - username [in quotes]
#  The   remote user  (from auth;  This may  be bogus if the return status  (%s) is  401
#  for non-ssl services)
#  For SSL  services,  user names need to  be delivered  as DNs  to deliver PKI   user details
#  in full.  To  pass through PKI   certificate  properties in the correct form you   need to
#  add the following directives  to your  Apache configuration:
#  SSLUserName   SSL_CLIENT_S_DN
#  SSLOptions +StdEnvVars
#  If you   cannot,  then use %{SSL_CLIENT_S_DN}x   in place of %u and use  blackboxSSLUser
#  LogFormat nickname

#  %r  - first  line of text sent by   web  client [in quotes]
#  This is the first  line of text send by   the web  client, which includes the request
#  method, the  full URL,  and the  HTTP protocol.

#  %s  - status  code before any redirection
#  This is  the status  code of the original request.

#  %&amp;gt;s  - status  code after  any redirection  has taken place
#  This is  the final  status  code of the request, after  any internal  redirections  may
#  have taken  place.

#  %D   - time in  microseconds to handle the request
#  This is the  number of microseconds the  server  took to  handle the  request  in  microseconds

#  %I  - incoming bytes
#  This is  the bytes received, include request and headers. It  cannot, by   definition be zero.

#  %O   - outgoing bytes
#  This is  the size in bytes of the outgoing data,  including HTTP headers. It  cannot,  by
#  definition be zero.

#  %B  - outgoing content bytes
#  This is  the size in bytes of the outgoing data,  EXCLUDING  HTTP headers.  Unlike %b,   which
#  records &#39;-&#39; for zero bytes transferred,  %B  will record &#39;0&#39;.

#  %{Referer}i - Referrer HTTP Request  Header [in quotes]
#  This is  typically the URL of the page that  made   the request.  If  linked from
#  e-mail or direct  entry this  value will be empty. Note, this  can be spoofed
#  or turned off

#  %{User-Agent}i - User agent HTTP Request  Header [in quotes]
#  This is  the identifying information the client  (browser) reports about itself.
#  It can be spoofed or  turned  off
 
#  %V   - the server name   according to the UseCannonicalName setting
#  This identifies  the virtual  host in a multi host webservice

#  %p - the canonical port of the server servicing the request

#  Define a variation  of the Black Box  logs
#
#  Note, you   only need to  use the  &#39;blackboxSSLUser&#39; nickname if you cannot set  the
#  following directives  for any SSL  configurations
#  SSLUserName   SSL_CLIENT_S_DN
#  SSLOptions +StdEnvVars
#  You  will also note the variation for no   logio  module. The   logio  module supports
#  the %I  and %O   formatting directive
#

&amp;lt;IfModule mod_logio.c&amp;gt; 
LogFormat &amp;quot;%a/%{REMOTE_PORT}e %X %t %l \&amp;quot;%u\&amp;quot; \&amp;quot;%r\&amp;quot; %s/%&amp;gt;s %D I/%O/%B \&amp;quot;%{Referer}i\&amp;quot; \&amp;quot;%{User-Agent}i\&amp;quot; %V/%p&amp;quot; blackboxUser 
LogFormat &amp;quot;%a/%{REMOTE_PORT}e %X %t %l \&amp;quot;%{SSL_CLIENT_S_DN}x\&amp;quot; \&amp;quot;%r\&amp;quot; %s/%&amp;gt;s %D %I/%O/%B \&amp;quot;%{Referer}i\&amp;quot; \&amp;quot;%{User-Agent}i\&amp;quot; %V/%p&amp;quot; blackboxSSLUser 
&amp;lt;/IfModule&amp;gt; 
&amp;lt;IfModule !mod_logio.c&amp;gt; 
LogFormat &amp;quot;%a/%{REMOTE_PORT}e %X %t %l \&amp;quot;%u\&amp;quot; \&amp;quot;%r\&amp;quot; %s/%&amp;gt;s %D 0/0/%B \&amp;quot;%{Referer}i\&amp;quot; \&amp;quot;%{User-Agent}i\&amp;quot; %V/$p&amp;quot; blackboxUser 
LogFormat &amp;quot;%a/%{REMOTE_PORT}e %X %t %l \&amp;quot;%{SSL_CLIENT_S_DN}x\&amp;quot; \&amp;quot;%r\&amp;quot; %s/%&amp;gt;s %D 0/0/%B \&amp;quot;%{Referer}i\&amp;quot; \&amp;quot;%{User-Agent}i\&amp;quot; %V/$p&amp;quot; blackboxSSLUser 
&amp;lt;/IfModule&amp;gt; 
--&amp;gt;

&amp;lt;!--  Match line --&amp;gt;
&amp;lt;split  delimiter=&amp;quot;\n&amp;quot;&amp;gt;
    &amp;lt;group&amp;gt;
        &amp;lt;regex pattern=&amp;quot;^([^/]+)/([^ ]+) ([^ ]+) \[([^\]]+)] ([^ ]+) &amp;amp;#34;([^&amp;amp;#34;]+)&amp;amp;#34; &amp;amp;#34;([^&amp;amp;#34;]+)&amp;amp;#34; (\d+)/(\d+) (\d+) ([^/]+)/([^/]+)/(\d+) &amp;amp;#34;([^&amp;amp;#34;]+)&amp;amp;#34; &amp;amp;#34;([^&amp;amp;#34;]+)&amp;amp;#34; ([^/]+)/([^ ]+)&amp;quot;&amp;gt;
            &amp;lt;data name=&amp;quot;clientip&amp;quot;  value=&amp;quot;$1&amp;quot; /&amp;gt;
            &amp;lt;data name=&amp;quot;clientport&amp;quot;  value=&amp;quot;$2&amp;quot; /&amp;gt;
            &amp;lt;data name=&amp;quot;constatus&amp;quot; value=&amp;quot;$3&amp;quot; /&amp;gt;
            &amp;lt;data  name=&amp;quot;time&amp;quot; value=&amp;quot;$4&amp;quot;  /&amp;gt;
            &amp;lt;data  name=&amp;quot;remotelname&amp;quot; value=&amp;quot;$5&amp;quot;  /&amp;gt;
            &amp;lt;data  name=&amp;quot;user&amp;quot; value=&amp;quot;$6&amp;quot; /&amp;gt;
            &amp;lt;data  name=&amp;quot;url&amp;quot; value=&amp;quot;$7&amp;quot;&amp;gt;
                &amp;lt;group value=&amp;quot;$7&amp;quot; ignoreErrors=&amp;quot;true&amp;quot;&amp;gt;
                &amp;lt;!-- 
                Special case the &amp;quot;GET  /&amp;quot; url string as opposed to  the  more standard  &amp;quot;method url protocol/protocol_version&amp;quot;.
                Also special  case a url  of &amp;quot;-&amp;quot;  which occurs  on   some   errors  (eg 408)
                --&amp;gt;
                    &amp;lt;regex pattern=&amp;quot;^-$&amp;quot;&amp;gt;
                        &amp;lt;data  name=&amp;quot;url&amp;quot; value=&amp;quot;error&amp;quot; /&amp;gt;
                    &amp;lt;/regex&amp;gt;
                    &amp;lt;regex pattern=&amp;quot;^([^ ]+) (/)$&amp;quot;&amp;gt;
                        &amp;lt;data  name=&amp;quot;httpMethod&amp;quot; value=&amp;quot;$1&amp;quot;  /&amp;gt;
                        &amp;lt;data  name=&amp;quot;url&amp;quot; value=&amp;quot;$2&amp;quot; /&amp;gt;
                    &amp;lt;/regex&amp;gt;
                    &amp;lt;regex pattern=&amp;quot;^([^ ]+) ([^  ]+) ([^ /]*)/([^  ]*)&amp;quot;&amp;gt;
                        &amp;lt;data  name=&amp;quot;httpMethod&amp;quot; value=&amp;quot;$1&amp;quot;  /&amp;gt;
                        &amp;lt;data  name=&amp;quot;url&amp;quot; value=&amp;quot;$2&amp;quot; /&amp;gt;
                        &amp;lt;data  name=&amp;quot;protocol&amp;quot; value=&amp;quot;$3&amp;quot; /&amp;gt;
                        &amp;lt;data  name=&amp;quot;version&amp;quot; value=&amp;quot;$4&amp;quot; /&amp;gt;
                    &amp;lt;/regex&amp;gt;
                &amp;lt;/group&amp;gt;
            &amp;lt;/data&amp;gt;
            &amp;lt;data  name=&amp;quot;responseB&amp;quot; value=&amp;quot;$8&amp;quot;  /&amp;gt;
            &amp;lt;data  name=&amp;quot;response&amp;quot; value=&amp;quot;$9&amp;quot; /&amp;gt;
            &amp;lt;data  name=&amp;quot;timeM&amp;quot; value=&amp;quot;$10&amp;quot; /&amp;gt;
            &amp;lt;data  name=&amp;quot;bytesIn&amp;quot; value=&amp;quot;$11&amp;quot; /&amp;gt;
            &amp;lt;data  name=&amp;quot;bytesOut&amp;quot; value=&amp;quot;$12&amp;quot;  /&amp;gt;
            &amp;lt;data  name=&amp;quot;bytesOutContent&amp;quot; value=&amp;quot;$13&amp;quot; /&amp;gt;
            &amp;lt;data name=&amp;quot;referer&amp;quot;  value=&amp;quot;$14&amp;quot; /&amp;gt;
            &amp;lt;data  name=&amp;quot;userAgent&amp;quot; value=&amp;quot;$15&amp;quot;  /&amp;gt;
            &amp;lt;data  name=&amp;quot;vserver&amp;quot; value=&amp;quot;$16&amp;quot; /&amp;gt;
            &amp;lt;data name=&amp;quot;vserverport&amp;quot;  value=&amp;quot;$17&amp;quot; /&amp;gt;
        &amp;lt;/regex&amp;gt;
    &amp;lt;/group&amp;gt;
&amp;lt;/split&amp;gt;
&amp;lt;/dataSplitter&amp;gt;

&lt;/code&gt;&lt;/pre&gt;


    &lt;hr style=&#34;border-top: 1px solid #ddd; margin-top: 0px; margin-bottom:4px;&#34;&gt;
    &lt;div class=&#34;card-text&#34; style=&#34;font-size: smaller; text-align: center;&#34;&gt;
      
      &lt;span class=&#34;&#34; style=&#34;font-size: smaller&#34;&gt;ApacheHTTPD BlackBox - Data Splitter&lt;/span&gt;
      
      (
      &lt;a href=&#34;../../files/HOWTOs/EventFeeds/CreateApacheHTTPDEventFeed/ApacheHTTPDBlackBox-DataSplitter.txt&#34; class=&#34;&#34; style=&#34;font-size: smaller&#34;&gt;Download ApacheHTTPDBlackBox-DataSplitter.txt&lt;/a&gt;
      &lt;i class=&#34;external-link-icon fas fa-file-download fa-sm text-secondary&#34; title=&#34;External link&#34;&gt;&lt;/i&gt;
      )
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;If we now press the Step First &lt;span class=&#34;stroom-icon inline-svg-button icon-button  icon-colour__green&#34; &gt;
    &lt;span class=&#34;face&#34; title=&#34;Step first&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; viewBox=&#34;0 0 512 512&#34;&gt;&lt;!-- Font Awesome Free 5.15.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --&gt;&lt;path style=&#34;fill:currentColor&#34; d=&#34;M0 436V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v151.9L235.5 71.4C256.1 54.3 288 68.6 288 96v131.9L459.5 71.4C480.1 54.3 512 68.6 512 96v320c0 27.4-31.9 41.7-52.5 24.6L288 285.3V416c0 27.4-31.9 41.7-52.5 24.6L64 285.3V436c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12z&#34;/&gt;&lt;/svg&gt;&lt;/span&gt;
  &lt;/span&gt; icon we will see the complete parsed record&lt;/p&gt;







  
  
  
  
  







  



&lt;div class=&#34;card rounded shadow-stroom p-2 td-post-card mb-4 mt-4&#34; style=&#34;width: fit-content;&#34;&gt;

  &lt;a title=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-50.png&#34; href=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-50.png&#34;&gt;
    &lt;figure style=&#34;margin-block-end: 0px&#34; &gt;
      
      &lt;img class=&#34;card-img-top&#34; src=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-50.png&#34; style=&#34;max-width: fit-content&#34; alt=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-50.png&#34;&gt;
      

      
      &lt;div class=&#34;card-body px-0 pt-2 pb-0&#34;&gt;
        &lt;hr style=&#34;border-top: 1px solid #ddd; margin-top: 0px; margin-bottom:4px;&#34;&gt;
        &lt;figcaption class=&#34;card-text&#34; style=&#34;font-size: smaller; text-align: center;&#34;&gt;pipeline Stepping tab - Text Converter Complete&lt;/figcaption&gt;
      &lt;/div&gt;
      
    &lt;/figure&gt;
  &lt;/a&gt;
&lt;/div&gt;

&lt;p&gt;If we click on the Step Forward &lt;span class=&#34;stroom-icon inline-svg-button icon-button  icon-colour__green&#34; &gt;
    &lt;span class=&#34;face&#34; title=&#34;Step forward&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; viewBox=&#34;0 0 512 512&#34;&gt;&lt;!-- Font Awesome Free 5.15.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --&gt;&lt;path style=&#34;fill:currentColor&#34; d=&#34;m 400,75.977968 0,360.000002 c 0,6.6 -5.4,12 -12,12 l -40,0 c -6.6,0 -12,-5.4 -12,-12 l 0,-151.9 -171.5,156.5 c -20.6,17.2 -52.5,2.8 -52.5,-24.6 0,-202.11605 0,-87.47785 0,-320.000002 0,-27.399997 31.9,-41.699997 52.5,-24.6 L 336,226.77797 336,75.977968 c 0,-6.599997 5.4,-11.999997 12,-11.999997 l 40,0 c 6.6,0 12,5.4 12,11.999997 z&#34; /&gt;&lt;/svg&gt; &lt;/span&gt;
  &lt;/span&gt; icon we will see the next event displayed in both the &lt;em&gt;input&lt;/em&gt; and &lt;em&gt;output&lt;/em&gt; panes.&lt;/p&gt;







  
  
  
  
  







  



&lt;div class=&#34;card rounded shadow-stroom p-2 td-post-card mb-4 mt-4&#34; style=&#34;width: fit-content;&#34;&gt;

  &lt;a title=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-51.png&#34; href=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-51.png&#34;&gt;
    &lt;figure style=&#34;margin-block-end: 0px&#34; &gt;
      
      &lt;img class=&#34;card-img-top&#34; src=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-51.png&#34; style=&#34;max-width: fit-content&#34; alt=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-51.png&#34;&gt;
      

      
      &lt;div class=&#34;card-body px-0 pt-2 pb-0&#34;&gt;
        &lt;hr style=&#34;border-top: 1px solid #ddd; margin-top: 0px; margin-bottom:4px;&#34;&gt;
        &lt;figcaption class=&#34;card-text&#34; style=&#34;font-size: smaller; text-align: center;&#34;&gt;pipeline Stepping tab - Text Converter Complete second event&lt;/figcaption&gt;
      &lt;/div&gt;
      
    &lt;/figure&gt;
  &lt;/a&gt;
&lt;/div&gt;

&lt;p&gt;we click on the Step Last &lt;span class=&#34;stroom-icon inline-svg-button icon-button  icon-colour__green&#34; &gt;
    &lt;span class=&#34;face&#34; title=&#34;Step last&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; viewBox=&#34;0 0 512 512&#34;&gt;&lt;!-- Font Awesome Free 5.15.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --&gt;&lt;path style=&#34;fill:currentColor&#34; d=&#34;M512 76v360c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12V284.1L276.5 440.6c-20.6 17.2-52.5 2.8-52.5-24.6V284.1L52.5 440.6C31.9 457.8 0 443.4 0 416V96c0-27.4 31.9-41.7 52.5-24.6L224 226.8V96c0-27.4 31.9-41.7 52.5-24.6L448 226.8V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12z&#34;/&gt;&lt;/svg&gt;&lt;/span&gt;
  &lt;/span&gt; icon we will see the last event displayed in both the &lt;em&gt;input&lt;/em&gt; and &lt;em&gt;output&lt;/em&gt; panes.&lt;/p&gt;







  
  
  
  
  







  



&lt;div class=&#34;card rounded shadow-stroom p-2 td-post-card mb-4 mt-4&#34; style=&#34;width: fit-content;&#34;&gt;

  &lt;a title=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-52.png&#34; href=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-52.png&#34;&gt;
    &lt;figure style=&#34;margin-block-end: 0px&#34; &gt;
      
      &lt;img class=&#34;card-img-top&#34; src=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-52.png&#34; style=&#34;max-width: fit-content&#34; alt=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-52.png&#34;&gt;
      

      
      &lt;div class=&#34;card-body px-0 pt-2 pb-0&#34;&gt;
        &lt;hr style=&#34;border-top: 1px solid #ddd; margin-top: 0px; margin-bottom:4px;&#34;&gt;
        &lt;figcaption class=&#34;card-text&#34; style=&#34;font-size: smaller; text-align: center;&#34;&gt;pipeline Stepping tab - Text Converter Complete last event&lt;/figcaption&gt;
      &lt;/div&gt;
      
    &lt;/figure&gt;
  &lt;/a&gt;
&lt;/div&gt;

&lt;p&gt;You should take note of the stepping location that has been displayed in each stepping window. The stepping location is the numbers enclosed in square brackets e.g. [7556:1:16] found in the top right-hand side of the stepping window next to the stepping icons&lt;/p&gt;







  
  
  
  
  







  



&lt;div class=&#34;card rounded shadow-stroom p-2 td-post-card mb-4 mt-4&#34; style=&#34;width: fit-content;&#34;&gt;

  &lt;a title=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-53.png&#34; href=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-53.png&#34;&gt;
    &lt;figure style=&#34;margin-block-end: 0px&#34; &gt;
      
      &lt;img class=&#34;card-img-top&#34; src=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-53.png&#34; style=&#34;max-width: fit-content&#34; alt=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-53.png&#34;&gt;
      

      
      &lt;div class=&#34;card-body px-0 pt-2 pb-0&#34;&gt;
        &lt;hr style=&#34;border-top: 1px solid #ddd; margin-top: 0px; margin-bottom:4px;&#34;&gt;
        &lt;figcaption class=&#34;card-text&#34; style=&#34;font-size: smaller; text-align: center;&#34;&gt;pipeline Stepping tab - Stepping Location&lt;/figcaption&gt;
      &lt;/div&gt;
      
    &lt;/figure&gt;
  &lt;/a&gt;
&lt;/div&gt;

&lt;p&gt;The form of these stepping locations is [ streamId &amp;lsquo;:&amp;rsquo; subStreamId &amp;lsquo;:&amp;rsquo; recordNo]&lt;/p&gt;
&lt;p&gt;where&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;streamId&lt;/strong&gt; - is the stream ID and won’t change when stepping through the selected stream.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;subStreamId&lt;/strong&gt; - is the sub stream ID. When Stroom processes event streams it aggregates multiple input files and this is the file number.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;recordNo&lt;/strong&gt; - is the record number within the sub stream.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;One can double click on either the &lt;strong&gt;subStreamId&lt;/strong&gt; or &lt;strong&gt;recordNo&lt;/strong&gt; numbers and enter a new number. This allows you to ‘step’ around a stream rather than just relying on first, previous, next and last movement.&lt;/p&gt;
&lt;p&gt;Note, you should now Save &lt;span class=&#34;stroom-icon inline-svg-button icon-button  &#34; &gt;
    &lt;span class=&#34;face&#34; title=&#34;Save&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; width=&#34;1792&#34; height=&#34;1792&#34; viewBox=&#34;0 0 1792 1792&#34;&gt;&lt;!--! Font Awesome Free 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --&gt;&lt;path style=&#34;fill:currentColor;stroke-width:0.570676;stroke-dasharray:none&#34; d=&#34;M 339.40234 116.52148 C 216.56504 116.52148 116.69531 216.3912 116.69531 339.22852 L 116.69531 1452.7715 C 116.69531 1575.6089 216.56504 1675.4785 339.40234 1675.4785 L 1452.5977 1675.4785 C 1575.4349 1675.4785 1675.3047 1575.6089 1675.3047 1452.7715 L 1675.3047 598.82422 C 1675.3047 539.66744 1651.9901 482.94523 1610.2324 441.1875 L 1610.5801 440.83984 L 1351.334 181.59375 C 1309.5761 139.83602 1252.8561 116.52148 1193.6992 116.52148 L 339.40234 116.52148 z M 339.40234 283.55273 L 395.08008 283.55273 L 395.08008 645.45312 C 395.08008 691.73461 432.31423 728.96875 478.5957 728.96875 L 1146.7207 728.96875 C 1193.0023 728.96875 1230.2363 691.73461 1230.2363 645.45312 L 1230.2363 297.12305 C 1231.2803 298.167 1231.9756 298.8623 1233.0195 299.90625 L 1492.6152 558.80469 L 1492.2676 559.1543 C 1502.707 569.59373 1508.6211 583.8594 1508.6211 598.47461 L 1508.6211 1452.7715 C 1508.6211 1483.3939 1483.5678 1508.4473 1452.9453 1508.4473 L 1395.6113 1508.4473 L 1395.6113 1059.8359 C 1395.6113 981.08539 1331.5826 917.05859 1252.832 917.05859 L 539.16797 917.05859 C 460.41738 917.05859 396.38867 981.08539 396.38867 1059.8359 L 396.38867 1508.4473 L 339.40234 1508.4473 C 308.78001 1508.4473 283.72656 1483.3939 283.72656 1452.7715 L 283.72656 339.22852 C 283.72656 308.60619 308.78001 283.55273 339.40234 283.55273 z M 562.11133 283.55273 L 1063.2051 283.55273 L 1063.2051 561.9375 L 562.11133 561.9375 L 562.11133 283.55273 z M 538.94531 1024.1426 L 1252.832 1024.1426 C 1272.4639 1024.1426 1288.5273 1040.2041 1288.5273 1059.8359 L 1288.5273 1508.4473 L 503.25 1508.4473 L 503.25 1059.8359 C 503.25 1040.2041 519.31334 1024.1426 538.94531 1024.1426 z &#34; /&gt;&lt;/svg&gt; &lt;/span&gt;
  &lt;/span&gt; your edited Text Converter.&lt;/p&gt;
&lt;h3 id=&#34;step-data-through-pipeline---translation&#34;&gt;Step data through Pipeline - Translation&lt;/h3&gt;
&lt;p&gt;To start authoring the xslt Translation Filter, press the 







  
  

  
  

  
  
  

  
  

  
  

  

    
    

    
      
      
      

      
      &lt;a href=&#34;../../docs/reference-section/pipeline-elements#xsltfilter&#34; class=&#34;&#34; style=&#34;&#34; title=&#34;&#34;&gt;
        &lt;span class=&#34;stroom-theme-dark pipeline-element&#34; title=&#34;XSLTFilter &amp;#34;translationFilter&amp;#34;&#34; &gt;
          &lt;span class=&#34;pipeline-element-content&#34; &gt;
            &lt;span class=&#34;pipeline-element-icon&#34;&gt;
              &lt;span class=&#34;stroom-icon inline-svg-button icon-button  &#34; &gt;
    &lt;span class=&#34;face&#34; title=&#34;Xslt&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; width=&#34;1792&#34; height=&#34;1792&#34; viewBox=&#34;0 0 1792 1792&#34;&gt;&lt;path style=&#34;fill:var(--icon-colour__xsl-background)&#34; d=&#34;M 684.30664 211.38672 C 672.42766 211.38672 661.91891 215.95413 652.78125 225.0918 L 14.058594 863.81641 C 4.9209141 872.95409 0.3515625 883.46088 0.3515625 895.33984 C 0.3515625 907.21882 4.9209142 917.72756 14.058594 926.86523 L 652.78125 1565.5898 C 661.91891 1574.7275 672.42766 1579.2949 684.30664 1579.2949 C 696.1856 1579.2949 706.69435 1574.7275 715.83203 1565.5898 L 784.36523 1497.0566 C 793.5029 1487.9191 798.07031 1477.4102 798.07031 1465.5312 C 798.07031 1453.6524 793.5029 1443.1436 784.36523 1434.0059 L 245.69922 895.33984 L 784.36523 356.67578 C 793.5029 347.53811 798.07031 337.02937 798.07031 325.15039 C 798.07031 313.27142 793.5029 302.76268 784.36523 293.625 L 715.83203 225.0918 C 706.69435 215.95413 696.1856 211.38672 684.30664 211.38672 z M 1107.9082 211.38672 C 1096.0293 211.38672 1085.5225 215.95414 1076.3848 225.0918 L 1007.8516 293.625 C 998.71402 302.76268 994.14453 313.27142 994.14453 325.15039 C 994.14453 337.02937 998.71402 347.53811 1007.8516 356.67578 L 1546.5176 895.33984 L 1007.8516 1434.0059 C 998.71402 1443.1436 994.14453 1453.6523 994.14453 1465.5312 C 994.14453 1477.4102 998.71402 1487.9191 1007.8516 1497.0566 L 1076.3848 1565.5898 C 1085.5225 1574.7275 1096.0293 1579.2949 1107.9082 1579.2949 C 1119.7872 1579.2949 1130.2959 1574.7275 1139.4336 1565.5898 L 1778.1582 926.86523 C 1787.2959 917.72756 1791.8633 907.21882 1791.8633 895.33984 C 1791.8633 883.46088 1787.2959 872.95409 1778.1582 863.81641 L 1139.4336 225.0918 C 1130.2959 215.95414 1119.7872 211.38672 1107.9082 211.38672 z &#34;/&gt;&lt;path style=&#34;fill:var(--icon-colour__black)&#34; d=&#34;M 914.01562 609.75391 C 846.69543 609.75391 793.7585 624.0295 755.20508 652.58203 C 716.65166 681.13457 697.375 720.39439 697.375 770.36133 C 697.375 809.25185 709.09092 840.2669 732.51953 863.4043 C 755.94815 886.29555 800.72934 908.20094 866.86328 929.12305 L 931.36523 949.42969 C 953.90415 956.5678 971.1042 966.4135 982.9668 978.9668 C 994.82939 991.27392 1000.7617 1005.6745 1000.7617 1022.166 C 1000.7617 1044.0727 991.86421 1061.1792 974.07031 1073.4863 C 956.27643 1085.5473 931.21618 1091.5781 898.89062 1091.5781 C 866.86163 1091.5781 834.38939 1086.5313 801.4707 1076.4395 C 768.84858 1066.3477 735.03956 1050.9651 700.04492 1030.2891 L 700.04492 1142.8984 C 730.88766 1155.6978 762.76881 1165.2975 795.6875 1171.6973 C 828.90275 1178.3431 861.96998 1181.666 894.88867 1181.666 C 974.96115 1181.666 1034.719 1168.0054 1074.1621 1140.6836 C 1113.9018 1113.1156 1133.7715 1071.5169 1133.7715 1015.8887 C 1133.7715 975.02903 1121.167 941.18506 1095.959 914.35547 C 1070.751 887.52595 1031.4559 865.98759 978.07422 849.74219 L 921.57812 832.01953 C 882.43158 819.95854 856.6315 809.00586 844.17578 799.16016 C 832.01663 789.06832 825.93555 776.3917 825.93555 761.13086 C 825.93555 741.43946 834.38878 726.30288 851.29297 715.71875 C 868.19716 705.13462 892.51562 699.8418 924.24805 699.8418 C 952.71826 699.8418 981.4855 704.14869 1010.5488 712.76367 C 1039.6122 721.37867 1068.2307 733.93228 1096.4043 750.42383 L 1096.4043 644.08984 C 1066.4513 632.76728 1036.2005 624.27651 1005.6543 618.61523 C 975.10813 612.70782 944.56179 609.75391 914.01562 609.75391 z M 109.28711 619.72266 L 298.79297 891.09375 L 103.94922 1170.959 L 239.62891 1170.959 L 365.96484 988.56641 L 492.74609 1170.959 L 628.42383 1170.959 L 434.4707 891.09375 L 623.08594 619.72266 L 487.4082 619.72266 L 365.96484 795.09961 L 244.9668 619.72266 L 109.28711 619.72266 z M 1288.1328 619.72266 L 1288.1328 1170.959 L 1700.0605 1170.959 L 1700.0605 1074.9629 L 1419.3633 1074.9629 L 1419.3633 619.72266 L 1288.1328 619.72266 z &#34;/&gt;&lt;/svg&gt; &lt;/span&gt;
  &lt;/span&gt;
            &lt;/span&gt;
            &lt;span class=&#34;pipeline-element-text&#34;&gt;translationFilter&lt;/span&gt;
          &lt;/span&gt;
        &lt;/span&gt;
      &lt;/a&gt;

      
      &lt;span style=&#34;display:none;&#34; class=&#34;USED FOR SPLITTING&#34; &gt;&lt;/span&gt;

    
  







 element which steps us to the xsl Translation Filter pane.&lt;/p&gt;







  
  
  
  
  







  



&lt;div class=&#34;card rounded shadow-stroom p-2 td-post-card mb-4 mt-4&#34; style=&#34;width: fit-content;&#34;&gt;

  &lt;a title=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-54.png&#34; href=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-54.png&#34;&gt;
    &lt;figure style=&#34;margin-block-end: 0px&#34; &gt;
      
      &lt;img class=&#34;card-img-top&#34; src=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-54.png&#34; style=&#34;max-width: fit-content&#34; alt=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-54.png&#34;&gt;
      

      
      &lt;div class=&#34;card-body px-0 pt-2 pb-0&#34;&gt;
        &lt;hr style=&#34;border-top: 1px solid #ddd; margin-top: 0px; margin-bottom:4px;&#34;&gt;
        &lt;figcaption class=&#34;card-text&#34; style=&#34;font-size: smaller; text-align: center;&#34;&gt;pipeline Stepping tab - Translation Initial&lt;/figcaption&gt;
      &lt;/div&gt;
      
    &lt;/figure&gt;
  &lt;/a&gt;
&lt;/div&gt;

&lt;p&gt;As for the &lt;em&gt;Text Converter&lt;/em&gt; stepping tab, this tab is divided into three sub-panes. The top one is the xslt translation editor and it will allow you to edit the xslt translation. The bottom left window displays the &lt;em&gt;input&lt;/em&gt; to the xslt translation (which is the output from the &lt;em&gt;Text Converter&lt;/em&gt;). The bottom right window displays the &lt;em&gt;output&lt;/em&gt; from the xslt Translation filter for the given input.&lt;/p&gt;
&lt;p&gt;We now click on the pipeline Step Forward button &lt;span class=&#34;stroom-icon inline-svg-button icon-button  icon-colour__green&#34; &gt;
    &lt;span class=&#34;face&#34; title=&#34;Step forward&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; viewBox=&#34;0 0 512 512&#34;&gt;&lt;!-- Font Awesome Free 5.15.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --&gt;&lt;path style=&#34;fill:currentColor&#34; d=&#34;m 400,75.977968 0,360.000002 c 0,6.6 -5.4,12 -12,12 l -40,0 c -6.6,0 -12,-5.4 -12,-12 l 0,-151.9 -171.5,156.5 c -20.6,17.2 -52.5,2.8 -52.5,-24.6 0,-202.11605 0,-87.47785 0,-320.000002 0,-27.399997 31.9,-41.699997 52.5,-24.6 L 336,226.77797 336,75.977968 c 0,-6.599997 5.4,-11.999997 12,-11.999997 l 40,0 c 6.6,0 12,5.4 12,11.999997 z&#34; /&gt;&lt;/svg&gt; &lt;/span&gt;
  &lt;/span&gt; to single step the Text Converter &lt;em&gt;records&lt;/em&gt; element data through our xslt Translation. We see no change as an empty translation will just perform a copy of the input data.&lt;/p&gt;
&lt;p&gt;To correct this, we will author our xslt translation. Like the Data Splitter this is also authored incrementally. A minimum xslt translation might contain&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-xml&#34;&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; ?&amp;gt;
&amp;lt;xsl:stylesheet 
    xpath-default-namespace=&amp;quot;records:2&amp;quot; 
    xmlns=&amp;quot;event-logging:3&amp;quot; 
    xmlns:stroom=&amp;quot;stroom&amp;quot; 
    xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot; 
    xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot; 
    xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot; 
    version=&amp;quot;3.0&amp;quot;&amp;gt;

  &amp;lt;!-- Ingest the records tree --&amp;gt;
  &amp;lt;xsl:template match=&amp;quot;records&amp;quot;&amp;gt;
    &amp;lt;Events xsi:schemaLocation=&amp;quot;event-logging:3 file://event-logging-v3.2.3.xsd&amp;quot; Version=&amp;quot;3.2.3&amp;quot;&amp;gt;
        &amp;lt;xsl:apply-templates /&amp;gt;
    &amp;lt;/Events&amp;gt;
  &amp;lt;/xsl:template&amp;gt;

    &amp;lt;!-- Only generate events if we have an url on input --&amp;gt;
    &amp;lt;xsl:template match=&amp;quot;record[data[@name = &#39;url&#39;]]&amp;quot;&amp;gt;
        &amp;lt;Event&amp;gt;
            &amp;lt;xsl:apply-templates select=&amp;quot;.&amp;quot; mode=&amp;quot;eventTime&amp;quot; /&amp;gt;
            &amp;lt;xsl:apply-templates select=&amp;quot;.&amp;quot; mode=&amp;quot;eventSource&amp;quot; /&amp;gt;
            &amp;lt;xsl:apply-templates select=&amp;quot;.&amp;quot; mode=&amp;quot;eventDetail&amp;quot; /&amp;gt;
        &amp;lt;/Event&amp;gt;
    &amp;lt;/xsl:template&amp;gt;

    &amp;lt;xsl:template match=&amp;quot;node()&amp;quot;  mode=&amp;quot;eventTime&amp;quot;&amp;gt;
        &amp;lt;EventTime&amp;gt;
            &amp;lt;TimeCreated/&amp;gt;
        &amp;lt;/EventTime&amp;gt;
    &amp;lt;/xsl:template&amp;gt;

    &amp;lt;xsl:template match=&amp;quot;node()&amp;quot;  mode=&amp;quot;eventSource&amp;quot;&amp;gt;
        &amp;lt;EventSource&amp;gt;
            &amp;lt;System&amp;gt;
                &amp;lt;Name  /&amp;gt;
                &amp;lt;Environment /&amp;gt;
            &amp;lt;/System&amp;gt;
            &amp;lt;Generator /&amp;gt;
            &amp;lt;Device /&amp;gt;
            &amp;lt;Client /&amp;gt;
            &amp;lt;Server /&amp;gt;
            &amp;lt;User&amp;gt;
                &amp;lt;Id /&amp;gt;
            &amp;lt;/User&amp;gt;
        &amp;lt;/EventSource&amp;gt;
    &amp;lt;/xsl:template&amp;gt;

    &amp;lt;xsl:template match=&amp;quot;node()&amp;quot;  mode=&amp;quot;eventDetail&amp;quot;&amp;gt;
        &amp;lt;EventDetail&amp;gt;
            &amp;lt;TypeId&amp;gt;SendToWebService&amp;lt;/TypeId&amp;gt;
            &amp;lt;Description /&amp;gt;
            &amp;lt;Classification /&amp;gt;
            &amp;lt;Send /&amp;gt;
        &amp;lt;/EventDetail&amp;gt;
    &amp;lt;/xsl:template&amp;gt;
&amp;lt;/xsl:stylesheet&amp;gt;
&lt;/code&gt;&lt;/pre&gt;







  
  
  
  
  







  



&lt;div class=&#34;card rounded shadow-stroom p-2 td-post-card mb-4 mt-4&#34; style=&#34;width: fit-content;&#34;&gt;

  &lt;a title=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-55.png&#34; href=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-55.png&#34;&gt;
    &lt;figure style=&#34;margin-block-end: 0px&#34; &gt;
      
      &lt;img class=&#34;card-img-top&#34; src=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-55.png&#34; style=&#34;max-width: fit-content&#34; alt=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-55.png&#34;&gt;
      

      
      &lt;div class=&#34;card-body px-0 pt-2 pb-0&#34;&gt;
        &lt;hr style=&#34;border-top: 1px solid #ddd; margin-top: 0px; margin-bottom:4px;&#34;&gt;
        &lt;figcaption class=&#34;card-text&#34; style=&#34;font-size: smaller; text-align: center;&#34;&gt;Translation Minimal&lt;/figcaption&gt;
      &lt;/div&gt;
      
    &lt;/figure&gt;
  &lt;/a&gt;
&lt;/div&gt;

&lt;p&gt;Clearly this doesn’t generate useful events. Our first iterative change might be to generate the TimeCreated element value. The change would be&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-xml&#34;&gt;    &amp;lt;xsl:template match=&amp;quot;node()&amp;quot; mode=&amp;quot;eventTime&amp;quot;&amp;gt;
        &amp;lt;EventTime&amp;gt;
          &amp;lt;TimeCreated&amp;gt;
             &amp;lt;xsl:value-of select=&amp;quot;stroom:format-date(data[@name = &#39;time&#39;]/@value, &#39;dd/MMM/yyyy:HH:mm:ss XX&#39;)&amp;quot; /&amp;gt; 
          &amp;lt;/TimeCreated&amp;gt;
        &amp;lt;/EventTime&amp;gt;
    &amp;lt;/xsl:template&amp;gt;
&lt;/code&gt;&lt;/pre&gt;







  
  
  
  
  







  



&lt;div class=&#34;card rounded shadow-stroom p-2 td-post-card mb-4 mt-4&#34; style=&#34;width: fit-content;&#34;&gt;

  &lt;a title=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-56.png&#34; href=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-56.png&#34;&gt;
    &lt;figure style=&#34;margin-block-end: 0px&#34; &gt;
      
      &lt;img class=&#34;card-img-top&#34; src=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-56.png&#34; style=&#34;max-width: fit-content&#34; alt=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-56.png&#34;&gt;
      

      
      &lt;div class=&#34;card-body px-0 pt-2 pb-0&#34;&gt;
        &lt;hr style=&#34;border-top: 1px solid #ddd; margin-top: 0px; margin-bottom:4px;&#34;&gt;
        &lt;figcaption class=&#34;card-text&#34; style=&#34;font-size: smaller; text-align: center;&#34;&gt;Translation Minimal+&lt;/figcaption&gt;
      &lt;/div&gt;
      
    &lt;/figure&gt;
  &lt;/a&gt;
&lt;/div&gt;

&lt;p&gt;Adding in the EventSource elements (without ANY error checking!) as per&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-xml&#34;&gt;    &amp;lt;xsl:template match=&amp;quot;node()&amp;quot;  mode=&amp;quot;eventSource&amp;quot;&amp;gt;
        &amp;lt;EventSource&amp;gt;
            &amp;lt;System&amp;gt;
              &amp;lt;Name&amp;gt;
                &amp;lt;xsl:value-of select=&amp;quot;stroom:feed-attribute(&#39;System&#39;)&amp;quot;  /&amp;gt;
              &amp;lt;/Name&amp;gt;
              &amp;lt;Environment&amp;gt;
                &amp;lt;xsl:value-of select=&amp;quot;stroom:feed-attribute(&#39;Environment&#39;)&amp;quot;  /&amp;gt;
              &amp;lt;/Environment&amp;gt;
            &amp;lt;/System&amp;gt;
            &amp;lt;Generator&amp;gt;Apache  HTTPD&amp;lt;/Generator&amp;gt;
            &amp;lt;Device&amp;gt;
              &amp;lt;HostName&amp;gt;
                &amp;lt;xsl:value-of select=&amp;quot;stroom:feed-attribute(&#39;MyHost&#39;)&amp;quot;  /&amp;gt;
              &amp;lt;/HostName&amp;gt;
              &amp;lt;IPAddress&amp;gt;
                &amp;lt;xsl:value-of select=&amp;quot;stroom:feed-attribute(&#39;MyIPAddress&#39;)&amp;quot;  /&amp;gt;
              &amp;lt;/IPAddress&amp;gt;
            &amp;lt;/Device&amp;gt;
            &amp;lt;Client&amp;gt;
              &amp;lt;IPAddress&amp;gt;
                &amp;lt;xsl:value-of select=&amp;quot;data[@name =  &#39;clientip&#39;]/@value&amp;quot;  /&amp;gt;
              &amp;lt;/IPAddress&amp;gt;
              &amp;lt;Port&amp;gt;
                &amp;lt;xsl:value-of select=&amp;quot;data[@name =  &#39;clientport&#39;]/@value&amp;quot;  /&amp;gt;
              &amp;lt;/Port&amp;gt;
            &amp;lt;/Client&amp;gt;
            &amp;lt;Server&amp;gt;
              &amp;lt;HostName&amp;gt;
                &amp;lt;xsl:value-of select=&amp;quot;data[@name =  &#39;vserver&#39;]/@value&amp;quot;  /&amp;gt;
              &amp;lt;/HostName&amp;gt;
              &amp;lt;Port&amp;gt;
                &amp;lt;xsl:value-of select=&amp;quot;data[@name =  &#39;vserverport&#39;]/@value&amp;quot;  /&amp;gt;
              &amp;lt;/Port&amp;gt;
            &amp;lt;/Server&amp;gt;
            &amp;lt;User&amp;gt;
              &amp;lt;Id&amp;gt;
                &amp;lt;xsl:value-of select=&amp;quot;data[@name=&#39;user&#39;]/@value&amp;quot; /&amp;gt;
              &amp;lt;/Id&amp;gt;
            &amp;lt;/User&amp;gt;
        &amp;lt;/EventSource&amp;gt;
    &amp;lt;/xsl:template&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;And after a Refresh Current Step &lt;span class=&#34;stroom-icon inline-svg-button icon-button  icon-colour__green&#34; &gt;
    &lt;span class=&#34;face&#34; title=&#34;Refresh&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; width=&#34;1792&#34; height=&#34;1792&#34; viewBox=&#34;0 0 1792 1792&#34;&gt;&lt;path style=&#34;fill:currentColor&#34; d=&#34;M1639 1056q0 5-1 7-64 268-268 434.5t-478 166.5q-146 0-282.5-55t-243.5-157l-129 129q-19 19-45 19t-45-19-19-45v-448q0-26 19-45t45-19h448q26 0 45 19t19 45-19 45l-137 137q71 66 161 102t187 36q134 0 250-65t186-179q11-17 53-117 8-23 30-23h192q13 0 22.5 9.5t9.5 22.5zm25-800v448q0 26-19 45t-45 19h-448q-26 0-45-19t-19-45 19-45l138-138q-148-137-349-137-134 0-250 65t-186 179q-11 17-53 117-8 23-30 23h-199q-13 0-22.5-9.5t-9.5-22.5v-7q65-268 270-434.5t480-166.5q146 0 284 55.5t245 156.5l130-129q19-19 45-19t45 19 19 45z&#34;/&gt;&lt;/svg&gt;&lt;/span&gt;
  &lt;/span&gt; we see our output event ‘grow’ to&lt;/p&gt;







  
  
  
  
  







  



&lt;div class=&#34;card rounded shadow-stroom p-2 td-post-card mb-4 mt-4&#34; style=&#34;width: fit-content;&#34;&gt;

  &lt;a title=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-57.png&#34; href=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-57.png&#34;&gt;
    &lt;figure style=&#34;margin-block-end: 0px&#34; &gt;
      
      &lt;img class=&#34;card-img-top&#34; src=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-57.png&#34; style=&#34;max-width: fit-content&#34; alt=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-57.png&#34;&gt;
      

      
      &lt;div class=&#34;card-body px-0 pt-2 pb-0&#34;&gt;
        &lt;hr style=&#34;border-top: 1px solid #ddd; margin-top: 0px; margin-bottom:4px;&#34;&gt;
        &lt;figcaption class=&#34;card-text&#34; style=&#34;font-size: smaller; text-align: center;&#34;&gt;Translation Minimal++&lt;/figcaption&gt;
      &lt;/div&gt;
      
    &lt;/figure&gt;
  &lt;/a&gt;
&lt;/div&gt;

&lt;p&gt;We now complete our translation by expanding the &lt;em&gt;EventDetail&lt;/em&gt; elements to have the completed translation of (again with limited error checking and non-existent documentation!)&lt;/p&gt;






&lt;div class=&#34;text-file card rounded shadow-stroom p-2 td-post-card mb-4 mt-4&#34; style=&#34;&#34;&gt;

  &lt;div class=&#34;card-body px-0 pt-2 pb-0&#34;&gt;
    
    &lt;pre&gt;&lt;code class=&#34;language-xml&#34;&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; ?&amp;gt;
&amp;lt;xsl:stylesheet 
    xpath-default-namespace=&amp;quot;records:2&amp;quot; 
    xmlns=&amp;quot;event-logging:3&amp;quot; 
    xmlns:stroom=&amp;quot;stroom&amp;quot; 
    xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot; 
    xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot; 
    xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot; 
    version=&amp;quot;3.0&amp;quot;&amp;gt;

  &amp;lt;!-- Ingest the records tree --&amp;gt;
  &amp;lt;xsl:template match=&amp;quot;records&amp;quot;&amp;gt;
    &amp;lt;Events xsi:schemaLocation=&amp;quot;event-logging:3 file://event-logging-v3.2.3.xsd&amp;quot; Version=&amp;quot;3.2.3&amp;quot;&amp;gt;
        &amp;lt;xsl:apply-templates /&amp;gt;
    &amp;lt;/Events&amp;gt;
  &amp;lt;/xsl:template&amp;gt;

    &amp;lt;!-- Only generate events if we have an url on input --&amp;gt;
    &amp;lt;xsl:template match=&amp;quot;record[data[@name = &#39;url&#39;]]&amp;quot;&amp;gt;
        &amp;lt;Event&amp;gt;
            &amp;lt;xsl:apply-templates select=&amp;quot;.&amp;quot; mode=&amp;quot;eventTime&amp;quot; /&amp;gt;
            &amp;lt;xsl:apply-templates select=&amp;quot;.&amp;quot; mode=&amp;quot;eventSource&amp;quot; /&amp;gt;
            &amp;lt;xsl:apply-templates select=&amp;quot;.&amp;quot; mode=&amp;quot;eventDetail&amp;quot; /&amp;gt;
        &amp;lt;/Event&amp;gt;
    &amp;lt;/xsl:template&amp;gt;

    &amp;lt;xsl:template match=&amp;quot;node()&amp;quot; mode=&amp;quot;eventTime&amp;quot;&amp;gt;
        &amp;lt;EventTime&amp;gt;
          &amp;lt;TimeCreated&amp;gt;
             &amp;lt;xsl:value-of select=&amp;quot;stroom:format-date(data[@name = &#39;time&#39;]/@value, &#39;dd/MMM/yyyy:HH:mm:ss XX&#39;)&amp;quot; /&amp;gt; 
          &amp;lt;/TimeCreated&amp;gt;
        &amp;lt;/EventTime&amp;gt;
    &amp;lt;/xsl:template&amp;gt;

    &amp;lt;xsl:template match=&amp;quot;node()&amp;quot;  mode=&amp;quot;eventSource&amp;quot;&amp;gt;
        &amp;lt;EventSource&amp;gt;
            &amp;lt;System&amp;gt;
              &amp;lt;Name&amp;gt;
                &amp;lt;xsl:value-of select=&amp;quot;stroom:feed-attribute(&#39;System&#39;)&amp;quot;  /&amp;gt;
              &amp;lt;/Name&amp;gt;
              &amp;lt;Environment&amp;gt;
                &amp;lt;xsl:value-of select=&amp;quot;stroom:feed-attribute(&#39;Environment&#39;)&amp;quot;  /&amp;gt;
              &amp;lt;/Environment&amp;gt;
            &amp;lt;/System&amp;gt;
            &amp;lt;Generator&amp;gt;Apache  HTTPD&amp;lt;/Generator&amp;gt;
            &amp;lt;Device&amp;gt;
              &amp;lt;HostName&amp;gt;
                &amp;lt;xsl:value-of select=&amp;quot;stroom:feed-attribute(&#39;MyHost&#39;)&amp;quot;  /&amp;gt;
              &amp;lt;/HostName&amp;gt;
              &amp;lt;IPAddress&amp;gt;
                &amp;lt;xsl:value-of select=&amp;quot;stroom:feed-attribute(&#39;MyIPAddress&#39;)&amp;quot;  /&amp;gt;
              &amp;lt;/IPAddress&amp;gt;
            &amp;lt;/Device&amp;gt;
            &amp;lt;Client&amp;gt;
              &amp;lt;IPAddress&amp;gt;
                &amp;lt;xsl:value-of select=&amp;quot;data[@name =  &#39;clientip&#39;]/@value&amp;quot;  /&amp;gt;
              &amp;lt;/IPAddress&amp;gt;
              &amp;lt;Port&amp;gt;
                &amp;lt;xsl:value-of select=&amp;quot;data[@name =  &#39;clientport&#39;]/@value&amp;quot;  /&amp;gt;
              &amp;lt;/Port&amp;gt;
            &amp;lt;/Client&amp;gt;
            &amp;lt;Server&amp;gt;
              &amp;lt;HostName&amp;gt;
                &amp;lt;xsl:value-of select=&amp;quot;data[@name =  &#39;vserver&#39;]/@value&amp;quot;  /&amp;gt;
              &amp;lt;/HostName&amp;gt;
              &amp;lt;Port&amp;gt;
                &amp;lt;xsl:value-of select=&amp;quot;data[@name =  &#39;vserverport&#39;]/@value&amp;quot;  /&amp;gt;
              &amp;lt;/Port&amp;gt;
            &amp;lt;/Server&amp;gt;
            &amp;lt;User&amp;gt;
              &amp;lt;Id&amp;gt;
                &amp;lt;xsl:value-of select=&amp;quot;data[@name=&#39;user&#39;]/@value&amp;quot; /&amp;gt;
              &amp;lt;/Id&amp;gt;
            &amp;lt;/User&amp;gt;
        &amp;lt;/EventSource&amp;gt;
    &amp;lt;/xsl:template&amp;gt;


    &amp;lt;!-- --&amp;gt;
    &amp;lt;xsl:template match=&amp;quot;node()&amp;quot;  mode=&amp;quot;eventDetail&amp;quot;&amp;gt;
        &amp;lt;EventDetail&amp;gt;
          &amp;lt;TypeId&amp;gt;SendToWebService&amp;lt;/TypeId&amp;gt;
          &amp;lt;Description&amp;gt;Send/Access data to Web Service&amp;lt;/Description&amp;gt;
          &amp;lt;Classification&amp;gt;
            &amp;lt;Text&amp;gt;UNCLASSIFIED&amp;lt;/Text&amp;gt;
          &amp;lt;/Classification&amp;gt;
          &amp;lt;Send&amp;gt;
            &amp;lt;Source&amp;gt;
              &amp;lt;Device&amp;gt;
                &amp;lt;IPAddress&amp;gt;
                    &amp;lt;xsl:value-of select=&amp;quot;data[@name = &#39;clientip&#39;]/@value&amp;quot;/&amp;gt;
                &amp;lt;/IPAddress&amp;gt;
                &amp;lt;Port&amp;gt;
                    &amp;lt;xsl:value-of select=&amp;quot;data[@name = &#39;vserverport&#39;]/@value&amp;quot;/&amp;gt;
                &amp;lt;/Port&amp;gt;
              &amp;lt;/Device&amp;gt;
            &amp;lt;/Source&amp;gt;
            &amp;lt;Destination&amp;gt;
              &amp;lt;Device&amp;gt;
                &amp;lt;HostName&amp;gt;
                    &amp;lt;xsl:value-of select=&amp;quot;data[@name = &#39;vserver&#39;]/@value&amp;quot;/&amp;gt;
                &amp;lt;/HostName&amp;gt;
                &amp;lt;Port&amp;gt;
                    &amp;lt;xsl:value-of select=&amp;quot;data[@name = &#39;vserverport&#39;]/@value&amp;quot;/&amp;gt;
                &amp;lt;/Port&amp;gt;
              &amp;lt;/Device&amp;gt;
            &amp;lt;/Destination&amp;gt;
            &amp;lt;Payload&amp;gt;
              &amp;lt;Resource&amp;gt;
                &amp;lt;URL&amp;gt;
                    &amp;lt;xsl:value-of select=&amp;quot;data[@name = &#39;url&#39;]/@value&amp;quot;/&amp;gt;
                &amp;lt;/URL&amp;gt;
                &amp;lt;Referrer&amp;gt;
                    &amp;lt;xsl:value-of select=&amp;quot;data[@name = &#39;referer&#39;]/@value&amp;quot;/&amp;gt;
                &amp;lt;/Referrer&amp;gt;
                &amp;lt;HTTPMethod&amp;gt;
                    &amp;lt;xsl:value-of select=&amp;quot;data[@name = &#39;url&#39;]/data[@name = &#39;httpMethod&#39;]/@value&amp;quot;/&amp;gt;
                &amp;lt;/HTTPMethod&amp;gt;
                &amp;lt;HTTPVersion&amp;gt;
                    &amp;lt;xsl:value-of select=&amp;quot;data[@name = &#39;url&#39;]/data[@name = &#39;version&#39;]/@value&amp;quot;/&amp;gt;
                &amp;lt;/HTTPVersion&amp;gt;
                &amp;lt;UserAgent&amp;gt;
                    &amp;lt;xsl:value-of select=&amp;quot;data[@name = &#39;userAgent&#39;]/@value&amp;quot;/&amp;gt;
                &amp;lt;/UserAgent&amp;gt;
                &amp;lt;InboundSize&amp;gt;
                    &amp;lt;xsl:value-of select=&amp;quot;data[@name = &#39;bytesIn&#39;]/@value&amp;quot;/&amp;gt;
                &amp;lt;/InboundSize&amp;gt;
                &amp;lt;OutboundSize&amp;gt;
                    &amp;lt;xsl:value-of select=&amp;quot;data[@name = &#39;bytesOut&#39;]/@value&amp;quot;/&amp;gt;
                &amp;lt;/OutboundSize&amp;gt;
                &amp;lt;OutboundContentSize&amp;gt;
                    &amp;lt;xsl:value-of select=&amp;quot;data[@name = &#39;bytesOutContent&#39;]/@value&amp;quot;/&amp;gt;
                &amp;lt;/OutboundContentSize&amp;gt;
                &amp;lt;RequestTime&amp;gt;
                    &amp;lt;xsl:value-of select=&amp;quot;data[@name = &#39;timeM&#39;]/@value&amp;quot;/&amp;gt;
                &amp;lt;/RequestTime&amp;gt;
                &amp;lt;ConnectionStatus&amp;gt;
                    &amp;lt;xsl:value-of select=&amp;quot;data[@name = &#39;constatus&#39;]/@value&amp;quot;/&amp;gt;
                &amp;lt;/ConnectionStatus&amp;gt;
                &amp;lt;InitialResponseCode&amp;gt;
                    &amp;lt;xsl:value-of select=&amp;quot;data[@name = &#39;responseB&#39;]/@value&amp;quot;/&amp;gt;
                &amp;lt;/InitialResponseCode&amp;gt;
                &amp;lt;ResponseCode&amp;gt;
                    &amp;lt;xsl:value-of select=&amp;quot;data[@name = &#39;response&#39;]/@value&amp;quot;/&amp;gt;
                &amp;lt;/ResponseCode&amp;gt;
                &amp;lt;Data Name=&amp;quot;Protocol&amp;quot;&amp;gt;
                  &amp;lt;xsl:attribute select=&amp;quot;data[@name = &#39;url&#39;]/data[@name = &#39;protocol&#39;]/@value&amp;quot; name=&amp;quot;Value&amp;quot;/&amp;gt;
                &amp;lt;/Data&amp;gt;
              &amp;lt;/Resource&amp;gt;
            &amp;lt;/Payload&amp;gt;
            &amp;lt;!-- Normally our translation at this point would contain an &amp;lt;Outcome&amp;gt; attribute.
            Since all our sample data includes only successful outcomes we have ommitted the &amp;lt;Outcome&amp;gt; attribute 
            in the translation to minimise complexity--&amp;gt;
          &amp;lt;/Send&amp;gt;
        &amp;lt;/EventDetail&amp;gt;
    &amp;lt;/xsl:template&amp;gt;
&amp;lt;/xsl:stylesheet&amp;gt;

&lt;/code&gt;&lt;/pre&gt;


    &lt;hr style=&#34;border-top: 1px solid #ddd; margin-top: 0px; margin-bottom:4px;&#34;&gt;
    &lt;div class=&#34;card-text&#34; style=&#34;font-size: smaller; text-align: center;&#34;&gt;
      
      &lt;span class=&#34;&#34; style=&#34;font-size: smaller&#34;&gt;Apache BlackBox Translation XSLT&lt;/span&gt;
      
      (
      &lt;a href=&#34;../../files/HOWTOs/EventFeeds/CreateApacheHTTPDEventFeed/ApacheHTTPDBlackBox-TranslationXSLT.txt&#34; class=&#34;&#34; style=&#34;font-size: smaller&#34;&gt;Download ApacheHTTPDBlackBox-TranslationXSLT.txt&lt;/a&gt;
      &lt;i class=&#34;external-link-icon fas fa-file-download fa-sm text-secondary&#34; title=&#34;External link&#34;&gt;&lt;/i&gt;
      )
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;And after a Refresh Current Step &lt;span class=&#34;stroom-icon inline-svg-button icon-button  icon-colour__green&#34; &gt;
    &lt;span class=&#34;face&#34; title=&#34;Refresh&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; width=&#34;1792&#34; height=&#34;1792&#34; viewBox=&#34;0 0 1792 1792&#34;&gt;&lt;path style=&#34;fill:currentColor&#34; d=&#34;M1639 1056q0 5-1 7-64 268-268 434.5t-478 166.5q-146 0-282.5-55t-243.5-157l-129 129q-19 19-45 19t-45-19-19-45v-448q0-26 19-45t45-19h448q26 0 45 19t19 45-19 45l-137 137q71 66 161 102t187 36q134 0 250-65t186-179q11-17 53-117 8-23 30-23h192q13 0 22.5 9.5t9.5 22.5zm25-800v448q0 26-19 45t-45 19h-448q-26 0-45-19t-19-45 19-45l138-138q-148-137-349-137-134 0-250 65t-186 179q-11 17-53 117-8 23-30 23h-199q-13 0-22.5-9.5t-9.5-22.5v-7q65-268 270-434.5t480-166.5q146 0 284 55.5t245 156.5l130-129q19-19 45-19t45 19 19 45z&#34;/&gt;&lt;/svg&gt;&lt;/span&gt;
  &lt;/span&gt; we see the completed &lt;code&gt;&amp;lt;EventDetail&amp;gt;&lt;/code&gt; section of our output event&lt;/p&gt;







  
  
  
  
  







  



&lt;div class=&#34;card rounded shadow-stroom p-2 td-post-card mb-4 mt-4&#34; style=&#34;width: fit-content;&#34;&gt;

  &lt;a title=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-58.png&#34; href=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-58.png&#34;&gt;
    &lt;figure style=&#34;margin-block-end: 0px&#34; &gt;
      
      &lt;img class=&#34;card-img-top&#34; src=&#34;../../images/HOWTOs/v6/UI-ApacheHttpEventFeed-58.png&#34; style=&#34;max-width: fit-content&#34; alt=&#34;images/HOWTOs/v6/UI-ApacheHttpEventFeed-58.png&#34;&gt;
      

      
      &lt;div class=&#34;card-body px-0 pt-2 pb-0&#34;&gt;
        &lt;hr style=&#34;border-top: 1px solid #ddd; margin-top: 0px; margin-bottom:4px;&#34;&gt;
        &lt;figcaption class=&#34;card-text&#34; style=&#34;font-size: smaller; text-align: center;&#34;&gt;Translation Complete&lt;/figcaption&gt;
      &lt;/div&gt;
      
    &lt;/figure&gt;
  &lt;/a&gt;
&lt;/div&gt;

&lt;p&gt;Note, you should now Save &lt;span class=&#34;stroom-icon inline-svg-button icon-button  &#34; &gt;
    &lt;span class=&#34;face&#34; title=&#34;Save&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; width=&#34;1792&#34; height=&#34;1792&#34; viewBox=&#34;0 0 1792 1792&#34;&gt;&lt;!--! Font Awesome Free 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --&gt;&lt;path style=&#34;fill:currentColor;stroke-width:0.570676;stroke-dasharray:none&#34; d=&#34;M 339.40234 116.52148 C 216.56504 116.52148 116.69531 216.3912 116.69531 339.22852 L 116.69531 1452.7715 C 116.69531 1575.6089 216.56504 1675.4785 339.40234 1675.4785 L 1452.5977 1675.4785 C 1575.4349 1675.4785 1675.3047 1575.6089 1675.3047 1452.7715 L 1675.3047 598.82422 C 1675.3047 539.66744 1651.9901 482.94523 1610.2324 441.1875 L 1610.5801 440.83984 L 1351.334 181.59375 C 1309.5761 139.83602 1252.8561 116.52148 1193.6992 116.52148 L 339.40234 116.52148 z M 339.40234 283.55273 L 395.08008 283.55273 L 395.08008 645.45312 C 395.08008 691.73461 432.31423 728.96875 478.5957 728.96875 L 1146.7207 728.96875 C 1193.0023 728.96875 1230.2363 691.73461 1230.2363 645.45312 L 1230.2363 297.12305 C 1231.2803 298.167 1231.9756 298.8623 1233.0195 299.90625 L 1492.6152 558.80469 L 1492.2676 559.1543 C 1502.707 569.59373 1508.6211 583.8594 1508.6211 598.47461 L 1508.6211 1452.7715 C 1508.6211 1483.3939 1483.5678 1508.4473 1452.9453 1508.4473 L 1395.6113 1508.4473 L 1395.6113 1059.8359 C 1395.6113 981.08539 1331.5826 917.05859 1252.832 917.05859 L 539.16797 917.05859 C 460.41738 917.05859 396.38867 981.08539 396.38867 1059.8359 L 396.38867 1508.4473 L 339.40234 1508.4473 C 308.78001 1508.4473 283.72656 1483.3939 283.72656 1452.7715 L 283.72656 339.22852 C 283.72656 308.60619 308.78001 283.55273 339.40234 283.55273 z M 562.11133 283.55273 L 1063.2051 283.55273 L 1063.2051 561.9375 L 562.11133 561.9375 L 562.11133 283.55273 z M 538.94531 1024.1426 L 1252.832 1024.1426 C 1272.4639 1024.1426 1288.5273 1040.2041 1288.5273 1059.8359 L 1288.5273 1508.4473 L 503.25 1508.4473 L 503.25 1059.8359 C 503.25 1040.2041 519.31334 1024.1426 538.94531 1024.1426 z &#34; /&gt;&lt;/svg&gt; &lt;/span&gt;
  &lt;/span&gt; your edited xslt Translation.&lt;/p&gt;
&lt;p&gt;We have completed the translation and have completed developing our Apache-SSLBlackBox-V2.0-EVENTS event feed.&lt;/p&gt;
&lt;p&gt;At this point, this event feed is set up to accept Raw Event data, but it will not automatically process the raw data and hence it will not place events into the Event Store. To have Stroom automatically process Raw Event streams, you will need to enable Processors for this pipeline.&lt;/p&gt;

      </description>
    </item>
    
  </channel>
</rss>
