Forum Discussion
AST Configuration Assistance
All, I had AST configured on a RHEL platform and the 3000 port as web available.
Something changed in our environment and I had to wipe away the docker configuration and I am starting from scratch on the same RHEL instance.
Docker is working as "sudo docker run hello-world" states "This message shows that your installation appears to be working correctly."
I deleted the old application-study-tool and added the folder from the tarball to my home directory.
I copied and edited the below :
cp .env-example .env
cp .env.device-secrets-example .env.device-secrets
vi ./config/ast_defaults.yaml
vi ./config/bigip_receivers.yaml
That all took like before the first installation.
When I run this " docker run --rm -it -w /app -v ${PWD}:/app --entrypoint /app/src/bin/init_entrypoint.sh python:3.12.6-slim-bookworm --generate-config "...I get the error :
"docker: Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: exec: "/app/src/bin/init_entrypoint.sh": stat /app/src/bin/init_entrypoint.sh: no such file or directory: unknown"
That is where I am stuck.
Python version is python3.11
Wanted to reach out here first before I potentially tried it on another RHEL box - clean install.
Any help or direction would be appreciated.
18 Replies
- JasonEpstein
Employee
Can you check something quickly?
From your application-study-tool/ directory, which I believe you are already in (you can run "pwd" to confirm), run the following to spot check executable permissions for a few of the required directories:ls -l ./services/otel_collector/
ls -l ./services/otel-collector-config/defaults/
ls -l ./services/grafana/
ls -l ./services/grafana/provisioning/
ls -l ./services/prometheus/If these directories are not executable by "other", then you'll need to enable that permission. You can do so using the following command from the application-study-tool/ directory:
sudo chmod -R o+X services
(I also go into more detail on why this issue occurs and how to fix it in my blog, File Permissions Errors When Installing F5 Application Study Tool? Here’s Why.) - Mikesisav
Altocumulus
Jason, Happy 2026....I am still here. There is a lot of text in the below. Sorry for the verbosity but we did make progress. getting stuck at "sudo compose docker up". See the below.
Update: ...made progress and was able to run past "docker run --rm -it -w /app -v ${PWD}:/app --entrypoint /app/src/bin/init_entrypoint.sh python:3.12.6-slim-bookworm --generate-config" Get the below.
sudo docker run --rm -it -w /app -v ${PWD}:/app --entrypoint /app/src/bin/init_entrypoint.sh python:3.12.6-slim-bookworm --generate-config
Collecting PyYAML==6.0.2
Downloading PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (2.1 kB)
Downloading PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (767 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 767.5/767.5 kB 24.0 MB/s eta 0:00:00
Installing collected packages: PyYAML
Successfully installed PyYAML-6.0.2
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager, possibly rendering your system unusable.It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv. Use the --root-user-action option if you know what you are doing and want to suppress this warning.
[notice] A new release of pip is available: 24.2 -> 25.3
[notice] To update, run: pip install --upgrade pip
2026-01-27 19:01:10,067 - INFO - Generating configs from ./config/ast_defaults.yaml and ./config/bigip_receivers.yaml...
2026-01-27 19:01:10,067 - INFO - Loading AST Default Settings in ./config/ast_defaults.yaml...
2026-01-27 19:01:10,074 - INFO - Successfully loaded './config/ast_defaults.yaml'.
2026-01-27 19:01:10,074 - INFO - Loading Per-Receiver (BigIP) Settings in ./config/bigip_receivers.yaml...
2026-01-27 19:01:10,076 - INFO - Successfully loaded './config/bigip_receivers.yaml'.
2026-01-27 19:01:10,077 - INFO - Generating receiver configs...
2026-01-27 19:01:10,077 - INFO - Generating pipeline configs...
2026-01-27 19:01:10,077 - WARNING - The f5_data_export=true and f5_pipeline_default fields are required to export metrics periodically to F5. Contact your F5 Sales Rep to provision a Sensor ID and Access Token.
2026-01-27 19:01:10,077 - INFO - Built the following pipeline file:
metrics/local:
exporters:
- otlphttp/metrics-local
- debug/bigip
processors:
- batch/local
receivers:
- bigip/1
2026-01-27 19:01:10,078 - INFO - Built the following receiver file:
bigip/1:
collection_interval: 60s
data_types:
f5.apm:
enabled: false
f5.cgnat:
enabled: false
f5.dns:
enabled: false
f5.dos:
enabled: false
f5.firewall:
enabled: false
f5.gtm:
enabled: false
f5.policy.api_protection:
enabled: false
f5.policy.asm:
enabled: false
f5.policy.firewall:
enabled: false
f5.policy.ip_intelligence:
enabled: false
f5.policy.nat:
enabled: false
f5.profile.dos:
enabled: false
endpoint: https://10.232.1.77
password: ${env:BIGIP_PASSWORD_1}
timeout: 60s
tls:
ca_file: ''
insecure_skip_verify: false
username: admin
2026-01-27 19:01:10,087 - INFO - Successfully wrote data to './services/otel_collector/pipelines.yaml'.
2026-01-27 19:01:10,096 - INFO - Successfully wrote data to './services/otel_collector/receivers.yaml'.
[s331325@f05astpl001 application-study-tool]$
Now when doing "sudo docker compose up"... get the following error : "
grafana | logger=provisioning.datasources t=2026-01-27T18:58:19.649894511Z level=error msg="can't read datasource provisioning files from directory" path=/etc/grafana/provisioning/datasources error="open /etc/grafana/provisioning/datasources: permission denied"
grafana | logger=provisioning.plugins t=2026-01-27T18:58:19.67632371Z level=error msg="Failed to read plugin provisioning files from directory" path=/etc/grafana/provisioning/plugins error="open /etc/grafana/provisioning/plugins: permission denied"
grafana | logger=provisioning.alerting t=2026-01-27T18:58:19.676411247Z level=error msg="can't read alerting provisioning files from directory" path=/etc/grafana/provisioning/alerting error="open /etc/grafana/provisioning/alerting: permission denied"
grafana | logger=provisioning.alerting t=2026-01-27T18:58:19.676417257Z level=info msg="starting to provision alerting"
grafana | logger=provisioning.alerting t=2026-01-27T18:58:19.67642702Z level=info msg="finished to provision alerting"
grafana | logger=provisioning.dashboard t=2026-01-27T18:58:19.676436736Z level=error msg="can't read dashboard provisioning files from directory" path=/etc/grafana/provisioning/dashboards error="open /etc/grafana/provisioning/dashboards: permission denied"
grafana | logger=http.server t=2026-01-27T18:58:19.67676324Z level=info msg="HTTP Server Listen" address=0.0.0.0:3000 protocol=http subUrl= socket=
grafana | logger=provisioning.dashboard t=2026-01-27T18:58:19.723051927Z level=info msg="starting to provision dashboards"
grafana | logger=provisioning.dashboard t=2026-01-27T18:58:19.72307652Z level=info msg="finished to provision dashboards"
grafana | logger=grafana-apiserver t=2026-01-27T18:58:19.90612739Z level=info msg="Adding GroupVersion userstorage.grafana.app v0alpha1 to ResourceManager"
grafana | logger=grafana-apiserver t=2026-01-27T18:58:19.906792166Z level=info msg="Adding GroupVersion playlist.grafana.app v0alpha1 to ResourceManager"
grafana | logger=grafana-apiserver t=2026-01-27T18:58:19.907291435Z level=info msg="Adding GroupVersion featuretoggle.grafana.app v0alpha1 to ResourceManager"
grafana | logger=grafana-apiserver t=2026-01-27T18:58:19.9085977Z level=info msg="Adding GroupVersion iam.grafana.app v0alpha1 to ResourceManager"
grafana | logger=grafana-apiserver t=2026-01-27T18:58:19.910245956Z level=info msg="Adding GroupVersion notifications.alerting.grafana.app v0alpha1 to ResourceManager"
grafana | logger=app-registry t=2026-01-27T18:58:19.942745581Z level=info msg="app registry initialized"
grafana | logger=plugin.backgroundinstaller t=2026-01-27T18:58:20.165873398Z level=info msg="Installing plugin" pluginId=grafana-lokiexplore-app version=
grafana | logger=plugins.update.checker t=2026-01-27T18:58:20.16628026Z level=info msg="Update check succeeded" duration=542.57888ms
grafana | logger=grafana.update.checker t=2026-01-27T18:58:20.166481732Z level=info msg="Update check succeeded" duration=542.932799ms
grafana | logger=plugin.installer t=2026-01-27T18:58:20.216209971Z level=info msg="Updating plugin" pluginId=grafana-lokiexplore-app from=1.0.31 to=1.0.34
grafana | logger=plugin.angulardetectorsprovider.dynamic t=2026-01-27T18:58:20.217751349Z level=info msg="Patterns update finished" duration=624.259046ms
otel-collector-1 | Error: failed to get config: cannot resolve the configuration: cannot retrieve the configuration: unable to read the file file:/etc/otel-collector-config/defaults/bigip-scraper-config.yaml: open /etc/otel-collector-config/defaults/bigip-scraper-config.yaml: permission denied
otel-collector-1 | 2026/01/27 18:58:20 collector server run finished with error: failed to get config: cannot resolve the configuration: cannot retrieve the configuration: unable to read the file file:/etc/otel-collector-config/defaults/bigip-scraper-config.yaml: open /etc/otel-collector-config/defaults/bigip-scraper-config.yaml: permission denied
otel-collector-1 exited with code 1 (restarting)
grafana | logger=installer.fs t=2026-01-27T18:58:20.821082742Z level=info msg="Downloaded and extracted grafana-lokiexplore-app v1.0.34 zip successfully to /var/lib/grafana/plugins/grafana-lokiexplore-app"
grafana | logger=plugins.registration t=2026-01-27T18:58:20.895879816Z level=info msg="Plugin registered" pluginId=grafana-lokiexplore-app
grafana | logger=plugin.backgroundinstaller t=2026-01-27T18:58:20.895912971Z level=info msg="Plugin successfully installed" pluginId=grafana-lokiexplore-app version= duration=730.011779ms
grafana | logger=plugin.backgroundinstaller t=2026-01-27T18:58:20.940501472Z level=info msg="Installing plugin" pluginId=grafana-pyroscope-app version=
grafana | logger=plugin.installer t=2026-01-27T18:58:20.988538131Z level=info msg="Updating plugin" pluginId=grafana-pyroscope-app from=1.12.0 to=1.15.2
grafana | logger=installer.fs t=2026-01-27T18:58:21.122997211Z level=info msg="Downloaded and extracted grafana-pyroscope-app v1.15.2 zip successfully to /var/lib/grafana/plugins/grafana-pyroscope-app"
grafana | logger=plugins.registration t=2026-01-27T18:58:21.159611196Z level=info msg="Plugin registered" pluginId=grafana-pyroscope-app
grafana | logger=plugin.backgroundinstaller t=2026-01-27T18:58:21.159643085Z level=info msg="Plugin successfully installed" pluginId=grafana-pyroscope-app version= duration=219.110763ms
otel-collector-1 | Error: failed to get config: cannot resolve the configuration: cannot retrieve the configuration: unable to read the file file:/etc/otel-collector-config/defaults/bigip-scraper-config.yaml: open /etc/otel-collector-config/defaults/bigip-scraper-config.yaml: permission denied
otel-collector-1 | 2026/01/27 18:58:21 collector server run finished with error: failed to get config: cannot resolve the configuration: cannot retrieve the configuration: unable to read the file file:/etc/otel-collector-config/defaults/bigip-scraper-config.yaml: open /etc/otel-collector-config/defaults/bigip-scraper-config.yaml: permission denied
otel-collector-1 exited with code 1 (restarting)
otel-collector-1 | Error: failed to get config: cannot resolve the configuration: cannot retrieve the configuration: unable to read the file file:/etc/otel-collector-config/defaults/bigip-scraper-config.yaml: open /etc/otel-collector-config/defaults/bigip-scraper-config.yaml: permission denied
otel-collector-1 | 2026/01/27 18:58:23 collector server run finished with error: failed to get config: cannot resolve the configuration: cannot retrieve the configuration: unable to read the file file:/etc/otel-collector-config/defaults/bigip-scraper-config.yaml: open /etc/otel-collector-config/defaults/bigip-scraper-config.yaml: permission denied
otel-collector-1 exited with code 1 (restarting)
otel-collector-1 | Error: failed to get config: cannot resolve the configuration: cannot retrieve the configuration: unable to read the file file:/etc/otel-collector-config/defaults/bigip-scraper-config.yaml: open /etc/otel-collector-config/defaults/bigip-scraper-config.yaml: permission denied
otel-collector-1 | 2026/01/27 18:58:27 collector server run finished with error: failed to get config: cannot resolve the configuration: cannot retrieve the configuration: unable to read the file file:/etc/otel-collector-config/defaults/bigip-scraper-config.yaml: open /etc/otel-collector-config/defaults/bigip-scraper-config.yaml: permission denied
otel-collector-1 exited with code 1 (restarting)
otel-collector-1 | Error: failed to get config: cannot resolve the configuration: cannot retrieve the configuration: unable to read the file file:/etc/otel-collector-config/defaults/bigip-scraper-config.yaml: open /etc/otel-collector-config/defaults/bigip-scraper-config.yaml: permission denied
otel-collector-1 | 2026/01/27 18:58:33 collector server run finished with error: failed to get config: cannot resolve the configuration: cannot retrieve the configuration: unable to read the file file:/etc/otel-collector-config/defaults/bigip-scraper-config.yaml: open /etc/otel-collector-config/defaults/bigip-scraper-config.yaml: permission denied
otel-collector-1 exited with code 1 (restarting)
otel-collector-1 | Error: failed to get config: cannot resolve the configuration: cannot retrieve the configuration: unable to read the file file:/etc/otel-collector-config/defaults/bigip-scraper-config.yaml: open /etc/otel-collector-config/defaults/bigip-scraper-config.yaml: permission denied
otel-collector-1 | 2026/01/27 18:58:47 collector server run finished with error: failed to get config: cannot resolve the configuration: cannot retrieve the configuration: unable to read the file file:/etc/otel-collector-config/defaults/bigip-scraper-config.yaml: open /etc/otel-collector-config/defaults/bigip-scraper-config.yaml: permission denied
otel-collector-1 exited with code 1 (restarting)
grafana | logger=infra.usagestats t=2026-01-27T18:59:00.580020213Z level=info msg="Usage stats are ready to report"
otel-collector-1 | Error: failed to get config: cannot resolve the configuration: cannot retrieve the configuration: unable to read the file file:/etc/otel-collector-config/defaults/bigip-scraper-config.yaml: open /etc/otel-collector-config/defaults/bigip-scraper-config.yaml: permission denied
otel-collector-1 | 2026/01/27 18:59:13 collector server run finished with error: failed to get config: cannot resolve the configuration: cannot retrieve the configuration: unable to read the file file:/etc/otel-collector-config/defaults/bigip-scraper-config.yaml: open /etc/otel-collector-config/defaults/bigip-scraper-config.yaml: permission denied
otel-collector-1 exited with code 1 (restarting)
otel-collector-1 | Error: failed to get config: cannot resolve the configuration: cannot retrieve the configuration: unable to read the file file:/etc/otel-collector-config/defaults/bigip-scraper-config.yaml: open /etc/otel-collector-config/defaults/bigip-scraper-config.yaml: permission denied
otel-collector-1 | 2026/01/27 19:00:04 collector server run finished with error: failed to get config: cannot resolve the configuration: cannot retrieve the configuration: unable to read the file file:/etc/otel-collector-config/defaults/bigip-scraper-config.yaml: open /etc/otel-collector-config/defaults/bigip-scraper-config.yaml: permission denied
otel-collector-1 exited with code 1 (restarting)
Thanks for your time.
- JasonEpstein
Employee
Sounds good. Let us know how it goes.
- JasonEpstein
Employee
You're close. It looks like you just need "sudo" before "docker compose up", and you should get past the permissions issue.
So:sudo docker compose upAlso, there shouldn't be a quote (") after the previous docker command, but it looks like you have it working.
- Mikesisav
Altocumulus
Can't seem to see the threaded Forrest through the threaded trees here. Only one cup of coffee. Will update after doing some more testing. Thank you.
- Mikesisav
Altocumulus
Jason,
Happy New Year.
I was able to run "chmod -R o+r ." and then successfully, which seems to move then next command forward from last year's work "
sudo docker run --rm -it -w /app -v ${PWD}:/app --entrypoint /app/src/bin/init_entrypoint.sh python:3.12.6-slim-bookworm --generate-config". The last lines for that last command are "
2026-01-07 22:37:39,991 - INFO - Successfully wrote data to './services/otel_collector/pipelines.yaml'.
2026-01-07 22:37:39,997 - INFO - Successfully wrote data to './services/otel_collector/receivers.yaml'."
I then tried to run "docker compose up" next and get this "
unable to get image 'grafana/grafana@sha256:6128afd8174f01e39a78341cb457588f723bbb9c3b25c4d43c4b775881767069': permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.51/images/grafana/grafana@sha256:6128afd8174f01e39a78341cb457588f723bbb9c3b25c4d43c4b775881767069/json": dial unix /var/run/docker.sock: connect: permission denied"
This still reads like a permission issue, potentially?
Thank you for your time and efforts.
- JasonEpstein
Employee
Another thing I realized today when working with another customer with a similar permissions issue: if you want to work with your existing clone of the repo, you will also need to enable executable permissions for user, "other", on all directories. This is also required for access to these files.
From the application-study-tool/ directory, run "chmod -R o+X services" (you might need "sudo" before this command as well). Note the capital "X", which will only change the permissions of the directories -- not the files.
- Mikesisav
Altocumulus
I missed this entry as I had to hit a hyperlink. Not sure why it just did not thread it lower. Whatever. I will try this today instead of "chmod -R o+r ." from yesterday as I just saw it and report back. Thanks, again, Jason.
- JasonEpstein
Employee
You have a few choices now. With the new umask value, you can re-clone the repo and start over, or you can make everything readable for "other" within the existing repo you have. If you decide to do the latter, the command, "chmod -R o+r .", will do that. (You might need "sudo" before it if your existing user account doesn't have sufficient permissions to change these files.)
On a separate note, I now see that the "ls -l otel-collector-config/defaults/" command you were running should have been "ls -l services/otel_collector/defaults/". That should work better for listing the files in this directory.
- Mikesisav
Altocumulus
Edited to reflect umask 0022 :
[user@f05astpl001 application-study-tool]$ umask
0022Ran sudo docker compose up and still having issues with /etc permissions.
Also : [user@f05astpl001 application-study-tool]$ ls -l otel-collector-config/defaults/
ls: cannot access 'otel-collector-config/defaults/': No such file or directoryexample : Error: failed to get config: cannot resolve the configuration: cannot retrieve the configuration: unable to read the file file:/etc/otel-collector-config/defaults/bigip-scraper-config.yaml: open /etc/otel-collector-config/defaults/bigip-scraper-config.yaml: permission denied
otel-collector-1 | 2025/12/01 16:51:52 collector server run finished with error: failed to get config: cannot resolve the configuration: cannot retrieve the configuration: unable to read the file file:/etc/otel-collector-config/defaults/bigip-scraper-config.yaml: open /etc/otel-collector-config/defaults/bigip-scraper-config.yaml: permission deniedThanks for your help with this.
Any idea what I can do next..perhaps this next option?
If you don't, or would prefer to preserve the configuration you've already done, you'll need to modify the permissions in your existing repo clone
- JasonEpstein
Employee
Thanks, Mikesisav.
The umask value of 0027 ends with a 7, which will strip away all permissions for user "other". This will continue to happen even if you reinstall AST. To solve this, you need to either change the umask (by running a command like "umask 0022", which removes write permissions from users, "group" and "other", but leaves read and execute permissions intact) or manually add read (and execute, where appropriate) permissions to all files, recursively, in the directory after cloning the repo.
Running the umask command is the cleanest way to overcome this (but would require a fresh clone of the Git repo), but you might not have permissions to run that command. If you don't, or would prefer to preserve the configuration you've already done, you'll need to modify the permissions in your existing repo clone.
Hope that makes sense. Let me know if anything is unclear and, if you run through this, let me know how it goes.
- Mikesisav
Altocumulus
thanks, jason. here go :
[user@f05astpl001 application-study-tool]$ pwd
/nas/home/user/application-study-tool
[user@f05astpl001 application-study-tool]$ umask
0027
[user@f05astpl001 application-study-tool]$ ls -l otel-collector-config/defaults/
ls: cannot access 'otel-collector-config/defaults/': No such file or directory
[user@f05astpl001 application-study-tool]$
Help guide the future of your DevCentral Community!
What tools do you use to collaborate? (1min - anonymous)Recent Discussions
Related Content
* Getting Started on DevCentral
* Community Guidelines
* Community Terms of Use / EULA
* Community Ranking Explained
* Community Resources
* Contact the DevCentral Team
* Update MFA on account.f5.com