<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://all.docs.genesys.com/index.php?action=history&amp;feed=atom&amp;title=PrivateEdition%2FCurrent%2FOperations%2FRWXlogging</id>
	<title>PrivateEdition/Current/Operations/RWXlogging - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://all.docs.genesys.com/index.php?action=history&amp;feed=atom&amp;title=PrivateEdition%2FCurrent%2FOperations%2FRWXlogging"/>
	<link rel="alternate" type="text/html" href="https://all.docs.genesys.com/index.php?title=PrivateEdition/Current/Operations/RWXlogging&amp;action=history"/>
	<updated>2026-04-13T13:23:22Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.31.1</generator>
	<entry>
		<id>https://all.docs.genesys.com/index.php?title=PrivateEdition/Current/Operations/RWXlogging&amp;diff=131451&amp;oldid=prev</id>
		<title>WikiSysop at 19:32, March 12, 2023</title>
		<link rel="alternate" type="text/html" href="https://all.docs.genesys.com/index.php?title=PrivateEdition/Current/Operations/RWXlogging&amp;diff=131451&amp;oldid=prev"/>
		<updated>2023-03-12T19:32:06Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 19:32, March 12, 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l12&quot; &gt;Line 12:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 12:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Some Genesys Multicloud CX services neither write structured logs in Kubernetes format nor do they write to the stdout/stderr console. These services use RWX logging, which is the legacy logging method of writing logs to an RWX storage such as NFS or NAS server.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Some Genesys Multicloud CX services neither write structured logs in Kubernetes format nor do they write to the stdout/stderr console. These services use RWX logging, which is the legacy logging method of writing logs to an RWX storage such as NFS or NAS server.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Legacy Genesys Multicloud CX applications are not structured to be supported by logging capabilities offered in &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;OpenShift/&lt;/del&gt;Kubernetes, nor do they write to sufficient detail in stdout/stderr. To accommodate this type of logging behavior, deployments must be provisioned to support mounting PVC/PV to NFS storage for the application to write its logs. Each Service mounts to its own PV which is backed by an external NFS share. After the logs are written to NFS share, the application controls the size and retention of the file and files can be accessed externally from NFS share directly to package and provide to care.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Legacy Genesys Multicloud CX applications are not structured to be supported by logging capabilities offered in Kubernetes, nor do they write to sufficient detail in stdout/stderr. To accommodate this type of logging behavior, deployments must be provisioned to support mounting PVC/PV to NFS storage for the application to write its logs. Each Service mounts to its own PV which is backed by an external NFS share. After the logs are written to NFS share, the application controls the size and retention of the file and files can be accessed externally from NFS share directly to package and provide to care.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[File:RWX Logging1.png]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[File:RWX Logging1.png]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>WikiSysop</name></author>
		
	</entry>
	<entry>
		<id>https://all.docs.genesys.com/index.php?title=PrivateEdition/Current/Operations/RWXlogging&amp;diff=114709&amp;oldid=prev</id>
		<title>Jabashree.amudha@genesys.com: Published</title>
		<link rel="alternate" type="text/html" href="https://all.docs.genesys.com/index.php?title=PrivateEdition/Current/Operations/RWXlogging&amp;diff=114709&amp;oldid=prev"/>
		<updated>2021-12-20T18:03:37Z</updated>

		<summary type="html">&lt;p&gt;Published&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Article&lt;br /&gt;
|Standalone=No&lt;br /&gt;
|DisplayName=RWX logging&lt;br /&gt;
|TocName=RWX (unstructured) logging&lt;br /&gt;
|Context=Learn about the legacy logging method of writing logs to an RWX storage such as NFS or NAS server.&lt;br /&gt;
|ComingSoon=No&lt;br /&gt;
|Section={{Section&lt;br /&gt;
|sectionHeading=RWX logging&lt;br /&gt;
|anchor=RWXlogging&lt;br /&gt;
|alignment=Vertical&lt;br /&gt;
|structuredtext={{NoteFormat|RWX logging is deprecated. It will be phased out with the use of sidecars to facilitate legacy logging behavior.|}}&lt;br /&gt;
Some Genesys Multicloud CX services neither write structured logs in Kubernetes format nor do they write to the stdout/stderr console. These services use RWX logging, which is the legacy logging method of writing logs to an RWX storage such as NFS or NAS server.&lt;br /&gt;
&lt;br /&gt;
Legacy Genesys Multicloud CX applications are not structured to be supported by logging capabilities offered in OpenShift/Kubernetes, nor do they write to sufficient detail in stdout/stderr. To accommodate this type of logging behavior, deployments must be provisioned to support mounting PVC/PV to NFS storage for the application to write its logs. Each Service mounts to its own PV which is backed by an external NFS share. After the logs are written to NFS share, the application controls the size and retention of the file and files can be accessed externally from NFS share directly to package and provide to care.&lt;br /&gt;
&lt;br /&gt;
[[File:RWX Logging1.png]]&lt;br /&gt;
&lt;br /&gt;
The method of logging unstructured logs is not suitable for kubernetes-supported logging aggregators such as Elasticsearch.&lt;br /&gt;
&lt;br /&gt;
The sample procedures provided in the following section, help in setting up the RWX storage of your choice.&lt;br /&gt;
&lt;br /&gt;
Services that  use the RWX logging approach:&lt;br /&gt;
&lt;br /&gt;
*WebRTC&lt;br /&gt;
*GVP&lt;br /&gt;
*GCXI&lt;br /&gt;
*Voice Microservices&lt;br /&gt;
*Genesys Pulse&lt;br /&gt;
*Interaction Server&lt;br /&gt;
*Tenant Services&lt;br /&gt;
&lt;br /&gt;
==Storage Prerequisites==&lt;br /&gt;
===Direct NFS Persistent Storage===&lt;br /&gt;
With Direct NFS approach, shares are mounted using NFS IP/FQDN and share path is mounted using NFS-subdir-external-provisioner.&lt;br /&gt;
&lt;br /&gt;
For more details about this provisioner, refer to [https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner. NFS Subdir External Provisioner].&lt;br /&gt;
&lt;br /&gt;
'''Prerequisite:''' You must have a dedicated NFS server to create NFS persistent storage.&lt;br /&gt;
====Create StorageClass for NFS Retained Storage====&lt;br /&gt;
Here is a sample configuration to create StorageClass for NFS persistent storage. The following configuration is suitable for a bare metal server.&lt;br /&gt;
&lt;br /&gt;
'''bare-metal-sc.yaml'''&lt;br /&gt;
 provisioner: cluster.local/nfs-vce-c00ds-vol1-nfs-subdir-external-provisioner&lt;br /&gt;
 mountOptions:&lt;br /&gt;
 - nfsvers=3&lt;br /&gt;
 - uid=500&lt;br /&gt;
 - gid=500&lt;br /&gt;
 parameters:&lt;br /&gt;
 archiveOnDelete: 'false'&lt;br /&gt;
 volumeBindingMode: Immediate metadata&lt;br /&gt;
 name: &amp;lt;Storage-class-name&amp;gt;&lt;br /&gt;
 kind: StorageClass&lt;br /&gt;
 reclaimPolicy: Retain&lt;br /&gt;
 allowVolumeExpansion: true&lt;br /&gt;
 apiVersion: storage.k8s.io/v1&lt;br /&gt;
&lt;br /&gt;
 oc apply -f bare-metal-sc.yaml&lt;br /&gt;
====Create PVC to dynamically create and bind to PV====&lt;br /&gt;
'''create-pvc.yaml'''&lt;br /&gt;
 apiVersion: v1&lt;br /&gt;
 kind: PersistentVolumeClaim&lt;br /&gt;
 metadata:&lt;br /&gt;
  name: &amp;lt;service&amp;gt;-pvc&lt;br /&gt;
  namespace: &amp;lt;service&amp;gt;&lt;br /&gt;
 spec:&lt;br /&gt;
  accessModes:&lt;br /&gt;
   - ReadWriteOnce&lt;br /&gt;
 resources:&lt;br /&gt;
 requests:&lt;br /&gt;
 storage: 10Gi&lt;br /&gt;
 storageClassName: &amp;lt;storage-class-name&amp;gt;&lt;br /&gt;
 volumeMode: Filesystem&lt;br /&gt;
===Azure-Files Persistent Storage for ARO (NFS Backed)===&lt;br /&gt;
For ARO type deployments you can map NFS directly.  Therefore, you can create NFS share within Azure using Azure-files. You need to create storage class of type Azure-Files:&lt;br /&gt;
&lt;br /&gt;
*&amp;quot;recalimPolicy&amp;quot; set to &amp;quot;Retain&amp;quot;&lt;br /&gt;
*&amp;quot;parameters&amp;quot; set based on your specific Azure deployment&lt;br /&gt;
&lt;br /&gt;
For more details, refer to:&lt;br /&gt;
&lt;br /&gt;
*[https://docs.microsoft.com/en-us/azure/storage/files/storage-files-how-to-create-nfs-shares?tabs=azure-portal How to create an NFS share]&lt;br /&gt;
*[https://docs.microsoft.com/en-us/azure/aks/azure-files-dynamic-pv Dynamically create and use a persistent volume with Azure Files in AKS]&lt;br /&gt;
&lt;br /&gt;
====Create Storage Class for retained Azure-File NFS storage====&lt;br /&gt;
'''azure-file-retain-sc.yaml'''&lt;br /&gt;
 allowVolumeExpansion: true&lt;br /&gt;
 apiVersion: storage.k8s.io/v1&lt;br /&gt;
 kind: StorageClass&lt;br /&gt;
 metadata:&lt;br /&gt;
  name: azure-files-retain&lt;br /&gt;
 annotations:&lt;br /&gt;
  description: azure-files-retain&lt;br /&gt;
 provisioner: kubernetes.io/azure-file&lt;br /&gt;
 parameters:&lt;br /&gt;
  location: westus2&lt;br /&gt;
  skuName: Standard_LRS&lt;br /&gt;
 reclaimPolicy: Retain&lt;br /&gt;
 volumeBindingMode: Immediate&lt;br /&gt;
&lt;br /&gt;
 oc apply -f azure-file-retain-sc.yaml &lt;br /&gt;
====Create PVC to dynamically create and bind to PV====&lt;br /&gt;
'''create-pvc.yaml'''&lt;br /&gt;
 apiVersion: v1 &lt;br /&gt;
 kind: PersistentVolumeClaim&lt;br /&gt;
 metadata:&lt;br /&gt;
 name: &amp;lt;service&amp;gt;-pvc&lt;br /&gt;
 namespace: &amp;lt;service&amp;gt;&lt;br /&gt;
 spec:&lt;br /&gt;
 accessModes:&lt;br /&gt;
 - ReadWriteOnce&lt;br /&gt;
 resources:&lt;br /&gt;
 requests:&lt;br /&gt;
 storage: 10Gi&lt;br /&gt;
 storageClassName: &amp;lt;azure-files-retain&amp;gt; &lt;br /&gt;
 volumeMode: Filesystem &lt;br /&gt;
&lt;br /&gt;
 oc apply -f create-pvc.yaml&lt;br /&gt;
|Status=No&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Jabashree.amudha@genesys.com</name></author>
		
	</entry>
</feed>