간만의 휴식에 한일들

 3월 1일부터 새로운 회사에 입사하게 되어서 2월은 약 한달 정도 쉬게 되었다. 쉬기 전 까지는 이것도 하고 저것도 하고 계획도 많았지만 막상 쉬게 되면 이런 저런 제약 때문에 생각대로 되지 않는다. 특히 꼬맹이 학교에서 돌아오는 시간이 있으니 그에 맞춰 집에 있으려면 할 수 있는 것도 그렇게 많지 않은 것 같다. 그나마 한 것 들이라고는 영화본 것 밖에 없는 듯. 슬램덩크, 아바타2, 앤트맨&와스프 퀀텀 매니아. 요렇게 3개의 영화를 보고 왔다. 슬램덩크 추억의 만화책을 애니화 한 만화 영화. 뭐 나쁘지 않은 영화 였다. 전체적으로는 약간 루즈한 느낌이 들지만 마지막 클라이막스 부분에서는 음악과 함께 좋은 연출을 본 듯 한 느낌이다. 두번 본 사람도 있다고 하는데 그 정도 까지는 아닌 듯. 아바타2 볼까 말까 고민한 영화. 이미 뒷편 들까지 어느정도 촬영이 끝났다는 이야기를 듣고 보기로 결정. 처음으로 4dx 영화관에서 보았는데 의자의 흔들림 등 그 외 효과들이 그렇게 효과가 있다고는 생각을 못하겠다. 가~끔씩 타이밍이 딱 맞을 때도 있지만 오히려 신경이 쓰여서 영화에 집중 못하는 경우도 꽤 있었던 듯 하다.  화면에 집중하고 싶어서 더빙판으로 관람 했는데 더빙 판은 4dx밖에 없드라.. 내용도 괜찮고 그래픽도 괜찮고 눈도 즐거웠다. 다음 편이 나오면 또 보러 가고 싶다. 앤트맨&와스프 퀀텀 매니아 인터넷의 평가는 좋은편이 아닌 듯 하다. 이것도 4dx로 관람 하고 왔는데 나쁘지는 않은 듯 하다. 딱 거기까지. 양자 세계에 또하나의 우주가 존재한다는 가설은 이전부터 있었던 이야기. 결국 우리가 살고 있는 지구도 누군가의 양자 세계 일 수도 있다는 것.  하지만 양자 세계의 묘사가 뭐랄까 스타워즈 짝퉁이라는 느낌이 강하게 든다. 스타워즈를 본 적 없는 사람에게는 신선한 충격으로 다가 올지도 모르겠다. 영화를 볼때는 개연성같은걸 신경 쓰면 지는 거다. 그냥 무지성으로 생각하지 말고 시간 때우기로만 본다면 나쁘진 않은 듯 하지만 하나씩 따지기 시작

AWS에서 zabbix를 이용한 autoscaling ec2 자동등록/자동삭제

 zabbix가 오픈소스로서 참 많은 기능을 제공 하고 있는데, jira와 마찬가지로 되는건 많은데 가려온 곳은 아슬아슬하게 피해가는 재주를 가지고 있는 듯 하다. 필요한 기능은 거의 다 있는데 될듯 하면서도 안되는데 jira와 zabbix. 특히 AWS에서 제공하는 AutoScaling Group을 이용한 EC2의 scale out/in 을 이용하면 zabbix에서 기본으로 제공되는 기능으로는 EC2를 제대로 모니터링 할 수가 없다. 어찌어찌 Host 등록은 한다 하더라도, EC2가 scale in 되어 terminated되었을 경우엔, 그냥 그대로 zabbix agent 와 통신할 수 없다는 에러를 내뿜으며 방치되어 버린다.

인터넷을 뒤져보아도 깔끔하게 처리할 수 있는 방법이 없고, 스크립트와 다른 기능들을 이용하여 scale out/in 에 의한 EC2의 자동등록/자동삭제를 구현하고 있었다. 그러나 이마저도 실제로 해보니 메뉴가 틀리거나 옵션이 없거나, 실제로 동작하지 않는 경우도 많았다. 최종적으로는 여러가지 정보를 취합하여 실제로 동작하는 방법을 찾아 냈으니 참고 삼아 이곳에 남기도록 한다.

시행착오

  • auto discovery 기능을 시도 해보았지만, 24bit 네트웍에 대해 15분 이내로 처리가 끝나지 않아, 다음 discovery가 계속하여 지연되는 현상이 발생했다. 15분 이면 terminated된 인스턴스에대해 agent 통신 에러가 발생하는 타이밍이기 때문에 유효한 방법이 아니라고 생각되어 포기하였다.

※ zabbix version : 4.0TLS
※ 특별한 설정내용이 없는 항목은 디폴트값이나 환경에 맞추어 적절히 설정할 것

 

zabbix_agentd.conf

먼저 ec2의 zabbix_agentd.conf 파일을 수정해 줄 필요가 있다.

//ec2의 instance id를 얻기위해 ec2에서 meta-data를 조회한다.
//meta-data조회를 위한 curl명령어 실행을 위해 지정
EnableRemoteCommands=1

//ec2의 hostname은 hostname_instance-id로 하고 싶으니 주석처리를 하고
//HostnameItem에 system.hostname을 지정해 준다.
//Hostname은 고정 hostname을 지정할때 이용한다.
# Hostname= →이 라인을 주석처리
HostnameItem=system.hostname

//auto scaling group이 여러개 존재할 경우 auto registration에서 구분하기 위한 구분자를 지정한다.
HostMetadata=<mystring> 

Template#1

autoscaling이 필요한 ec2도 있을 터이고 그렇지 않은 ec2도 있을 것이다. template에 autoscaling 대응 내용을 설정한 뒤, 필요한 경우에 host 등록을 하면서 template을 추가하면 적용되도록 할 것이다.

Configuration에서 Templates를 선택하여 Template를 생성한다. Template name에 EC2AutoScale 을 지정하고, 필요한 Groups을 지정해준다. Macro와 Item, Trigger등은 나중에 따로 추가한다.

Auto Registrion

scale out에 의해 ec2가 추가 되었을 경우 zabbix_agnetd.conf 를 기반으로 zabbix가 기동된다. 그 설정을 이용하여 zabbix에서 감시대상 host로서 자동으로 추가하게 되는 설정이다. 추가는 아주 간단하다. 추가는.......

  1. Configuration-Action에서 Event source를 Auto registration으로 변경한 뒤, Create action을 클릭
  2. Name에 autoreg-test 등 적당한 이름을 지정
  3. New condition에서 Host metadata contains <mystring> 을 지정한다.
    mystring은 zabbix_agentd.conf 에서 지정한 문자열을 똑같이 지정한다.
    이 conditon은 자기 환경에 맞추어 적절하게 수정해도 문제 없다.
  4. Add버튼을 클릭하여 Conditions에 추가되는 것을 확인
  5. Operations에서 필요한 동작을 추가한다.
    1. Add host
    2. Link to templates : Template#1에서 작성한 EC2AutoScale을 지정
  6. 밑에 있는 Add버튼을 클릭하여 Action을 추가 

Template#2

  1. Configuration-Templates-Item을 선택후 Create item을 클릭
  2. Type에서 Zabbix agent(active)를 선택
  3. Key에서 curl을 이용한 instance id를 조회하는 명령어를 지정
    system.run[curl -s -f http://169.254.169.254/latest/meta-data/instance-id]
  4. History storage period 를 Storage period를 선택하여 90d로 지정
    instance id가 변경되었나 확인 하기 위해선 history를 반드시 저장해야할 필요성이 있으니 참고.
  5. New application에서 EC2 meta-data를 지정(변경 가능)
  6. Add를 선택하여 Item을 추가

Template#3

  1. Configuration-Templates-Item을 선택후 Create item을 클릭
  2. Type에서 External check를 선택
  3. Key에서 나중에 작성할 ec2 status확인용 스크립트를 지정
    get_ec2_status.py[-i,{EC2_INSTANCEID}]
  4. Type of information은 Character를 지정
  5.  History storage period도 Template#2와 동일한 이유로 90를 지정
  6.  New application에서 EC2 meata-data를 지정(변경가능)

댓글

이 블로그의 인기 게시물

curl 명령어 옵션

CISCO 2960s 초기화 후 기본 설정