Nó hoàn toàn miễn phí và mã nguồn mở hoàn toàn. Giấy phép là Apache 2. 0, có nghĩa là bạn được tự do sử dụng nó theo bất kỳ cách nào bạn muốn
Tài liệuĐây là một plugin logstash để kéo dữ liệu ra khỏi mongodb và xử lý bằng logstash. Nó sẽ kết nối với cơ sở dữ liệu được chỉ định trong uri
, sử dụng thuộc tính
sudo apt-get install golang-go
0 để tìm các bộ sưu tập để lấy tài liệu từ đó, bắt đầu từ bộ sưu tập đầu tiên mà nó tìm thấy và lấy số lượng tài liệu được chỉ định trong sudo apt-get install golang-go
1, lưu tiến trình của nó trong cơ sở dữ liệu sqlite có vị trí được chỉ định . Nó sẽ tiếp tục điều này cho đến khi không còn tìm thấy tài liệu nào mới hơn những tài liệu mà nó đã xử lý, tạm dừng trong giây lát, sau đó tiếp tục lặp qua các bộ sưu tậpĐiều này được thiết kế để phân tích nhật ký được ghi vào mongodb. Điều này có nghĩa là nó có thể không phân tích lại các mục db đã được thay đổi và đã được phân tích cú pháp
Hướng dẫn cài đặt pluginLogstash được cài đặt từ ZIP. TGZ[Dành cho Logstash Phiên bản cũ hơn < 2. 0. 0+]
- bin/cài đặt plugin/đường dẫn/đến/logstash-input-mongodb-0. 3. 0. đá quý
Logstash được cài đặt từ logstash-plugin [Dành cho Logstash Phiên bản mới hơn > 4. 0. 0+]
- logstash-6. 4. 1]#. /bin/logstash-plugin cài đặt logstash-input-mongodb
Các gói phát hành log-stash bao gồm các plugin phổ biến để bạn có thể sử dụng chúng ngay lập tức
Để liệt kê các plug-in hiện có sẵn trong quá trình triển khai của bạn
Tùy chọn cấu hìnhName Type Description
uri [String] A MongoDB URI for your database or cluster [check the MongoDB documentation for further info on this] [No Default, Required]
placeholder_db_dir [String] Path where the place holder database will be stored locally to disk [No Default, Required]
This gets created by the plugin so the directory needs to be writeable by the user that logstash is running as
placeholder_db_name [String] Name of the database file that will be created [Default: logstash_sqlite.db]
collection [String] A regex that will be used to find desired collecitons. [No Default, Required]
generateId [Boolean] If true, this will add a field '_id' that contains the MongoDB Document id
batch_size [Int] Size of the batch of mongo documents to pull at a time [Default: 30]
parse_method [String] Built in parsing of the mongodb document object [Default: 'flatten']
dig_fields [Array] An array of fields that should employ the dig method
dig_dig_fields [Array] This provides a second level of hash flattening after the initial dig has been done
Cấu hìnhThí dụ. -
URI MongoDBđầu vào {
mongodb {
codec => “json”
uri => ‘mongodb. //máy chủ cục bộ. 27017/NewDb’
placeholder_db_dir => ‘/home/devbrt. shukla/Máy tính để bàn/scalaoutput/ELK/logstash-6. 4. 1/db_dir’
placeholder_db_name => ‘Employee_sqlite. db'
collection => 'Employee'
batch_size => 5000
generateId => 'true'
parse_method => “simple”
}
}bộ lọc {
biến đổi {
remove_field => [ “_id” ]
}
}đầu ra {
elasticsearch {
hosts => [“localhost. 9200”]
index => “nhân viên-%{+YYYY. MM. dd}”
}
stdout { codec => rubydebug }
}
Tham số URI là nơi bạn sẽ chỉ định tất cả các tùy chọn mongodb của mình bao gồm những thứ như auth và SSL. Bạn nên sử dụng chuỗi kết nối [URI] tương thích với thông số mongodb
Để biết thêm thông tin về MongoDB URI, vui lòng xem tài liệu MongoDB. https. // tài liệu. mongodb. tổ chức/v3. 0/tham chiếu/chuỗi kết nối/
ELK ngăn xếp bằng đàn hồi là tuyệt vời. Ngày nay, nhiều công ty dựa vào elaticsearch để tìm kiếm và phân tích dữ liệu của họ trong thời gian thực, kibana để trực quan hóa phân tích hoặc tìm kiếm đó và logstash như một quy trình xử lý dữ liệu có thể lấy các loại dữ liệu đầu vào khác nhau, lọc và sau đó gửi đến
Các thư viện plugin của ELK rất phong phú, nhưng cho đến nay, chỉ có một plugin ổn định để xuất/ghi vào mongo và vào tháng 2 năm 2018, một plugin mới để nhập vào mongo đã ra mắt, nhưng nó phụ thuộc vào JDBC của Java và co giãn . Vì vậy, cuối cùng bạn sẽ cố gắng tìm một phiên bản hoạt động và giá rẻ, điều này có thể vừa khó khăn vừa tốn kém. Chưa kể toàn bộ lỗi liên quan đến Java mà bạn có thể mắc phải. Điều đó khiến chúng ta có hai lựa chọn cuối cùng
- trình kết nối Mongo
Một thư viện dựa trên python tốt, nhưng tiếc là chưa được cập nhật trong gần một năm, chưa kể rằng nó không hỗ trợ Elaticsearch phiên bản 6+.
2. người vận chuyển
Một thư viện tuyệt vời và được cập nhật thường xuyên, nhưng nó không thực sự đồng bộ hóa dữ liệu giữa mongodb và Elaticsearch trong thời gian thực. Điều đó có nghĩa là công việc của nó đã hoàn thành sau khi quá trình đồng bộ hóa hoàn tất. Cách giải quyết duy nhất là chạy nó nhiều lần, điều này sẽ tạo ra tải không cần thiết trên máy chủ của bạn. Vì vậy, hãy sử dụng trình vận chuyển nếu bạn chỉ muốn đồng bộ hóa một lần
Đồng bộ thời gian thực với MonstacheMonstache là một trình nền đồng bộ hóa được viết bằng Go liên tục lập chỉ mục các bộ sưu tập MongoDB của bạn vào Elaticsearch. Và đây là cách triển khai Monstache trong vài bước
Ghi chú. Các bước này dành cho máy chủ dựa trên Ubuntu, các bước tương tự có thể được thực hiện cho bất kỳ máy chủ nào khác, nhưng hãy đảm bảo rằng bạn đang sử dụng đúng lệnh cho loại máy chủ của mình
Bước 1
Hãy chắc chắn rằng bạn đã đi trên máy chủ của bạn. Bạn có thể cài đặt go bằng cách chạy
sudo apt-get install golang-go
Bước 2
Tải xuống bản phát hành mới nhất của Monstache từ đây. Giải nén thư mục. Trong thư mục, bạn sẽ tìm thấy một thư mục cho từng loại máy, trong trường hợp của chúng tôi linux-AMD64 là thư mục dành cho Ubuntu. Nhớ đường dẫn đến thư mục đó. Nếu bạn không muốn giữ các tệp mình không cần, hãy di chuyển nội dung của thư mục dành riêng cho máy chủ của bạn [linux-amd64 cho Ubuntu] vào bất kỳ thư mục nào khác trên máy chủ của bạn bằng FTP hoặc bất kỳ phương pháp nào khác và ghi nhớ đường dẫn [
Bước 3
Xuất đường dẫn của bạn sang. profile của máy chủ của bạn bằng cách chỉnh sửa nó, trong Ubuntu đó là ~/. bashrc nơi bạn cần thực hiện các thay đổi
sudo vi ~/.bashrc
Thêm dòng sau vào tệp, xem xét đường dẫn tôi đã yêu cầu bạn giữ trong bước hai
export PATH=“/home/ubuntu/build/linux-amd64:$PATH”
Lưu ý rằng đường dẫn kết thúc bằng tên thư mục liên quan đến loại máy chủ của bạn
Nhớ ghi nguồn hồ sơ của bạn
source ~/.bashrc
Chạy lệnh sau để đảm bảo mọi thứ được đặt chính xác, nếu đúng, nó sẽ trả về cho bạn phiên bản cài đặt Monstache của bạn
monstache -v
Bước 4
Monstache hoạt động bằng cách giám sát Mongodb oplog, bạn có thể đọc thêm về mongodb oplog, nhưng đó không phải là mục đích của hướng dẫn đó, bằng tiếng Anh đơn giản, oplog lưu giữ bản ghi về bất kỳ thay đổi nào xảy ra trong đối tượng mongodb và lưu cùng với thay đổi đó _id của . Tôi khuyên bạn nên tìm hiểu thêm về oplog
Để đảm bảo mongodb của bạn bắt đầu với oplog hoạt động, bạn cần chạy nó với tùy chọn chính là đúng, bạn có thể thiết lập điều đó trong mongodb. conf hoặc đơn giản bằng cách thêm — master vào mongo khi chạy
mongod --master
Bước 5 & Cuối cùng
Chạy Monstache bằng cách gõ vào terminal
monstache
Theo mặc định, monstache sẽ kết nối với Elaticsearch và MongoDB trên localhost trên các cổng mặc định và bắt đầu điều chỉnh oplog MongoDB
Tùy chọn nâng cao
Cả mongodb oplog và Monstache đều đi kèm với một số tùy chọn, một trong những thay đổi bạn có thể xem xét là kích thước oplog mongodb, đặc biệt nếu bạn định sử dụng tính năng này trong tác vụ cần nhiều dữ liệu. Xóa mongodb oplog thường xuyên cũng được khuyên để tiết kiệm dung lượng trong đĩa của bạn. Xin lưu ý rằng việc xóa oplog hoàn toàn không có nghĩa là Elaticsearch sẽ xóa đối tượng được lập chỉ mục khỏi chỉ mục của nó
Monstache cũng đi kèm với một tệp cấu hình mà bạn có thể tìm thấy tại đây
________số 8bạn có thể kiểm tra ý nghĩa của từng cấu hình tại đây. Ví dụ: namespace-regex và namespace-exclude-regex có thể trở nên hữu ích nếu bạn muốn lọc những gì cần lập chỉ mục trong Elaticsearch
Thế là xong, bạn đã hoàn thành. Theo mặc định, Monstache sẽ tạo chỉ mục cho mỗi bộ sưu tập với cú pháp sau
db. thu thập
Vì vậy, nếu tên cơ sở dữ liệu của bạn là thử nghiệm và bộ sưu tập của bạn là dữ liệu, thì chỉ mục sẽ là thử nghiệm. dữ liệu
Tôi hy vọng điều đó hữu ích, vui lòng đặt bất kỳ câu hỏi nào hoặc chia sẻ bất kỳ cách tiếp cận nào khác mà bạn có với cộng đồng. Và cuối cùng, cảm ơn Ryan Wynn vì đã tạo ra Monstache