<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Freesunny</title>
    <link>https://freesunny.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Sat, 9 May 2026 17:46:53 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>freesunny</managingEditor>
    <item>
      <title>쉘스크립트(bash script) 인자에 기본값 설정하기</title>
      <link>https://freesunny.tistory.com/72</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;쉘스크립트에 인자가 없을 경우 기본값을 설정하는 방법&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1733132517730&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#! /bin/bash

# 인수로 최소 coreprice, 최대 coreprice, vcpu, AvailabilityZone을 받수 있도록 함
MIN_COREPRICE=&quot;${1:-0}&quot;     # 첫 번째 인수가 없으면 기본값 0
MAX_COREPRICE=&quot;${2:-0.019}&quot; # 두 번째 인수가 없으면 기본값 0.019
VCPUS=&quot;${3:-64,72,96}&quot;      # 세 번째 인수가 없으면 기본값 64,72,96
AZ=&quot;${4:-ap-northeast-2c}&quot;  # 네 번째 인수가 없으면 기본값 ap-northeast-2c&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Linux</category>
      <category>bash</category>
      <category>Linux</category>
      <category>script</category>
      <category>Shell</category>
      <author>freesunny</author>
      <guid isPermaLink="true">https://freesunny.tistory.com/72</guid>
      <comments>https://freesunny.tistory.com/72#entry72comment</comments>
      <pubDate>Mon, 2 Dec 2024 18:43:04 +0900</pubDate>
    </item>
    <item>
      <title>mongodb 에서 인덱스 용량 확인</title>
      <link>https://freesunny.tistory.com/71</link>
      <description>&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;해당 DB 의 컬렉션별 인덱스 용량을 각각 표시하는 방법&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1726891215079&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;db.getCollectionNames().forEach(function(collection) {
  let stats = db[collection].stats();
  print(collection + &quot; index size: &quot; + (stats.totalIndexSize / (1024 * 1024)).toFixed(2) + &quot; MB&quot;);
});&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;해당 DB 의 컬력션별 인덱스 용량을 합산하여 표시하는 방법&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1726891256241&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;let totalIndexSize = 0;
db.getCollectionNames().forEach(function(collection) {
  let stats = db[collection].stats();
  totalIndexSize += stats.totalIndexSize;
});
print(&quot;Total index size for all collections: &quot; + (totalIndexSize / (1024 * 1024)).toFixed(2) + &quot; MB&quot;);&lt;/code&gt;&lt;/pre&gt;</description>
      <category>mongoDB</category>
      <category>collection</category>
      <category>index</category>
      <category>MongoDB</category>
      <author>freesunny</author>
      <guid isPermaLink="true">https://freesunny.tistory.com/71</guid>
      <comments>https://freesunny.tistory.com/71#entry71comment</comments>
      <pubDate>Sat, 21 Sep 2024 13:02:13 +0900</pubDate>
    </item>
    <item>
      <title>mongoDB collection 별 용량 확인하는 방법</title>
      <link>https://freesunny.tistory.com/70</link>
      <description>&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;방법#1 : mongosh에서는 SQL 스타일의 명령어를 사용하여 데이터베이스 내의 컬렉션 목록을 쉽게 확인할 수 있습니다.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;이 명령어는 현재 선택된 데이터베이스의 컬렉션 목록을 출력합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1719472414676&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;gt; use myDatabase
&amp;gt; show collections
users
products
orders&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;방법#2 : mongosh에서 JavaScript 메서드를 사용하여 컬렉션 목록을 조회할 수도 있습니다.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;이 명령어는 현재 선택된 데이터베이스의 컬렉션 이름을 배열로 반환합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1719472552665&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;gt; use myDatabase
&amp;gt; db.getCollectionNames()
[
  &quot;users&quot;,
  &quot;products&quot;,
  &quot;orders&quot;
]&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;mongosh에서 db.collection.stats() 메서드를 사용하여 컬렉션의 통계 정보를 확인할 수 있습니다.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;주요 필드 설명
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;size: 컬렉션의 전체 크기(바이트 단위).&lt;/li&gt;
&lt;li&gt;count: 컬렉션 내 문서 수.&lt;/li&gt;
&lt;li&gt;avgObjSize: 평균 문서 크기(바이트 단위).&lt;/li&gt;
&lt;li&gt;storageSize: 컬렉션이 실제로 차지하는 스토리지 크기(바이트 단위).&lt;/li&gt;
&lt;li&gt;nindexes: 컬렉션에 존재하는 인덱스 수.&lt;/li&gt;
&lt;li&gt;totalIndexSize: 인덱스가 차지하는 전체 크기(바이트 단위).&lt;/li&gt;
&lt;li&gt;indexSizes: 각 인덱스별 크기(바이트 단위).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1719472920222&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;gt; use myDatabase
&amp;gt; db.myCollection.stats()
{
  &quot;ns&quot; : &quot;myDatabase.myCollection&quot;,
  &quot;size&quot; : 1024,
  &quot;count&quot; : 100,
  &quot;avgObjSize&quot; : 10.24,
  &quot;storageSize&quot; : 2048,
  &quot;capped&quot; : false,
  &quot;wiredTiger&quot; : {
    ...
  },
  &quot;nindexes&quot; : 1,
  &quot;totalIndexSize&quot; : 4096,
  &quot;indexSizes&quot; : {
    &quot;_id_&quot; : 4096
  },
  &quot;ok&quot; : 1
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;인덱스 크기 확인
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;인덱스 크기를 별도로 확인하려면 totalIndexSize와 indexSizes 필드를 확인할 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1719473108288&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;gt; var stats = db.myCollection.stats();
print(&quot;Total Index Size: &quot; + stats.totalIndexSize + &quot; bytes&quot;);
print(&quot;Index Sizes: &quot;, stats.indexSizes);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;모든 컬렉션의 용량 확인
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;데이터베이스 내 모든 컬렉션의 용량을 확인하려면, db.getCollectionNames()와 db.collection.stats()를 조합하여 사용할 수 있습니다.&lt;/li&gt;
&lt;li&gt;&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1719473149067&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;gt; db.getCollectionNames().forEach(function(collectionName) {
  var stats = db.getCollection(collectionName).stats();
  print(&quot;Collection: &quot; + collectionName);
  print(&quot;Size: &quot; + stats.size + &quot; bytes&quot;);
  print(&quot;Storage Size: &quot; + stats.storageSize + &quot; bytes&quot;);
  print(&quot;Total Index Size: &quot; + stats.totalIndexSize + &quot; bytes&quot;);
  print(&quot;\n&quot;);
});&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;모든 컬렉션의 용량 확인 (GB)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;db.collection.stats() 명령을 사용하여 얻은 컬렉션 용량 정보를 바이트 단위가 아닌 기가바이트 단위로 표시하려면, 바이트를 기가바이트로 변환하는 계산을 추가하면 됩니다. 바이트를 기가바이트로 변환하려면 바이트 값을 1024 * 1024 * 1024 로 나누면 됩니다.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;스크립트 설명
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;db.getCollectionNames().forEach(function(collectionName) {...}): 데이터베이스의 모든 컬렉션에 대해 반복합니다.&lt;/li&gt;
&lt;li&gt;db.getCollection(collectionName).stats(): 각 컬렉션의 통계 정보를 가져옵니다.&lt;/li&gt;
&lt;li&gt;(stats.size / (1024 * 1024 * 1024)).toFixed(2): 바이트를 기가바이트로 변환하고 소수점 두 자리까지 반올림합니다.&lt;/li&gt;
&lt;li&gt;print(&quot;Collection: &quot; + collectionName): 컬렉션 이름을 출력합니다.&lt;/li&gt;
&lt;li&gt;print(&quot;Size: &quot; + sizeGB + &quot; GB&quot;): 컬렉션의 크기를 기가바이트 단위로 출력합니다.&lt;/li&gt;
&lt;li&gt;print(&quot;Storage Size: &quot; + storageSizeGB + &quot; GB&quot;): 컬렉션이 실제로 차지하는 스토리지 크기를 기가바이트 단위로 출력합니다.&lt;/li&gt;
&lt;li&gt;print(&quot;Total Index Size: &quot; + totalIndexSizeGB + &quot; GB&quot;): 인덱스가 차지하는 전체 크기를 기가바이트 단위로 출력합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1719473379754&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// 모든 컬렉션의 용량을 GB 단위로 출력하는 스크립트
&amp;gt; db.getCollectionNames().forEach(function(collectionName) {
    var stats = db.getCollection(collectionName).stats();
    var sizeGB = (stats.size / (1024 * 1024 * 1024)).toFixed(2);
    var storageSizeGB = (stats.storageSize / (1024 * 1024 * 1024)).toFixed(2);
    var totalIndexSizeGB = (stats.totalIndexSize / (1024 * 1024 * 1024)).toFixed(2);

    print(&quot;Collection: &quot; + collectionName);
    print(&quot;Size: &quot; + sizeGB + &quot; GB&quot;);
    print(&quot;Storage Size: &quot; + storageSizeGB + &quot; GB&quot;);
    print(&quot;Total Index Size: &quot; + totalIndexSizeGB + &quot; GB&quot;);
    print(&quot;\n&quot;);
});&lt;/code&gt;&lt;/pre&gt;</description>
      <category>mongoDB</category>
      <category>collection</category>
      <category>index</category>
      <category>MongoDB</category>
      <author>freesunny</author>
      <guid isPermaLink="true">https://freesunny.tistory.com/70</guid>
      <comments>https://freesunny.tistory.com/70#entry70comment</comments>
      <pubDate>Thu, 27 Jun 2024 16:30:36 +0900</pubDate>
    </item>
    <item>
      <title>mongoDB 데이터 압축</title>
      <link>https://freesunny.tistory.com/69</link>
      <description>&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;지원하는 압축 알고리즘
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;snappy : 속도가 빠르며 적당한 압축률을 제공합니다. 일반적으로 30-50%의 공간 절약을 기대할 수 있습니다.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;장점&lt;/b&gt;: 빠른 압축 및 압축 해제 속도, 낮은 CPU 사용률.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;단점&lt;/b&gt;: 상대적으로 낮은 압축률.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;사용 사례&lt;/b&gt;: CPU 사용을 최소화하고 빠른 응답 시간이 중요한 경우 적합.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;zlib : 압축률이 더 높지만, 속도는 상대적으로 느립니다. 일반적으로 50-70%의 공간 절약을 기대할 수 있습니다.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;장점&lt;/b&gt;: 높은 압축률.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;단점&lt;/b&gt;: 압축 및 압축 해제 속도가 느리며, CPU 사용률이 높음.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;사용 사례&lt;/b&gt;: 저장 공간 절약이 매우 중요한 경우 적합.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;zstd : 압축률과 속도 사이에서 균형을 이루는 새로운 알고리즘입니다. 일반적으로 50-70%의 공간 절약을 기대할 수 있습니다.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;장점&lt;/b&gt;: Snappy와 Zlib의 중간 성능, 균형 잡힌 압축률과 속도.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;단점&lt;/b&gt;: 중간 수준의 CPU 사용률.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;사용 사례&lt;/b&gt;: 균형 잡힌 성능과 효율성이 필요한 경우 적합.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;none&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;설정 방법 (mongod.conf)&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1719470429691&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;storage:
  dbPath: /var/lib/mongodb
  wiredTiger:
    engineConfig:
      cacheSizeGB: 2
    collectionConfig:
      blockCompressor: zstd
    indexConfig:
      prefixCompression: true&lt;/code&gt;&lt;/pre&gt;</description>
      <category>mongoDB</category>
      <category>MongoDB</category>
      <category>snappy</category>
      <category>wiredTiger</category>
      <category>zlib</category>
      <category>zstd</category>
      <author>freesunny</author>
      <guid isPermaLink="true">https://freesunny.tistory.com/69</guid>
      <comments>https://freesunny.tistory.com/69#entry69comment</comments>
      <pubDate>Thu, 27 Jun 2024 15:43:30 +0900</pubDate>
    </item>
    <item>
      <title>[helm] eks 저장소 추가 및 aws-node-termination-handler 업그레이드 하기</title>
      <link>https://freesunny.tistory.com/68</link>
      <description>&lt;p&gt;참고: aws-node-termination-handler 는 쿠버네티스 노드를 스팟으로 구성할 때 필요한 APP 이다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;helm eks 저장소 추가&lt;/p&gt;
&lt;pre id=&quot;code_1592290368853&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;❯ helm repo add eks https://aws.github.io/eks-charts
&quot;eks&quot; has been added to your repositories&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;기존에 설치된 helm 패키지 확인&lt;/p&gt;
&lt;pre id=&quot;code_1592290423083&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;❯ helm list -A
NAME                        	NAMESPACE     	REVISION	UPDATED                             	STATUS  	CHART                             	APP VERSION
aws-node-termination-handler	kube-system   	1       	2020-01-23 15:37:00.775536 +0900 KST	deployed	aws-node-termination-handler-0.3.0	1.0.0
k8s-spot-rescheduler        	kube-system   	1       	2020-05-20 19:29:55.906721 +0900 KST	deployed	k8s-spot-rescheduler-0.4.4        	v0.3.0
prometheus                  	monitoring    	4       	2020-06-16 15:29:38.439616 +0900 KST	failed  	prometheus-11.4.0                 	2.18.1&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;최신 패키지 확인 (aws-node-termination-handler)&lt;/p&gt;
&lt;pre id=&quot;code_1592290568918&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;❯ helm search repo eks | grep aws-node
eks/aws-node-termination-handler	0.7.5        	1.4.0      	A Helm chart for the AWS Node Termination Handler&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;설치되어 있는 버전은 1.0.0 이고 최신 버전은 1.4.0이라서 업그레이드를 진행한다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;업그레이드&lt;/p&gt;
&lt;pre id=&quot;code_1592290667613&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;❯ helm upgrade aws-node-termination-handler eks/aws-node-termination-handler -n kube-system
Release &quot;aws-node-termination-handler&quot; has been upgraded. Happy Helming!
NAME: aws-node-termination-handler
LAST DEPLOYED: Tue Jun 16 15:49:36 2020
NAMESPACE: kube-system
STATUS: deployed
REVISION: 2
TEST SUITE: None
NOTES:
aws-node-termination-handler has been installed or updated. To check the status of pods, run:

kubectl get pods --namespace&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;br /&gt;&lt;br /&gt;설치된 패키지 확인&lt;/p&gt;
&lt;pre id=&quot;code_1592290790192&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;❯ helm list -A
NAME                        	NAMESPACE  	REVISION	UPDATED                             	STATUS  	CHART                             	APP VERSION
aws-node-termination-handler	kube-system	2       	2020-06-16 15:49:36.456346 +0900 KST	deployed	aws-node-termination-handler-0.7.5	1.4.0&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Kubernetes</category>
      <category>aws-node-termination-handler</category>
      <category>helm</category>
      <category>kubernetes</category>
      <category>spot</category>
      <category>spot instance</category>
      <category>Upgrade</category>
      <author>freesunny</author>
      <guid isPermaLink="true">https://freesunny.tistory.com/68</guid>
      <comments>https://freesunny.tistory.com/68#entry68comment</comments>
      <pubDate>Tue, 16 Jun 2020 16:00:04 +0900</pubDate>
    </item>
    <item>
      <title>EC2 - curl 명령으로 public IP 확인하는 방법</title>
      <link>https://freesunny.tistory.com/67</link>
      <description>&lt;p&gt;curl 명령으로 할당된 public ip를 확인할 수 있다.&lt;/p&gt;
&lt;pre id=&quot;code_1591848682210&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# public ip 출력
curl http://169.254.169.254/latest/meta-data/public-ipv4&lt;/code&gt;&lt;/pre&gt;</description>
      <category>AWS</category>
      <category>AWS</category>
      <category>curl</category>
      <category>EC2</category>
      <category>public IP</category>
      <author>freesunny</author>
      <guid isPermaLink="true">https://freesunny.tistory.com/67</guid>
      <comments>https://freesunny.tistory.com/67#entry67comment</comments>
      <pubDate>Thu, 11 Jun 2020 13:12:17 +0900</pubDate>
    </item>
    <item>
      <title>haproxy path rediect</title>
      <link>https://freesunny.tistory.com/66</link>
      <description>&lt;p&gt;&lt;span&gt;SSL 인증서 확인을 위해서 인증 파일을 보유하고 있는 웹사이트에 올려야 하는데, 파일을 올리기 위해서 모든 웹서버에 재배포를 진행하지 않고, haproxy 를 통해서 특정 path 를 다른 웹서버로 리다이렉트 시키는 방법.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;lt;구성&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cbKwZq/btqErLQR47q/IQy3uumOWkDgFjK0QkI5nK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cbKwZq/btqErLQR47q/IQy3uumOWkDgFjK0QkI5nK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cbKwZq/btqErLQR47q/IQy3uumOWkDgFjK0QkI5nK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcbKwZq%2FbtqErLQR47q%2FIQy3uumOWkDgFjK0QkI5nK%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;lt;haproxy.cfg&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1590474669182&quot; class=&quot;cs&quot; data-ke-language=&quot;cs&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;frontend lb-fe-http-https
        bind 0.0.0.0:80
        bind 0.0.0.0:443 ssl crt /etc/haproxy/certs/&amp;lt;domain&amp;gt;.pem
        acl is-cert-path path_beg  /.well-known/pki-validation
        use_backend cert-lb-backend if is-cert-path
        default_backend default-lb-backend

backend cert-lb-backend
        balance roundrobin
        server temp01 &amp;lt;server_ip&amp;gt;:80    maxconn 80 check

backend default-lb-backend
        balance leastconn
        server server01 &amp;lt;server_ip&amp;gt;:80    maxconn 80 check
        server server02 &amp;lt;server_ip&amp;gt;:80    maxconn 80 check
        server server03 &amp;lt;server_ip&amp;gt;:80    maxconn 80 check&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>haproxy</category>
      <category>haproxy</category>
      <category>path redirect</category>
      <category>redirect</category>
      <author>freesunny</author>
      <guid isPermaLink="true">https://freesunny.tistory.com/66</guid>
      <comments>https://freesunny.tistory.com/66#entry66comment</comments>
      <pubDate>Tue, 26 May 2020 15:32:52 +0900</pubDate>
    </item>
    <item>
      <title>documentDB 를 접속을 위한 port forwarding 셋팅</title>
      <link>https://freesunny.tistory.com/65</link>
      <description>&lt;p&gt;aws documentdb 는 public 접속을&amp;nbsp; 허용하지 않고, private 으로만 접속을 해야 한다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;아무래도 편하게 접속할 수 있도록 documentdb 가 접속되는 subnet 에 ec2 인스턴스를 설치하고 해당 instance 를 통해서 documentdb 를 접속할 수 있도록 셋팅하였다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;먼저 documentdb 의 tls 옵션을 disable 로 변경한 뒤에 cluster 를 재시작한다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;documentdb 로 접속 할수 있는 ec2 에 자기자신에게 로그인할수 있도록 pem 파일을 업로드 한다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;documentdb 로 접속 할수 있는 ec2 인스턴스에서 아래의 명령을 입력한다.&lt;/p&gt;
&lt;pre id=&quot;code_1590397584278&quot; class=&quot;cs&quot; data-ke-language=&quot;cs&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;ssh -o ExitOnForwardFailure=yes -f -i &amp;lt;my-pem-key.pem&amp;gt; -N -L 0.0.0.0:27017:&amp;lt;document-db-enpoint&amp;gt;:27017 &amp;lt;username&amp;gt;@localhost&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;br /&gt;ec2 를 통해서 documentdb 가 연결되는지 확인한다.&lt;/p&gt;
&lt;pre id=&quot;code_1590397750324&quot; class=&quot;cs&quot; data-ke-language=&quot;cs&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;mongo --host &amp;lt;ec2-host-name or ec2-ip&amp;gt;:27017 --username &amp;lt;documentdb-account&amp;gt; --password &amp;lt;documentdb-password&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;백그라운드에서 터널이 연결되며, 서버 종료 되기 전까지 터널링이 계속 유지 된다.&lt;/p&gt;</description>
      <category>mongoDB</category>
      <category>documentdb</category>
      <category>MongoDB</category>
      <category>ssh</category>
      <category>tunneling</category>
      <author>freesunny</author>
      <guid isPermaLink="true">https://freesunny.tistory.com/65</guid>
      <comments>https://freesunny.tistory.com/65#entry65comment</comments>
      <pubDate>Mon, 25 May 2020 18:05:36 +0900</pubDate>
    </item>
    <item>
      <title>간단하게 nginx 배포하기</title>
      <link>https://freesunny.tistory.com/64</link>
      <description>&lt;p&gt;클러스터 내에 파드의 통신을 확인할때 명세 없이 커맨드 만으로 nginx 를 배포하는 방법이다.&lt;/p&gt;
&lt;p&gt;os가 debian 이라서 배포후 필요한 패키지는 apt 로 설치해서 사용하면 된다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;$ kubectl create deployment nginx --image=nginx -n namespace&lt;/p&gt;</description>
      <category>Kubernetes</category>
      <category>debian</category>
      <category>deployment</category>
      <category>k8s</category>
      <category>kubernetes</category>
      <category>nginx</category>
      <author>freesunny</author>
      <guid isPermaLink="true">https://freesunny.tistory.com/64</guid>
      <comments>https://freesunny.tistory.com/64#entry64comment</comments>
      <pubDate>Tue, 17 Mar 2020 11:55:24 +0900</pubDate>
    </item>
    <item>
      <title>Grafana - docker container 로 실행 시키기</title>
      <link>https://freesunny.tistory.com/63</link>
      <description>&lt;p&gt;grafana 를 통해서 네 가지의 모니터링 지표들을 한 곳에서 보고 있다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;zabbix&lt;/li&gt;
&lt;li&gt;aws cloudwach&lt;/li&gt;
&lt;li&gt;azure monitor&lt;/li&gt;
&lt;li&gt;prometheus&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ssl 은 haproxy 를 통해서 처리했고, 계정관리를 위해서 ldap 서버와 연동을 하였다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;설치는 docker container 방식을 사용하였다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;디렉토리 생성 및 권한 설정&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;디렉토리는 본인의 환경에 맞게 변경&lt;/li&gt;
&lt;li&gt;grafana&amp;nbsp; 데이터는 uid 472, gid 472 사 소유권을 갖도록 설정 한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;colorscripter-code&quot; style=&quot;color: #f0f0f0; font-family: Consolas,&amp;nbsp;'Liberation&amp;nbsp;Mono',&amp;nbsp;Menlo,&amp;nbsp;Courier,&amp;nbsp;monospace&amp;nbsp;!important; position: relative&amp;nbsp;!important; overflow: auto;&quot;&gt;
&lt;table class=&quot;colorscripter-code-table&quot; style=&quot;margin: 0px; padding: 0px; border: none; background-color: #272727; border-radius: 4px; width: 0px;&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: left; width: 290px;&quot;&gt;
&lt;div style=&quot;margin: 0; padding: 0; color: #f0f0f0; font-family: Consolas,&amp;nbsp;'Liberation&amp;nbsp;Mono',&amp;nbsp;Menlo,&amp;nbsp;Courier,&amp;nbsp;monospace&amp;nbsp;!important; line-height: 130%;&quot;&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;#&amp;nbsp;mkdir&amp;nbsp;/data/grafana/grafana-storage&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;#&amp;nbsp;chown&amp;nbsp;472&amp;nbsp;/data/grafana/grafana-storage&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;#&amp;nbsp;chgrp&amp;nbsp;472&amp;nbsp;/data/grafana/grafana-storage&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;#&amp;nbsp;mkdir&amp;nbsp;/data/grafana/etc&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;실행 명령&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;grafana의 기본 포트는 3000 이다. &lt;br /&gt;가급적 컨테이너의 포트는 변경하지 않는 것이 좋으나,&lt;br /&gt;변경이 필요할 경우에는 최초 실행 후 생성되는 grafana.ini 를 수정하고, container 삭제 후 변경된 포트로 실행하면 된다.&lt;/li&gt;
&lt;li&gt;admin 패스워드는 본인 환경에 맞게 변경&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;colorscripter-code&quot; style=&quot;color: #f0f0f0; font-family: Consolas,&amp;nbsp;'Liberation&amp;nbsp;Mono',&amp;nbsp;Menlo,&amp;nbsp;Courier,&amp;nbsp;monospace&amp;nbsp;!important; position: relative&amp;nbsp;!important; overflow: auto;&quot;&gt;
&lt;table class=&quot;colorscripter-code-table&quot; style=&quot;margin: 0px; padding: 0px; border: none; background-color: #272727; border-radius: 4px; width: 0px;&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: left; width: 511px;&quot;&gt;
&lt;div style=&quot;margin: 0; padding: 0; color: #f0f0f0; font-family: Consolas,&amp;nbsp;'Liberation&amp;nbsp;Mono',&amp;nbsp;Menlo,&amp;nbsp;Courier,&amp;nbsp;monospace&amp;nbsp;!important; line-height: 130%;&quot;&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;#&amp;nbsp;docker&amp;nbsp;run&amp;nbsp;-d&amp;nbsp;-p&amp;nbsp;3000:3000&amp;nbsp;--name=grafana&amp;nbsp;\&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;-e&amp;nbsp;&quot;GF_SECURITY_ADMIN_PASSWORD=secret&quot;&amp;nbsp;\&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;-v&amp;nbsp;/data/grafana/grafana-storage:/var/lib/grafana&amp;nbsp;\&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;-v&amp;nbsp;/data/grafana/etc/ldap.toml:/etc/grafana/ldap.toml&amp;nbsp;\&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;-v&amp;nbsp;/data/grafana/etc/grafana.ini:/etc/grafana/grafana.ini&amp;nbsp;\&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;grafana/grafana&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: right; margin-top: -13px; margin-right: 5px; font-size: 9px; font-style: italic;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;실행 확인&lt;/p&gt;
&lt;div class=&quot;colorscripter-code&quot; style=&quot;color: #f0f0f0; font-family: Consolas,&amp;nbsp;'Liberation&amp;nbsp;Mono',&amp;nbsp;Menlo,&amp;nbsp;Courier,&amp;nbsp;monospace&amp;nbsp;!important; position: relative&amp;nbsp;!important; overflow: auto;&quot;&gt;
&lt;table class=&quot;colorscripter-code-table&quot; style=&quot;margin: 0px; padding: 0px; border: none; background-color: #272727; border-radius: 4px; width: 0px;&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: left; width: 1042px;&quot;&gt;
&lt;div style=&quot;margin: 0; padding: 0; color: #f0f0f0; font-family: Consolas,&amp;nbsp;'Liberation&amp;nbsp;Mono',&amp;nbsp;Menlo,&amp;nbsp;Courier,&amp;nbsp;monospace&amp;nbsp;!important; line-height: 130%;&quot;&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;#&amp;nbsp;docker&amp;nbsp;ps&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;CONTAINER&amp;nbsp;ID&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;IMAGE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;COMMAND&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CREATED&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;STATUS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PORTS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NAMES&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;1873bc3660ba&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;grafana/grafana&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&quot;/run.sh&quot;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;22&amp;nbsp;minutes&amp;nbsp;ago&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Up&amp;nbsp;22&amp;nbsp;minutes&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0.0.0.0:3000-&amp;gt;3000/tcp&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;grafana&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;http://server_ip:3000 으로 접속하여 admin / secret 로 접속하면 된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/RHYMN/btqz6uUuplH/4Nn0aOVBueKRjIehK6cF9K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/RHYMN/btqz6uUuplH/4Nn0aOVBueKRjIehK6cF9K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/RHYMN/btqz6uUuplH/4Nn0aOVBueKRjIehK6cF9K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FRHYMN%2Fbtqz6uUuplH%2F4Nn0aOVBueKRjIehK6cF9K%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>Grafana</category>
      <category>azure monitor</category>
      <category>CloudWatch</category>
      <category>grafana</category>
      <category>prometheus</category>
      <category>zabbix</category>
      <author>freesunny</author>
      <guid isPermaLink="true">https://freesunny.tistory.com/63</guid>
      <comments>https://freesunny.tistory.com/63#entry63comment</comments>
      <pubDate>Fri, 29 Nov 2019 18:05:33 +0900</pubDate>
    </item>
  </channel>
</rss>