Zabbix Agent Install - Linux [CentOS]
Zabbix Server 가 설치가 되었으니 이제 감시를 걸어야 할 서버에 Agent를 설치해야 됩니다.
그중 Linux CentOS 서버에 버전별 설치를 진행하도록 하겠습니다. Agent는 공식 홈페이지에 이미 컴파일이 완료된 소스파일을 다운로드할 수 있습니다만 커널 OS별로 분류했기 때문에 Linux의 경우는 커널 3.X 까지 즉 CentOS 8부터 커널 4.X OS를 기본으로 하는 서버에서는 다운로드할 곳이 없습니다. 커널 4.X 이상이 설치된 서버는 Zabbix 저장소에 업로드된 RPM 패키지 파일을 다운로드하여 설치하는 게 좋습니다.
■ 진행하기전 참고사항
※ Zabbix Server 준비 [포스팅 참고]
※ Agent를 설치할 서버의 CentOS 버전 및 Kernel 버전 확인
□ CentOS 버전
[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 8.1.1911 (Core)
□ Kernel 버전 확인
[root@localhost ~]# uname -r
5.7.2-1.el8.elrepo.x86_64
[root@localhost ~]# hostnamectl | grep Kernel
Kernel: Linux 5.7.2-1.el8.elrepo.x86_64
※ Kernel 2.4.X / 2.6.X / 3.X 이용하는 CentOS 5/6/7 서버는 이미 컴파일 완료된 공식 홈페이지 소스파일 직접 [다운로드] 설치
※ [추천(쉬움)] CentOS 7/8 Kernel 4.X 이상일 경우는 [Zabbix 저장소] 업로드된 RPM 패키지 파일 설치 권장
※ Agent는 독립적인 호환이므로 Zabbix Server 버전에 상관없이 하위 버전이라도 OS에 맞는 Agent를 설치할 것
■진행순서
1. 감시할 서버 CentOS 8 - Zabbix Agent 설치
□ [방법 1] YUM 설치
※ zabbix-release-5.0-1.el8.noarch.rpm Zabbix 저장소를 설치했다면 YUM 미러사이트에서 자동으로 설치 가능
[root@localhost ~]# yum install zabbix-agent
============================================================
Package Architecture Version Repository Size
============================================================
Installing:
zabbix-agent x86_64 5.0.1-1.el8 zabbix 454 k
Transaction Summary
============================================================
설치 1 Package
Total download size: 454 k
Installed size: 1.9 M
Is this ok [y/N]: y
...
zabbix-agent-5.0.1-1.el8.x86_64
완료되었습니다!
□ [방법 2] YUM미러를 찾지 못해 설치를 못하는 경우는 직접 [Zabbix 저장소]에서 버전에 맞는 RPM 패키지 설치
[root@localhost ~]# rpm -ivh http://repo.zabbix.com/zabbix/5.0/rhel/8/x86_64/zabbix-agent-5.0.1-1.el8.x86_64.rpm
http://repo.zabbix.com/zabbix/5.0/rhel/8/x86_64/zabbix-agent-5.0.1-1.el8.x86_64.rpm
Verifying... ################# [100%]
준비 중... ########### [100%]
Updating / installing...
1:zabbix-agent-5.0.1-1.el8 ############ [100%]
[/usr/lib/tmpfiles.d/mdadm.conf:1] Line references path below legacy directory /var/run/,
updating /var/run/mdadm → /run/mdadm; please update the tmpfiles.d/ drop-in file accordingly.
[/usr/lib/tmpfiles.d/pesign.conf:1] Line references path below legacy directory /var/run/,
updating /var/run/pesign → /run/pesign; please update the tmpfiles.d/ drop-in file accordingly.
[해당 문구는 무시할 것]
2. Zabbix Agent 세팅[수정 후 저장]
□ YUM/RPM 어느 것을 설치해도 기본 디폴트 경로는 같습니다.
[root@localhost ~]# vi /etc/zabbix/zabbix_agentd.conf
13 PidFile=/var/run/zabbix/zabbix_agentd.pid [기본 설정]
32 LogFile=/var/log/zabbix/zabbix_agentd.log [기본 설정]
119 Server=192.168.232.128 [Zabbix Server의 IP 또는 호스트 이름]
160 #ServerActive=127.0.0.1 [주석(#) 처리]
171 Hostname=192.168.232.129 [Agent 설치 서버의 IP 또는 호스트 이름]
3. Zabbix Agent 서비스 구동
□ 서비스 구동
[root@localhost ~]# systemctl start zabbix-agent
□ 부팅 시 자동 활성화
[root@localhost ~]# systemctl enable zabbix-agent
□ 프로세스 확인[아래 listener까지 나와야 정상]
[root@localhost ~]# ps -ef |grep zabbix
zabbix 21139 1 0 01:25 ? 00:00:00 /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
zabbix 21140 21139 0 01:25 ? 00:00:00 /usr/sbin/zabbix_agentd: collector [idle 1 sec]
zabbix 21141 21139 0 01:25 ? 00:00:00 /usr/sbin/zabbix_agentd: listener #1 [waiting for connection]
zabbix 21142 21139 0 01:25 ? 00:00:00 /usr/sbin/zabbix_agentd: listener #2 [waiting for connection]
zabbix 21144 21139 0 01:25 ? 00:00:00 /usr/sbin/zabbix_agentd: listener #3 [waiting for connection]
4. IPTABLES 방화벽 포트 허용 및 재시작
□ 수정 후 저장
[root@localhost ~]# vi /etc/sysconfig/iptables
# sample configuration for iptables service
# you can edit this manually or use system-config-firewall
# please do not ask us to add additional ports/services to this default configuration
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 8888 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 10050 -j ACCEPT [Zabbix Agent 포트 (추가)]
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
□ 재시작
[root@localhost ~]# systemctl restart iptables
□ 적용 확인
[root@localhost ~]# iptables -nL |grep 10050
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:10050
5. Zabbix Server 관리자에서 감시할 호스트 등록 하기
5-1 [설정] ▷ [호스트] ▷ [호스트 작성]
5-2 호스트 작성 등록
□ [*필수 입력] 호스트 명 - Agent 서버를 명시하는 이름으로 임의 입력하시면 되나 구분할 수 있도록 할 것
□ [*필수 입력] 그룹 - 그룹을 별도로 만들 수 있으나 아직 없으므로 기본 등록되어있는 그룹 선택[Linux servers]
□ [*필수 입력] Interfaces - 호스트 등록된 게 없으면 일반적으로 Agent 서버의 IP를 입력하는 것을 권고
(※ 한글 메뉴에서는 포트 부분이 인터페이스 겹치는 문제가 있습니다. 기본 포트 10050 이므로 문제는 없습니다.)
5-3 템플릿 부분 등록
□ [선택] ▷ 템플릿 호스트 그룹[선택] ▷ Templates/Operationg systems [클릭] ▷ Template OS Linux by Zabbix agent [클릭] ▷ 최종 선택 후 [추가] 시 등록 완료
6. 등록 후 연결 확인
□ 정상 연결 시 상태에 [ZBX] 초록색 표시로 됩니다.
□ 실패 예시)
실패 시 [ZBX] 빨간색 표시로 마우스 클릭 시 실패 사유가 나옵니다. 참고하시어 설정 변경하시면 됩니다.
■ 버전별 Agent 패키지 설치[예시]
□ CentOS 7 64bit
[root@localhost ~]# rpm -ivh http://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-agent-5.0.1-1.el7.x86_64.rpm
□ CentOS 6 64bit
[root@localhost ~]# rpm -ivh http://repo.zabbix.com/zabbix/5.0/rhel/6/x86_64/zabbix-agent-5.0.1-1.el6.x86_64.rpm
□ CentOS 5 64bit
[root@localhost ~]# rpm -ivh http://repo.zabbix.com/zabbix/5.0/rhel/5/x86_64/zabbix-agent-5.0.1-1.el5.x86_64.rpm
이렇게 저장소를 잘 이용하면 굳이 소스파일 다운로드하여서 일일이 세팅할 필요 없이 RPM 파일로 쉽게 에이전트를 설치할 수 있습니다. 설치 경로 및 실행 방법은 전부 동일하며 아래와 같이 버전별로 연결된 것을 확인할 수 있습니다.
■ Zabbix-agent 시작 에러 발생 시
[root@localhost zabbix]# systemctl start zabbix-agent
Job for zabbix-agent.service failed. See "systemctl status zabbix-agent.service" and "journalctl -xe" for details.
□ journalctl 에러 로그
[root@localhost zabbix]# journalctl -xe
-- Unit zabbix-agent.service has begun starting up.
7월 02 16:56:25 localhost.localdomain systemd[1]:
Can't open PID file /run/zabbix/zabbix_agentd.pid (yet?) after start: No such file or directory
7월 02 16:56:25 localhost.localdomain systemd[1]: Daemon never wrote its PID file. Failing.
7월 02 16:56:25 localhost.localdomain systemd[1]: Failed to start Zabbix Agent.
-- Subject: Unit zabbix-agent.service has failed
□ zabbix-agent 에러 로그
[root@localhost ~]# vi /var/log/zabbix/zabbix_agentd.log
2564:20200702:165503.496 using configuration file: /etc/zabbix/zabbix_agentd.conf
2564:20200702:165503.496 cannot set resource limit: [13] Permission denied
2564:20200702:165503.496 cannot disable core dump, exiting...
2564:20200702:165503.496 Zabbix Agent stopped. Zabbix 5.0.1 (revision c2a0b03480).
두 개의 로그를 보면 권한 거부로 인한 /run/zabbix/zabbix_agentd.pid 경로에 PID 파일을 생성하지 못해 Agent를 실행하지 못하는 에러 로그입니다. YUM/RPM 설치는 계정 생성 및 폴더 경로 권한 등 이미 설정이 다 되어있기 때문에 변경할 필요가 없습니다.
□ 계정 생성 확인
[root@localhost ~]# cat /etc/passwd | grep zabbix
zabbix:x:989:985:Zabbix Monitoring System:/var/lib/zabbix:/sbin/nologin [계정 문제없음]
□ PID생성 위치 권한 확인
[root@localhost ~]# ls -al /var/run/ | grep zabbix
drwxr-xr-x 2 zabbix zabbix 60 7월 2 20:50 zabbix [권한 문제없음]
그래도 실행했을 때 Permission denied 에러가 발생한다면 거의 99% Selinux 보안에 의한 문제입니다. 아래와 같이 진행
※ SELinux(Security-Enhanced Linux) [공식 홈페이지 참고]
관리자가 시스템 액세스 권한을 제한할 수 있는 Linux 시스템용 보안 설정이며 적용되어 있을 경우 어플리케이션,프로세스,파일실행에 대한 액세스를 제어하기 때문에 권한 실행 에러로 인한 문제가 많이 발생합니다. 그래서 대부분의 솔루션 업체가 이 권한을 해제하는 이유입니다. 물론 보안을 위해 정책에 맞게 허용을 해주면 좋겠지만 설정 방법과 관리하기 어렵기 때문에 사용을 안 하는 편입니다.
□ Selinux 보안 해제 [적용 후 서버 재시작 필요]
[root@localhost ~]# vi /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled [enforcing → disabled 변경]
# SELINUXTYPE= can take one of these three values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
추후 OS별로 업로드를 진행하겠지만 방식은 전부 비슷합니다. 참고하시어 진행하시면 어려움 없이 에이전트를 등록하실 수 있을 것으로 판단됩니다.
'◈『Open(Source) Solution』 > 자빅스(Zabbix)' 카테고리의 다른 글
Zabbix 5.0 LTS + 텔레그램 연동 [2] (0) | 2020.07.16 |
---|---|
Zabbix 5.0 LTS + 텔레그램 연동 [1] (0) | 2020.07.15 |
Zabbix Agent Install - Windows [수동 설치] (0) | 2020.07.08 |
Zabbix Agent Install - Windows [MSI 설치] (0) | 2020.07.07 |
CentOS 8 - Zabbix(자빅스) 5.0 LTS 오픈소스용 모니터링 설치 (0) | 2020.07.01 |