部署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吧。