달력

32023  이전 다음

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

  1. 리파지토리 추가
    $ vi /etc/apt/sources.list.d/dotdeb.org.list
    deb http://packages.dotdeb.org squeeze all
    deb-src http://packages.dotdeb.org squeeze all

  2. 키 등록
    $ wget -q -O - http://www.dotdeb.org/dotdeb.gpg | sudo apt-key add -

  3. 설치
    $ sudo apt-get update
    $ sudo apt-get install redis-server

Posted by zhato

댓글을 달아 주세요

출처 :  http://www.itworld.co.kr/news/77264

 

훌륭한 소프트웨어를 만들기란 그다지 어렵지 않다. 그러나 제대로 된 코드를 작성하려는 소프트웨어 개발자의 가장 큰 적은 바로 자기 자신이다. 잘못되거나 엉뚱한 습관에 빠질 수 있기 때문이다.
 
아니, 사실 개발자의 최대 적은 더 빨리 프로젝트를 완료하려는 조급한 마음에 개발자를 잘못된 습관으로 몰아넣는 IT 책임자이다. 특히 대규모 엔터프라이즈 또는 웹 프로젝트에서 이는 큰 재앙으로 이어질 수 있다.
 
다음과 같은 함정은 익히 알려진 것들로, 여기에 이의를 제기하는 개발자는 아마 거의 없을 것이다.
 
1. 하루 종일 유닛 테스트를 한 줄도 작성하지 않는다
개발자는 유닛 테스트와 기능 테스트의 차이점과 같은 세부적인 부분에 집착하길 좋아한다. 하지만 사실 뭐든 상관이 없다. 중요한 것은 충분한 커버리지를 확보해 무언가 잘못되었을 때 이를 식별할 수 있는 것이다. 디버거에서 적절한 코드 실행 시작 지점을 두고 중단점을 설정하는 것이 중요하다. 이를 위한 유일한 방법은 “작업하면서 동시에” 해나가는 것이다.
 
또한 테스트는 여러분의 요구 사항을 표현하는 좋은 수단이기도 하다. 확고한 증거를 제시해도 여전히 “유닛 테스트에 시간을 투자할 가치가 있는지 관리자에게 증명해야 한다”는 말을 듣곤 한다.
 
이러한 관리자들은 마치 기후 변화를 부정하는 사람들과 같다. 아무리 많은 증거가 있어도 이들이 요구하는 검증을 충족할 수 없다. 이들은 필연적으로 기한보다 한참 늦게 프로젝트를 완료하며, 그나마 버그투성이로 사용자 기대를 충족하지 못한다.
 
2. 하루 종일 빌드를 하지 않는다
젠킨스(Jenkins) CI와 같은 도구가 있는 마당에 변명의 여지는 없다. 대부분의 프로젝트에서 적절한 젠킨스를 설정하는 데는 VM 하나와 몇 시간 정도면 충분하다. SVN 또는 Git와 같은 리비전 제어 시스템에 코드가 체크인할 때 빌드가 실행되도록 구성할 수도 있다. 무언가 잘못되면 유닛 테스트를 실행하고 지표를 수집하고 이메일을 전송할 수 있다. 반복되는 빌드는 건강한 프로젝트의 심장 박동이다. 심장 박동 없이는 살 수 없다.
 
3. 클리어케이스(ClearCase)를 사용한다
클리어케이스(ClearCase)는 느리다. 지독하게 느린 버전 관리 시스템은 클리어케이스 외에도 더 있다. 개발자가 코드를 체크아웃 또는 체크인하기 위해 “기다리도록” 하는 모든 요소는 개발자 생산성을 갉아먹는 요소다. 게다가 위험도 누적된다. 반복되는 빌드에도 불구하고 개발자가 체크인할 시간이 생길 때까지 기다리게 되면 빌드는 거의 쓸모가 없어진다.
 
더 나쁜 점은 이것은 장시간에 걸친 개발자 작업의 복사본이 하나의 시스템에만 존재할 수 있음을 의미한다는 것이다. 긴 기간에 걸쳐 보면 모든 하드웨어의 생존율은 0에 가깝다.
 
비관적 잠금(pessimistic locking)은 “앗, 체크인하는 것을 잊고 휴가를 가버렸네”와 같은 경우에만 재앙인 것은 아니다. 이러한 시스템은 지속적으로 프로젝트를 소모시킨다. 두 사람이 동시에 같은 파일에 대한 작업을 수행할 가능성이 있는 것보다(같은 파일이라도 대부분의 경우 작업하는 부분은 서로 다르고, 이렇게 다른 부분들은 어차피 자동으로 병합됨), 팀의 절반이 파일 잠금이 풀리기를 기다리게 하는 편이 좋다고 믿는 사람들이 있다는 사실이 놀라울 뿐이다.
 
4. 분기 없이 프로덕션 단계로 이행한다
많은 조직이 아직 분기를 만드는 방법을 모른다. 분기는 릴리스를 완성하고, 이 릴리스에서 버그를 수정할 수 있게 해주되 절반쯤 개발된 새 코드를 프로덕션 단계로 릴리스하지 않게 해주는 매우 유용한 방법이다. 분기는 사실 어렵지 않다. 여러 가지 효과적인 분기 방법이 존재한다. 필자가 지난 2년 동안 사용해 본 모든 버전 관리 시스템에서 분기를 지원한다. 그러나 분기를 위해서는 개발자가 자신의 버전 관리 시스템에 익숙해져야만 한다.
 
5. 부하 테스트는 마지막까지 기다렸다가 한다
테스트 우선(test-first), 페어 프로그래밍(pair programming)을 도입한 가장 유능한 조직 중에서도 부하 테스트는 프로젝트의 끝부분에 하는 것으로 생각하는 조직이 종종 있다.
 
이것을 정당화하는 것은 “이른 최적화는 모든 악의 근원”이라는 격언이다. 이 말에도 일리는 있다. 그러나 지금의 의사 결정으로 인해 프로젝트가 성능 또는 확장성 요구 사항을 충족하지 못하게 될 수 있는지 여부를 알아야 한다. 이러한 의사 결정을 가장 비용을 덜 들여 잡아낼 수 있는 시점은 프로젝트의 초기다.
 
이것은 반복자가 나은지, 루프 또는 모나드가 나은지를 따지는 것이 아니다. 잘못된 데이터 저장, 잘못된 알고리즘, 잘못된 규칙 엔진과 심각한 동시성 문제에 대한 이야기다. 이러한 문제를 너무 늦게 잡아낼 경우 엄청난 분량의 코드를 재작성해야 할 수 있다.
6. 용량/성능 요구 사항 없이 개발한다
성능 또는 확장성 문제로 고민하는 사람들을 도울 때 필자가 가장 먼저 던지는 질문은 “기대 사용자 수는 몇 명인가?”다. 기술적인 측면에서 문제의 근원이 무엇이든, 진짜 문제는 이 질문에 대해 답하지 못하는 것이다. 성공적인 프로젝트는 최소한 막연한 추정치라도 갖고 있다.
 
단지 좋은 소프트웨어를 위한 요소가 아니라 기본적인 비즈니스 예측이다. 적절한 부하 테스트를 개발하려면 성능에 대한 예상치가 필요하다. 시스템에서 감당해야 하는 사용자가 몇 명인지 알아야 한다.
 
7. 마지막 단계에 가서야 사용자들과 접촉한다
마케팅 담당자들은 수십 년 동안 포커스 그룹을 사용해왔다. 제품 개발 그룹이 목적을 이루었고 누군가 그 제품을 구입할 것임을 확인해야 하기 때문이다. 소프트웨어 개발에서도 마찬가지다. 고객이 내부에 있든 외부에 있든 누군가는 최종 제품이 최대한 신속하게 사용자들의 검열에 통과할 것임을 확인해야 한다.
 
“다듬어지지 않은” 소프트웨어를 보여준다는 것은 당황스럽고 골치 아픈 일이 될 수 있지만 그렇게 하지 않으면 사용자의 기대를 충족할 것인지 아닌지를 전적으로 운에 맡겨야 한다.
 
8. 무조건 구입하는 것으로 소프트웨어 개발을 해결하려고 한다
구입하느냐, 구축하느냐는 IT에서 가장 근본적인 난문 중 하나다. 물론 내부 애플리케이션 개발보다 상용 애플리케이션이 더 적합한 경우가 있다. 그러나 예를 들어 전체 오라클 또는 웹스피어 스택을 라이선스하고도 아무런 결과를 얻지 못하는 경우도 있다. 개발팀이 무언가를 흡수해서 활용할 수 있는 역량에는 한계가 있고, 이를 넘어서게 되면 스택의 복잡성이 기술적인 혜택을 상쇄하게 된다.
 
9. 캐시, 데이터베이스, 쓰레드 풀, 연결 풀, 트랜잭션 매니저 등을 작성한다
이들 중 하나를 개발 중인 회사 또는 오픈소스 프로젝트에 속해 일하는 것이 아니라면 이러한 것을 만들 이유는 사실상 없다. 무수히 많은 사람들의 QA를 거친 안정적인 솔루션이 있는데 굳이 코드를 직접 작성하지 말라. “더 나은 코드를 만들어야 할” 이유가 무엇이든, 그러한 다수의 인증을 앞서는 경우는 거의 없다.
 
10. RDBMS에 직접 코딩한다
요즘에는 객체 관계형 매핑 시스템과 관련하여 무의미한 코드가 상당히 많이 만들어진다. 사실 객체관계형 매핑 시스템에 대해서는 예전부터 항상 무의미한 코드가 많이 만들어진다. ORM을 포기하고 JDBC나 OleDB에 “직접” 코딩하는 것을 정당화하는 데는 보통 한두 가지의 극단적인 사례가 활용된다. 그러나 사실 외부 CRUD 코드를 디버그할 수는 없다. 필자가 사용해 본 모든 ORM 시스템은 이러한 한두 가지 극단적 사례를 버리지 않고 처리할 수 있는 방편을 제공한다.

 

Posted by zhato

댓글을 달아 주세요

Centralized logging with Graylog2

Design considerations


Centralized logging isn't an easy task, you need to be able to handle very large amounts of data with a lot of write operations and heavy indexing which amounts to ample CPU and memory usage making a scalable text indexing and storage backend extremely important as well as a decoupled architecture. Over the course of a month we evaluated various tools and architectures at Praekelt to find one that worked well (never mind many that just don't work at all).The final configuration uses Ubuntu 12.04 (Precise) for the central server, Graylog2 to receive logs and do analysis etc, RabbitMQ to queue logs for Graylog2 from Logstash which aren't syslog related, then ElasticSearch and MongoDB  which are used by Graylog2 to store logs and stats.

Logging setup

Logstash

Logstash is a good tool, I'm somewhat annoyed by it's version dependencies writing directly to Elasticsearch but no matter, we can use Graylog2 to fill the gap.

Syslog

Ubuntu is nice enough to use rsyslog since quite a while ago. While we do want to make use of remote syslog to collect the usual system logs and dispatch them to the log server, what we absolutely don't want to do is pipe noisy application logs (like HTTP access logs) into syslog. Keeping them all separate has a lot of benefits when it comes to trying to troubleshoot your system later, and avoiding possibly flooding local message facilities away. So while using rsyslog imfile is tempting and easy, it becomes difficult to manage later.

Graylog2

Where Logstash seems to fail on the centralised side of things, Graylog2 is substantially easier to deploy and works on the latest versions of Elasticsearch, and also employs MongoDB as a key store for aggregating statistics which is a very good idea. Graylog2 has some setup guides (and packages) for Ubuntu Lucid - unfortunately Lucid support just ended, so we'll just configure it from scratch in Precise.

Install some necessary packages

root@logger:~# aptitude install build-essential rabbitmq-server openjdk-6-jre-headless mongodb rubygems

Grab the deb packages for Elasticsearch from http://www.elasticsearch.org/download/ and both the Graylog2 server and web interface from http://graylog2.org/download.

root@logger:~# dpkg -i elasticsearch-0.19.3.deb

Take note of any errors or missing dependencies and make sure it starts itself up. You don't need to configure anything else for Elasticsearch. Now get RabbitMQ running a bit more securely.

root@logger:~# rabbitmqctl add_user logging mypassword
Creating user "logging" ...done.
root@logger:~# rabbitmqctl set_permissions logging ".*" ".*" ".*"
Setting permissions for user "logging" in vhost "/" ...done.
root@logger:~# rabbitmqctl delete_user guest
Deleting user "guest" ...done.

First thing to do is setup Logstash to get logs shipped over AMQP.

Client configuration

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
input {
  file {
    type => "syslog"
    path => [ "/var/log/messages", "/var/log/syslog", "/var/log/*.log" ]
  }
  file {
    type => "apache-access"
    path => "/var/log/nginx/access.log"
  }
}
 
output {
  amqp {
    host => "logger.acme.com"
    exchange_type => "fanout"
    name => "rawlogs"
    user => "logging"
    password => "mypassword"
  }
}

Server configuration

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
input {
  amqp {
    type => "all"
    host => "localhost"
    exchange => "rawlogs"
    name => "rawlogs_consumer"
    user => "logging"
    password => "mypassword"
  }
}
 
output {
  stdout { }
  gelf {
    facility => "logstash-gelf"
    host => '127.0.0.1'
  }
}

We leave the stdout output enabled just to check things are working, it's a good idea to disable it when everything is running. We essentially just use Logstash as a broker to get stuff from RabbitMQ into Graylog2 via GELF. Graylog2 does support AMQP directly, but there are some good reasons we do this - namely it doesn't support using AMQP in the same way that Logstash does.

Kickstart both of them the same way, assuming you stored the config as logstash.conf

# java -jar logstash-1.1.0-monolithic.jar agent -f logstash.conf

Next get Graylog2 going. Extract both the server and the web interface into /opt and configure the server. Copy graylog2.conf.example to /etc/graylog2.conf and make the relevant changes. You can use mongodb with or without authentication if it's not accessible externally, we're using authentication here. For setting up MongoDB authentication read more here, which has a bunch of other info on configuring Graylog2 which is worth reading.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
syslog_listen_port = 514
syslog_protocol = udp
 
elasticsearch_url = http://localhost:9200/
elasticsearch_index_name = graylog2
 
force_syslog_rdns = false
 
mongodb_useauth = true
mongodb_user = graylog
mongodb_password = graylog
mongodb_host = localhost
 
#mongodb_replica_set = localhost:27017,localhost:27018,localhost:27019
mongodb_database = graylog2
mongodb_port = 27017
 
mq_batch_size = 4000
mq_poll_freq = 1
 
mq_max_size = 0
 
mongodb_max_connections = 100
mongodb_threads_allowed_to_block_multiplier = 5
 
use_gelf = true
gelf_listen_address = 0.0.0.0
gelf_listen_port = 12201
 
# AMQP
amqp_enabled = false
amqp_subscribed_queues = gqueue:gelf,squeue:syslog
amqp_host = localhost
amqp_port = 5627
amqp_username = guest
amqp_password = guest
amqp_virtualhost = /
 
forwarder_loggly_timeout = 3

You can start Graylog2 up now with 'bin/graylog2ctl start'.

To get the web interface working, do the following

root@logger:/opt/graylog2-web-interface-0.9.6# gem install bundler
root@logger:/opt/graylog2-web-interface-0.9.6# bundle install
root@logger:/opt/graylog2-web-interface-0.9.6# script/rails runserver -e production -p 80

You should now have a running logging system. Now you should go back, get the web interface behind passenger and nginx running as an unprivileged user.


Posted by zhato

댓글을 달아 주세요

apt-get install python-software-properties 


Posted by zhato

댓글을 달아 주세요

 

Installing Graylog2 via Ubuntu Packages

These packages and docs are currently beta. 
The deb's are built on Ubuntu Lucid amd64 however should work on both i386 & amd64.

Please report bugs in this HOWTO or the packaging to me at aussielunix at gmail dot com.

graylog2-server

This installs graylog2-server and it's dependencies (mongodb-stable from 10gen) etc. 
The graylog2-server will install all files to /opt/graylog2-server & a config file at /etc/graylog2..conf. 
Be prepared as the java stuff drags in a lot of deps on a clean minimal Lucid install. (176 packages for me)

1) Install mongodb

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
sudo echo "deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen" | tee -a /etc/apt/sources.list.d/10gen.list
sudo apt-get -y update
sudo apt-get -y install mongodb-10gen

2) install graylog2-server

sudo apt-get install graylog2-server

6) secure mongo - add authentication

  • add an admin user
  • add a user to mongo for collection 'graylog2'
lunix@ubuntu-dev01:~/$ mongo
use admin
db.addUser('admin', 'admin-mongo-passwd')
db.auth('admin', 'admin-mongo-passwd')
use graylog2
db.addUser('grayloguser', 'grayloguser-mongo-passwd')

7) tell graylog2-server about the mongo auth

  • edit /etc/graylog2.conf
mongodb_useauth = true
mongodb_user = grayloguser
mongodb_password = p4ssw0rd

8) turn mongo security on - it's off by default

  • edit /etc/mongodb.conf
auth = true

9) restart mongo

sudo service mongodb restart

10) start graylog2-server

sudo service graylog2-server start

Conclusion

You should now have a working graylog2-server. 
You can check the process tree for a mongodb instance and a java instance and that port UDP/514 is open. 
You can now modify the syslog config on the graylog2-server host to send its data to 127.0.0.1:514 
Move on to graylog2-web install/configure now.

graylog2-web

This installs graylog2-web and some of it's dependencies. 
The graylog2-web package will install all of it's files to /opt/graylog2-web. 
All of the gem dependencies have been vendored in. 
The version of rubygems is too old in the Lucid repositories so I make use of a thirdparty PPA. 
This PPA is from Mackenzie Morgan - a Ubuntu Developer - https://launchpad.net/~maco.m/+archive/ruby

1) add Mackenzie's PPA

sudo apt-get install python-software-properties
sudo add-apt-repository ppa:maco.m/ruby

2) let apt see the new repositories

sudo apt-get update

3) install graylog2-web

sudo apt-get install graylog2-web

4) install budler

sudo gem install bundler

5) review/edit some rails configs:

config/mongoid.yml
confg/email.yml
config/general.yml

6) start graylog2-web as a daemon

script/rails server -eproduction -d -p3000

Posted by zhato

댓글을 달아 주세요

graphite 설치

:: IT/:: Linux 2012. 8. 9. 19:44

 

####################################

# BASIC REQUIREMENTS

# http://graphite.wikidot.com/installation

# http://geek.michaelgrace.org/2011/09/how-to-install-graphite-on-ubuntu/

# Last tested & updated 10/13/2011

####################################


sudo apt-get update

sudo apt-get upgrade


wget http://launchpad.net/graphite/0.9/0.9.9/+download/graphite-web-0.9.9.tar.gz

wget http://launchpad.net/graphite/0.9/0.9.9/+download/carbon-0.9.9.tar.gz

wget http://launchpad.net/graphite/0.9/0.9.9/+download/whisper-0.9.9.tar.gz

tar -zxvf graphite-web-0.9.9.tar.gz

tar -zxvf carbon-0.9.9.tar.gz

tar -zxvf whisper-0.9.9.tar.gz

mv graphite-web-0.9.9 graphite

mv carbon-0.9.9 carbon

mv whisper-0.9.9 whisper

rm carbon-0.9.9.tar.gz

rm graphite-web-0.9.9.tar.gz

rm whisper-0.9.9.tar.gz

python3.1 libpython3.1 python3.1-minimal

sudo apt-get install --assume-yes apache2 apache2-mpm-worker apache2-utils apache2.2-bin apache2.2-common libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libapache2-mod-wsgi libaprutil1-ldap memcached python-cairo-dev python-django python-ldap python-memcache python-pysqlite2 sqlite3 erlang-os-mon erlang-snmp rabbitmq-server bzr expect ssh libapache2-mod-python python-setuptools

sudo easy_install django-tagging


####################################

# INSTALL WHISPER

####################################


cd ~/whisper

sudo python setup.py install


####################################

# INSTALL CARBON

####################################


cd ~/carbon

sudo python setup.py install

# CONFIGURE CARBON

####################

cd /opt/graphite/conf

sudo cp carbon.conf.example carbon.conf

sudo cp storage-schemas.conf.example storage-schemas.conf

sudo vi storage-schemas.conf

### edited storage-schemas.conf to be the following

[stats]

priority = 110

pattern = .*

retentions = 10:2160,60:10080,600:262974

###


####################################

# CONFIGURE GRAPHITE (webapp)

####################################


cd ~/graphite

sudo python check-dependencies.py

sudo python setup.py install


# CONFIGURE APACHE

###################

cd ~/graphite/examples

sudo cp example-graphite-vhost.conf /etc/apache2/sites-available/default

sudo cp /opt/graphite/conf/graphite.wsgi.example /opt/graphite/conf/graphite.wsgi

sudo vi /etc/apache2/sites-available/default

# moved 'WSGIImportScript /opt/gr..' to right before virtual host since it gave me an error saying

# WSGIImportScript cannot occur within <VirtualHost> section

# if this path does not exist make it!!!!!!

# /etc/httpd/wsgi

sudo mkdir /etc/httpd

sudo mkdir /etc/httpd/wsgi

sudo /etc/init.d/apache2 reload


####################################

# INITIAL DATABASE CREATION

####################################

cd /opt/graphite/webapp/graphite/

sudo cp local_settings.py.example local_settings.py

sudo python manage.py syncdb

# follow prompts to setup django admin user

sudo chown -R www-data:www-data /opt/graphite/storage/

sudo /etc/init.d/apache2 restart



####################################

# START CARBON

####################################

cd /opt/graphite/

sudo ./bin/carbon-cache.py start


####################################

# SEND DATA TO GRAPHITE

####################################

cd ~/graphite/examples

sudo chmod +x example-client.py

# [optional] edit example-client.py to report data faster

# sudo vi example-client.py

sudo ./example-client.py


Posted by zhato

댓글을 달아 주세요

# ll /etc/localtime
-rw-r--r--  1 root root    2819 Jul 11 18:11 localtime

# cp -pf /usr/share/zoneinfo/Asia/Seoul /etc/localtime

# ll /etc/localtime
-rw-r--r--  1 root root     380 Mar  7 15:12 localtime


# echo "Asia/Seoul" > /etc/timezone

# cat /etc/timezone
Asia/Seoul


Posted by zhato

댓글을 달아 주세요

01

02

03

Posted by zhato

댓글을 달아 주세요

TED.com 에서 봤던 제이크 시마부쿠로가 우쿨렐레로 연주한 보헤미안 랩소디 입니다.

어쩌다 우쿨렐레가 생겨서 관심을 갖게 되네요. ㅡㅡ;



Posted by zhato

댓글을 달아 주세요

출처 : 무엇이든 물어보세요.

 

image

 

  • 평소 체온이 정상 체온 범위를 벗어 난 경우

면역력 저하로 각종 질병에 걸릴 위험 높아짐

 

  • 건강한 사람의 평균 체온 36.0℃ ~ 37.6℃

 

  • 저체온, 즉 몸의 냉기가

암 발생 요인 중 하나가 될 수 있음

체온이 낮으면 자율신경의 균형이 깨져

신진대사가 원활하지 못해 비만을 유발

 

  • 체온이 1℃ 떨어지면 면역력 30% 감소

1℃ 올라가면 면역력 5~6배 증가

 

  • 전체 근육운동 시간 한 시간이내, 1주일에 3-4회 정도

 

  • 심장에 부담 가는 질환 있는 경우나

상반신 뜨겁고 하반신 찬 경우 반신욕이 적당

 

  • 뜨거운 물에 장시간 목욕하는 것은 금물

온욕법 하기 좋은 물의 온도 41℃ 정도

 

  • *목욕 시간

전신욕 -10분, 반신욕 - 20분 정도

 

  • 체온 높이는데 도움 되는 입욕제

쑥-말린 것은 80g, 생쑥은 500g 정도

생강- 40g 정도 강판에 갈거나 얇게 썰어 사용

 

  • 냉온 교대욕

따듯한 물 5분, 찬물 3분, (5회 정도 반복)

중요한 것은 처음과 마지막은 온탕!

 

  • 몸을 따뜻하게 하는 지압과 마사지

손을 비벼 열이 나게 한 다음 배꼽 아래 부분에

손바닥을 대고 배꼽 주위로 원을 그리며 마사지

 

  • 몸을 따뜻하게 하는 지압점

합곡 - 기의 순환 촉진

 

  • 몸을 따뜻하게 하는 지압점

삼음교 - 혈의 순환 촉진

 

  • 몸을 따뜻하게 하는 지압점

족삼리- 음식의 소화 흡수 도움

 

  • 지압법

 

  • *3-5-2법칙 / 3초 대기, 5초 누르기, 2초 떼기

아침 일과 시작 전, 저녁 일과 마치고 10분 정도

 

  • 몸을 따뜻하게 하는 마사지

경락 두드리기

 

  • 온찜질은 근육 통증, 근육경련, 오십견 등에 효과적

 

  • 다쳤을 때나 피가 날 때는 냉치료(찜질)!

20분 찜질, 40분 쉰 후에 다시 반복

 

  • 온열치료 주의 점

감각이 떨어진 부위가 있거나 의식이 명료하지 않은 환자

혈류 장애로 조직괴사(조직파괴)가 일어난 경우

 

  • *고혈압, 심혈관계, 하지정맥류, 당뇨 질환자의 경우

고온의 사우나, 찜질방에서 땀 내는 것 주의

 

  • 따뜻한 성질의 식품

고추, 당근, 마늘, 생강, 인삼, 대추, 계피

(일반적으로 색이 진하면 따뜻한 성질, 연하면 찬 성질)

 

  • 찜질방에서 땀을 내고 나면 체중이 일시적으로 감소,

체지방 감소와는 관계없음

Posted by zhato

댓글을 달아 주세요