第1章 zabbix的安装前置
安装zabbix,本文档采用如下环境安装。
1.1 zabbix的环境说明
本次zabbix采用的LNMP环境由如下版本的软件完成。
系统为CentOS6.8
软件 |
版本号 |
nginx |
1.8.1 |
MySQL |
5.6.32 |
php |
5.6.17
扫描二维码关注公众号,回复:
2618138 查看本文章
|
zabbix |
3.2.3 |
系统中所有工具均放在/tools目录下,安装软件都安装在/application目录下,所有脚本文件均统一存放在/server/scripts目录下。如果没有,请自行创建以上这些目录。
1.2 搭建LNMP环境
1.2.1 安装nginx-1.8.1
1.2.1.1 安装nginx所必须要的依赖包
[root@zabbix ~]# yum install pcre pcre-devel openssl openssl-devel libxml2-devel libxslt-devel gd gd-devel GeoIP GeoIP-devel GeoIP-data -y
由于我们最终安装的是zabbix,所以安装高一点版本的nginx。我们需要在编译Nginx的时候添加很多模块,所以安装的依赖包相对的多了点。
1.2.1.2 创建nginx的管理账户
[root@zabbix ~]# useradd -s /sbin/nologin -M www
1.2.1.3 进入到tools目录解压nginx软件
[root@zabbix ~]# cd /tools [root@zabbix tools]# tar xf nginx-1.8.1.tar.gz [root@zabbix tools]# cd nginx-1.8.1 [root@zabbix nginx-1.8.1]#
1.2.1.4 创建以下文件夹
[root@zabbix nginx-1.8.1]# mkdir -p /application/nginx-1.8.1/nginx/tmp/client [root@zabbix nginx-1.8.1]# mkdir -p /application/nginx-1.8.1/nginx/tmp/proxy [root@zabbix nginx-1.8.1]# mkdir -p /application/nginx-1.8.1/nginx/tmp/fcgi [root@zabbix nginx-1.8.1]# mkdir -p /application/nginx-1.8.1/nginx/tmp/uwsgi [root@zabbix nginx-1.8.1]# mkdir -p /application/nginx-1.8.1/nginx/tmp/scgi
用于存放模组产生的临时文件。这一步中的文件目录只要自己设定即可,因为接下来的编译配置,就使用这个路径了。
1.2.1.5 编译安装nginx模组
[root@zabbix nginx-1.8.1]# ./configure --user=www --group=www --prefix=/application/nginx-1.8.1 --with-http_ssl_module --with-http_spdy_module --with-http_realip_module --with-http_addition_module --with-http_xslt_module --with-http_image_filter_module --with-http_geoip_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_auth_request_module --with-http_random_index_module --with-http_secure_link_module --with-http_degradation_module --with-http_stub_status_module --http-client-body-temp-path=/application/nginx-1.8.1/nginx/tmp/client --http-proxy-temp-path=/application/nginx-1.8.1/nginx/tmp/proxy/ --http-fastcgi-temp-path=/application/nginx-1.8.1/nginx/tmp/fcgi --http-uwsgi-temp-path=/application/nginx-1.8.1/nginx/tmp/uwsgi --http-scgi-temp-path=/application/nginx-1.8.1/nginx/tmp/scgi --with-pcre
请注意:--with-http_spdy_module在Nginx-1.9.5版本之后改成了--with-http_v2_module模组。
1.2.1.6 make安装
[root@zabbix nginx-1.8.1]# make && make install
1.2.1.7 对nginx安装目录创建软链接
[root@zabbix nginx-1.8.1]# ln -s /application/nginx-1.8.1 /application/nginx
1.2.1.8 检查目录是否安装正确
[root@zabbix application]# ll /application/ total 4 lrwxrwxrwx 1 root root 27 May 5 15:27 nginx -> /application/nginx-1.8.1/ drwxr-xr-x 7 root root 4096 May 5 15:26 nginx-1.8.1
1.2.1.9 启动nginx服务并检查服务开启状态
[root@zabbix application]# /application/nginx/sbin/nginx [root@zabbix application]# netstat -lntup|grep nginx tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 4191/nginx
1.2.2 安装MySQL-5.6.35
1.2.2.1 安装MySQL-5.6.35所必备的依赖包
[root@zabbix tools]# yum install ncurses-devel libaio-devel cmake -y
1.2.2.2 创建管理MySQL数据库的用户
[root@zabbix mysql-5.6.35]# useradd -s /sbin/nologin -M mysql
1.2.2.3 进入到tools目录解压MySQL软件
[root@zabbix ~]# cd /tools/ [root@zabbix tools]# tar xf mysql-5.6.35.tar.gz [root@zabbix tools]# cd mysql-5.6.35 [root@zabbix mysql-5.6.35]#
1.2.2.4 编译cmake配置参数
[root@zabbix mysql-5.6.35]# cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.6.35 -DMYSQL_DATADIR=/application/mysql-5.6.35/data -DMYSQL_UNIX_ADDR=/application/mysql-5.6.35/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=gbk,gb2312,utf8,ascii -DENABLED_LOCAL_INFILE=ON -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 -DWITH_FAST_MUTEXES=1 -DWITH_ZLIB=bundled -DENABLED_LOCAL_INFILE=1 -DWITH_READLINE=1 -DWITH_EMBEDDED_SERVER=1 -DWITH_DEBUG=0
注意:在MySQL5.6.35中一定要去掉这个参数-DWITHOUT_PARTITION_STORAGE_ENGINE=1,不然在安装过程中到63%就会出错!
1.2.2.5 开始执行安装
[root@zabbix mysql-5.6.35]# make && make install && cd ..
这个步骤很漫长,请耐性等待…
初始化数据库步骤
1.2.2.6 创建MySQL安装目录的软链接
[root@zabbix mysql-5.6.35]# ln -s /application/mysql-5.6.35/ /application/mysql
1.2.2.7 初始化MySQL配置
[root@zabbix mysql-5.6.35]# cd /application/mysql [root@zabbix mysql]# ./scripts/mysql_install_db --basedir=/application/mysql/ --datadir=/application/mysql/data/ --user=mysql
1.2.2.8 授权MySQL整个目录的权限
[root@zabbix mysql-5.6.35]# chown -R mysql.mysql /application/mysql/
1.2.2.9 复制并备份一份服务脚本
[root@zabbix mysql]# mv /etc/my.cnf /etc/my.cnf.bak
1.2.2.10 编辑/etc/my.cnf文件
[root@zabbix mysql]# vim /etc/my.cnf [mysqld] socket = /application/mysql/mysql.sock basedir = /application/mysql/ datadir = /application/mysql/data/ pid-file = /application/mysql/data/mysql/mysql.pid user = mysql [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/application/mysql/data/mysql/mysql.pid [client] default-character-set=utf8 socket = /application/mysql/mysql.sock
注意:此步很坑,如果MySQL起不来,罪魁祸首首先先排查这个文件中的安装路径。修改我们自己安装数据库的路径。
1.2.2.11 修改mysql.server文件中的MySQL默认的安装路径
[root@zabbix mysql]# sed -i 's#/usr/local/#/application/#g' support-files/mysql.server
1.2.2.12 复制mysql.server到/etc/init.d目录下
[root@zabbix mysql]# \cp support-files/mysql.server /etc/init.d/mysqld
1.2.2.13 修改mysql_safe文件中默认的安装路径
[root@zabbix mysql]# sed -i 's#/usr/local/#/application/#g' bin/mysqld_safe
1.2.2.14 MySQL加入到开机自启动服务
[root@zabbix mysql]# chkconfig --add mysqld
1.2.2.15 开启MySQL服务
最后出现开启提示,检查端口是否正确
[root@zabbix mysql]# /etc/init.d/mysqld start Starting MySQL. SUCCESS! [root@zabbix mysql]# netstat -lntup|grep mysql tcp 0 0 :::3306 :::* LISTEN 59010/mysqld
1.2.2.16 设定mysql命令变量
[root@zabbix mysql]# echo 'export PATH=/application/mysql/bin:$PATH' >>/etc/profile [root@zabbix mysql]# . /etc/profile [root@zabbix mysql]# echo $PATH /application/mysql/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
注意:这个路径/application/mysql/bin:一定要在原来PATH变量的前面,如果加在后面可能会出现错误!
1.2.3 安装php-5.6.17
1.2.3.1 安装php软件相对应的各种依赖包(lib库)
[root@zabbix tools]# yum install zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel libmcrypt-devel mhash mcrypt -y
1.2.3.2 手工安装libiconv-devel包
[root@zabbix ~]# cd /tools/ [root@zabbix tools]# tar xf libiconv-1.14.tar.gz [root@zabbix tools]# cd libiconv-1.14 [root@zabbix libiconv-1.14]# ./configure --prefix=/usr/local/libiconv [root@zabbix libiconv-1.14]# make && make install && cd ../
1.2.3.3 安装php5.6.17
[root@zabbix tools]# tar xf php-5.6.17.tar.gz [root@zabbix tools]# cd php-5.6.17
1.2.3.4 配置php参数
[root@zabbix php-5.6.17]# ./configure --prefix=/application/php-5.6.17 --with-mysql=/application/mysql/ --with-pdo-mysql=mysqlnd --with-iconv-dir=/usr/local/libiconv --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-fpm --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-soap --enable-short-tags --enable-static --with-xsl --with-fpm-user=www --with-fpm-group=www --enable-ftp --enable-opcache=no
1.2.3.5 建立一个软链接防止PHP出现BUG错误
[root@zabbix php-5.6.17]# ln -s /application/mysql/lib/libmysqlclient.so.18 /usr/lib64/ [root@zabbix php-5.6.17]# touch ext/phar/phar.phar
1.2.3.6 开始进行编译安装
[root@zabbix php-5.6.17]# make [root@zabbix php-5.6.17]# make install
1.2.3.7 创建php安装目录的软链接
[root@zabbix application]# ln -s /application/php-5.6.17/ /application/php
php配置步骤
1.2.3.8 调整PHP解析器的配置文件
[root@zabbix php-5.6.17]# cp php.ini-production /application/php/lib/php.ini
1.2.3.9 配置PHP服务
配置文件为php-fpm.conf,关于php-fpm.conf文件,暂时可用默认的配置,先把服务搭好!它可以配置一些PHP进程的数量、操作时间、进程个数等设定。
[root@zabbix php-5.6.17]# cd /application/php/etc [root@zabbix etc]# cp php-fpm.conf.default php-fpm.conf
1.2.3.10 启动php服务,并检查服务是否开启
[root@zabbix etc]# /application/php/sbin/php-fpm [root@zabbix etc]# lsof -i:9000 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME php-fpm 50113 root 7u IPv4 194499 0t0 TCP localhost:cslistener (LISTEN) php-fpm 50114 www 0u IPv4 194499 0t0 TCP localhost:cslistener (LISTEN) php-fpm 50115 www 0u IPv4 194499 0t0 TCP localhost:cslistener (LISTEN)
第2章 安装zabbix
2.1 安装zabbix需要用到的依赖包
[root@zabbix tools]# yum -y install fping net-snmp-devel unixODBC-devel openssl-devel OpenIPMI-devel java-devel
2.2 添加zabbix账户
[root@zabbix tools]# useradd -s /sbin/nologin -M zabbix
2.3 解压配置zabbix软件
[root@zabbix tools]# tar xf zabbix-3.2.3.tar.gz [root@zabbix tools]# cd zabbix-3.2.3 [root@zabbix zabbix-3.2.3]# ./configure --prefix=/application/zabbix-3.2.3 --enable-server --enable-agent --enable-java --enable-ipv6 --with-mysql=/application/mysql-5.6.35/bin/mysql_config --with-net-snmp --with-libcurl --with-libxml2 --with-openipmi --with-unixodbc --with-openssl
2.4 make install安装
这里不需要使用make命令,直接使用make install即可!
[root@zabbix zabbix-3.2.3]# make install
2.5 建立zabbix软件的软链接
[root@zabbix zabbix-3.2.3]# ln -s /application/zabbix-3.2.3/ /application/zabbix
2.6 配置zabbix
2.6.1 配置zabbix数据库
2.6.1.1 设定mysql数据库的登录密码
[root@zabbix mysql]# mysqladmin -uroot password '123456' Warning: Using a password on the command line interface can be insecure.
出现的警告无视即可!
2.6.1.2 登录数据库并创建zabbix数据库
登陆之后首先删除默认的test数据库。
[root@zabbix ~]# mysql -uroot -p123456 mysql> drop database test; Query OK, 0 rows affected (0.01 sec) mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) mysql> create database zabbix character set utf8 collate utf8_bin; Query OK, 1 row affected (0.00 sec)
2.6.1.3 对数据库进行授权作业并刷新权限
mysql> grant all on zabbix.* to zabbix@'127.0.0.1' identified by 'zabbix'; Query OK, 0 rows affected (0.00 sec) mysql> flush privileges; Query OK, 0 rows affected (0.00 sec)
2.6.1.4 导入数据库信息
注意:这里导入的信息是有先后顺序的,不能随意!请一条条的复制导入,不要偷懒。
mysql> use zabbix; Database changed mysql> source /tools/zabbix-3.2.3/database/mysql/schema.sql # 表结构,首先导入。 mysql> source /tools/zabbix-3.2.3/database/mysql/images.sql # 图形,其次导入。 mysql> source /tools/zabbix-3.2.3/database/mysql/data.sql # 数据,最后导入。
当然这里如果我们不进入数据库,在bash命令环境下也可以导入信息。
[root@zabbix ~]# mysql -uroot zabbix </tools/zabbix-3.2.3/database/mysql/schema.sql [root@zabbix ~]# mysql -uroot zabbix </tools/zabbix-3.2.3/database/mysql/images.sql [root@zabbix ~]# mysql -uroot zabbix </tools/zabbix-3.2.3/database/mysql/data.sql
2.6.2 配置Nginx
2.6.2.1 建立一个zabbix的页面目录
[root@zabbix ~]# mkdir -p /application/nginx/html/zabbix
2.6.2.2 复制zabbix源码包内所有的内容
[root@zabbix ~]# cd /tools/zabbix-3.2.3 [root@zabbix zabbix-3.2.3]# cp -a /tools/zabbix-3.2.3/frontends/php/* /application/nginx/html/zabbix/
2.6.2.3 授权zabbix页面目录的权限
[root@zabbix zabbix-3.2.3]# chown -R www.www /application/nginx/html/zabbix/
2.6.2.4 对zabbix配置nginx.conf文件
请执行命令前注意备份你现在使用的Nginx配置文件!
[root@zabbix zabbix-3.2.3]# cat >/application/nginx/conf/nginx.conf<<EOF worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 80; server_name zabbix.ninja.com; root html; location / { root html; index index.php index.html index.htm; } location ~ .*\.(php|php5)?$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi.conf; } access_log logs/zabbix.log; } } EOF
2.6.2.5 重启nginx服务
[root@zabbix zabbix-3.2.3]# /application/nginx/sbin/nginx -t nginx: the configuration file /application/nginx-1.8.1/conf/nginx.conf syntax is ok nginx: configuration file /application/nginx-1.8.1/conf/nginx.conf test is successful [root@zabbix zabbix-3.2.3]# /application/nginx/sbin/nginx -s reload
2.6.3 配置php
2.6.3.1 过滤文件
过滤出如下文件,将文件中的内容进行替换。这里的文件一定要做替换,否则是无法安装上zabbix的。
[root@zabbix zabbix-3.2.3]# egrep -n "^post_max_size|^max_execution_time|^max_input_time|^date.timezone" /application/php/lib/php.ini 372:max_execution_time = 30 382:max_input_time = 60 660:post_max_size = 8M
进行替换作业。
[root@zabbix zabbix-3.2.3]# sed -i 's#max_execution_time = 30#max_execution_time = 300#;s#max_input_time = 60#max_input_time = 300#;s#post_max_size = 8M#post_max_size = 16M#;910a date.timezone = Asia/Shanghai' /application/php/lib/php.ini
2.6.3.2 重启php服务
[root@zabbix zabbix-3.2.3]# killall php-fpm;/application/php/sbin/php-fpm
2.6.4 zabbix服务配置
2.6.4.1 替换/application/zabbix/etc/zabbix_server.conf文件内的内容
[root@zabbix zabbix-3.2.3]# sed -i -e '77a DBHost=127.0.0.1' -e '111a DBPassword=zabbix' /application/zabbix/etc/zabbix_server.conf
2.6.4.2 复制启动脚本
[root@zabbix zabbix-3.2.3]# cp /tools/zabbix-3.2.3/misc/init.d/fedora/core/zabbix_{server,agentd} /etc/init.d/ [root@zabbix zabbix-3.2.3]# ll -h /etc/init.d/zabbix_* -rwxr-xr-x 1 root root 2.2K 5月 6 12:51 /etc/init.d/zabbix_agentd -rwxr-xr-x 1 root root 2.2K 5月 6 12:51 /etc/init.d/zabbix_server
2.6.4.3 修改启动脚本
将脚本内默认的路径替换成编译安装zabbix的路径。
[root@zabbix zabbix-3.2.3]# sed -i 's#BASEDIR=/usr/local#BASEDIR=/application/zabbix#' /etc/init.d/zabbix_{server,agentd}
2.6.4.4 启动并运行zabbix服务脚本
这里需要运行两个服务,一个是服务器自身的,一个是连接被监控端的。
[root@zabbix zabbix-3.2.3]# /etc/init.d/zabbix_server start
Starting zabbix_server: [确定]
[root@zabbix zabbix-3.2.3]# /etc/init.d/zabbix_agentd start
Starting zabbix_agentd: [确定]
2.6.4.5 为zabbix安装中文字符支持
注意:PHP databases support只有SQLite3没有MySQL,它缺少mysqli模块。所有操作均需要进入到php源码包目录下进行操作,不是在安装目录下操作!
[root@zabbix php-5.6.17]# cd /tools/php-5.6.17/ext/mysqli [root@zabbix php-5.6.17]# cd /tools/php-5.6.17/ext/mysqli [root@zabbix mysqli]# /application/php/bin/phpize Configuring for: PHP Api Version: 20131106 Zend Module Api No: 20131226 Zend Extension Api No: 220131226 [root@zabbix mysqli]# ./configure --with-php-config=/application/php/bin/php-config [root@zabbix mysqli]# make && make install [root@zabbix mysqli]# echo "extension = mysqli.so">> /application/php/lib/php.ini [root@zabbix mysqli]# killall php-fpm;/application/php/sbin/php-fpm
2.6.4.6 安装PHP gettext warning
这个不装是不能使用中文的。
[root@zabbix mysqli]# cd /tools/php-5.6.17/ext/gettext/ [root@zabbix gettext]# /application/php/bin/phpize Configuring for: PHP Api Version: 20131106 Zend Module Api No: 20131226 Zend Extension Api No: 220131226 [root@zabbix gettext]# ./configure --with-php-config=/application/php/bin/php-config [root@zabbix gettext]# make && make install [root@zabbix gettext]# echo "extension = gettext.so">> /application/php/lib/php.ini [root@zabbix gettext]# killall php-fpm;/application/php/sbin/php-fpm
至此!以上整个zabbix前期的配置就全部完成了,使用客户端浏览器输入http://zabbix.ninja.org/zabbix/setup.php就可以访问到zabbix的配置页面了。
注意:请自行设置好windows系统中hosts文件的DNS解析,这里就不加说明了。
第3章 zabbix监控端的页面配置
浏览器出现上面的页面时,我们就可以对zabbix进行图形化的初期设置了。
3.1.1 点击next step按钮,进入设置
如果出现的第二个页面有红框的错误提示,请自行根据错误提示,修改/application/php/lib/php.ini文件,上面的错误提示就是因为这个配置选项的前面有一个;导致的,去掉;重启php服务即可!
就是这个选项导致红框的提示!修改后正常。
3.1.2 设置数据库信息
数据库地址请填写127.0.0.1。密码设定成zabbix。点击进入到下一页配置。
设置完之后,点击进入到下一页配置。给zabbix监控平台取一个自己喜欢的名字命名。
出现确认信息后,如果没有显示错误,直接点击一直到完成为止。
3.1.3 登录zabbix监控页面
首次登陆时,用户名请用Admin,注意第一个a要大写。下面的密码输入我们刚才在页面中设置的密码zabbix。
3.1.4 修改显示中文页面
点击右上角的再修改语言选项为Chinese(zh_CN)
最后别忘了点击按钮确认。
至此整个zabbix监控端全部设定完成!