diff --git a/changelogs/unreleased/config-change-default-paths.md b/changelogs/unreleased/config-change-default-paths.md
new file mode 100644
index 0000000000000000000000000000000000000000..c051acaae86b4d47e2ef9f9653017d08a6be7466
--- /dev/null
+++ b/changelogs/unreleased/config-change-default-paths.md
@@ -0,0 +1,4 @@
+## feature/config
+
+* The default directory and file paths are changed to `var/run/<...>`,
+  `var/log/<...>`, `var/lib/<...>` and so on (gh-8862).
diff --git a/src/box/lua/config/instance_config.lua b/src/box/lua/config/instance_config.lua
index faccae5c67346a1f83983e6424578dfd167c6223..7d2a86ded05764e6963c5f76adaecf817e3d23d7 100644
--- a/src/box/lua/config/instance_config.lua
+++ b/src/box/lua/config/instance_config.lua
@@ -368,7 +368,7 @@ return schema.new('instance_config', schema.record({
             box_cfg = 'pid_file',
             box_cfg_nondynamic = true,
             mk_parent_dir = true,
-            default = '{{ instance_name }}.pid',
+            default = 'var/run/{{ instance_name }}/tarantool.pid',
         }),
     }),
     console = schema.record({
@@ -382,7 +382,7 @@ return schema.new('instance_config', schema.record({
             -- because otherwise the directory would be created
             -- unconditionally. Instead, mkdir applier creates it
             -- if console.enabled is true.
-            default = '{{ instance_name }}.control',
+            default = 'var/run/{{ instance_name }}/tarantool.control',
         }),
     }),
     fiber = schema.record({
@@ -440,7 +440,7 @@ return schema.new('instance_config', schema.record({
             -- because otherwise the directory would be created
             -- unconditionally. Instead, mkdir applier creates it
             -- if log.to is 'file'.
-            default = '{{ instance_name }}.log',
+            default = 'var/log/{{ instance_name }}/tarantool.log',
         }),
         pipe = schema.scalar({
             type = 'string',
@@ -767,7 +767,7 @@ return schema.new('instance_config', schema.record({
             box_cfg = 'vinyl_dir',
             box_cfg_nondynamic = true,
             mkdir = true,
-            default = '{{ instance_name }}',
+            default = 'var/lib/{{ instance_name }}',
         }),
         max_tuple_size = schema.scalar({
             type = 'integer',
@@ -827,7 +827,7 @@ return schema.new('instance_config', schema.record({
             box_cfg = 'wal_dir',
             box_cfg_nondynamic = true,
             mkdir = true,
-            default = '{{ instance_name }}',
+            default = 'var/lib/{{ instance_name }}',
         }),
         mode = schema.enum({
             'none',
@@ -908,7 +908,7 @@ return schema.new('instance_config', schema.record({
             box_cfg = 'memtx_dir',
             box_cfg_nondynamic = true,
             mkdir = true,
-            default = '{{ instance_name }}',
+            default = 'var/lib/{{ instance_name }}',
         }),
         by = schema.record({
             interval = schema.scalar({
diff --git a/test/config-luatest/appliers_test.lua b/test/config-luatest/appliers_test.lua
index 4298ee704e21cec51ea906fe55d3ebcb0987c628..7fd534f8c22cbbaced78bcecf3fc519736c4412b 100644
--- a/test/config-luatest/appliers_test.lua
+++ b/test/config-luatest/appliers_test.lua
@@ -76,8 +76,8 @@ g.test_applier_mkdir = function()
     local opts = {nojson = true, stderr = false}
     local res = justrun.tarantool(dir, env, {'main.lua'}, opts)
     t.assert_equals(res.exit_code, 0)
-    t.assert_equals(res.stdout, 'instance-001')
-    t.assert(fio.path.is_dir(fio.pathjoin(dir, 'instance-001')))
+    t.assert_equals(res.stdout, 'var/lib/instance-001')
+    t.assert(fio.path.is_dir(fio.pathjoin(dir, '/var/lib/instance-001')))
 end
 
 g.test_applier_box_cfg = function()
diff --git a/test/config-luatest/cli_test.lua b/test/config-luatest/cli_test.lua
index ffd00ae96268c66375268ea5ee0ca538139fc54b..f8b789398382af413efa20ccc9832f156e1d2414 100644
--- a/test/config-luatest/cli_test.lua
+++ b/test/config-luatest/cli_test.lua
@@ -44,7 +44,7 @@ g.test_help_env_list = function()
         {
             name = 'TT_CONSOLE_SOCKET',
             type = 'string',
-            default = '{{ instance_name }}.control',
+            default = 'var/run/{{ instance_name }}/tarantool.control',
             availability = 'Community Edition',
         },
         -- An Enterprise Edition option and, at the same time,
diff --git a/test/config-luatest/cluster_config_schema_test.lua b/test/config-luatest/cluster_config_schema_test.lua
index 0fa6480533338a61c95bb568674cdb81cb1ebc13..8c6de9202763c1978029f7eea535a54a70610c06 100644
--- a/test/config-luatest/cluster_config_schema_test.lua
+++ b/test/config-luatest/cluster_config_schema_test.lua
@@ -132,7 +132,7 @@ g.test_defaults = function()
         },
         log = {
             to = 'stderr',
-            file = '{{ instance_name }}.log',
+            file = 'var/log/{{ instance_name }}/tarantool.log',
             pipe = box.NULL,
             syslog = {
                 identity = 'tarantool',
@@ -144,7 +144,7 @@ g.test_defaults = function()
             format = 'plain',
         },
         snapshot = {
-            dir = '{{ instance_name }}',
+            dir = 'var/lib/{{ instance_name }}',
             by = {
                 interval = 3600,
                 wal_size = 1000000000000000000,
@@ -170,10 +170,10 @@ g.test_defaults = function()
             title = 'tarantool - {{ instance_name }}',
             username = box.NULL,
             work_dir = box.NULL,
-            pid_file = '{{ instance_name }}.pid',
+            pid_file = 'var/run/{{ instance_name }}/tarantool.pid',
         },
         vinyl = {
-            dir = '{{ instance_name }}',
+            dir = 'var/lib/{{ instance_name }}',
             max_tuple_size = 1048576,
             bloom_fpr = 0.05,
             page_size = 8192,
@@ -213,7 +213,7 @@ g.test_defaults = function()
             bootstrap_strategy = 'auto',
         },
         wal = {
-            dir = '{{ instance_name }}',
+            dir = 'var/lib/{{ instance_name }}',
             mode = 'write',
             max_size = 268435456,
             dir_rescan_delay = 2,
@@ -222,7 +222,7 @@ g.test_defaults = function()
         },
         console = {
             enabled = true,
-            socket = '{{ instance_name }}.control',
+            socket = 'var/run/{{ instance_name }}/tarantool.control',
         },
         memtx = {
             memory = 268435456,
diff --git a/test/config-luatest/instance_config_schema_test.lua b/test/config-luatest/instance_config_schema_test.lua
index 5b12dfc07fff2c789e963c8ee026db70e8b0f3e9..b0f8a89bfe4452553a47b834322448ac646d5c49 100644
--- a/test/config-luatest/instance_config_schema_test.lua
+++ b/test/config-luatest/instance_config_schema_test.lua
@@ -156,7 +156,7 @@ g.test_process = function()
         title = 'tarantool - {{ instance_name }}',
         username = box.NULL,
         work_dir = box.NULL,
-        pid_file = '{{ instance_name }}.pid',
+        pid_file = 'var/run/{{ instance_name }}/tarantool.pid',
     }
     local res = instance_config:apply_default({}).process
     t.assert_equals(res, exp)
@@ -174,7 +174,7 @@ g.test_console = function()
 
     local exp = {
         enabled = true,
-        socket = '{{ instance_name }}.control',
+        socket = 'var/run/{{ instance_name }}/tarantool.control',
     }
     local res = instance_config:apply_default({}).console
     t.assert_equals(res, exp)
@@ -256,7 +256,7 @@ g.test_log = function()
 
     local exp = {
         to = 'stderr',
-        file = '{{ instance_name }}.log',
+        file = 'var/log/{{ instance_name }}/tarantool.log',
         pipe = box.NULL,
         syslog = {
             identity = 'tarantool',
@@ -734,7 +734,7 @@ g.test_vinyl = function()
     validate_fields(iconfig.vinyl, instance_config.schema.fields.vinyl)
 
     local exp = {
-        dir = '{{ instance_name }}',
+        dir = 'var/lib/{{ instance_name }}',
         max_tuple_size = 1048576,
         bloom_fpr = 0.05,
         page_size = 8192,
@@ -768,7 +768,7 @@ g.test_wal = function()
     validate_fields(iconfig.wal, instance_config.schema.fields.wal)
 
     local exp = {
-        dir = '{{ instance_name }}',
+        dir = 'var/lib/{{ instance_name }}',
         mode = 'write',
         max_size = 268435456,
         dir_rescan_delay = 2,
@@ -832,7 +832,7 @@ g.test_snapshot = function()
     validate_fields(iconfig.snapshot, instance_config.schema.fields.snapshot)
 
     local exp = {
-        dir = '{{ instance_name }}',
+        dir = 'var/lib/{{ instance_name }}',
         by = {
             interval = 3600,
             wal_size = 1000000000000000000,