{"id":2,"date":"2024-07-19T16:18:26","date_gmt":"2024-07-19T16:18:26","guid":{"rendered":"https:\/\/blogs.remiges.tech\/logharbour-tech\/?page_id=2"},"modified":"2024-07-23T11:01:46","modified_gmt":"2024-07-23T11:01:46","slug":"sample-page","status":"publish","type":"page","link":"https:\/\/blogs.remiges.tech\/logharbour-tech\/","title":{"rendered":"LogHarbour for Developers"},"content":{"rendered":"\n<p>Remiges LogHarbour is a centralised log repository which captures log entries from one or more applications and stores them securely in a separate database. This database may be queried by the applications, but its entries are protected against tampering and deletions. LogHarbour is open source and has client libraries in Go and Java. It can be downloaded from Github: see <a href=\"https:\/\/github.com\/remiges-tech\/logharbour-ui\">here<\/a>, <a href=\"https:\/\/github.com\/remiges-tech\/logharbour-java\">here<\/a> and <a href=\"https:\/\/github.com\/remiges-tech\/logharbour\">here<\/a>.<\/p>\n\n\n\n<p>This blog carries technical articles which will help developers understand how to use LogHarbour and integrate it into the applications they develop.<\/p>\n\n\n\n<figure class=\"wp-block-image alignfull size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"341\" src=\"https:\/\/blogs.remiges.tech\/logharbour-tech\/wp-content\/uploads\/sites\/14\/2024\/07\/lh-dev-1024x341.jpg\" alt=\"\" class=\"wp-image-9\" srcset=\"https:\/\/blogs.remiges.tech\/logharbour-tech\/wp-content\/uploads\/sites\/14\/2024\/07\/lh-dev-1024x341.jpg 1024w, https:\/\/blogs.remiges.tech\/logharbour-tech\/wp-content\/uploads\/sites\/14\/2024\/07\/lh-dev-300x100.jpg 300w, https:\/\/blogs.remiges.tech\/logharbour-tech\/wp-content\/uploads\/sites\/14\/2024\/07\/lh-dev-768x256.jpg 768w, https:\/\/blogs.remiges.tech\/logharbour-tech\/wp-content\/uploads\/sites\/14\/2024\/07\/lh-dev-1536x512.jpg 1536w, https:\/\/blogs.remiges.tech\/logharbour-tech\/wp-content\/uploads\/sites\/14\/2024\/07\/lh-dev-2048x682.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<div class=\"wp-block-group alignfull has-global-padding is-layout-constrained wp-container-core-group-is-layout-d89aad35 wp-block-group-is-layout-constrained\" style=\"margin-top:0;margin-bottom:0;padding-top:var(--wp--preset--spacing--50);padding-right:var(--wp--preset--spacing--50);padding-bottom:var(--wp--preset--spacing--50);padding-left:var(--wp--preset--spacing--50)\">\n<div class=\"wp-block-group alignwide has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\">\n<div class=\"wp-block-query alignwide is-layout-flow wp-block-query-is-layout-flow\"><ul class=\"wp-block-post-template is-layout-flow wp-block-post-template-is-layout-flow\"><li class=\"wp-block-post post-1 post type-post status-publish format-standard hentry category-uncategorized\">\n\n<hr class=\"wp-block-separator has-text-color has-contrast-3-color has-alpha-channel-opacity has-contrast-3-background-color has-background alignwide is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns alignwide are-vertically-aligned-center is-layout-flex wp-container-core-columns-is-layout-33233fb6 wp-block-columns-is-layout-flex\" style=\"margin-top:var(--wp--preset--spacing--20);margin-bottom:var(--wp--preset--spacing--20)\">\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:72%\"><h2 style=\"font-size:clamp(0.984rem, 0.984rem + ((1vw - 0.2rem) * 0.86), 1.5rem);line-height:1.1;\" class=\"wp-block-post-title\"><a href=\"https:\/\/blogs.remiges.tech\/logharbour-tech\/hello-world\/\" target=\"_self\" >Hello world!<\/a><\/h2><\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:28%\"><div class=\"wp-block-template-part\">\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\">\n\t\n\t<div class=\"wp-block-group is-content-justification-left is-layout-flex wp-container-core-group-is-layout-dfe8e91f wp-block-group-is-layout-flex\">\n\t\t<div class=\"wp-block-post-date\"><time datetime=\"2024-07-19T16:18:26+00:00\"><a href=\"https:\/\/blogs.remiges.tech\/logharbour-tech\/hello-world\/\">Jul 19, 2024<\/a><\/time><\/div>\n\n\t\t\n\t\t<p class=\"has-contrast-2-color has-text-color\">\u2014<\/p>\n\t\t\n\n\t\t\n\t\t<p class=\"has-small-font-size has-contrast-2-color has-text-color\">by<\/p>\n\t\t\n\n\t\t<div class=\"wp-block-post-author-name\"><a href=\"https:\/\/blogs.remiges.tech\/logharbour-tech\/author\/shuvam\/\" target=\"_self\" class=\"wp-block-post-author-name__link\">Shuvam<\/a><\/div>\n\n\t\t<div class=\"taxonomy-category wp-block-post-terms\"><span class=\"wp-block-post-terms__prefix\">in <\/span><a href=\"https:\/\/blogs.remiges.tech\/logharbour-tech\/category\/uncategorized\/\" rel=\"tag\">Uncategorized<\/a><\/div>\n\n\t<\/div>\n\t\n<\/div>\n\n\n<\/div><\/div>\n<\/div>\n\n<\/li><\/ul>\n\n\n<div style=\"height:var(--wp--preset--spacing--30)\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">What is Remiges LogHarbour?<\/h2>\n\n\n\n<p>Remiges LogHarbour is a highly scalable and secure open source product which allows applications to maintain all their logs in a central log repository. Applications insert entries into various logs, and the logs have a standard structure which allows data to be retrieved for forensic analysis or history traceback.<\/p>\n\n\n\n<p>LogHarbour uses an ElasticSearch database as its data store. If multiple applications write to a single LogHarbour installation, each application gets a separate index in ElasticSearch. A minimal recommended LogHarbour installation uses three ElasticSearch nodes in cluster mode, sharding the data and also replicating each shard onto the two other nodes, for higher capacity, higher throughput and better fault resiliency.<\/p>\n\n\n\n<p>LogHarbour client libraries are available in Go and Java. There are no plans to add additional language support. The client libraries push out log entries using a Kafka stream. Each client library instance becomes a Kafka producer, and a central service becomes the Kafka consumer, pulling messages out of the stream and writing to ElasticSearch.<\/p>\n\n\n\n<p>LogHarbour supports three types of logs:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Debug log: used only by programmers and systems engineers for debugging problems with the application. This type of log entries is turned off in production under normal use.<\/li>\n\n\n\n<li>Activity log: used by the application to log each event, each success or error, occurring in the system.<\/li>\n\n\n\n<li>Data-change log: used by the application whenever there is any change to any field of any object. This is used to trace back the change history of any datum.<\/li>\n<\/ul>\n\n\n\n<p>Each log entry in each log has a fixed structure where there are several standard fields with standard formats and semantics, plus a JSON payload. This JSON payload needs to be interpreted as per context. The 20th-century practice of logging plain text lines into <strong>syslog<\/strong> creates a lot of overheads for log processors which need to carry a lot of arcane folklore about the formats of these text lines in order to parse them, thus reducing the value of the log data itself. LogHarbour makes this process much easier.<\/p>\n\n\n\n<p>LogHarbour is released under an Apache 2.0 licence.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Remiges LogHarbour is a centralised log repository which captures log entries from one or more applications and stores them securely in a separate database. This database may be queried by the applications, but its entries are protected against tampering and deletions. LogHarbour is open source and has client libraries in Go and Java. It can [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"open","template":"","meta":{"footnotes":""},"class_list":["post-2","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/blogs.remiges.tech\/logharbour-tech\/wp-json\/wp\/v2\/pages\/2","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.remiges.tech\/logharbour-tech\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/blogs.remiges.tech\/logharbour-tech\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.remiges.tech\/logharbour-tech\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.remiges.tech\/logharbour-tech\/wp-json\/wp\/v2\/comments?post=2"}],"version-history":[{"count":5,"href":"https:\/\/blogs.remiges.tech\/logharbour-tech\/wp-json\/wp\/v2\/pages\/2\/revisions"}],"predecessor-version":[{"id":18,"href":"https:\/\/blogs.remiges.tech\/logharbour-tech\/wp-json\/wp\/v2\/pages\/2\/revisions\/18"}],"wp:attachment":[{"href":"https:\/\/blogs.remiges.tech\/logharbour-tech\/wp-json\/wp\/v2\/media?parent=2"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}