sách gpt4 ai đã đi

Spring Boot xây dựng ELK để xem chính xác quá trình cấu hình nhật ký

In lại Tác giả:qq735679552 Thời gian cập nhật: 2022-09-29 22:32:09 27 4
mua khóa gpt4 Nike

CFSDN nhấn mạnh vào việc tạo ra giá trị thông qua mã nguồn mở. Chúng tôi cam kết xây dựng một nền tảng chia sẻ tài nguyên để mọi người làm CNTT có thể tìm thấy thế giới tuyệt vời của riêng mình tại đây.

Bài đăng trên blog CFSDN Spring Boot builds ELK to correct view the log configuration process này được tác giả thu thập và sắp xếp. Nếu bạn quan tâm đến bài viết này, hãy nhớ like nhé.

Tại sao nên sử dụng ELK?

ELK thực chất là ba công cụ, Elastricsearch + Logstash + Kibana. ELK được sử dụng để thu thập nhật ký và thực hiện phân tích nhật ký, và cuối cùng hiển thị chúng thông qua giao diện người dùng trực quan. Vào thời điểm ban đầu, khi khối lượng công việc tương đối nhỏ, SLF4J+Logger đơn giản được sử dụng để in nhật ký trên máy chủ và các truy vấn đơn giản được thực hiện thông qua grep. Tuy nhiên, khi khối lượng công việc tăng lên, lượng dữ liệu sẽ tiếp tục tăng, do đó ELK có thể được sử dụng để thu thập và phân tích lượng lớn nhật ký.

Tôi đã vẽ một sơ đồ kiến ​​trúc đơn giản.

Spring Boot xây dựng ELK để xem chính xác quá trình cấu hình nhật ký

Trong cấu hình môi trường, chúng tôi chủ yếu giới thiệu cấu hình Mac và Linux. Hệ thống Windows cũng tương tự. Tất nhiên, tiền đề là mọi người đều đã cài đặt JDK 1.8 trở lên~.

  1. [root@VM_234_23_centos ~]# java -phiên bản
  2.  
  3. phiên bản java "1.8.0_161"
  4.  
  5. Java(TM) ĐN Thời gian chạy Môi trường (xây dựng 1.8.0_161-b12)
  6.  
  7. Java Điểm nóng(TM) 64-Chút Máy chủ Máy ảo (xây dựng 25.161-b12, chế độ hỗn hợp)

Lưu ý: Phiên bản ELK cao hơn cũng yêu cầu phiên bản hỗ trợ JDK cao hơn. Phiên bản ELK được cấu hình trong bài viết này là 6.0+, do đó phiên bản JDK bắt buộc không thấp hơn 1.8.

Tìm kiếm đàn hồi

Elasticsearch là công cụ tìm kiếm và phân tích dữ liệu RESTful phân tán có thể giải quyết nhiều trường hợp sử dụng ngày càng đa dạng. Về cơ bản, Elastic Stack lưu trữ dữ liệu của bạn ở trung tâm và giúp bạn khám phá những điều mong đợi và bất ngờ.

Cài đặt và vận hành máy Mac:

  • Cài đặt: brew install elasticsearch
  • Chạy: elasticsearch

Linux: Tải xuống từ trang web chính thức của Elasticsearch (bạn cũng có thể tải xuống và tải lên qua ftp hoặc các công cụ khác), giải nén tệp gz qua tar, sau đó chạy phần mềm trong thư mục bin.

  1. [ứng dụng root@VM_234_23_centos]# xoăn -L -Ồ https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.4.tar.gz
  2.  
  3. [ứng dụng root@VM_234_23_centos]# hắc ín -zxvf tìm kiếm đàn hồi-6.2.4.tar.gz
  4.  
  5. [ứng dụng root@VM_234_23_centos]# cd elasticsearch-6.2.4
  6.  
  7. [root@VM_234_23_centos tìm kiếm đàn hồi-6.2.4]# ./thùng rác/tìm kiếm đàn hồi

Lưu ý: Trên máy Linux, chạy Elasticsearch yêu cầu một nhóm người dùng mới. Bài viết kết thúc bằng danh sách những cạm bẫy khi cài đặt Elastic trên Linux.

Nhật ký

Logstash là một đường ống xử lý dữ liệu phía máy chủ nguồn mở có thể thu thập dữ liệu từ nhiều nguồn cùng lúc, chuyển đổi dữ liệu và sau đó gửi dữ liệu đến "kho lưu trữ" yêu thích của bạn. (Tất nhiên kho lưu trữ của chúng tôi là Elasticsearch.) — Sự dễ thương chính thức.

Cài đặt phần mềm

Cài đặt Mac:

  1. pha chế cài đặt logstash

Cài đặt Linux:

  1. [ứng dụng root@VM_234_23_centos]# xoăn -L -Ồ https://artifacts.elastic.co/downloads/logstash/logstash-6.3.2.tar.gz
  2.  
  3. % Tổng cộng % Đã nhận % Xferd Trung bình Tốc độ Thời gian Thời gian Thời gian Hiện hành
  4.  
  5. Tải xuống Tải lên Tổng cộng Đã tiêu Bên trái Tốc độ
  6.  
  7. 100 137 triệu 100 137 triệu 0 0 5849k 0 0:00:hai mươi bốn 0:00:hai mươi bốn --:--:-- 6597k
  8.  
  9. [ứng dụng root@VM_234_23_centos]# hắc ín -zxvf đăng nhập-6.3.2.tar.gz

Sửa đổi tệp cấu hình.

  1. vim /vân vân/kho gỗ.conf

conf, chỉ định plugin sẽ sử dụng và cấu hình máy chủ elasticsearch tương ứng.

  1. đầu vào { tiêu chuẩn { } }
  2.  
  3. đầu ra {
  4.  
  5. tìm kiếm đàn hồi { chủ nhà => ["localhost:9200"] }
  6.  
  7. đầu ra chuẩn { mã hóa => rubydebug }
  8.  
  9. }

chạy.

  1. thùng rác/kho gỗ -f đăng nhập.conf

Truy cập http://localhost:9600/.

  1. {
  2.  
  3. "chủ nhà": "=-=",
  4.  
  5. "phiên bản": "6.2.4",
  6.  
  7. "địa chỉ http": "127.0.0.1:9600",
  8.  
  9. "nhận dạng": "5b47e81f-bdf8-48fc-9537-400107a13bd2",
  10.  
  11. "tên": "=-=",
  12.  
  13. "ngày xây dựng": "2018-04-12T22:29:17Z",
  14.  
  15. "xây dựng_sha": "a425a422e03087ac34ad6949f7c95ec6d27faf14",
  16.  
  17. "bản chụp nhanh": SAI
  18.  
  19. }

Trong nhật ký Elasticsearch, bạn cũng có thể thấy các nhật ký mà Logstash đã thêm vào một cách bình thường.

[2018-08-16T14:08:36,436][INFO ][oecmMetaDataIndexTemplateService] [f2s1SD8] đang thêm mẫu [logstash] cho các mẫu chỉ mục [logstash-*].

Giá trị trả về này cho biết chương trình đã được cài đặt và khởi động thành công.

Rơi vào bẫy.

Ở bước chạy đó, bạn có thể gặp lỗi phân bổ bộ nhớ:

Cảnh báo máy ảo Java HotSpot(TM) 64-Bit Server: THÔNG TIN: os::commit_memory(0x00000000c5330000, 986513408, 0) không thành công; lỗi='Không thể phân bổ bộ nhớ' (errno=12).

Lỗi này rõ ràng là do bộ nhớ không đủ. Vì tôi đã mua một máy chủ có bộ nhớ 1G trên Tencent Cloud (nếu bạn giàu, hãy thoải mái mua cấu hình cao hơn =-=), Elasticsearch đã chạy, khiến Logstash không thể phân bổ đủ bộ nhớ, vì vậy tôi cần phải sửa đổi cấu hình JVM vào cuối.

  1. [root@VM_234_23_centos logstash-6.3.2]# cấu hình cd/
  2.  
  3. [cấu hình root@VM_234_23_centos]# tôi
  4.  
  5. tổng cộng 28
  6.  
  7. -hàng-r--r-- 1 gốc rễ 1846 Tháng bảy 20 14:19 Máy ảo JVM.tùy chọn
  8.  
  9. -hàng-r--r-- 1 gốc rễ 4466 Tháng bảy 20 14:19 nhật ký4j2.của cải
  10.  
  11. -hàng-r--r-- 1 gốc rễ 8097 Tháng bảy 20 14:19 kho gỗ.yml
  12.  
  13. -hàng-r--r-- 1 gốc rễ 3244 Tháng bảy 20 14:19 đường ống.yml
  14.  
  15. -hàng-r--r-- 1 gốc rễ 1696 Tháng bảy 20 14:19 khởi động.tùy chọn
  16.  
  17. [cấu hình root@VM_234_23_centos]# vim-jvm.tùy chọn

Thay đổi -Xms1g -Xmx1g thành:

-Xms256m .

-Xmx256m .

Sau đó nó có thể khởi động bình thường~~.

Kibana.

Cài đặt phần mềm.

Kibana cho phép bạn trực quan hóa dữ liệu trong Elasticsearch và vận hành Elastic Stack, để bạn có thể trả lời mọi câu hỏi, từ lý do bạn được gọi lúc 2:00 sáng đến việc mưa ảnh hưởng đến dữ liệu quý của bạn như thế nào. (Và các biểu tượng được hiển thị khá thú vị).

Cài đặt Mac:

  1. pha chế cài đặt kibana

Cài đặt Linux, địa chỉ tải xuống chính thức: https://www.elastic.co/downloads/kibana .

  1. [ứng dụng root@VM_234_23_centos]# xoăn -L -Ồ https://artifacts.elastic.co/downloads/kibana/kibana-6.3.2-linux-x86_64.tar.gz
  2.  
  3. % Tổng cộng % Đã nhận % Xferd Trung bình Tốc độ Thời gian Thời gian Thời gian Hiện hành
  4.  
  5. Tải xuống Tải lên Tổng cộng Đã tiêu Bên trái Tốc độ
  6.  
  7. 0 195 triệu 0 271k 0 0 19235 0 2:57:54 0:00:14 2:57:40 26393

Ở bước này, tốc độ tải xuống có thể cực kỳ chậm, vì vậy sau khi tải xuống cục bộ, tôi sẽ chuyển nó lên máy chủ thông qua lệnh rz.

  1. [ứng dụng root@VM_234_23_centos]# rz
  2.  
  3. đang chờ để nhận.
  4.  
  5. Bắt đầu chuyển zmodem. Nhấn Điều khiển+C để hủy bỏ.
  6.  
  7. Chuyển giao kibana-6.3.2-Linux-x86_64.hắc ín.gz...
  8.  
  9. 100% 200519 KB 751 KB/giây 00:04:27 0 Lỗi
  10.  
  11. [ứng dụng root@VM_234_23_centos]# hắc ín -zxvf kibana-6.3.2-Linux-x86_64.hắc ín.gz

Sửa đổi cấu hình

Sửa đổi tệp cấu hình config/kibana.yml và đặt elasticsearch.url để trỏ đến phiên bản Elasticsearch.

Nếu bạn sử dụng cấu hình mặc định như tôi, bạn không cần phải sửa đổi tệp.

khởi động.

  1. [root@VM_234_23_centos kibana]# ./thùng rác/kibana

Truy cập http://localhost:5601/app/kibana#/home?_g=().

Spring Boot xây dựng ELK để xem chính xác quá trình cấu hình nhật ký

Giao diện hiển thị rất nhiều chức năng. Hãy tích hợp SLF4J+LogBack.

Tích hợp Spring+Logstash.

Sau khi sửa đổi logstash.conf, hãy khởi động lại Logstash.

  1. đầu vào {
  2.  
  3. # stdin { }
  4.  
  5. Giao thức TCP {
  6.  
  7. # host:port là đích đến trong phần bổ sung ở trên,
  8.  
  9. # Ở đây chúng tôi thực sự sử dụng Logstash như một dịch vụ và mở cổng 9250 để nhận tin nhắn được gửi bởi logback
  10.  
  11. chủ nhà => "127.0.0.1" cảng => 9250 cách thức => "máy chủ" thẻ => ["thẻ"] mã hóa => dòng json
  12.  
  13. }
  14.  
  15. }
  16.  
  17. đầu ra {
  18.  
  19. tìm kiếm đàn hồi { chủ nhà => ["localhost:9200"] }
  20.  
  21. đầu ra chuẩn { mã hóa => rubydebug }
  22.  
  23. }

Tham chiếu các phụ thuộc trong ứng dụng Java.

  1.  
  2. net.logstash.logback
  3.  
  4. logstash-logback-mã hóa
  5.  
  6. 5.2
  7.  

Cấu hình đầu ra nhật ký trong logback.xml.

  1.  
  2. tên="cất giữ"
  3. lớp học="net.logstash.logback.appender.LogstashTcpSocketAppender">
  4.  
  5. <điểm đến="">máy chủ cục bộ:9250
  6.  
  7.  
  8. bộ ký tự="UTF-8"
  9. lớp học="net.logstash.logback.encoder.LogstashEncoder" >
  10.  
  11.  
  12. {"tên ứng dụng":"ye_test"}
  13.  
  14.  
  15. <> mức độ="THÔNG TIN">
  16.  
  17. <> tham khảo="cất giữ"/>
  18.  

Vì tôi không chỉ định chỉ mục tương ứng trong bước đầu tiên nên trình thu thập nhật ký Logstash đã tự động tạo chỉ mục logstash-timestamp cho tôi khi dịch vụ bắt đầu.

Thêm chỉ mục vào Kibana.

Spring Boot xây dựng ELK để xem chính xác quá trình cấu hình nhật ký

Xem thông tin chỉ mục trong mục khám phá ở bên trái.

Spring Boot xây dựng ELK để xem chính xác quá trình cấu hình nhật ký

Thêm biểu đồ trực quanVisualize.

Spring Boot xây dựng ELK để xem chính xác quá trình cấu hình nhật ký

Vẫn còn nhiều chức năng khác đang được khám phá. Đầu tiên, môi trường được thiết lập để bạn có động lực tiếp tục học~.

Bản ghi pitfall bắt đầu báo lỗi.

ngoại lệ chưa được phát hiện trong luồng [chính] org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: không thể chạy elasticsearch với tư cách là root.

Lý do: Không thể đăng nhập bằng quyền Root.

Giải pháp: Đổi người dùng.

  1. [root@VM_234_23_centos ~]# nhómadd es
  2.  
  3. [root@VM_234_23_centos ~]# useradd es -g là -v à
  4.  
  5. [root@VM_234_23_centos ~]# chọn:/trang chủ/ứng dụng/tìm kiếm đàn hồi/
  6.  
  7. # Chuyển đổi người dùng, nhớ su -, để bạn có thể lấy được các biến môi trường
  8.  
  9. [root@VM_234_23_centos ~]# sudo su -
  10. Ngoại lệ TRONG chủ đề chủ yếu java.không có.tài liệu.Ngoại lệ AccessDenied:

Nguyên nhân gây ra lỗi: ES được khởi động bằng người dùng không phải root và quyền tệp của người dùng đó không đủ nên việc thực thi bị từ chối.

Giải pháp: chown -R username:tên người dùng tên tệp (thư mục).

Ví dụ: chown -R abc:abc searchengine, sau đó khởi động ES và nó sẽ hoạt động bình thường.

Elasticsearch báo cáo lỗi Killed sau khi khởi động.

[2018-07-13T10:19:44,775][INFO ][oepPluginsService ] [f2s1SD8] đã tải mô-đun [aggs-matrix-stats].

[2018-07-13T10:19:44,779][INFO ][oepPluginsService ] [f2s1SD8] đã tải mô-đun [analysis-common].

[2018-07-13T10:19:44,780][INFO ][oepPluginsService ] [f2s1SD8] đã tải mô-đun [ingest-common].

[2018-07-13T10:19:44,780][INFO ][oepPluginsService ] [f2s1SD8] đã tải mô-đun [lang-expression].

[2018-07-13T10:19:44,780][INFO ][oepPluginsService ] [f2s1SD8] đã tải mô-đun [lang-mustache].

[2018-07-13T10:19:44,780][INFO ][oepPluginsService ] [f2s1SD8] đã tải mô-đun [lang-painless].

[2018-07-13T10:19:44,780][INFO ][oepPluginsService ] [f2s1SD8] đã tải mô-đun [mapper-extras].

[2018-07-13T10:19:44,780][INFO ][oepPluginsService ] [f2s1SD8] đã tải mô-đun [parent-join].

[2018-07-13T10:19:44,780][INFO ][oepPluginsService ] [f2s1SD8] đã tải mô-đun [percolator].

[2018-07-13T10:19:44,780][INFO ][oepPluginsService ] [f2s1SD8] đã tải mô-đun [rank-eval] .

[2018-07-13T10:19:44,781][INFO ][oepPluginsService ] [f2s1SD8] đã tải mô-đun [reindex].

[2018-07-13T10:19:44,781][INFO ][oepPluginsService ] [f2s1SD8] đã tải mô-đun [repository-url].

[2018-07-13T10:19:44,781][INFO ][oepPluginsService ] [f2s1SD8] đã tải mô-đun [transport-netty4].

[2018-07-13T10:19:44,781][INFO ][oepPluginsService ] [f2s1SD8] đã tải mô-đun [tribe].

[2018-07-13T10:19:44,781][INFO ][oepPluginsService ] [f2s1SD8] đã tải mô-đun [x-pack-core].

[2018-07-13T10:19:44,781][INFO ][oepPluginsService ] [f2s1SD8] đã tải mô-đun [x-pack-deprecation].

[2018-07-13T10:19:44,781][INFO ][oepPluginsService ] [f2s1SD8] đã tải mô-đun [x-pack-graph].

[2018-07-13T10:19:44,781][INFO ][oepPluginsService ] [f2s1SD8] đã tải mô-đun [x-pack-logstash].

[2018-07-13T10:19:44,782][INFO ][oepPluginsService ] [f2s1SD8] đã tải mô-đun [x-pack-ml].

[2018-07-13T10:19:44,782][INFO ][oepPluginsService ] [f2s1SD8] đã tải mô-đun [x-pack-monitoring].

[2018-07-13T10:19:44,782][INFO ][oepPluginsService ] [f2s1SD8] đã tải mô-đun [x-pack-rollup].

[2018-07-13T10:19:44,782][INFO ][oepPluginsService ] [f2s1SD8] đã tải mô-đun [x-pack-security].

[2018-07-13T10:19:44,782][INFO ][oepPluginsService ] [f2s1SD8] đã tải mô-đun [x-pack-sql].

[2018-07-13T10:19:44,782][INFO ][oepPluginsService ] [f2s1SD8] đã tải mô-đun [x-pack-upgrade].

[2018-07-13T10:19:44,782][INFO ][oepPluginsService ] [f2s1SD8] đã tải mô-đun [x-pack-watcher].

[2018-07-13T10:19:44,783][INFO ][oepPluginsService ] [f2s1SD8] không có plugin nào được tải.

Đã bị giết.

Sửa đổi jvm.options trong thư mục cấu hình và đặt kích thước heap nhỏ hơn.

  1. # Xms biểu thị kích thước ban đầu của tổng không gian heap
  2.  
  3. # Xmx biểu thị kích thước tối đa của tổng không gian heap
  4.  
  5. -Xms512m
  6.  
  7. -Xmx512m

Bộ nhớ ảo không đủ.

  1. tối đa ảo vùng nhớ vm.số lượng bản đồ tối đa [65530] quá thấp, tăng lên ít nhất [262144]

Kích thước bộ nhớ ảo cần phải được sửa đổi (bằng quyền root).

[2018-07-13T14:02:06,749][DEBUG][oeaActionModule ] Sử dụng trình bao bọc REST từ plugin org.elasticsearch.xpack.security.Security .

[2018-07-13T14:02:07,249][INFO ][oedDiscoveryModule ] [f2s1SD8] sử dụng loại khám phá [zen] .

[2018-07-13T14:02:09,173][INFO ][oenNode ] [f2s1SD8] đã được khởi tạo.

[2018-07-13T14:02:09,174][INFO ][oenNode ] [f2s1SD8] đang bắt đầu ... .

[2018-07-13T14:02:09,539][THÔNG TIN ][oetTransportService ] [f2s1SD8] xuất bản địa chỉ {10.105.234.23:9300}, địa chỉ ràng buộc {0.0.0.0:9300} .

[2018-07-13T14:02:09,575][INFO ][oebBootstrapChecks ] [f2s1SD8] được liên kết hoặc xuất bản tới một địa chỉ không phải vòng lặp, thực thi kiểm tra khởi động.

LỖI: [1] kiểm tra khởi động không thành công.

[1]: vùng bộ nhớ ảo tối đa vm.max_map_count [65530] quá thấp, tăng lên ít nhất [262144].

[2018-07-13T14:02:09,621][INFO ][oenNode ] [f2s1SD8] đang dừng ... .

[2018-07-13T14:02:09,726][INFO ][oenNode ] [f2s1SD8] đã dừng.

[2018-07-13T14:02:09,726][INFO ][oenNode ] [f2s1SD8] đang đóng ... .

[2018-07-13T14:02:09,744][INFO ][oenNode ] [f2s1SD8] đã đóng.

Đây là phần cuối của bài viết này về quá trình cấu hình Spring Boot để xây dựng ELK để xem nhật ký chính xác. Để biết thêm nội dung liên quan về Spring Boot để xây dựng ELK, vui lòng tìm kiếm các bài viết trước của tôi hoặc tiếp tục duyệt các bài viết liên quan sau. Tôi hy vọng bạn sẽ ủng hộ tôi trong tương lai! .

Liên kết gốc: http://dockone.io/article/1904921.

Cuối cùng, bài viết này về quá trình cấu hình Spring Boot để xây dựng ELK để xem nhật ký chính xác đã kết thúc. Nếu bạn muốn biết thêm về quá trình cấu hình Spring Boot để xây dựng ELK để xem nhật ký chính xác, vui lòng tìm kiếm các bài viết CFSDN hoặc tiếp tục duyệt các bài viết liên quan. Tôi hy vọng bạn sẽ ủng hộ blog của tôi trong tương lai! .

27 4 0
qq735679552
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com