<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:series="https://publishpress.com/"
	>

<channel>
	<title>logrotate Archives - Tomoshare</title>
	<atom:link href="https://blog.tomosia.com.vn/tag/logrotate/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.tomosia.com.vn/tag/logrotate/</link>
	<description>Kênh chia sẻ kiến thức Tomosia Việt Nam</description>
	<lastBuildDate>Wed, 22 Nov 2023 01:55:01 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://blog.tomosia.com.vn/wp-content/uploads/2023/09/cropped-icon-32x32.png</url>
	<title>logrotate Archives - Tomoshare</title>
	<link>https://blog.tomosia.com.vn/tag/logrotate/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Logrotate: Compress và push file log lên S3</title>
		<link>https://blog.tomosia.com.vn/logrotate-compress-va-push-file-log-len-s3/</link>
					<comments>https://blog.tomosia.com.vn/logrotate-compress-va-push-file-log-len-s3/#comments</comments>
		
		<dc:creator><![CDATA[Thuc Phan]]></dc:creator>
		<pubDate>Wed, 22 Nov 2023 01:54:57 +0000</pubDate>
				<category><![CDATA[Web Server]]></category>
		<category><![CDATA[Solution]]></category>
		<category><![CDATA[Infrastructure]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[logrotate]]></category>
		<guid isPermaLink="false">https://blog.tomosia.com.vn/?p=1939</guid>

					<description><![CDATA[<p>Log files giúp bạn hiểu rõ về lịch sử hoạt động của máy chủ nhưng chúng có thể&#8230;</p>
<p>The post <a href="https://blog.tomosia.com.vn/logrotate-compress-va-push-file-log-len-s3/">Logrotate: Compress và push file log lên S3</a> appeared first on <a href="https://blog.tomosia.com.vn">Tomoshare</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Log files giúp bạn hiểu rõ về lịch sử hoạt động của máy chủ nhưng chúng có thể trở nên nặng nề và khó quản lý</p>



<p class="wp-block-paragraph">Logrotate không chỉ giúp giảm kích thước file log một cách tự động mà còn có thể nén file để tiết kiệm không gian lưu trữ</p>



<p class="wp-block-paragraph">Trong bài viết này, chúng ta sẽ tìm hiểu cách Logrotate được cấu hình để tự động nén và đẩy file lên S3, giúp bạn duy trì hệ thống được sạch sẽ và dễ quản lý hơn</p>



<h2 id="config" class="wp-block-heading">Config</h2>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#f6f6f4;--cbp-line-number-width:8.4296875px;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#333545;color:#ebebe6">ShellScript</span><span role="button" tabindex="0" data-code="cd /etc/logrotate.d
touch rails_log_rotation" style="color:#f6f6f4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula-soft" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #97E1F1">cd</span><span style="color: #F6F6F4"> </span><span style="color: #E7EE98">/etc/logrotate.d</span></span>
<span class="line"><span style="color: #62E884">touch</span><span style="color: #F6F6F4"> </span><span style="color: #E7EE98">rails_log_rotation</span></span></code></pre></div>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#f6f6f4;--cbp-line-number-width:16.859375px;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#333545;color:#ebebe6">ShellScript</span><span role="button" tabindex="0" data-code="/home/ubuntu/path-to-deploy/current/log/production.log {
  daily
  dateext
  missingok
  rotate 90
  compress
  copytruncate
  lastaction
    aws s3 sync /home/ubuntu/path-to-deploy/current/log/ s3://path-to-bucket-name --exclude &quot;*&quot; --include &quot;production.log*.gz&quot; 2&gt;&amp;1
  endscript
  create 0644 root root
  su root root
}" style="color:#f6f6f4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula-soft" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #62E884">/home/ubuntu/path-to-deploy/current/log/production.log</span><span style="color: #F6F6F4"> </span><span style="color: #E7EE98">{</span></span>
<span class="line"><span style="color: #F6F6F4">  </span><span style="color: #62E884">daily</span></span>
<span class="line"><span style="color: #F6F6F4">  </span><span style="color: #62E884">dateext</span></span>
<span class="line"><span style="color: #F6F6F4">  </span><span style="color: #62E884">missingok</span></span>
<span class="line"><span style="color: #F6F6F4">  </span><span style="color: #62E884">rotate</span><span style="color: #F6F6F4"> </span><span style="color: #BF9EEE">90</span></span>
<span class="line"><span style="color: #F6F6F4">  </span><span style="color: #62E884">compress</span></span>
<span class="line"><span style="color: #F6F6F4">  </span><span style="color: #62E884">copytruncate</span></span>
<span class="line"><span style="color: #F6F6F4">  </span><span style="color: #62E884">lastaction</span></span>
<span class="line"><span style="color: #F6F6F4">    </span><span style="color: #62E884">aws</span><span style="color: #F6F6F4"> </span><span style="color: #E7EE98">s3</span><span style="color: #F6F6F4"> </span><span style="color: #E7EE98">sync</span><span style="color: #F6F6F4"> </span><span style="color: #E7EE98">/home/ubuntu/path-to-deploy/current/log/</span><span style="color: #F6F6F4"> </span><span style="color: #E7EE98">s3://path-to-bucket-name</span><span style="color: #F6F6F4"> </span><span style="color: #BF9EEE">--exclude</span><span style="color: #F6F6F4"> </span><span style="color: #DEE492">&quot;</span><span style="color: #E7EE98">*</span><span style="color: #DEE492">&quot;</span><span style="color: #F6F6F4"> </span><span style="color: #BF9EEE">--include</span><span style="color: #F6F6F4"> </span><span style="color: #DEE492">&quot;</span><span style="color: #E7EE98">production.log*.gz</span><span style="color: #DEE492">&quot;</span><span style="color: #F6F6F4"> </span><span style="color: #F286C4">2&gt;&amp;1</span></span>
<span class="line"><span style="color: #F6F6F4">  </span><span style="color: #62E884">endscript</span></span>
<span class="line"><span style="color: #F6F6F4">  </span><span style="color: #62E884">create</span><span style="color: #F6F6F4"> </span><span style="color: #BF9EEE">0644</span><span style="color: #F6F6F4"> </span><span style="color: #E7EE98">root</span><span style="color: #F6F6F4"> </span><span style="color: #E7EE98">root</span></span>
<span class="line"><span style="color: #F6F6F4">  </span><span style="color: #62E884">su</span><span style="color: #F6F6F4"> </span><span style="color: #E7EE98">root</span><span style="color: #F6F6F4"> </span><span style="color: #E7EE98">root</span></span>
<span class="line"><span style="color: #F6F6F4">}</span></span></code></pre></div>



<p class="wp-block-paragraph"><code><strong>home/ubuntu/path-to-deploy/current/log/production.log</strong></code></p>



<ul class="wp-block-list">
<li>Link đến file log cần được quản lý bởi logrotate</li>
</ul>



<p class="wp-block-paragraph"><code><strong>daily</strong></code></p>



<ul class="wp-block-list">
<li>Thực hiện xoay vòng log hàng ngày (được thực hiện bằng cron-job)</li>
</ul>



<ul class="wp-block-list">
<li>Có nghĩa là file <code>/home/ubuntu/path-to-deploy/current/log/production.log</code> sẽ được làm mới mỗi ngày</li>
</ul>



<ul class="wp-block-list">
<li>Check cron configuration</li>
</ul>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#f6f6f4;--cbp-line-number-width:8.4296875px;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#333545;color:#ebebe6">ShellScript</span><span role="button" tabindex="0" data-code="cd /etc/
ls | grep cron
cron.d
cron.daily
cron.hourly
cron.monthly
cron.weekly
crontab" style="color:#f6f6f4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula-soft" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #97E1F1">cd</span><span style="color: #F6F6F4"> </span><span style="color: #E7EE98">/etc/</span></span>
<span class="line"><span style="color: #62E884">ls</span><span style="color: #F6F6F4"> </span><span style="color: #F286C4">|</span><span style="color: #F6F6F4"> </span><span style="color: #62E884">grep</span><span style="color: #F6F6F4"> </span><span style="color: #E7EE98">cron</span></span>
<span class="line"><span style="color: #62E884">cron.d</span></span>
<span class="line"><span style="color: #62E884">cron.daily</span></span>
<span class="line"><span style="color: #62E884">cron.hourly</span></span>
<span class="line"><span style="color: #62E884">cron.monthly</span></span>
<span class="line"><span style="color: #62E884">cron.weekly</span></span>
<span class="line"><span style="color: #62E884">crontab</span></span></code></pre></div>



<p class="wp-block-paragraph"><code><strong>dateext</strong></code></p>



<ul class="wp-block-list">
<li>Thêm ngày vào filename của file log được xoay vòng để đảm bảo không bị trùng tên</li>
</ul>



<p class="wp-block-paragraph"><code><strong>missingok</strong></code></p>



<ul class="wp-block-list">
<li>Cho phép logrotate bỏ qua nếu không tìm thấy file</li>
</ul>



<p class="wp-block-paragraph"><code><strong>rotate 90</strong></code></p>



<ul class="wp-block-list">
<li>Giữ lại tối đa 90 file logs đã quay vòng</li>



<li>Trong trường hợp này, có thể hiểu là cho phép lưu trữ file logs của 90 ngày gần nhất</li>
</ul>



<p class="wp-block-paragraph"><code><strong>compress</strong></code></p>



<ul class="wp-block-list">
<li>Nén file log đã xoay vòng để tiết kiệm không gian lưu trữ</li>
</ul>



<p class="wp-block-paragraph"><code><strong>copytruncate</strong></code></p>



<ul class="wp-block-list">
<li>Sao chép nội dung từ file cũ vào file mới, sau đó quay lại đầu file cũ và cắt bớt nó. Điều này giúp logrotate có thể xoay vòng mà không làm ảnh hưởng đến ứng dụng đang chạy</li>
</ul>



<p class="wp-block-paragraph"><code><strong>lastaction</strong></code> và <code><strong>endscript</strong></code> </p>



<ul class="wp-block-list">
<li>Bọc một đoạn code hoặc command được thực thi sau khi xoay vòng</li>



<li>Trong trường hợp này, sử dụng AWS CLI để đồng bộ hóa các file logs đã xoay vòng với Amazon S3</li>



<li>Loại trừ tất cả các files, chỉ bao gồm các file logs đã nén <code>(production.log*.gz)</code></li>



<li>Lưu ý
<ul class="wp-block-list">
<li>Bạn cần thay thế <code>path-to-bucket-name</code> bằng đường dẫn thích hợp đến S3 Bucket của bạn</li>



<li>EC2 phải tương tác được với S3 Bucket của bạn (có thể dùng <code>aws configure</code> hoặc <code>attached IAM role</code> đều được)</li>
</ul>
</li>
</ul>



<p class="wp-block-paragraph"><code><strong>create 0644 root root</strong></code></p>



<ul class="wp-block-list">
<li>Tạo một file log mới với quyền truy cập <code>0644</code> và chủ sở hữu là <code>root</code></li>
</ul>



<p class="wp-block-paragraph"><code><strong>su root root</strong></code></p>



<ul class="wp-block-list">
<li>Chuyển quyền sở hữu của file sang <code>root</code> sau khi tạo mới để đảm bảo an toàn và bảo mật</li>
</ul>



<p class="wp-block-paragraph"><strong>Tóm lại</strong></p>



<ul class="wp-block-list">
<li>Config này giúp bạn quản lý và tự động xoay vòng file <code>production.log</code> mỗi ngày</li>



<li>Nén file để tiết kiệm không gian và đồng thời sao chép lên Amazon S3 để lưu trữ</li>
</ul>



<p class="wp-block-paragraph"><strong>Manual test config</strong></p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#f6f6f4;--cbp-line-number-width:8.4296875px;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#333545;color:#ebebe6">ShellScript</span><span role="button" tabindex="0" data-code="sudo logrotate -f /etc/logrotate.conf" style="color:#f6f6f4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula-soft" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #62E884">sudo</span><span style="color: #F6F6F4"> </span><span style="color: #E7EE98">logrotate</span><span style="color: #F6F6F4"> </span><span style="color: #BF9EEE">-f</span><span style="color: #F6F6F4"> </span><span style="color: #E7EE98">/etc/logrotate.conf</span></span></code></pre></div>
<p>The post <a href="https://blog.tomosia.com.vn/logrotate-compress-va-push-file-log-len-s3/">Logrotate: Compress và push file log lên S3</a> appeared first on <a href="https://blog.tomosia.com.vn">Tomoshare</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.tomosia.com.vn/logrotate-compress-va-push-file-log-len-s3/feed/</wfw:commentRss>
			<slash:comments>11</slash:comments>
		
		
			</item>
	</channel>
</rss>
