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 작업해주기
- 토큰 키 값 받기.
- 맨 위의
BotFather
을 눌러 들어가서 시작 버튼을 눌러 bot을 시작해준다.
- 1) 봇 이름 생성. 임의 생성이기 때문에 마음대로 설정해준다.
2) 봇 사용자 이름 생성. 역시 임의 생성이지만 _bot
으로 끝나게 생성해준다.
위의 사진에는 Zabbix_bot을 동일하게 사용해서 에러가 난 모습.
- 밑줄 친 값이 토큰 키값으로, 추후 필요하므로 메모해두자.
- 채팅 ID 받기.
- 검색창에
IDBot
을 입력하면 나오는 봇을 클릭하고 시작을 누른다.
P.S. Your ID :
뒤에 있는 숫자들이 내 채팅 ID
- 내가 만든 Bot 대화창 활성화
- 검색 부분에 내
봇 사용자 이름
을 검색하고 결과에서 나온 봇 선택.
/start
가 나와야 연동이 성공적으로 이루어진 것.
2. zabbix와 bot 연동해주기
ParseMode
와 Token
에 값을 입력해주고, 갱신 클릭
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 모니터링
- 설정 > 호스트 로 이동해
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