Service zabbix
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
아래 설정파일의 내용은 다음과 같다.
- 접속 주소는 http://aaa.aaa.aaa.aaa:8080/
- 서버에 설치되는 zabbix software 의 위치 /var/www/localhost/htdocs/zabbix
- php 의 zabbix instance 의 socket 파일 위치 /var/run/zabbixfpm.socket
- /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
데이터베이스 세팅
- DB 이름 : zabbixdb
- DB 사용자 : zabbix
- 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
참고문서
- https://www.zabbix.com/documentation/3.4/manual/installation/containers?s[]=nginx
- https://hub.docker.com/r/zabbix/zabbix-web-nginx-pgsql/
- https://github.com/zabbix/zabbix-docker/blob/3.4/web-nginx-pgsql/ubuntu/conf/etc/zabbix/nginx.conf
- http://computernala.tistory.com/entry/Zabbix-3-운영
- https://zabbix.org/wiki/Docs/howto/high_availability_Zabbix_Frontend