Graylog là một công cụ quản lý nhật ký mã nguồn mở và miễn phí dựa trên Java, Elasticsearch và MongoDB có thể được sử dụng để thu thập, lập chỉ mục và phân tích bất kỳ nhật ký máy chủ nào từ một vị trí tập trung. Bạn có thể dễ dàng theo dõi các lần đăng nhập SSH và hoạt động bất thường để gỡ lỗi ứng dụng và nhật ký bằng Graylog. Graylog cung cấp ngôn ngữ truy vấn mạnh mẽ, khả năng cảnh báo, đường ống xử lý để chuyển đổi dữ liệu và nhiều hơn nữa. Bạn có thể mở rộng chức năng của Graylog thông qua REST API và Add-on.
Graylog bao gồm ba thành phần:
Thêm dòng sau:
Lưu tệp khi bạn hoàn tất, sau đó cập nhật hệ thống của bạn bằng lệnh sau:
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 bằng lệnh sau:
Sau khi tất cả các gói cần thiết được cài đặt, bạn có thể tiến hành cài đặt MongoDB.
Sau khi MongoDB được cài đặt, bạn có thể tiến hành cài đặt Elasticsearch.
Trước tiên, hãy tải xuống và thêm khóa GPG Elasticsearch bằng lệnh sau:
Tiếp theo, tạo tệp kho lưu trữ Elasticsearch bằng lệnh sau:
Thêm dòng sau:
Lưu tệp khi bạn hoàn tất, sau đó cập nhật kho lưu trữ bằng cách chạy lệnh sau:
Tiếp theo, cài đặt Elasticsearch bằng cách chạy lệnh sau:
Sau khi Elasticsearch được cài đặt, bạn sẽ cần sửa đổi tệp cấu hình chính của Elasticsearch:
Thực hiện các thay đổi sau:
Lưu và đóng tệp khi bạn hoàn tất, sau đó khởi động dịch vụ Elasticsearch và cho phép dịch vụ này khởi động khi khởi động:
Sau vài giây, hãy chạy lệnh sau để kiểm tra xem Elasticsearch có chạy đúng không:
Đảm bảo đầu ra hiển thị trạng thái cụm là "xanh lục":
Sau khi Elasticsearch được cài đặt và hoạt động tốt, bạn có thể tiến hành bước tiếp theo.
Sau khi kho lưu trữ được cài đặt, hãy cập nhật kho lưu trữ và cài đặt máy chủ Graylog bằng lệnh sau:
Sau khi cài đặt Graylog, bạn sẽ cần đặt một bí mật để bảo mật mật khẩu người dùng và cũng đặt mật khẩu băm (sha256) cho người dùng root.
Đầu tiên, hãy tạo password_secret bằng lệnh sau:
Bạn sẽ thấy thông báo sau đầu ra:
Tiếp theo, tạo mật khẩu băm cho người dùng root bằng lệnh sau:
Bạn sẽ thấy kết quả sau:
Lưu ý: Hãy nhớ cả hai khóa mật khẩu, vì cả hai khóa đều cần được cấu hình trong server.conf.
Tiếp theo, bạn sẽ cần sửa đổi tệp cấu hình chính của máy chủ Graylog nằm trong thư mục /etc/graylog/server/:
Thực hiện các thay đổi sau:
Lưu và đóng tệp khi bạn hoàn tất, sau đó khởi động dịch vụ Graylog và cho phép nó khởi động khi khởi động:
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo
Sau khi UFW được cài đặt, hãy bật nó bằng cách chạy lệnh sau;
Tiếp theo, cho phép cổng 9000 đi qua tường lửa UFW bằng cách chạy lệnh sau:
Bạn có thể kiểm tra trạng thái của tường lửa UFW bất kỳ lúc nào bằng cách chạy lệnh sau.
Sau khi tường lửa được cấu hình, bạn có thể tiến hành bước tiếp theo.
Đăng nhập bằng tên người dùng "admin" và mật khẩu bạn đã cấu hình tại root_password_sha2 trên server.conf. Bạn sẽ thấy màn hình sau:
Tiếp theo, bạn sẽ cần thêm đầu vào để nhận thông báo syslog bằng UDP. Để thêm đầu vào, Nhấp vào Hệ thống -> chọn Đầu vào -> Syslog UDP -> nhấp vào nút Launch new input, bạn sẽ thấy màn hình sau:
Điền tất cả các thông tin chi tiết như Title, Port, Bind address và cuối cùng nhấp vào nút Save, bạn sẽ thấy màn hình sau:
Bây giờ máy chủ Graylog sẽ nhận nhật ký hệ thống bằng cổng 8514 từ máy khách hoặc máy chủ.
Trên hệ thống máy khách, bạn sẽ cần cấu hình rsyslog để nó gửi tin nhắn nhật ký hệ thống đến máy chủ Graylog. Bạn có thể thực hiện việc này bằng cách chỉnh sửa tệp rsyslog.conf:
Thêm các dòng sau:
Lưu tệp và khởi động lại dịch vụ rsyslog để áp dụng những thay đổi này:
Tiếp theo, trên máy chủ Graylog, hãy nhấp vào "Graylog Sources", bạn có thể thấy nhật ký ssh với các lần đăng nhập không thành công trong mục sau screen.
Graylog bao gồm ba thành phần:
- Elasticsearch: Lưu trữ tất cả các tin nhắn đến và cung cấp tiện ích tìm kiếm.
- MongoDB: Được sử dụng cho cơ sở dữ liệu, lưu trữ cấu hình và thông tin meta.
- Máy chủ Graylog: Nhận và xử lý tin nhắn từ nhiều đầu vào khác nhau và cung cấp giao diện web để phân tích và giám sát.
Điều kiện tiên quyết
- Máy chủ chạy Debian 9.
- RAM tối thiểu 4 GB.
- Địa chỉ IP tĩnh 192.168.0.187 được thiết lập trên máy chủ của bạn.
1 Cài đặt các gói bắt buộc
Trước khi bắt đầu, bạn sẽ cần cài đặt Java 8 và các gói bắt buộc khác vào hệ thống của mình. Không phải tất cả các gói bắt buộc đều có trong kho lưu trữ chuẩn Debian 9, vì vậy bạn sẽ cần thêm Debian Backport vào danh sách nguồn gói. Trước tiên, hãy đăng nhập bằng người dùng root và tạo tệp backport.list:
Mã:
nano /etc/apt/sources.list.d/backport.list
Mã:
deb http://ftp.debian.org/debian stretch-backports main
Mã:
apt-get update -y
apt-get upgrade -y
Mã:
apt-get install apt-transport-https openjdk-8-jre-headless uuid-runtime pwgen -y
2 Cài đặt MongoDB
MongoDB là cần thiết để lưu trữ thông tin cấu hình và siêu dữ liệu. MongoDB có sẵn trong kho lưu trữ mặc định của Debian 9, vì vậy bạn có thể cài đặt MongoDB chỉ bằng cách chạy lệnh sau:
Mã:
apt-get install mongodb-server -y
3 Cài đặt Elasticsearch
Elasticsearch hoạt động như một máy chủ tìm kiếm lưu trữ tất cả các bản ghi được máy chủ Graylog gửi và hiển thị các thông báo bất cứ khi nào bạn yêu cầu. Elasticsearch không có sẵn trong kho lưu trữ mặc định của Debian 9. Bạn sẽ cần thêm kho lưu trữ Elasticsearch vào nguồn gói Debian.Trước tiên, hãy tải xuống và thêm khóa GPG Elasticsearch bằng lệnh sau:
Mã:
wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | apt-key add -
Mã:
nano /etc/apt/sources.list.d/elasticsearch.list
Mã:
deb https://packages.elastic.co/elasticsearch/2.x/debian stable main
Mã:
apt-get update -y
Mã:
apt-get install elasticsearch -y
Mã:
nano /etc/elasticsearch/elasticsearch.yml
Mã:
cluster.name: graylognetwork.host: 192.168.0.187discovery.zen.ping.timeout: 10 giâydiscovery.zen.ping.multicast.enabled: falsediscovery.zen.ping.unicast.hosts: ["192.168.0.187:9300"]
Mã:
systemctl start elasticsearch
systemctl enable elasticsearch
Mã:
curl -XGET 'http://192.168.0.187:9200/_cluster/health?pretty=true'
Mã:
{ "cluster_name" : "graylog", "status" : "green", "timed_out" : false, "number_of_nodes" : 1, "number_of_data_nodes" : 1, "active_primary_shards" : 1, "active_shards" : 1, "relocating_shards" : 0, "initializing_shards" : 0, "unassigned_shards" : 1, "delayed_unassigned_shards" : 0, "number_of_pending_tasks" : 0, "number_of_in_flight_fetch" : 0, "task_max_waiting_in_queue_millis" : 0, "active_shards_percent_as_number" : 50.0}
4 Cài đặt Graylog
Graylog không có sẵn trong kho lưu trữ mặc định của Debian 9, do đó trước tiên bạn cần tải xuống và cài đặt kho lưu trữ Graylog 2. Bạn có thể thực hiện việc này bằng cách chạy lệnh sau:
Mã:
wget https://packages.graylog2.org/repo/packages/graylog-2.2-repository_latest.deb
dpkg -i graylog-2.2-repository_latest.deb
Mã:
apt-get update -y
apt-get install graylog-server -y
Đầu tiên, hãy tạo password_secret bằng lệnh sau:
Mã:
pwgen -N 1 -s 96
Mã:
TRXbNPoW4gGC8BN8Gzl4wH3jtfLoi06WCJqia18UtYyPaNLx4r8U7jUPRlIJHoGGxrCjZVqAvW2DcueI6N1zHoy2bKEWLyyC
Mã:
echo -n youradminpassword | sha256sum
Mã:
e3c5925aa22abdfa18cf197a7b218fcad31acb6409d2e2dbebae807d3a9750ee
Tiếp theo, bạn sẽ cần sửa đổi tệp cấu hình chính của máy chủ Graylog nằm trong thư mục /etc/graylog/server/:
Mã:
nano /etc/graylog/server/server.conf
Mã:
is_master = truenode_id_file = /etc/graylog/server/node-id########past-your-password-secret-here#########password_secret = TRXbNPoW4gGC8BN8Gzl4wH3jtfLoi06WCJqia18UtYyPaNLx4r8U7jUPRlIJHoGGxrCjZVqAvW2DcueI6N1zHoy2bKEWLyyCroot_username = quản trị viên#######past-your-root-hash-password-here##########root_password_sha2 = e3c5925aa22abdfa18cf197a7b218fcad31acb6409d2e2dbebae807d3a9750eeroot_timezone = UTCplugin_dir = /usr/share/graylog-server/plugincòn lại_listen_uri = http://0.0.0.0:9000/api/nghỉ_enable_cors = trueweb_listen_uri = http://0.0.0.0:9000/rotation_strategy = countelasticsearch_max_docs_per_index = 20000000elasticsearch_max_number_of_indices = 7retention_strategy = deleteelasticsearch_shards = 4elasticsearch_replicas = 1elasticsearch_index_prefix = graylogallow_leading_wildcard_searches = trueallow_highlighting = falseelasticsearch_cluster_name = graylogelasticsearch_discovery_zen_ping_unicast_hosts = 192.168.0.187:9300elasticsearch_http_enabled = falseelasticsearch_network_host = 0.0.00elasticsearch_discovery_initial_state_timeout = 3 giâyelasticsearch_analyzer = chuẩnoutput_batch_size = 500output_flush_interval = 1output_fault_count_threshold = 5output_fault_penalty_seconds = 30processbuffer_processors = 5outputbuffer_processors = 3processor_wait_strategy = chặnring_size = 65536inputbuffer_ring_size = 65536inputbuffer_processors = 2inputbuffer_wait_strategy = chặnmessage_journal_enabled = truemessage_journal_dir = /var/lib/graylog-server/journalasync_eventbus_processors = 2lb_recognition_period_seconds = 3alert_check_interval = 60mongodb_uri = mongodb://localhost/graylogmongodb_max_connections = 1000mongodb_threads_allowed_to_block_multiplier = 5content_packs_dir = /usr/share/graylog-server/contentpackscontent_packs_auto_load = grok-patterns.jsonproxied_requests_thread_pool_size = 32
Mã:
systemctl start graylog-server
systemctl enable graylog-server
5 Cấu hình Tường lửa
Theo mặc định, giao diện web Graylog đang lắng nghe trên cổng 9000, vì vậy bạn sẽ cần cho phép cổng 9000 thông qua tường lửa UFW. Tường lửa UFW không được cài đặt trong Debian 9. Vì vậy, trước tiên bạn sẽ cần cài đặt nó. Bạn có thể cài đặt bằng cách chạy lệnh sau:
Mã:
apt-get install ufw -y
Mã:
ufw enable
Mã:
ufw allow 9000
Mã:
ufw status
6 Truy cập Giao diện Web Graylog
Giao diện web Graylog đang lắng nghe trên cổng 9000. Bây giờ, hãy mở trình duyệt web của bạn và nhập URL , bạn sẽ thấy màn hình sau:Đăng nhập bằng tên người dùng "admin" và mật khẩu bạn đã cấu hình tại root_password_sha2 trên server.conf. Bạn sẽ thấy màn hình sau:
Tiếp theo, bạn sẽ cần thêm đầu vào để nhận thông báo syslog bằng UDP. Để thêm đầu vào, Nhấp vào Hệ thống -> chọn Đầu vào -> Syslog UDP -> nhấp vào nút Launch new input, bạn sẽ thấy màn hình sau:
Điền tất cả các thông tin chi tiết như Title, Port, Bind address và cuối cùng nhấp vào nút Save, bạn sẽ thấy màn hình sau:
Bây giờ máy chủ Graylog sẽ nhận nhật ký hệ thống bằng cổng 8514 từ máy khách hoặc máy chủ.
Trên hệ thống máy khách, bạn sẽ cần cấu hình rsyslog để nó gửi tin nhắn nhật ký hệ thống đến máy chủ Graylog. Bạn có thể thực hiện việc này bằng cách chỉnh sửa tệp rsyslog.conf:
Mã:
nano /etc/rsyslog.conf
Mã:
# provides UDP syslog reception$ModLoad imudp$UDPServerRun 8514$template GRAYLOGRFC5424,"%protocol-version% %timestamp:::date-rfc3339% %HOSTNAME% %app-name% %procid% %msg%\n"*.* @192.168.0.187:8514;GRAYLOGRFC5424
Mã:
systemctl restart rsyslog