Zabbix на Ubuntu Trusty без использования Apache

Posted by

Будущие характеристики под сервис Zabbix разворачиваемый на .4 Server amd64

  • RAM = 4G
  • CPU = 2
  • HDD = 50

(а дома: RAM = 1,CPU=1,HDD=20 в рамках тестирования наращивания функционала данная тестовая система).

Сперва настраиваю систему по своему (правда первобытному) скрипту настройки:

Скачиваю debпакет Zabbix’а:

ekzorchik@srv-host:~$ wget http://repo.zabbix.com/zabbix/2.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_2.2-1+trusty_all.deb

ekzorchik@srv-host:~$ sudo dpkg -i zabbix-release_2.2-1+trusty_all.deb

ekzorchik@srv-host:~$ sudo apt-get update && sudo apt-get upgrade -y

ekzorchik@srv-host:~$ sudo apt-get install mariadb-server php5-fpm php5-mysql snmp libnet-snmp-perl snmp-mibs-downloader zabbix-server-mysql zabbix-frontend-php zabbix-agent -y

New password for the MariaDB «root» user: 712mbddr@

Repeat password for the MariaDB «root» user: 712mbddr@

Configure database for zabbix-server-mysql with dbconfig-common? Yes

Password of the database’s administrative user: 712mbddr@

MySQL application password for zabbix-server-mysql: 712mbddr@

Password confirmation: 712mbddr@

ekzorchik@srv-host:~$ nginx -V | head -n 1

nginx version: nginx/1.4.6 (Ubuntu)

built by gcc 4.8.2 (Ubuntu 4.8.2-19ubuntu1)

TLS SNI support enabled

ekzorchik@srv-host:~$ sudo nano /etc/php5/fpm/php.ini

max_execution_time = 300

memory_limit = 128M

post_max_size = 16M

upload_max_filesize = 2M

max_input_time = 300

date.timezone = Europe/Moscow

ekzorchik@srv-host:~$ sudo cp /etc/nginx/nginx.conf ~/nginx.conf.backup

ekzorchik@srv-host:~$ sudo nano /etc/nginx/nginx.conf

user www-data;

worker_processes 4;

pid /run/nginx.pid;

events {

worker_connections 768;

}

http {

sendfile on;

tcp_nopush on;

tcp_nodelay on;

keepalive_timeout 65;

types_hash_max_size 2048;

server_tokens off;

include /etc/nginx/mime.types;

default_type application/octet-stream;

log_format main '$remote_addr - $remote_user [$time_local] "$request" '

'$status $body_bytes_sent "$http_referer" '

'"$http_user_agent" "$http_x_forwarded_for"';

access_log /var/log/nginx/access.log main;

error_log /var/log/nginx/error.log;

gzip off;

include /etc/nginx/conf.d/*.conf;

include /etc/nginx/sites-enabled/*;

}

ekzorchik@srv-host:~$ sudo cp /etc/nginx/sites-available/default ~/nginx_default.copy

ekzorchik@srv-host:~$ sudo nano /etc/nginx/sites-available/default

(для 80 порта)

server {

listen 80 default_server;

root /usr/share/zabbix;

index index.php index.html index.htm;

server_name srv-host;

location / {

try_files $uri $uri/ =404;

}

location ~ \.php$ {

fastcgi_split_path_info ^(.+\.php)(/.+)$;

# With php5-fpm:

fastcgi_pass unix:/var/run/php5-fpm.sock;

fastcgi_index index.php;

include fastcgi_params;

}

}

(или задействуем для 443 порта)

server {

listen 443 default_server;

root /usr/share/zabbix;

index index.php index.html index.htm;

server_name srv-host;

ssl on;

ssl_certificate /etc/nginx/ssl/zabbix.crt;

ssl_certificate_key /etc/nginx/ssl/zabbix.key;

location / {

# First attempt to serve request as file, then

# as directory, then fall back to displaying a 404.

try_files $uri $uri/ =404;

}

location ~ \.php$ {

fastcgi_split_path_info ^(.+\.php)(/.+)$;

fastcgi_pass unix:/var/run/php5-fpm.sock;

fastcgi_index index.php;

include fastcgi_params;

}

}

ekzorchik@srv-host:~$ sudo pkill php5-fpm

ekzorchik@srv-host:~$ sudo service php5-fpm

force-reload reload restart start status stop

ekzorchik@srv-host:~$ sudo service php5-fpm start

start: Job is already running: php5-fpm

ekzorchik@srv-host:~$ sudo service nginx stop && sudo service nginx start && sudo service nginx status

* nginx is running

На заметку: если дополнительно будете вносить изменения в файла php.ini то чтобы перечитать изменения нужно сделать следующее:

ekzorchik@srv-host:~$ sudo pkill php5-fpm

ekzorchik@srv-host:~$ sudo service php5-fpm start

start: Job is already running: php5-fpm

http://IP&DNS/ — проходим все шаги настройки (за основу можно взять заметку:)

Затем авторизуюсь:

http://IP&DNS/index.php

  • Username: admin
  • Password: zabbix

Remember me for 30 days: отмечаю галочкой

и нажимаю Sign In, ну а дальше настройка происходит также как и в разобранных у меня на блоге заметках.

Может случиться, что Вы захотите внести некоторую безопасность работы с системой мониторинга за инфраструктурой задействовав https подключеник к текущему сервису вместо дефолтного http:

Создаем сертификат для текущей системы:

ekzorchik@srv-host:~$ openssl genrsa -des3 -out zabbix.key 1024

Generating RSA private key, 1024 bit long modulus

……………………………++++++

……………………………………………++++++

e is 65537 (0x10001)

Enter pass phrase for zabbix.key: 712mbddr@

Verifying — Enter pass phrase for zabbix.key: 712mbddr@

ekzorchik@srv-host:~$ openssl req -new -key zabbix.key -out zabbix.csr

Enter pass phrase for zabbix.key:712mbddr@

Common Name (e.g. server FQDN or YOUR name) []:192.168.1.174

Удалить запрос ввода пароля при перезапуске службы nginx:

ekzorchik@srv-host:~$ cp zabbix.key zabbix.key.org

ekzorchik@srv-host:~$ openssl rsa -in zabbix.key.org -out zabbix.key

Enter pass phrase for zabbix.key.org:712mbddr@

writing RSA key

ekzorchik@srv-host:~$ openssl x509 -req -days 3650 -in zabbix.csr -signkey zabbix.key -out zabbix.crt

Signature ok

subject=/C=AU/ST=Some-State/O=Internet Widgits Pty Ltd/CN=192.168.1.174

Getting Private key

ekzorchik@srv-host:~$ ls -l zabbix.*

-rw-rw-r— 1 ekzorchik ekzorchik 822 Mar 12 00:08 zabbix.crt

-rw-rw-r— 1 ekzorchik ekzorchik 635 Mar 12 00:08 zabbix.csr

-rw-rw-r— 1 ekzorchik ekzorchik 887 Mar 12 00:08 zabbix.key

-rw-rw-r— 1 ekzorchik ekzorchik 963 Mar 12 00:08 zabbix.key.org

ekzorchik@srv-host:~$ sudo mkdir /etc/nginx/ssl

ekzorchik@srv-host:~$ sudo mv zabbix.crt zabbix.key /etc/nginx/ssl/

ekzorchik@srv-host:~$ sudo service nginx stop

ekzorchik@srv-host:~$ sudo service nginx start

ekzorchik@srv-host:~$ sudo service nginx status

* nginx is running

Запускаю браузер и в строке адреса набираю: http://192.168.1.174соглашаюсь что сертификат на системе является самоподписанным и URL доступа к ресурсу изменяется на https://192.168.1.174/dashboard.php, что мне и требовалось.

Доступ к Zabbix-серверу по https

Текущее потребление ресурсов:

ekzorchik@srv-host:~$ free -m

total used free shared buffers cached

Mem: 993 344 649 14 13 136

-/+ buffers/cache: 193 799

Swap: 1019 0 1019

отлично еще 650Мб.

Итак я для себя подготовил шпаргалку на тему как вместо Web-сервера Apache2 использовать якобы быстродействующий nginx (я хочу самостоятельно в этом убедиться). Смею конечно же предположить что используемые настройки выше не оптимизированы, кому надо тот и сам знает что нужно подправить, для меня же это просто пошаговая заготовка на будущее использование. Сейчас я прощаюсь, в последствии я разберу в первую очередь для себя что-нибудь еще более интересное для меня. А пока я прощаюсь, до новых встреч, с уважением автор блога – ekzorchik.