zabbix 복습 + 한 걸음 더 내딛기

김재현·2022년 10월 22일
0

아이티센 프로젝트

목록 보기
29/30

zabbix 설치 복습 및 연동하기

telegram 설치

  • 데스크탑용 텔레그램을 설치해준다.

zabbix 구성하기

zabbix 설치 및 환경구성

  • 위 링크를 참고해서 했다. 내가 작성한거다.

1. zabbix 서버 설치하기

  • zabbix 서버를 설치할 서버에 PuTTY로 접속해준다.

  • 다음은 공식 홈페이지를 참고하며 설치를 진행해주자.
  • 순서는
    1) 레포지토리 생성 후 캐시파일 삭제
    2) zabbix server, agent 다운로드
    3) frontend 설치
    4) frontend 활성화
    5) frontend 패키지 설치
    6) Database 설치
    7) zabbix Database 생성/설정
    8) Schema 적용
    9) 데이터베이스 설정
    10) Timezone 설정 후 실행
    11) 방화벽 설정
    12) Frontend 설정
    13) zabbix 대쉬보드 접속

  • 잘 설치됐고, 대시보드가 잘 출력되는 것을 볼 수 있다.

2. zabbix agent 설치하기

  • agent용으로 만들어둔 리눅스 서버와 윈도우에 에이전트를 설치해서 데이터를 받아보자.

윈도우에서 agent 설치하기

  • 윈도우부터 진행하자. 순서는
    1) zabbix Agent 다운로드 및 설치 + 압축풀기
    2) 실행파일 추가해주기
    3) 설정파일 편집
    • Server ServerActive Hostname 수정
      4) zabbix 서버에서 호스트 추가
      5) 모니터링 상태 확인하기.

MSI 방식으로 설치하기

  • zabbix server IP를 입력해주면 된다.

  • 경로 설정도 가능.

  • 설치가 완료됐다.
  • 윈도우는 잘 모르겠다.. 나중에 해보자.

Linux 에서 agent 설치하기

  • 다음 리눅스에서 진행하도록 한다.
    1) zabbix 레포 추가
    2) agent 설치
    3) 설정파일 수정
    • Server ServerActive Hostname 수정
      4) zabbix agent 재시작 및 서비스 등록
      5) 호스트 등록
      6) 모니터링 상태 확인하기

복습하며 깨달은 것

  • 비공인 IP로는 연결 안됨.
  • ACG 설정을 잘 해줘야 연결됨

한 걸음 더 내딛기

장애 띄워보기

  • agent를 끄니까 바로 상태에 빨간불이 들어온다. 다시 켜보자.

  • 다시 파란불이 들어왔다.

telegram 연동 및 사용

https://sojinhwan0207.tistory.com/51?category=962399
https://foxydog.tistory.com/21
https://itswt.tistory.com/14?category=828925
https://servermon.tistory.com/394
https://yumserv.tistory.com/334
http://www.iorchard.net/2019/01/04/zabbix%EC%99%80_telegram_%EC%97%B0%EB%8F%99.html
https://nirsa.tistory.com/m/269
https://m.blog.naver.com/PostView.nhn?blogId=jaechuns&logNo=221480005001&proxyReferer=https:%2F%2Fwww.google.com%2F

telegram 연동

텔레그램 연동

1. bot 작업해주기

  1. 토큰 키 값 받기.
  • 맨 위의 BotFather을 눌러 들어가서 시작 버튼을 눌러 bot을 시작해준다.

  • /newbot 클릭.

  • 1) 봇 이름 생성. 임의 생성이기 때문에 마음대로 설정해준다.
    2) 봇 사용자 이름 생성. 역시 임의 생성이지만 _bot으로 끝나게 생성해준다.
    위의 사진에는 Zabbix_bot을 동일하게 사용해서 에러가 난 모습.

  • 밑줄 친 값이 토큰 키값으로, 추후 필요하므로 메모해두자.
  1. 채팅 ID 받기.

  • 검색창에 IDBot을 입력하면 나오는 봇을 클릭하고 시작을 누른다.
  • P.S. Your ID : 뒤에 있는 숫자들이 내 채팅 ID
  1. 내가 만든 Bot 대화창 활성화
  • 검색 부분에 내 봇 사용자 이름을 검색하고 결과에서 나온 봇 선택.

  • 다음 시작을 눌러준다.

  • /start가 나와야 연동이 성공적으로 이루어진 것.

2. zabbix와 bot 연동해주기

  • 관리 > 미디어타입 > Telegram

  • ParseModeToken에 값을 입력해주고, 갱신 클릭
    ParseMode에는 Markdown, HTML, MarkdownV2가 들어갈 수 있고, Token에는 아까 구한 HTTP API 토큰을 넣어주자.

  • 오른쪽 끝의 테스트 클릭.

  • Message는 본문 내용, Subject에는 제목, To에는 채팅 ID 삽입.

  • 잘 발송되었다는 메시지가 출력

  • 잘 받았다.

3. 실시간 알람 받기

  • 위 순서대로 설정해주면 된다.
    관리 > 유저 > Admin(임의 유저) > 연락방법 > 추가 > 종류(Telegram), 수신처(chat ID) > 추가 > 갱신.
  • 트리거 액션에서도 활성화 및 Telegram 전달 설정을 하자.

  • 순서는 아래.
    설정 > 액션 > 오른쪽 상태를 클릭해 변경(비활성 → 활성) > 이름 클릭 > 오퍼레이션 > 액션 편집 클릭 > 다른미디어만 사용(Telegram) > Update > Telegram으로 바뀐것 확인 > 갱신

4. 시험해보기

  • zabbix agent 서버를 껐다 키는 것으로 시험해보자.

  • zabbix agent가 살아있다. 이제 서버를 꺼보자.

  • 서버를 껐다.

  • 좀 오래걸렸지만 알람이 왔다. 이제 서버를 재시작해보자.

  • 해결됐다는 메시지가 왔다. 굿굿!

Dashboard 구성 및 모니터링 해보기

  • 호스트를 바탕으로 Dashboard를 구성하여 모니터링 작업을 해보자.

  • 기본 창도 나쁘지 않지만, 새로 구성해보자.
    전체 대시보드를 클릭한다.

  • 다음 대시보드 작성 클릭!

  • 소유자와 이름을 지정해줄 수 있다.
  • 위젯을 추가해주자. 그래프를 추가해보자.

  • + 새 데이터 셋을 추가 버튼을 통해 새로운 그래프를 추가할수도 있다.
  • 아이템 패턴을 선택해서 모니터링하고 싶은 항목을 선택하자.

  • 이렇게 볼 수 있다.

  • 어느 시점의 사용량도 알려준다.

  • 적용된 대시보드의 모습.

Website 모니터링

  1. 설정 > 호스트 로 이동해 Zabbix server를 선택해준다.

  • 애플리케이션 > 애플리케이션 작성 > 이름은 WEBSITE로 해주자.

  • 다음은 웹 시나리오를 작성해준다.

  • 이름은 임의대로 짓고, 어플리케이션에 아까 만들어둔 WEBSITE를 넣어준다.

  • 다음 WEB 시나리오 스텝을 추가해준다.
    이름은 step의 이름, URL은 실제 체크할 웹 페이지의 주소이다.
    가장 아래의 요구 스테이터스 코드는 어떤 응답 코드를 받았을 때 정상으로 판단할 건지에 대한 내용이다. 200을 받으면 정상이 되도록 설정했고, 범위, 혹은 여러가지를 한 번에 지정할 수도 있다.
  • SSL/TLS를 지정하는 등 디테일한 체크도 가능하다고 한다.

  • 모니터링이 되고 있는지 확인해보자.
    모니터링 > 최근 데이터에 들어가 호스트를 Zabbix server에 맞추고 어플리케이션으로 WEBSITE를 등록해준다. 각종 데이터가 모니터링되는 것을 확인할 수 있다.

  • 그래프로도 볼 수 있다.

VPC 환경에서 zabbix 사용하기

  • 3tier환경은 웹 서버만 public으로 구성되고 was와 DB 단계는 private으로 구성된다. 공인 IP를 발급받을 수 없기 때문에, VPC 환경에서는 어떤 방식으로 zabbix를 적용해야하는지 공부해보고자 한다.

https://www.joinc.co.kr/w/Site/QOS/Monitering_Tool/zabbix/AWSMonitering
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=minjae-89&logNo=221291541608
https://hongths.tistory.com/12
https://hongths.tistory.com/8?category=837277
https://medium.com/@jongseonkim/zabbix-proxy-%EC%84%A4%EC%B9%98-753d68dfa79d

vpc 환경에 구성해보기

  • vpc 환경을 작성하고 zabbix server를 public 서브넷에, zabbix agent를 private 서브넷에 구성해본다.
  • private subnet에 agent를 설치하려고 했지만, NAT Gateway를 설정해주지 않아서 아예 업데이트를 하지 못한다. NAT Gateway를 설정해서 명령이 나갈 수 있게 해주자.
    설정한 뒤 문제 없이 설치했다.
  • .conf 파일을 수정해서 zabbix-server의 IP를 넣어준다.
    이제 zabbix 웹에서 호스트 등록을 해줘야하지만, 비공인 IP로는 잘 되지가 않았다.
Received empty response from Zabbix Agent at [10.0.2.6]. Assuming that agent dropped connection because of access permissions.
  • 이런 에러를 계속 출력할 뿐.
  • 공인 IP가 없는 환경에서 zabbix를 구성하는 방법에 대해 찾아보다, active 방식을 사용하면 호스트 작성 시 에이전트 IP를 작성하지 않아도 된다는 것에 주목했다.

https://honglab.tistory.com/68

  • 에이전트 IP 작성이 어렵다면, 에이전트 IP에 모두를 넣어주는 방식을 사용하면 되지 않을까? 실제로 액티브 방식의 경우 서버 → 에이전트의 통신이 보안 등의 이유로 곤란할 때 사용된다고 하니까.

  • 그리고 올바른 접근이었던 것 같다. 모니터링이 성공한 것을 확인할 수 있다.
    액티브의 경우, 호스트 네임이 반드시 맞아야한다고 하니, 주의해주도록 하자. 또한 패시브 모니터링같이 초록색 불이 들어오지 않는다고 한다. 최근 데이터로 가서 모니터링 데이터가 들어오는지를 확인하자.

  • 장애 항목도 표시된다.

passive vs active

  • 그럼 왜 passive를 사용하는걸까?
    active를 사용해도 모니터링이 가능하고, 서버 → 에이전트 연결이 곤란한 상황 등이 있어 passive를 활용하지 못하는 경우가 있다면, 분명 active 방식으로 통합해도 됐을 것 같은데 말이다.

passive vs active

특징

  • active(활성) 에이전트
    • 모든 데이터 처리는 폴러의 간섭 없이 에이전트에서 수행됨.
    • 에이전트는 모니터링해야하는 메트릭을 알아야하며, 때문에 2분에 한 번씩(기본값) 서버의 트래퍼 포트 10051/TCP 에 연결하게 됨.
    • 에이전트는 항목에 대한 정보를 요청한 후 호스트에서 모니터링을 수행하고 동일한 TCP 포트를 통해 서버에 데이터를 푸쉬.
  • passive(수동) 에이전트
    • 폴러(내부 서버 프로세스)가 포트 10050/TCP에서 에이전트에 연결하고, 특정 값에 대해 폴링한다는 것.
    • 폴러는 호스트의 에이전트가 값으로 응답할 때까지 기다리고, 서버는 값을 되돌려받고 연결이 닫힌다.

토폴로지(topology) 측면

  • 토폴로지 : 망구성방식.
  • 컴퓨터 네트워크 요소들(링크, 노드 등)을 물리적으로 연결해놓은 것, 또는 그 연결 방식.
  • zabbix 에이전트가 설치된 네트워크의 토폴로지 측면에서 살펴볼 수 있다. 고객이 내부 네트워크에서라도 자신의 환경에 들어오는 연결을 원하지 않지만, 아웃바운드 연결은 허용한다면, 이 경우에는 active 방식을 사용해야한다.
  • 트리거가 발생할 때마다 에이전트는 서비스 시작을 시도하고, 실패하면 알람이 전송된다. 하지만, 이 원격 명령은 passive 에이전트에서만 작동한다.

성능 측면

  • active 모드에서는 각 에이전트 당 프로세스가 하나만 있을 수 있다는 것. 항목을 모두 활성 검사로 구성하는 경우, 검사 대기열이 생기며 성능이 느려질 수 있다.
    이것을 피하기 위해서는 해당 항목을 수동 검사로 구성한 후 zabbix_agentd.conf에서 StartAgetns 변수를 변경하여 이러한 검사를 처리하는 내부 프로세스의 수를 늘려야 한다.
  • Active
    • 대부분의 경우 빠른 확인이 되는 active 에이전트가 있는 것이 성능 면에서 좋다. 단점은 원격 명령을 사용할 수 없다는 점.
    • active는 에이전트의 검사를 위한 메모리 버퍼가 있다는 것. 네트워크 문제가 발생해도 데이터 손실이 발생하지 않는다.
  • Passive
    • 느린 항목이 많고 에이전트 외부에서 처리할 수 없는 경우 수동 검사가 유일한 옵션이다. 이를 사용해 에이전트 측의 프로세스 수를 늘릴 수 있다.
    • passive는 버퍼를 사용할 수 없다.

zabbix proxy

0개의 댓글