Sentry là một nền tảng theo dõi lỗi miễn phí và mã nguồn mở, giám sát và khắc phục sự cố theo thời gian thực. Nó cho phép các nhà phát triển phần mềm xem những gì quan trọng, giải quyết nhanh hơn và liên tục tìm hiểu về các ứng dụng của họ. Nền tảng này cung cấp thông tin chi tiết theo thời gian thực về các triển khai sản xuất với thông tin để tái tạo và khắc phục sự cố. Sentry hỗ trợ tất cả các ngôn ngữ và khuôn khổ chính và tích hợp với các ứng dụng và dịch vụ yêu thích của bạn.
Hướng dẫn này sẽ chỉ cho bạn cách cài đặt Hệ thống theo dõi lỗi Sentry với Docker trên Ubuntu 22.04.
Sau khi hệ thống của bạn được cập nhật, hãy cài đặt tất cả các gói cần thiết bằng lệnh sau:
Sau khi cài đặt tất cả các phần phụ thuộc, bạn có thể tiến hành bước tiếp theo.
Đầu tiên, hãy tải xuống và thêm khóa GPG của Docker bằng lệnh sau.
Tiếp theo, hãy thêm kho lưu trữ Docker bằng lệnh sau.
Sau khi kho lưu trữ được thêm vào, hãy cập nhật bộ đệm kho lưu trữ bằng lệnh sau lệnh.
Tiếp theo, cài đặt cả Docker và Docker Compose bằng lệnh sau.
Sau khi cả hai gói được cài đặt, hãy khởi động dịch vụ Docker và cho phép dịch vụ này khởi động khi khởi động lại hệ thống bằng lệnh sau lệnh:
Bây giờ bạn có thể xác minh trạng thái của Docker bằng lệnh sau:
Bạn sẽ nhận được thông báo sau đầu ra:
Để kiểm tra phiên bản Docker, hãy chạy lệnh sau:
Bạn sẽ thấy thông báo sau đầu ra:
Bạn cũng có thể kiểm tra phiên bản Docker compose bằng lệnh sau:
Bạn sẽ thấy kết quả sau:
Sau khi tải xuống hoàn tất, hãy thay đổi thư mục thành thư mục đã tải xuống và chạy tập lệnh cài đặt Sentry để bắt đầu cài đặt.
Trong quá trình cài đặt, bạn sẽ được yêu cầu tạo tài khoản quản trị viên như hình minh họa bên dưới:
Tiếp theo, xác minh tất cả các hình ảnh đã tải xuống bằng lệnh sau.
Bạn sẽ thấy thông báo sau đầu ra.
Lệnh này sẽ khởi động tất cả các container cho Sentry như được hiển thị bên dưới:
Bạn có thể xác minh trạng thái của tất cả các container bằng lệnh sau lệnh.
Bạn sẽ thấy kết quả sau.
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22366%22%3E%3C/svg%3E
Cung cấp tên người dùng quản trị, mật khẩu và nhấp vào nút Đăng nhập. Bạn sẽ thấy trang sau:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22401%22%3E%3C/svg%3E
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22382%22%3E%3C/svg%3E
Cung cấp URL Sentry, địa chỉ email và thông tin chi tiết SMTP của bạn, rồi nhấp vào nút Tiếp tục. Bạn sẽ thấy bảng điều khiển mặc định của Sentry trên trang sau:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22369%22%3E%3C/svg%3E
Hướng dẫn này sẽ chỉ cho bạn cách cài đặt Hệ thống theo dõi lỗi Sentry với Docker trên Ubuntu 22.04.
Điều kiện tiên quyết
- Một máy chủ chạy Ubuntu 22.04.
- Một tên miền hợp lệ được trỏ đến IP máy chủ của bạn.
- Một mật khẩu gốc được cấu hình trên máy chủ của bạn.
Cài đặt các phụ thuộc bắt buộc
Trước khi bắt đầu, bạn nên cập nhật các gói của mình lên phiên bản mới nhất. Bạn có thể cập nhật chúng bằng lệnh sau:
Mã:
apt update -y
apt upgrade -y
Mã:
apt-get install curl git build-essential apt-transport-https ca-certificates software-properties-common -y
Cài đặt Docker và Docker Compose
Theo mặc định, phiên bản mới nhất của Docker và gói Docker Compose không có trong kho lưu trữ mặc định của Ubuntu 22.04. Vì vậy, bạn sẽ cần thêm kho lưu trữ chính thức của Docker vào APT.Đầu tiên, hãy tải xuống và thêm khóa GPG của Docker bằng lệnh sau.
Mã:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
Mã:
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
Mã:
apt update -y
Mã:
apt install docker docker-compose -y
Mã:
systemctl start docker
systemctl enable docker
Mã:
systemctl status docker
Mã:
? docker.service - Docker Application Container Engine Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2023-01-10 04:37:27 UTC; 5s ago
TriggeredBy: ? docker.socket Docs: https://docs.docker.com Main PID: 45847 (dockerd) Tasks: 8 Memory: 29.1M CPU: 220ms CGroup: /system.slice/docker.service ??45847 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
Jan 10 04:37:26 vultr dockerd[45847]: time="2023-01-10T04:37:26.903435377Z" level=info msg="scheme \"unix\" not registered, fallback to defau>
Jan 10 04:37:26 vultr dockerd[45847]: time="2023-01-10T04:37:26.903453803Z" level=info msg="ccResolverWrapper: sending update to cc: {[{unix:>
Jan 10 04:37:26 vultr dockerd[45847]: time="2023-01-10T04:37:26.903464761Z" level=info msg="ClientConn switching balancer to \"pick_first\"" >
Jan 10 04:37:26 vultr dockerd[45847]: time="2023-01-10T04:37:26.916581613Z" level=info msg="Loading containers: start."
Jan 10 04:37:26 vultr dockerd[45847]: time="2023-01-10T04:37:26.997807510Z" level=info msg="Default bridge (docker0) is assigned with an IP a>
Jan 10 04:37:27 vultr dockerd[45847]: time="2023-01-10T04:37:27.060381720Z" level=info msg="Loading containers: done."
Jan 10 04:37:27 vultr dockerd[45847]: time="2023-01-10T04:37:27.074467014Z" level=info msg="Docker daemon" commit=20.10.12-0ubuntu4 graphdriv>
Jan 10 04:37:27 vultr dockerd[45847]: time="2023-01-10T04:37:27.074649813Z" level=info msg="Daemon has completed initialization"
Jan 10 04:37:27 vultr systemd[1]: Started Docker Application Container Engine.
Jan 10 04:37:27 vultr dockerd[45847]: time="2023-01-10T04:37:27.092699576Z" level=info msg="API listen on /run/docker.sock"
Mã:
docker --version
Mã:
Docker version 20.10.12, build 20.10.12-0ubuntu4
Mã:
docker-compose --version
Mã:
docker-compose version 1.29.2, build unknown
Cài đặt Sentry
Đầu tiên, hãy tải xuống phiên bản Sentry mới nhất từ kho lưu trữ Git bằng cách sử dụng lệnh sau lệnh:
Mã:
git clone https://github.com/getsentry/onpremise
Mã:
cd onpremise
bash install.sh
Mã:
Here's the info we may collect: - OS username - IP address - install log - runtime errors - performance data
Thirty (30) day retention. No marketing. Privacy policy at sentry.io/privacy.
Would you like to create a user account now? [Y/n]: y
Email: Email: [emailprotected]
Password:
Repeat for confirmation:
Added to organization: sentry
User created: [emailprotected]
Creating missing DSNs
Correcting Group.num_comments counter
-----------------------------------------------------------------
You're all done! Run the following command to get Sentry running: docker-compose up -d
-----------------------------------------------------------------
Mã:
docker images
Mã:
REPOSITORY TAG IMAGE ID CREATED SIZE
sentry-cleanup-self-hosted-local latest 04fa0fce18f0 4 minutes ago 908MB
symbolicator-cleanup-self-hosted-local latest 6837f5f48e6c 5 minutes ago 180MB
snuba-cleanup-self-hosted-local latest 242b7b248e1c 5 minutes ago 486MB
sentry-self-hosted-local latest 101b00356aa6 5 minutes ago 907MB
sentry-self-hosted-jq-local latest 83c66fd3f78f 6 minutes ago 82.5MB
getsentry/sentry nightly cf0f404d102e About an hour ago 907MB
getsentry/snuba nightly fc6c2d286bf8 8 hours ago 484MB
getsentry/relay nightly 43cd2ba5497c 5 days ago 242MB
busybox latest 66ba00ad3de8 6 days ago 4.87MB
tianon/exim4 latest 12842ac621c1 2 weeks ago 158MB
debian bullseye-slim dd94cb611937 2 weeks ago 80.5MB
getsentry/sentry-cli latest a585383ff864 2 weeks ago 26.3MB
getsentry/symbolicator nightly 80d9b41cd195 3 weeks ago 178MB
nginx 1.22.0-alpine 5685937b6bc1 3 months ago 23.5MB
postgres 9.6 027ccf656dc1 11 months ago 200MB
confluentinc/cp-kafka 5.5.0 efc480c1c89c 15 months ago 598MB
confluentinc/cp-zookeeper 5.5.0 ddeb961d8e80 15 months ago 598MB
redis 6.2.4-alpine 500703a12fa4 18 months ago 32.3MB
memcached 1.6.9-alpine a0132b3398e4 18 months ago 8.09MB
curlimages/curl 7.77.0 e062233fb4a9 19 months ago 8.26MB
maxmindinc/geoipupdate v4.7.1 8ec32cc727c7 21 months ago 10.6MB
clickhouse-self-hosted-local latest abe55fc6544d 2 years ago 497MB
yandex/clickhouse-server 20.3.9.70 abe55fc6544d 2 years ago 497MB
Khởi chạy Sentry Container
Lúc này, Sentry đã được cài đặt. Bây giờ bạn có thể khởi động container Sentry bằng lệnh sau:
Mã:
docker-compose up -d
Mã:
Starting sentry_onpremise_memcached_1 ... done
Starting sentry_onpremise_redis_1 ... done
Starting sentry_onpremise_symbolicator_1 ... done
Creating sentry_onpremise_symbolicator-cleanup_1 ... done
Starting sentry_onpremise_zookeeper_1 ... done
Starting sentry_onpremise_clickhouse_1 ... done
Starting sentry_onpremise_smtp_1 ... done
Starting sentry_onpremise_postgres_1 ... done
Starting sentry_onpremise_kafka_1 ... done
Starting sentry_onpremise_snuba-consumer_1 ... done
Starting sentry_onpremise_snuba-outcomes-consumer_1 ... done
Starting sentry_onpremise_snuba-api_1 ... done
Starting sentry_onpremise_snuba-sessions-consumer_1 ... done
Starting sentry_onpremise_snuba-replacer_1 ... done
Creating sentry_onpremise_snuba-cleanup_1 ... done
Creating sentry_onpremise_relay_1 ... done
Creating sentry_onpremise_web_1 ... done
Creating sentry_onpremise_post-process-forwarder_1 ... done
Creating sentry_onpremise_cron_1 ... done
Creating sentry_onpremise_sentry-cleanup_1 ... done
Creating sentry_onpremise_worker_1 ... done
Creating sentry_onpremise_ingest-consumer_1 ... done
Creating sentry_onpremise_nginx_1 ... done
Mã:
docker-compose ps
Mã:
Name Command State Ports
----------------------------------------------------------------------------------------------------------------------------------------------
sentry-self-hosted_clickhouse_1 /entrypoint.sh Up (healthy) 8123/tcp, 9000/tcp, 9009/tcp
sentry-self-hosted_cron_1 /etc/sentry/entrypoint.sh ... Up 9000/tcp
sentry-self-hosted_geoipupdate_1 /usr/bin/geoipupdate -d /s ... Exit 1
sentry-self-hosted_ingest-consumer_1 /etc/sentry/entrypoint.sh ... Up 9000/tcp
sentry-self-hosted_kafka_1 /etc/confluent/docker/run Up (healthy) 9092/tcp
sentry-self-hosted_memcached_1 docker-entrypoint.sh memcached Up (healthy) 11211/tcp
sentry-self-hosted_nginx_1 /docker-entrypoint.sh ngin ... Up 0.0.0.0:9000->80/tcp,:::9000->80/tcp
sentry-self-hosted_post-process-forwarder-errors_1 /etc/sentry/entrypoint.sh ... Up 9000/tcp
sentry-self-hosted_post-process-forwarder- /etc/sentry/entrypoint.sh ... Up 9000/tcp
transactions_1
sentry-self-hosted_postgres_1 /opt/sentry/postgres-entry ... Up (healthy) 5432/tcp
sentry-self-hosted_redis_1 docker-entrypoint.sh redis ... Up (healthy) 6379/tcp
sentry-self-hosted_relay_1 /bin/bash /docker-entrypoi ... Up 3000/tcp
sentry-self-hosted_sentry-cleanup_1 /entrypoint.sh 0 0 * * * g ... Up 9000/tcp
sentry-self-hosted_smtp_1 docker-entrypoint.sh exim ... Up 25/tcp
sentry-self-hosted_snuba-api_1 ./docker_entrypoint.sh api Up 1218/tcp
sentry-self-hosted_snuba-cleanup_1 /entrypoint.sh */5 * * * * ... Up 1218/tcp
sentry-self-hosted_snuba-consumer_1 ./docker_entrypoint.sh con ... Up 1218/tcp
sentry-self-hosted_snuba-outcomes-consumer_1 ./docker_entrypoint.sh con ... Up 1218/tcp
sentry-self-hosted_snuba-replacer_1 ./docker_entrypoint.sh rep ... Up 1218/tcp
sentry-self-hosted_snuba-sessions-consumer_1 ./docker_entrypoint.sh con ... Up 1218/tcp
sentry-self-hosted_snuba-subscription-consumer-events_1 ./docker_entrypoint.sh sub ... Up 1218/tcp
sentry-self-hosted_snuba-subscription-consumer- ./docker_entrypoint.sh sub ... Up 1218/tcp
transactions_1
sentry-self-hosted_snuba-transactions-cleanup_1 /entrypoint.sh */5 * * * * ... Up 1218/tcp
sentry-self-hosted_snuba-transactions-consumer_1 ./docker_entrypoint.sh con ... Up 1218/tcp
sentry-self-hosted_subscription-consumer-events_1 /etc/sentry/entrypoint.sh ... Up 9000/tcp
sentry-self-hosted_subscription-consumer-transactions_1 /etc/sentry/entrypoint.sh ... Up 9000/tcp
sentry-self-hosted_symbolicator-cleanup_1 /entrypoint.sh 55 23 * * * ... Up 3021/tcp
sentry-self-hosted_symbolicator_1 /bin/bash /docker-entrypoi ... Up 3021/tcp
sentry-self-hosted_web_1 /etc/sentry/entrypoint.sh ... Up (healthy) 9000/tcp
sentry-self-hosted_worker_1 /etc/sentry/entrypoint.sh ... Up 9000/tcp
sentry-self-hosted_zookeeper_1 /etc/confluent/docker/run Up (healthy) 2181/tcp, 2888/tcp, 3888/tcp
Truy cập Giao diện người dùng web Sentry
Lúc này, Sentry đã được khởi động và lắng nghe trên cổng 9000. Bây giờ, hãy mở trình duyệt web và nhập URL để truy cập bảng điều khiển Sentry. Bạn sẽ được chuyển hướng đến trang đăng nhập Sentry như hiển thị bên dưới:data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22366%22%3E%3C/svg%3E
Cung cấp tên người dùng quản trị, mật khẩu và nhấp vào nút Đăng nhập. Bạn sẽ thấy trang sau:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22401%22%3E%3C/svg%3E
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22382%22%3E%3C/svg%3E
Cung cấp URL Sentry, địa chỉ email và thông tin chi tiết SMTP của bạn, rồi nhấp vào nút Tiếp tục. Bạn sẽ thấy bảng điều khiển mặc định của Sentry trên trang sau:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22369%22%3E%3C/svg%3E