Service zabbix

From 흡혈양파의 인터넷工房
Jump to navigation Jump to search
zabbix 3.4.7 install in gentoo with nginx + php-fpm + postgreSQL

개요

이 문서는 서버 모니터링용 소프트웨어인 zabbix 3.4.7 버전을 gentoo linux 에 설치하는 내용을 다룬다.

기존의 2.2.4 버전을 기준으로 한 다음의 문서를 교차로 참고하도록 한다.


요구조건

  • Gentoo Linux 64bit (openrc base)
  • nginx 1.12
  • php-fpm 7.1
  • postgreSQL 10.1


설치를 위한 환경설정

package.use

  • /etc/portage/package.use
app-eselect/eselect-php fpm
dev-lang/php fpm mhash sqlite sqlite3 png jpeg jpeg2k tiff xml truetype curl exif gd mysql pdo sockets xmlreader xmlrpc xmlwriter xsl zip sharedext hash simplexml sharedmem cgi tidy cli reflection enchant postgres soap xslt
www-servers/nginx addition upload xslt dav smtp ey_balancer geoip flv

dev-libs/openssl -bindist
net-misc/openssh -bindist
net-analyzer/zabbix curl frontend libxml2 proxy server snmp ssh xmpp postgres ldap

media-gfx/imagemagick pango -openmp


USE flag

  • /etc/portage/make.conf 에서 발췌
USE="ipv6 suid sysvipc bcmath png fontconfig jpeg gif tiff truetype lzma pci postscript svg jpeg2k"


service file

  • /etc/services
    • 파일의 맨 아래쪽 "Local services" 라는 주석 아래쪽에 다음과 같은 내용을 추가한다.
zabbix-agent     10050/tcp      Zabbix Agent
zabbix-agent     10050/udp      Zabbix Agent
zabbix-trapper   10051/tcp      Zabbix Trapper
zabbix-trapper   10051/udp      Zabbix Trapper


소프트웨어의 설치

emerge postgresql php nginx
emerge pecl-imagek
emerge /usr/portage/net-analyzer/zabbix/zabbix-3.4.7.ebuild


위의 순서대로 소프트웨어를 설치한 이후에 각 소프트웨어의 설정파일을 수정한다.


소프트웨어 설정

zabbix 의 세팅

zabbix 소프트웨어의 설치

webapp-config -s nginx -I zabbix 3.4.7 -d zabbix

이렇게 입력하면 /var/www/localhost/htdocs/zabbix 위치에 zabbix 소프트웨어를 설치한다.


zabbix 설정파일의 권한 수정

chmod -R 777 /etc/zabbix
chmod -R 777 /var/log/zabbix
chown -R nobody:nobody /var/www/localhost/htdocs/zabbix


nginx

아래 설정파일의 내용은 다음과 같다.

  1. 접속 주소는 http://aaa.aaa.aaa.aaa:8080/
  2. 서버에 설치되는 zabbix software 의 위치 /var/www/localhost/htdocs/zabbix
  3. php 의 zabbix instance 의 socket 파일 위치 /var/run/zabbixfpm.socket
  4. /etc/nginx/nginx.conf 파일의 제일 위쪽에 user 부분을 nginx 에서 다음처럼 수정한다
    • user nobody nobody;
  • /etc/nginx/conf.d/01_zabbix_vhost.conf
server {
        listen 8080;
        access_log  /var/log/nginx/zabbix.log;
        error_log  /var/log/nginx/zabbix.error;

        set $webroot /var/www/localhost/htdocs/zabbix;

        root $webroot;

        index index.php index.html;
        client_max_body_size 10m;
        client_body_buffer_size 512k;

        location = /favicon.ico {
                log_not_found off;
        }

        location = /robots.txt {
                allow all;
                log_not_found off;
                access_log off;
        }

        location ~ /\. {
                deny all;
                access_log off;
                log_not_found off;
        }

        location / {
                try_files $uri $uri/ /index.php?$args;
        }

        location ~ .php$ {
                fastcgi_pass unix:/var/run/zabbixfpm.socket;
                fastcgi_index  index.php;

                fastcgi_param  SCRIPT_FILENAME  $webroot$fastcgi_script_name;

                include fastcgi_params;
                fastcgi_param  QUERY_STRING     $query_string;
                fastcgi_param  REQUEST_METHOD   $request_method;
                fastcgi_param  CONTENT_TYPE     $content_type;
                fastcgi_param  CONTENT_LENGTH   $content_length;
                fastcgi_intercept_errors        on;
                fastcgi_ignore_client_abort     off;
                fastcgi_connect_timeout 60;
                fastcgi_send_timeout 180;
                fastcgi_read_timeout 180;
                fastcgi_buffer_size 128k;
                fastcgi_buffers 4 256k;
                fastcgi_busy_buffers_size 256k;
                fastcgi_temp_file_write_size 256k;
        }

        location ~*  \.(jpg|jpeg|png|gif|css|js|ico)$ {
                expires max;
                log_not_found off;
        }

        location ~ /\.ht {
        deny all;
        }

        location ~ /\. {
        deny all;
        }
}


php 설정

  • /etc/php/fpm-php7.1/php.ini
    • 파일 내에서 Date 섹션을 찾아서 아래와 같이 편집한다
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Asia/Seoul


  • /etc/php/fpm-php7.1/fpm.d/zabbix.conf
[zabbix]
user = nobody
group = nobody

listen = /var/run/zabbixfpm.socket
listen.owner = nobody
listen.group = nobody

pm = dynamic
pm.max_children = 4
pm.start_servers = 1
pm.min_spare_servers = 1
pm.max_spare_servers = 4
php_value[post_max_size] = 16M
php_value[max_execution_time] = 500
php_value[max_input_time] = 300


Database 설정

데이터베이스 초기화

아래의 명령을 통해서 데이터베이스를 초기화한다.

emerge --config =dev-db/postgresql-10.3


데이터베이스 세팅

  1. DB 이름 : zabbixdb
  2. DB 사용자 : zabbix
  3. DB 비번 : zabbix
  • postgres 계정으로 사용자 몇 DB 를 생성
su postgres

psql

psql_shell> CREATE USER zabbix WITH PASSWORD 'zabbix';
psql_shell> CREATE DATABASE zabbixdb WITH ENCODING='UTF-8' OWNER zabbix;
psql_shell> GRANT ALL PRIVILEGES ON DATABASE zabbixdb to zabbix;


  • /etc/postgresql-10/pg_hba.conf
    • 아래의 내용을 파일의 맨 아래쪽에 추가한다
local    zabbixdb          zabbix                                md5
host     zabbixdb          zabbix          192.168.2.1/32        md5


이상의 postgreSQL 설정을 마치고 나서 db 엔진을 시작한다

/etc/init.d/postgresql-10 start


zabbix 데이터베이스 값을 추가하기

psql -U zabbix -W -d zabbixdb -f /usr/share/zabbix/database/postgresql/schema.sql 
psql -U zabbix -W -d zabbixdb -f /usr/share/zabbix/database/postgresql/images.sql 
psql -U zabbix -W -d zabbixdb -f /usr/share/zabbix/database/postgresql/data.sql


zabbix 설정파일의 수정

아래의 내용을 참고해서 zabbix_server.conf 파일을 수정한다.

  • /etc/zabbix/zabbix_server.conf
ListenPort=10051
DBHost=localhost
DBName=zabbixdb
DBUser=zabbix
DBPassword=zabbix
StartPollers=10
CacheSize=128M
HistoryCacheSize=128M
TrendCacheSize=64M
HistoryTextCacheSize=128M
Timeout=30
ListenIP=0.0.0.0


아래의 내용을 참고해서 zabbix_server.conf 파일을 수정한다.

  • /etc/zabbix/zabbix_agentd.conf
Server=127.0.0.1
ServerActive=127.0.0.1
Hostname=Zabbix server


서비스의 시작 및 사용

/etc/init.d/zabbix-server start
/etc/init.d/php-fpm start
/etc/init.d/nginx start


서비스 접속을 해서 zabbix 의 초기 설치 및 사용을 진행하도록 한다.

http://aaa.aaa.aaa.aaa:8080/

기본 web ui 의 로그인 정보는 다음과 같다. 대소문자에 주의하도록 한다.

  • id : Admin
  • pw : zabbix


참고문서