Commit da251c64 authored by Drew Blessing's avatar Drew Blessing

Merge branch 'docs-slack-troubleshooting' into 'master'

Add troubleshooting section to Slack Notification Service

See merge request gitlab-org/gitlab-ce!24339
parents 52ceda44 b9d24891
......@@ -23,4 +23,54 @@ The Slack Notifications Service allows your GitLab project to send events (e.g.
Your Slack team will now start receiving GitLab event notifications as configured.
![Slack configuration](img/slack_configuration.png)
\ No newline at end of file
![Slack configuration](img/slack_configuration.png)
## Troubleshooting
If you're having trouble with the Slack integration not working, then start by
searching through the [Sidekiq logs](/doc/administration/logs.md#sidekiqlog)
for errors relating to your Slack service.
### Something went wrong on our end
This is a generic error shown in the GitLab UI and doesn't mean much by itself.
You'll need to look in [the logs](/doc/administration/logs.md#productionlog) to find
an error message and keep troubleshooting from there.
### `certificate verify failed`
You may see an entry similar to the following in your Sidekiq log:
```text
2019-01-10_13:22:08.42572 2019-01-10T13:22:08.425Z 6877 TID-abcdefg ProjectServiceWorker JID-3bade5fb3dd47a85db6d78c5 ERROR: {:class=>"ProjectServiceWorker", :service_class=>"SlackService", :message=>"SSL_connect returned=1 errno=0 state=error: certificate verify failed"}
```
This is probably a problem either with GitLab communicating with Slack, or GitLab
communicating with itself. The former is less likely since Slack's security certificates
should _hopefully_ always be trusted. We can establish which we're dealing with by using
the below rails console script.
```sh
# start a rails console:
sudo gitlab-rails console production
# or for source installs:
bundle exec rails console production
```
```ruby
# run this in the Rails console
# replace <SLACK URL> with your actual Slack URL
result = Net::HTTP.get(URI('https://<SLACK URL>'));0
# replace <GITLAB URL> with your actual GitLab URL
result = Net::HTTP.get(URI('https://<GITLAB URL>'));0
```
If it's an issue with GitLab not trusting HTTPS connections to itself, then you may simply
need to [add your certificate to GitLab's trusted certificates](https://docs.gitlab.com/omnibus/settings/ssl.html#install-custom-public-certificates).
If it's an issue with GitLab not trusting connections to Slack, then the GitLab
OpenSSL trust store probably got messed up somehow. Typically this is from overriding
the trust store with `gitlab_rails['env'] = {"SSL_CERT_FILE" => "/path/to/file.pem"}`
or by accidentally modifying the default CA bundle `/opt/gitlab/embedded/ssl/certs/cacert.pem`.
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment