title | description | author | ms.author | ms.date | ms.service | ms.subservice | ms.topic | ms.custom | |
---|---|---|---|---|---|---|---|---|---|
Configure Usage and Diagnostic Data Collection for SQL Server on Linux |
Describes how SQL Server customer usage and diagnostic data is collected and configured on Linux. |
rwestMSFT |
randolphwest |
11/18/2024 |
sql |
linux |
how-to |
|
[!INCLUDE SQL Server - Linux]
By default, [!INCLUDE msconame-md] collects information about how its customers use [!INCLUDE ssnoversion-md]. Specifically, [!INCLUDE ssnoversion-md] collects information about the installation experience, usage, and performance. This information helps [!INCLUDE msconame-md] improve the product to better meet customer needs. For example, [!INCLUDE msconame-md] collects information about what kinds of error codes customers encounter so that we can fix related bugs, improve our documentation about how to use [!INCLUDE ssnoversion-md], and determine whether features should be added to the product to better serve customers.
This document provides details about what kind of information is collected, and about how to configure [!INCLUDE ssnoversion-md] on Linux to send that collected information to [!INCLUDE msconame-md]. [!INCLUDE ssnoversion-md] includes a privacy statement that explains what information we do and don't collect from users. For more information, see the privacy statement.
Specifically, [!INCLUDE msconame-md] doesn't send any of the following types of information through this mechanism:
- Any values from inside user tables
- Any sign-in credentials or other authentication information
- Personal data
[!INCLUDE ssnoversion-md] always collects and sends information about the installation experience from the setup process so that we can quickly find and fix any installation problems that the customer is experiencing. [!INCLUDE ssnoversion-md] can be configured not to send information (on a per-server instance basis) to [!INCLUDE msconame-md] through mssql-conf. mssql-conf is a configuration script that installs with [!INCLUDE ssnoversion-md] for Red Hat Enterprise Linux, SUSE Linux Enterprise Server, and Ubuntu.
Note
You can disable the sending of information to [!INCLUDE msconame-md] only in paid versions of [!INCLUDE ssnoversion-md].
This option lets you change if [!INCLUDE ssnoversion-md] sends usage and diagnostic data collection to [!INCLUDE msconame-md] or not. By default, this value is set to true. To change the value, run the following commands:
Important
You can not turn off usage and diagnostic data collection for free editions of [!INCLUDE ssnoversion-md], Express and Developer.
-
Run the mssql-conf script as root with the
set
command fortelemetry.customerfeedback
. The following example turns off usage and diagnostic data collection by specifyingfalse
.sudo /opt/mssql/bin/mssql-conf set telemetry.customerfeedback false
-
Restart the [!INCLUDE ssnoversion-md] service:
sudo systemctl restart mssql-server
To disable usage and diagnostic data collection in a Linux container, you must have the container persist your data.
::: moniker range="=sql-server-linux-2017 || =sql-server-2017"
-
Add an
mssql.conf
file with the lines[telemetry]
andcustomerfeedback = false
in the host directory:echo '[telemetry]' >> <host directory>/mssql.conf
echo 'customerfeedback = false' >> <host directory>/mssql.conf
-
Run the container image:
[!IMPORTANT]
TheSA_PASSWORD
environment variable is deprecated. UseMSSQL_SA_PASSWORD
instead.docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' -p 1433:1433 -v <host directory>:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2017-latest
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" -p 1433:1433 -v <host directory>:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2017-latest
::: moniker-end
::: moniker range="=sql-server-linux-ver15 || =sql-server-ver15"
-
Add an
mssql.conf
file with the lines[telemetry]
andcustomerfeedback = false
in the host directory:echo '[telemetry]' >> <host directory>/mssql.conf
echo 'customerfeedback = false' >> <host directory>/mssql.conf
-
Run the container image:
[!IMPORTANT]
TheSA_PASSWORD
environment variable is deprecated. UseMSSQL_SA_PASSWORD
instead.docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' -p 1433:1433 -v <host directory>:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2019-latest
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" -p 1433:1433 -v <host directory>:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2019-latest
::: moniker-end
::: moniker range=">= sql-server-linux-ver16 || >= sql-server-ver16"
-
Add an
mssql.conf
file with the lines[telemetry]
andcustomerfeedback = false
in the host directory:echo '[telemetry]' >> <host directory>/mssql.conf
echo 'customerfeedback = false' >> <host directory>/mssql.conf
-
Run the container image:
[!IMPORTANT]
TheSA_PASSWORD
environment variable is deprecated. UseMSSQL_SA_PASSWORD
instead.docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' -p 1433:1433 -v <host directory>:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2022-latest
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" -p 1433:1433 -v <host directory>:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2022-latest
::: moniker-end
Caution
[!INCLUDE password-complexity]
[!INCLUDE ssnoversion-md] contains Internet-enabled features that can collect and send information about your computer or device ("standard computer information") to [!INCLUDE msconame-md]. The Local Audit component of [!INCLUDE ssnoversion-md] usage and diagnostic data collection can write data collected by the service to a designated folder, representing the data (logs) that is sent to [!INCLUDE msconame-md]. The purpose of the Local Audit is to allow customers to see all data [!INCLUDE msconame-md] collects with this feature, for compliance, regulatory or privacy validation reasons.
In [!INCLUDE ssnoversion-md] on Linux, Local Audit is configurable at instance level for [!INCLUDE ssnoversion-md] Database Engine. Other [!INCLUDE ssnoversion-md] components and [!INCLUDE ssnoversion-md] Tools don't have Local Audit capability for usage and diagnostic data collection.
This option enables Local Audit and lets you set the directory where the Local Audit logs are created.
-
Create a target directory for new Local Audit logs. The following example creates a new
/tmp/audit
directory:sudo mkdir /tmp/audit
-
Change the owner and group of the directory to the
mssql
user:sudo chown mssql /tmp/audit sudo chgrp mssql /tmp/audit
-
Run the mssql-conf script as root with the
set
command fortelemetry.userrequestedlocalauditdirectory
:sudo /opt/mssql/bin/mssql-conf set telemetry.userrequestedlocalauditdirectory /tmp/audit
-
Restart the [!INCLUDE ssnoversion-md] service:
sudo systemctl restart mssql-server
To enable Local Audit in a Linux container, you must have the container persist your data.
::: moniker range="=sql-server-linux-2017 || =sql-server-2017"
-
The target directory for new Local Audit logs will be in the container. Create a target directory for new Local Audit logs in the host directory on your machine. The following example creates a new
/audit
directory:sudo mkdir <host directory>/audit
-
Add an
mssql.conf
file with the lines[telemetry]
anduserrequestedlocalauditdirectory = <host directory>/audit
in the host directory:echo '[telemetry]' >> <host directory>/mssql.conf
echo 'userrequestedlocalauditdirectory = <host directory>/audit' >> <host directory>/mssql.conf
-
Run the container image:
docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' -p 1433:1433 -v <host directory>:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2017-latest
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" -p 1433:1433 -v <host directory>:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2017-latest
::: moniker-end
::: moniker range="=sql-server-linux-ver15 || =sql-server-ver15"
-
The target directory for new Local Audit logs will be in the container. Create a target directory for new Local Audit logs in the host directory on your machine. The following example creates a new
/audit
directory:sudo mkdir <host directory>/audit
-
Add an
mssql.conf
file with the lines[telemetry]
anduserrequestedlocalauditdirectory = <host directory>/audit
in the host directory:echo '[telemetry]' >> <host directory>/mssql.conf
echo 'userrequestedlocalauditdirectory = <host directory>/audit' >> <host directory>/mssql.conf
-
Run the container image
docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' -p 1433:1433 -v <host directory>:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2019-latest
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" -p 1433:1433 -v <host directory>:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2019-latest
::: moniker-end
::: moniker range=">= sql-server-linux-ver16 || >= sql-server-ver16"
-
The target directory for new Local Audit logs will be in the container. Create a target directory for new Local Audit logs in the host directory on your machine. The following example creates a new
/audit
directory:sudo mkdir <host directory>/audit
-
Add an
mssql.conf
file with the lines[telemetry]
anduserrequestedlocalauditdirectory = <host directory>/audit
in the host directory:echo '[telemetry]' >> <host directory>/mssql.conf
echo 'userrequestedlocalauditdirectory = <host directory>/audit' >> <host directory>/mssql.conf
-
Run the container image
docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' -p 1433:1433 -v <host directory>:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2022-latest
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" -p 1433:1433 -v <host directory>:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2022-latest
::: moniker-end
Caution
[!INCLUDE password-complexity]