Font size
WorksheetsVTI - RabbitMQ, Git, Monitor, Log,
Total questions: 75
Worksheet time: 1hrs 15mins
RabbitMQ là gì?
Một hệ thống quản lý cơ sở dữ liệu
Một message broker mã nguồn mở sử dụng giao thức AMQP
Một web server
Một framework Java
RabbitMQ sử dụng giao thức nào để giao tiếp giữa producer và consumer?
HTTP
FTP
AMQP
MQTT
RabbitMQ hoạt động dựa trên mô hình nào?
Publish-Subscribe
Request-Response
Point-to-Point
Tất cả đều đúng
Thành phần nào chịu trách nhiệm lưu trữ và quản lý message trong RabbitMQ?
Producer
Exchange
Queue
Consumer
Trong RabbitMQ, exchange có nhiệm vụ gì?
Gửi message đến queue theo routing key
Lưu trữ message tạm thời
Trực tiếp gửi message đến consumer
Xóa message khỏi queue
Các loại exchange trong RabbitMQ gồm có những loại nào?
Direct, Fanout, Topic, Headers
Direct, Random, Topic, Delay
Load Balancer, Direct, Topic, Queue
Header, Priority, Load Balancer
Routing key được sử dụng như thế nào trong exchange Direct?
Routing key phải khớp chính xác với queue binding key
Routing key không có tác dụng
Routing key chỉ dùng cho exchange kiểu Fanout
Routing key sẽ tự động được hệ thống RabbitMQ tạo
Điều gì xảy ra nếu một message được gửi đến một exchange mà không có queue nào được bind với nó?
Message sẽ bị mất
Message sẽ được lưu lại chờ có queue bind sau này
Exchange sẽ tự động tạo queue mới
Message sẽ được gửi đến tất cả consumer
Cách tốt nhất để đảm bảo message không bị mất khi RabbitMQ gặp sự cố là gì?
Sử dụng queue bền vững (durable queue) và message persistent
Luôn giữ một bản sao message trên producer
Gửi message đến nhiều exchange khác nhau
Không có cách nào đảm bảo 100%
RabbitMQ có hỗ trợ xử lý message ưu tiên (priority messages) không?
Có, bằng cách sử dụng queue có priority
Không, RabbitMQ xử lý tất cả các message như nhau
Chỉ khi sử dụng Fanout Exchange
Chỉ khi sử dụng AMQP 2.0
Cách cài đặt RabbitMQ trên Ubuntu bằng lệnh nào?
sudo apt install rabbitmq
sudo apt install rabbitmq-server
sudo install rabbitmq
sudo apt-get install rabbit-mq
Lệnh nào được dùng để kiểm tra trạng thái của RabbitMQ service?
rabbitmq status
systemctl status rabbitmq-server
rabbitmqctl check_status
service rabbitmq status
Làm thế nào để tạo một queue trong RabbitMQ bằng Python (pika library)?
channel.declare_queue(queue='test')
channel.queue_declare(queue='test')
channel.create_queue('test')
queue.new('test')
Để gửi một message đến queue, lệnh nào sau đây là đúng (với Python và pika)?
channel.basic_publish(exchange='', routing_key='test', body='Hello!')
channel.send_message(queue='test', body='Hello!')
queue.send('Hello!')
channel.push_message(queue='test', message='Hello!')
Làm thế nào để nhận message từ RabbitMQ queue bằng Python?
channel.basic_consume(queue='test', on_message_callback=callback, auto_ack=True)
channel.receive(queue='test', callback=callback)
queue.get_message(callback=callback)
channel.listen(queue='test', callback=callback)
Lệnh nào dùng để thêm user mới vào RabbitMQ?
rabbitmqctl add_user newuser newpassword
rabbitmqctl create_user newuser newpassword
rabbitmqctl add newuser newpassword
rabbitmqctl useradd newuser newpassword
Làm thế nào để xóa một queue có tên "my_queue"?
rabbitmqctl delete_queue my_queue
rabbitmqadmin delete queue name=my_queue
rabbitmq remove_queue my_queue
queue.remove('my_queue')
Làm thế nào để cấu hình RabbitMQ web management plugin?
rabbitmq-plugins enable rabbitmq_management
rabbitmq enable management
systemctl enable rabbitmq_management
rabbitmqctl enable management
Cách tốt nhất để đảm bảo consumer không bị quá tải khi nhận message từ RabbitMQ?
Sử dụng cơ chế Prefetch count
Giới hạn số lượng queue
Giới hạn số lượng exchange
Chặn message đến consumer
Làm thế nào để kiểm tra danh sách các queue trong RabbitMQ?
rabbitmqctl list_queues
rabbitmq queue list
rabbitmqctl show_queues
rabbitmq-admin queues
Git là gì?
Một hệ thống quản lý cơ sở dữ liệu
Một hệ thống quản lý phiên bản phân tán (VCS)
Một ngôn ngữ lập trình
Một công cụ CI/CD
Sự khác biệt giữa Git và GitHub là gì?
Git là một hệ thống quản lý phiên bản, còn GitHub là một dịch vụ lưu trữ Git trực tuyến
GitHub là phiên bản nâng cấp của Git
Git chỉ hoạt động trên GitHub
Không có sự khác biệt
Lệnh nào được sử dụng để kiểm tra trạng thái của repository?
git check
git status
git log
git state
Lệnh nào dùng để khởi tạo một Git repository mới?
git init
git start
git new
git create
Trong Git, "staging area" là gì?
Một nơi lưu trữ tạm thời các thay đổi trước khi commit
Một khu vực chứa tất cả các commit trước đó
Một thư mục chứa các file đã bị xóa
Một nhánh đặc biệt
Lệnh nào dùng để commit các thay đổi trong Git?
git save
git commit -m "Message"
git push commit
git stage commit
Lệnh nào dùng để xem lịch sử commit của repository?
git history
git show
git log
git list
Lệnh nào dùng để tạo một nhánh mới trong Git?
git new branch
git checkout -b branch_name
git create branch_name
git branch -n branch_name
Lệnh nào dùng để hợp nhất (merge) một nhánh vào nhánh hiện tại?
git merge branch_name
git combine branch_name
git join branch_name
git integrate branch_name
Sự khác biệt giữa git pull và git fetch là gì?
git pull lấy về thay đổi và tự động cập nhật, còn git fetch chỉ tải về mà không cập nhật
git fetch lấy về thay đổi và cập nhật, còn git pull chỉ tải về mà không cập nhật
Chúng hoàn toàn giống nhau
git fetch chỉ hoạt động với branch chính
Làm thế nào để kiểm tra phiên bản Git đang sử dụng?
git --version
git version
git show-version
git info
Lệnh nào dùng để thêm file vào staging area?
git add file.txt
git stage file.txt
git commit file.txt
git push file.txt
Làm thế nào để xóa một file khỏi Git nhưng vẫn giữ lại trong thư mục làm việc?
git remove file.txt
git delete file.txt
git rm --cached file.txt
git forget file.txt
Làm thế nào để khôi phục một file đã bị thay đổi trước khi commit?
git reset file.txt
git checkout -- file.txt
git restore file.txt
git revert file.txt
Lệnh nào dùng để xóa một nhánh trong Git?
git remove branch_name
git delete branch_name
git branch -d branch_name
git drop branch_name
Làm thế nào để đặt lại (reset) commit cuối cùng nhưng giữ lại thay đổi trong thư mục làm việc?
git reset --hard HEAD~1
git reset --soft HEAD~1
git revert HEAD~1
git commit --undo
Làm thế nào để đẩy (push) code lên remote repository?
git upload origin main
git push origin main
git commit origin main
git send origin main
Lệnh nào dùng để xem sự khác biệt giữa hai commit?
git log --diff
git show diff
git diff commit1 commit2
git compare commit1 commit2
Làm thế nào để undo (hủy bỏ) một commit đã push lên remote?
git revert commit_id && git push origin main
git reset commit_id && git push origin main
git undo commit_id
git commit --undo commit_id
Làm thế nào để tạo một Git repository mới và liên kết với một remote repository trên GitHub?
-git init
git remote add origin <repository_url>
git add .
git commit -m "Initial commit"
git push -u origin main
git create
git connect <repository_url>
git add .
git commit "Initial commit"
git upload
git init
git connect <repository_url>
git commit -m "Initial commit"
git push origin main
git start
git link <repository_url>
git commit -m "Initial commit"
git push origin main
Zabbix là gì?
Hệ thống giám sát mã nguồn mở
Công cụ phân tích dữ liệu
Hệ thống quản lý cơ sở dữ liệu
Phần mềm tường lửa
Những thành phần chính của Zabbix bao gồm?
Zabbix Server, Zabbix Agent, Zabbix Proxy, Zabbix Frontend
Zabbix Server, MySQL, Apache
Zabbix Monitor, Zabbix Collector, Zabbix Analyzer
Zabbix Core, Zabbix Firewall, Zabbix Log
Chức năng của Zabbix Agent là gì?
Thu thập dữ liệu từ máy chủ hoặc thiết bị và gửi về Zabbix Server
Lưu trữ dữ liệu giám sát
Hiển thị giao diện quản lý Zabbix
Tạo cảnh báo và gửi thông báo
Zabbix Proxy được sử dụng khi nào?
Khi cần giám sát các thiết bị từ xa mà không thể kết nối trực tiếp với Zabbix Server
Khi Zabbix Server bị lỗi
Khi cần tăng tốc độ thu thập dữ liệu
Khi cần giám sát dữ liệu từ các hệ thống cloud
Cơ sở dữ liệu nào có thể được sử dụng với Zabbix?
MySQL
PostgreSQL
Oracle
Tất cả các lựa chọn trên
Item trong Zabbix có nhiệm vụ gì?
Thu thập dữ liệu từ hệ thống
Hiển thị đồ thị trong giao diện web
Lưu trữ dữ liệu trong cơ sở dữ liệu
Gửi thông báo khi có sự cố
Trigger trong Zabbix là gì?
Một cách để hiển thị dữ liệu trên dashboard
Một tập hợp các máy chủ được giám sát
Một điều kiện để xác định khi nào xảy ra sự cố
Một loại cảnh báo trong Zabbix
SNMP được sử dụng trong Zabbix để làm gì?
Gửi thông báo khi có lỗi phần cứng
Giám sát thiết bị mạng như switch, router
Tăng tốc độ giám sát của Zabbix
Mở rộng dung lượng cơ sở dữ liệu của Zabbix
Một Action trong Zabbix có thể thực hiện những gì?
Gửi email thông báo
Gửi cảnh báo qua Telegram hoặc Slack
Chạy một script tự động để khắc phục sự cố
Tất cả phương án trên
Để giám sát trạng thái một dịch vụ trên Linux, Zabbix Agent sử dụng key nào?
Lệnh nào kiểm tra trạng thái của Zabbix Server trên Linux?
service zabbix-agent status
systemctl status zabbix-server
zabbix_server --check
zabbix_agentd --status
Lệnh nào để kiểm tra Zabbix Agent có đang hoạt động hay không?
zabbix_agentd --status
systemctl start zabbix-agent
zabbix_get
ps aux | grep zabbix_agentd
Để thêm một host mới vào Zabbix, bước đầu tiên cần làm là gì?
Thêm host vào danh sách trên Zabbix Frontend
Cài đặt và cấu hình Zabbix Agent trên host đó
Tạo trigger để cảnh báo sự cố
Tạo biểu đồ giám sát
Tập tin cấu hình chính của Zabbix Server trên Linux nằm ở đâu?
/etc/zabbix/zabbix_server.conf
/usr/local/etc/zabbix_server.conf
/etc/zabbix/zabbix_agentd.conf
/var/lib/zabbix/zabbix_server.conf
Lệnh nào để kiểm tra dữ liệu từ Zabbix Agent trên Linux?
zabbix_get -s <IP> -k system.cpu.load
zabbix_agentd --status
systemctl check zabbix-agent
zabbix_check -a
Để giám sát mức sử dụng CPU của một máy chủ Linux, ta sử dụng key nào?
cpu.usage
process.cpu
system.cpu.load
monitor.cpu
Làm thế nào để kiểm tra dữ liệu thu thập được từ một host trong Zabbix?
Kiểm tra qua giao diện web
Dùng zabbix_get để lấy dữ liệu
Truy vấn trực tiếp từ cơ sở dữ liệu
Cả A, B và C
Cách tốt nhất để giám sát một website bằng Zabbix là gì?
Sử dụng Web Scenario
Viết script kiểm tra uptime
Dùng SNMP kiểm tra trạng thái website
Dùng email để thông báo khi website bị lỗi
Làm thế nào để tạo cảnh báo khi CPU đạt 90%?
Tạo item để thu thập dữ liệu CPU
Tạo trigger khi CPU đạt 90%
Cấu hình action để gửi thông báo
Cả A, B và C
Lệnh nào để restart Zabbix Server?
systemctl restart zabbix-server
service zabbix restart
zabbix_server --restart
systemctl restart zabbix-agent
Thành phần nào trong Zabbix tạo ra Alert?
Item
Trigger
Template
Graph
Alert trong Zabbix có thể được gửi qua phương thức nào?
Telegram
SMS
Cả A, B và C
Thành phần nào trong Zabbix quyết định ai sẽ nhận Alert?
Action
Media Type
User Group
Cả A, B và C
Để một Trigger có thể gửi Alert, trạng thái của nó phải là gì?
OK
Problem
Resolved
Disabled
Trong Zabbix, Action là gì?
Một cấu hình để tự động gửi thông báo khi có sự kiện xảy ra
Một phương thức thu thập dữ liệu từ máy chủ
Một phương pháp vẽ biểu đồ dữ liệu
Một tính năng để lưu trữ thông tin giám sát
Một Action trong Zabbix có thể thực hiện những hành động nào?
Gửi thông báo
Thực hiện một lệnh tự động
Chạy một script
Cả A, B và C
Làm thế nào để kiểm tra lịch sử các Alert đã được gửi trong Zabbix?
Vào phần Monitoring → Problems
Vào phần Monitoring → Event
Vào phần Administration → Audit Logs
Vào phần Reports → Alert Logs
Trong Zabbix, Media Type dùng để làm gì?
Xác định phương thức gửi Alert (email, SMS, Telegram, v.v.)
Xác định điều kiện kích hoạt Alert
Quản lý người dùng trong hệ thống
Xác định cách thu thập dữ liệu từ thiết bị
Làm thế nào để tắt Alert cho một Trigger mà không xóa Trigger đó?
Disable Trigger
Disable Action liên quan đến Trigger đó
Thay đổi điều kiện của Action
Cả A, B và C
Làm thế nào để kiểm tra danh sách Alert đang hoạt động?
Vào Monitoring → Problems
Vào Monitoring → Events
Vào Administration → Notifications
Vào Configuration → Hosts
Để gửi Alert qua Telegram, bạn cần làm gì trước tiên?
A. Tạo một bot trên Telegram và lấy API Token
B. Cài đặt module Python cho Zabbix
C. Cấu hình SMS gateway
D. Cả A và B
Làm thế nào để gửi Alert khi một máy chủ bị mất kết nối (ping timeout)?
A. Tạo Item sử dụng key icmpping
B. Tạo Trigger với điều kiện icmpping=0
C. Tạo Action để gửi thông báo khi Trigger kích hoạt
D. Cả A, B và C
Trong Action, điều kiện nào có thể được sử dụng để kiểm soát việc gửi Alert?
A. Trigger name
B. Host group
C. Severity level (Cảnh báo mức độ)
D. Cả A, B và C
Làm thế nào để gửi Alert khi dung lượng ổ đĩa trên server giảm xuống dưới 10%?
A. Tạo Item với key vfs.fs.size[/,pfree] để lấy % dung lượng trống
B. Tạo Trigger với điều kiện {host:vfs.fs.size[/,pfree].last()}<10
C. Tạo Action để gửi thông báo khi Trigger được kích hoạt
D. Cả A, B và C
Nếu gặp lỗi "Permission denied (publickey)", khi kết nối đến máy từ xa bằng Ansible, cách khắc phục là gì?
A. Kiểm tra và cấu hình khóa SSH chính xác (ssh-copy-id <user>@<host>)
B. Sử dụng --ask-pass để nhập mật khẩu SSH
C. Cấu hình tài khoản root có quyền truy cập
D. Cả A và B
