部署nginx,想監控nginx的運行狀態,所以就去找找了資料,一開始看到阿里的tsar項目,但是部署總是不成功,,一怒之下想起來之前看到過的zabbix,聽說這個工具對於運維監控運用很廣泛,但是需要安裝php執行環境就放棄了,今天決定嘗試一下,還是有很多坑的,好不容易填平了,來記錄一下。
環境
- ubuntu 16.04
- nginx/1.10.0 (Ubuntu)
安裝
zabbix需要php環境,所以需要安裝php,mysql,nginx,zabbix。
安裝mysql
apt-get install mysql
安裝nginx
apt-get install nginx
安裝php
# 安裝php7.0,zabbix需要php5.4以上即可 apt-get install php7.0-fpm # 安裝php的mysql模塊,需要安裝對應php版本的模塊 apt-get install php7.0-mysql
# zabbix使用到了以下幾個php模塊,在安裝zabbix-server的時候會自動檢測是否安裝,一定要記得安裝這幾個,注意大坑
apt-get install php-xml php-mbstring php-bcmath
修改php配置文件,/etc/php/7.0/fpm/php.ini中查找並修改以下內容(這些配置是zabbix安裝必要的配置,在安裝zabbix的時候會進行檢測)
date.timezone = Asia/Shanghai post_max_size = 16M max_execution_time = 300 max_input_time = 300
修改/etc/php/7.0/fpm/pool.d/www.conf,查找並修改以下內容(www-data是php用戶、組,listen.mode 是控制/run/php/php7.0-fpm.sock的權限,不然后面nginx連接的時候會說沒有權限)
listen.owner = www-data listen.group = www-data listen.mode = 0666
安裝zabbix
# 從源碼安裝,一開始直接安裝deb,我下載的是3.0.1,安裝完成之后,導入sql發現說數據庫版本不對,我驚喜的發現zabbix居然是2.4版本的,所以還是直接下載源文件安裝 # 下載源碼 wget http://heanet.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/3.0.3/zabbix-3.0.3.tar.gz # 解壓 tar -xvf zabbix-3.0.3.tar.gz # 進入解壓目錄 cd zabbix-3.0.3 # 創建zabbix用戶和組 groupadd zabbix useradd -g zabbix zabbix # 配置編譯 ./configure --prefix=/usr/local/zabbix-server --enable-server --enable-agent --with-mysql # 安裝,上面編譯沒有error make install
配置zabbix
vim /usr/local/zabbix-server/etc/zabbix_server.conf # 設置下列內容 DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=zabbix ListenIP=127.0.0.1
接下來創建數據庫zabbix和數據庫用戶zabbix
mysql -u root -proot # 創建數據庫,記得設置字符集和校對集,不然后面漢化會有問題 create database zabbix default charset utf8 default collate utf8_bin;
# 創建用戶並授權
create user zabbix identified by ‘zabbix’;
grant all on zabbix.* to zabbix@“%” identified by ‘zabbix’;
flush privileges;
將zabbix數據導入mysql
# 切換到剛剛zabbix解壓的目錄 cd zabbix-3.0.3/database/mysql
# 按順序依次導入數據
mysql -uzabbix -pzabbix zabbix < schema.sql
mysql -uzabbix -pzabbix zabbix < images.sql
mysql -uzabbix -pzabbix zabbix < data.sql
部署zabbix frontend,就是zabbix的界面,這里使用nginx作為php的服務器
# 切換到zabbix解壓目錄 cd zabbix-3.0.3/frontends # 復制php目錄到nginx網頁目錄 cp -r php /var/www/html # 重命名php目錄 mv php zabbix
配置nginx
#user www-data; worker_processes 3; #pid /run/nginx.pid; events { #use epoll worker_connections 8192; # multi_accept on; } http { ## # Basic Settings ## sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; # server_tokens off; # server_names_hash_bucket_size 64; # server_name_in_redirect off; include /etc/nginx/mime.types; default_type application/octet-stream; ## # SSL Settings ## ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE ssl_prefer_server_ciphers on; ## # Logging Settings ## access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; ## # Gzip Settings ## gzip on; gzip_disable "msie6"; # gzip_vary on; # gzip_proxied any; # gzip_comp_level 6; # gzip_buffers 16 8k; # gzip_http_version 1.1; # gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript; ## # Virtual Host Configs ## include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; upstream web_app{ server 127.0.0.1; } server{ listen 80; server_name 127.0.0.1 10.10.31.119; location ~ \.php$ { root /var/www/html; include snippets/fastcgi-php.conf; proxy_pass http://web_app; fastcgi_pass unix:/run/php/php7.0-fpm.sock; } } }
記得檢查nginx安裝目錄下有沒有snippets/fastcgi-php.conf,一般來說安裝nginx就帶了這些模塊不然不能處理php頁面,如果nginx報錯可以查看/var/log/nginx/access.log和/var/log/nginx/error.log排錯,一定要養成查看日志的習慣
擺了這么久的姿勢,終於進入關鍵步驟了——開始配置安裝zabbix
在瀏覽器訪問http://127.0.0.1/zabbix/setup.php,如果順利的話就可以看到如下界面
wonderful!!!終於看到這個界面,歷盡千辛萬苦.....好吧,前方高能預警,下面又是一個大坑
很好,都是ok,如果順利的話你也能看到,如果有問題的話,在/etc/php/7.0/fpm/php.ini配置文件中找到對應的選項並設置成REQUIRED的值。如果沒有就需要安裝,比如下面這些:
apt-get install php7.0-xml apt-get install php7.0-bcmath apt-get install php7.0-mbstring apt-get install php7.0-gd
一直下一步到最后,最后可能會出現配置文件失敗,需要點擊“Download the configuration file”下載下來手動復制到/var/www/html/zabbix/conf下面
然后點擊完成,啟動zabbix-server
/usr/local/zabbix-server/sbin/zabbix_server -c /usr/local/zabbix-server/etc/zabbix_server.conf
打開http://127.0.0.1/zabbix/index.php頁面登陸zabbix,默認用戶名admin,密碼zabbix,出現以下頁面說明zabbix安裝成功
這篇有點長的了,另起一篇繼續寫zabbix監控nginx吧。