728x90
반응형
수많은 종류의 네트워크 서비스, 서버 등의 네트워크 하드웨어를 감시하고 추적하여 관리자에게 장애 발생을 신속히 알리기 위해 만들어진 네트워크 관리 시스템이다. Zabbix 에이전트 소프트웨어를 UNIX, Linux, Windows등 지원되는 OS에 설치하면 CPU 사용량, 네트워크 사용량, 디스크 용량 등을 포함한 더 많은 정보를 감시 아이템으로 사용할 수 있게 된다.

 

- 방화벽 오픈 정보

inbound open 10051 zabbix server port
inbound open 10050 zabbix agent port

- Server

10050 inbound source CLIENT_IP

- Client

10050 inbound/outbound source ZABBIX_SERVER_IP

1. Zabbix 서버의 타임존 맞춰주기

timedatectl set-timezone Asia/Seoul

2. Zabbix RPM Download

rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

3. Amazon Linux 사용 시 범용적으로 사용되는 패키지가 누락 되어 있어서 추가 설치

yum clean all

rpm -Uvh https://rpmfind.net/linux/centos/7.9.2009/extras/x86_64/Packages/centos-release-scl-rh-2-3.el7.centos.noarch.rpm

rpm -Uvh https://rpmfind.net/linux/centos/7.9.2009/extras/x86_64/Packages/centos-release-scl-2-3.el7.centos.noarch.rpm

4. Install

yum install zabbix-server-mysql zabbix-agent

4. zabbix-frontend Repo Enable

yum-config-manager --enable rhel-server-rhscl-7-rpms

vi /etc/yum.repos.d/zabbix.repo

[zabbix]
name=Zabbix Official Repository - $basearch
baseurl=http://repo.zabbix.com/zabbix/5.0/rhel/7/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591

[zabbix-frontend]
name=Zabbix Official Repository frontend - $basearch
baseurl=http://repo.zabbix.com/zabbix/5.0/rhel/7/$basearch/frontend
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591

[zabbix-debuginfo]
name=Zabbix Official Repository debuginfo - $basearch
baseurl=http://repo.zabbix.com/zabbix/5.0/rhel/7/$basearch/debuginfo/
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
gpgcheck=1

[zabbix-non-supported]
name=Zabbix Official Repository non-supported - $basearch
baseurl=http://repo.zabbix.com/non-supported/rhel/7/$basearch/
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
gpgcheck=1
728x90

6. 주요 컴포넌트 설치

yum install zabbix-web-mysql-scl zabbix-nginx-conf-scl

yum install -y mariadb mariadb-server

7. DB 서비스 시작 및 활성화

systemctl start mariadb

systemctl enable mariadb

8. DB 세팅

# 접속
mysql -uroot -p

create database zabbix character set utf8 collate utf8_bin;

create user zabbix@localhost identified by 'password';

grant all privileges on zabbix.* to zabbix@localhost;

# root 계정으로 어떤 계정으로 접속 할 수 있도록 설정
grant all privileges on *.* to 'root'@'%' identified by 'root';

quit;

9. DB 세팅 쿼리 수행

zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix

10. Zabbix PHP 세팅

vi /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf


## 아래 항목 추가
> add listen acl user ",zabbix"
> php_value[date.timezone] = Asia/Seoul

11. Zabbix Conf 세팅

vi /etc/zabbix/zabbix_server.conf

## 아래 항목 수정
> modify DBPassword=password

12. Nginx 설정 변경

vi /etc/opt/rh/rh-nginx116/nginx/conf.d/zabbix.conf

## 아래 항목 수정
> modify port, server name

13. 서비스 재시작 및 등록

systemctl restart zabbix-server zabbix-agent rh-nginx116-nginx rh-php72-php-fpm

systemctl enable zabbix-server zabbix-agent rh-nginx116-nginx rh-php72-php-fpm mariadb

systemctl status zabbix-server zabbix-agent rh-nginx116-nginx rh-php72-php-fpm mariadb
728x90
300x250

'IT > Zabbix' 카테고리의 다른 글

Zabbix + VMware 모니터링 설정  (3) 2022.04.12
MySQL ibdata1 용량 클리어 작업 (with Zabbix)  (0) 2022.02.18
Zabbix agent on Windows Server  (0) 2021.08.17
Zabbix 감시 설정  (0) 2021.07.29
Zabbix Template 설정  (0) 2021.07.29
728x90
반응형

템플릿 설정


MySQL/MariaDB


참고

ZABBIX에 기본으로 붙어 있는 템플릿을 사용한다.다만 리플리케이션의 설정은 없어서 독자적으로 추가하고 있다.
감시되는 서버 측에 아래와 같이 설정

1. /etc/zabbix/zabbix-agentd.d/userparameter_mysql.conf
PATH나 명령은 서버에 맞추어 적절히 변경한다.

UserParameter=mysql.status[*],echo "show global status where Variable_name='$1';" | PATH=/usr/local/mysql/bin HOME=/var/lib/zabbix /usr/local/mysql/bin/mysql --defaults-extra-file=/etc/zabbix/my.cnf -N | awk '{print $$2}'
UserParameter=mysql.size[*],echo "select sum($(case "$3" in both|"") echo "data_length+index_length";; data|index) echo "$3_length";; free) echo "data_free";; esac)) from information_schema.tables$([[ "$1" = "all" || ! "$1" ]] || echo " where table_schema='$1'")$([[ "$2" = "all" || ! "$2" ]] || echo "and table_name='$2'");" | PATH=/usr/local/mysql/bin HOME=/var/lib/zabbix mysql --defaults-extra-file=/etc/zabbix/my.cnf -N
UserParameter=mysql.ping, PATH=/usr/local/mysql/bin HOME=/var/lib/zabbix mysqladmin --defaults-extra-file=/etc/zabbix/my.cnf ping | grep -c alive
UserParameter=mysql.version, PATH=/usr/local/mysql/bin mysql --defaults-extra-file=/etc/zabbix/my.cnf -V
# for Replication
UserParameter=mysql.replication[*],echo "show slave status\G" | PATH=/usr/local/mysql/bin HOME=/var/lib/zabbix mysql --defaults-extra-file=/etc/zabbix/my.cnf  | grep $1: | awk '{print $$2}'

패키지에서 설치하고 있는 경우는 아래 처럼.

UserParameter=mysql.status[*],echo "show global status where Variable_name='$1';" | HOME=/var/lib/zabbix mysql --defaults-extra-file=/etc/zabbix/my.cnf -N | awk '{print $$2}'
UserParameter=mysql.size[*],echo "select sum($(case "$3" in both|"") echo "data_length+index_length";; data|index) echo "$3_length";; free) echo "data_free";; esac)) from information_schema.tables$([[ "$1" = "all" || ! "$1" ]] || echo " where table_schema='$1'")$([[ "$2" = "all" || ! "$2" ]] || echo "and table_name='$2'");" | HOME=/var/lib/zabbix mysql ---defaults-extra-file=/etc/zabbix/my.cnf -N
UserParameter=mysql.ping, HOME=/var/lib/zabbix mysqladmin --defaults-extra-file=/etc/zabbix/my.cnf ping | grep -c alive
UserParameter=mysql.version, mysql --defaults-extra-file=/etc/zabbix/my.cnf -V
# for Replication
UserParameter=mysql.replication[*],echo "show slave status\G" | HOME=/var/lib/zabbix mysql --defaults-extra-file=/etc/zabbix/my.cnf  | grep $1: | awk '{print $$2}'

2. /etc/zabbix/my.cnf를 작성.유저, 패스는 환경에 맞추어 적절히 변경.

[client]
user        = monitor
password    = test!
socket      = /usr/local/mysql/tmp/mysql.sock

 - 패키지에서 설치하고 있는 경우는 아래

[client]
user        = monitor
password    = test!
socket      = /var/lib/mysql/mysql.sock

3. zabbix agent를 재기동

4. ZABBIX서버 측에서 확인

# zabbix_get -s <target host> -k mysql.ping
1

1에서 정상 가동하고 있는 확인 OK.mysql이 실행하고 있는데 잘 안 될 경우는 agent측의 로그를 확인.

 

MongoDB


1. /etc/zabbix/zabbix-agentd.d/userparameter_mongodb.conf의 작성

 - mongod의 서버

 - PATH나 명령은 서버에 맞추어 적절히 변경한다.

# status 
UserParameter=mongodb.ok,/bin/echo "db.serverStatus().ok" | /usr/local/mongodb/bin/mongo --port 30001 -u monitor -p test2! admin | head -3 | tail -1

# replicaset
UserParameter=mongodb.rsok,/bin/echo "rs.status()" | /usr/local/mongodb/bin/mongo --port 30001 -u monitor -p test2! admin | grep stateStr | grep -v -E 'PRIMARY|SECONDARY|ARBITER' -c

# 기타 상태의 모든 접근
UserParameter=mongodb.status[*],/bin/echo "db.serverStatus().$1" | /usr/local/mongodb/bin/mongo --port 30001 -u monitor -p test2! admin | grep "$2"|awk -F: '{print $$2}'|awk -F, '{print $$1}'

 - mongos의 서버

UserParameter=mongodb.ok,/sbin/pidof mongos | wc -l
또는
UserParameter=mongodb.ok,/sbin/pidof mongod | wc -l

2. zabbix agent를 재기동

3. ZABBIX서버 측에서 확인

# zabbix_get -s <target host> -k mongodb.ok
1

1에서 정상 가동하고 있는 확인 OK.

※mongodb.status로 mongodb에 접속하고 각 파라미터를 개별적으로 취득하지만 connections만 출력이 개항되지 않고 같은 형식으로 처리할 수 없다.

 

Redis


1. /etc/zabbix/zabbix_agentd.d/userparameter_redis.conf의 작성
PATH나 명령은 서버에 맞추어 적절히 변경한다. 디폴트 포트를 사용하고 있다면-p지정은 불필요합니다.

UserParameter=redis.stat[*],/usr/local/redis/src/redis-cli -p 16061 -a '<password>' info | grep "$1:" | cut -d":" -f2

 - 패키지에서 설치하고 있는 경우는 아래

UserParameter=redis.stat[*],redis-cli -a '<password>' info | grep "$1:" | cut -d":" -f2

2. zabbix agent를 재기동

3. ZABBIX서버 측에서 확인

# zabbix_get -s <target host> -k 'redis.stat[redis_version]'
2.4.10

데이터의 출력이 되어 있으면 OK.

 

728x90
300x250

'IT > Zabbix' 카테고리의 다른 글

Zabbix agent on Windows Server  (0) 2021.08.17
Zabbix 감시 설정  (0) 2021.07.29
Zabbix Agent 설치  (0) 2021.07.29
Zabbix 서버에 대해  (0) 2021.07.29
Zabbix 설치  (0) 2020.07.05
728x90
반응형

Zabbix Server설치

 

ZABBIX의 공식 레포지토리가 설치된 것으로 그쪽에서 설치한다.

여기에서는 이하의 내용으로 설정한다.

ZABBIX : 2.0.5

DB : MySQL

DB name : zabbixDB

user : zabbixDB

pass : passzabbix

 

 

1. yum에서 필요한 패키지 설치

# yum install mysql-server curl net-snmp unixODBC OpenIPMI-libs httpd php php-bcmath php-gd php-mbstring php-mysql php-xml vlgothic-p-fonts libssh2

2. 추가 패키지 설치

# yum install --enablerepo=epel fping iksemel

3. zabbix의 레파지토리를 등록

# rpm -ivh http://repo.zabbix.com/zabbix/2.0/rhel/6/x86_64/zabbix-release-2.0-1.el6.noarch.rpm

4. 기본적으로 ZABBIX레파지토리 무효로 한다.

# yum-config-manager --disable 'zabbix*'

5. zabbix의 설치

# yum install --enablerepo='zabbix*' zabbix zabbix-agent zabbix-server zabbix-server-mysql zabbix-web zabbix-web-mysql zabbix-web-japanese zabbix-get zabbix-java-gateway

의존으로 들어오지 않을 경우는 필요한 패키지를 먼저 설치한다(font관련이나).

 

6. php.ini와 my.cnf을 적절히 설정. 필요하면 이하의 작업도.

 

- 로그 디렉토리

  • # mkdir /var/log/mysql
    # chown mysql:mysql /var/log/mysql

- mysql의 초기 설정(mysql_secure_install등).

# mysql_secure_install

7. apache의 설정
DocumentRoot, virtualhost의 설정 등.

# ln -fs /usr/share/zabbix /var/www/zabbix-0

8. DB의 설정

- 데이터베이스 사용자의 작성

mysql>create database zabbix character set utf8;
mysql>grant all privileges on zabbix.* to zabbix@localhost identified by 'passzabbix';
mysql>flush privileges;
mysql>exit

- 초기 데이터

# mysql -uroot -p zabbix < /usr/share/doc/zabbix-server-mysql-2.0.5/create/{schema.sql,images.sql,data.sql}

9. /etc/zabbix/zabbix_server.conf의 설정.MySQL의 패스워드를 이하로 설정.

DBPassword=passzabbix

10. zabbix서비스 기동

# chkconfig zabbix-server on
# chkconfig zabbix-java-gateway on
# chkconfig zabbix-agent on
# service zabbix-server start
# service zabbix-agent start

11. 기동 하였더니 top홈페이지에 접속하여 초기 설정

-기본적으로http://hoge.example.com/zabbix형식이 된다. virtualhost등에서 서브 도메인을 대고 있는 경우는 적절히 변경.

 

12. 초기 설정이 완료되면 로그인.초기 사용자 정보는 이하.

user : admin
pass : zabbix

 

Zabbix Java Gateway

JAVA의 JMX경유에서 JAVA애플리케이션의 모니터링 할 수 있다.

1. zabbix-java-gateway설치. OpenJDK등도 마련하고 설치된다.

# yum --enablerepo=zabbix install zabbix-java-gateway

2. /etc/zabbix/zabbix-java-gateway.conf의 편집

-# LISTEN_IP="0.0.0.0"
+LISTEN_IP="127.0.0.1"
 
-# LISTEN_PORT=10052
+LISTEN_PORT=10052
 
-# START_POLLERS=5
+START_POLLERS=10

3. 자동 실행 설정

# chkconfig zabbix-java-gateway on

4. JMX경유해서 체크 시 Java Remote Method Invocation(Java RMI)에서는 지정된 포토 이외에 랜덤 포트를 사용하여 방화벽에 걸리고 포토를 고정하는 처리가 필요.이하의 파일을 취득.다운로드 URL은 버전에 맞춘다.

# cd /usr/sbin/zabbix_java/lib/
# curl -O http://archive.apache.org/dist/tomcat/tomcat-6/v6.0.24/bin/extras/catalina-jmx-remote.jar

5. 기동

# service zabbix-java-gateway start

 

설정

- 초기 설정

zabbix_*.conf

파라미터의 설정은 다음에 일본어 해설이 있으므로 참고.

https://blueskydetector.hatenablog.com/entries/2011/02/11

 

iptables

agent에서 접속은 포트 10051에서 신청 받기 때문에 ZABBIX서버 측은 포트 개방이 필요하다.

# ZABBIX
-A INPUT -s 192.168.0.0/16  -m state --state NEW -m tcp -p tcp --dport 10051 -j ACCEPT
-A INPUT -s 10.0.0.0/8      -m state --state NEW -m tcp -p tcp --dport 10051 -j ACCEPT

 

Zabbix의 프로세스 튜닝

기본적으로 운용하고 있고, 호스트가 늘어났을 때 Zabbix busy icmp pinger processes경보가 발생한다.
이 경우의 대응으로서 ZABBIX서버 시작 시 pinger용의 프로세스를 확보하고 하면 좋다.

StartPingers=10

기본 값은 1에서 코멘트 아웃되어 있으므로 유효하게 하고 적절한 값을 설정하면 된다.이로써 프로세스의 busy가 떨어지므로 나머지는 상황을 보고변경한다.

 

- zabbix_server.log에 아래의 에러가 나선다면 agent에서 응답이 늦어지고 있는 경우가 있다.

failed: first network error, wait for 15 seconds


zabbix_server.conf에 Timeout값을 변경

-#Timeout=3
+Timeout=5

값은 상황에 맞추어 적절한 값을 설정한다.

 

아래에 Zabbix 5.0 버전으로 새로 발행한 매뉴얼이 있습니다.

참조 부탁드립니다.

2022.01.17 - [IT/Zabbix] - (최신) Amazon Linux 2 Zabbix Server 5.0 설치

728x90
300x250

'IT > Zabbix' 카테고리의 다른 글

Zabbix agent on Windows Server  (0) 2021.08.17
Zabbix 감시 설정  (0) 2021.07.29
Zabbix Template 설정  (0) 2021.07.29
Zabbix Agent 설치  (0) 2021.07.29
Zabbix 설치  (0) 2020.07.05
728x90
반응형

 

자빅스(zabbix) 공식 레파지토리 : http://repo.zabbix.com/zabbix/

자빅스 (zabbix) 한글 매뉴얼 : http://manual.oplab.co.kr

 

  1. epel 저장소 추가 (epel = Extra Package for Enterprise Linux -> 엔터프라이즈 리눅스를 위한 추카 패키지)
728x90
  1. 자빅스 구성요소 설치 ( Zabbix / DB(Maria DB) / Webb (Apache) / PHP )
    • yum -y install zabbix-server-mysql zabbix-web-mysql mysql mariadb-server httpd php
  2. DB 설정
    • systemctl start mariadb
    • systemctl enable mariadb
    • ps -ef | grep mysql
    • mysql_secure_installation --> 설치 절차 지문 읽어보고 확인 후 최종 완료
    • 로컬 로그인시 mysql -u root -p , 원격 로그인시 mysql -h 127.0.0.1 -p 3306 -u root -p
    • create database ZABBIXDB;
    • grant all privileges on ZABBIXDB.* to zabbix@localhost identified by 'password12';
    • flush privileges;
    • exit
  • DB에 자빅스 테이블 insert
    • cd /usr/share/doc/zabbix-server-mysql-3.2.11
    • gunzip create.sql.gz
    • mysql -u root -p ZABBIXDB < create.sql
  • 자빅스 DB정보 Configure
    • vi /etc/zabbix/zabbix_server.conf
    • 맨 아래 아랫값 적용
    • DBHost=localhost
    • DBName=ZABBIXDB
    • DBUser=zabbix
    • DBPassword=root
  • PHP 설정
    • vi /etc/php.ini
    • max_execution_time = 600  (30 → 600)
    • max_input_time = 600  (60 → 600)
    • memory_limit = 256M  (128M → 256M)
    • post_max_size = 32M  (8M → 32M)
    • upload_max_filesize = 16M  (2M → 16M)
    • date.timezone = Asia/Seoul  (앞에 ; 주석제거후 한국시간으로 설정)
  • 방화벽 확인
    • 80, 10050, 10051
  • 자빅스 서비스 & httpd 서비스 시작
    • systemctl start zabbix-server
    • systemctl enable zabbix-server
    • systemctl start httpd
    • systemctl enable httpd
    • ps -ef | grep zabbix, httpd
  • 자빅스 GUI 
  • 기본 접속 정보 admin / zabbix
  • 자빅스 service 확인
    • systemctl status zabbix-server.service
    • systemctl status mariadb
    • systemctl status httpd
  • 웹페이지 접근 안될 때 방화벽 살펴보기
  • Zabbix 서버 가동중이 아니오 일 때, 로그 확인
  • 로그 위치 /var/log/zabbix/zabbix*
    • DB소켓에러 났을 때 소켓 위치를 zabbix config에 DBSocket 지정후 해당 소켓 위치 설정

 

아래에 Zabbix 5.0 버전으로 새로 발행한 글이 있습니다.

참조 해주세요

2022.01.17 - [IT/Zabbix] - (최신) Amazon Linux 2 Zabbix Server 5.0 설치

 

 

 

 

 

728x90
300x250

'IT > Zabbix' 카테고리의 다른 글

Zabbix agent on Windows Server  (0) 2021.08.17
Zabbix 감시 설정  (0) 2021.07.29
Zabbix Template 설정  (0) 2021.07.29
Zabbix Agent 설치  (0) 2021.07.29
Zabbix 서버에 대해  (0) 2021.07.29

+ Recent posts