前言:最近一直忙着监控系统的事,现在最大的感受是,环境搭建不是最难的,难的是后期的怎么去监控,怎么利用监控系统把众多服务器监控器起来,怎么开发脚本和Zabbix配合去监控上层服务,如中间件,数据库,JVM等;这些是后话,不多说了,下面是Zabbix 3.2.4的部署方法,做一下简单总结。
这里使用C/S架构:
环境:
服务器软件:Linux(RED HAT)6.5、Nginx 1.10.3、PHP 5.6.29、Mysql 5.5.53
应用软件:Zabbix 3.2.4
或者使用(Linux+Apache+PHP+Mysql)可换成其他数据库,Zabbix支持众多数据库,大家可以到官方网站去查询。
1 Mysql部署
这里使用mysql-5.5.53 glibc格式安装
1.1 创建用户
# groupadd -r -g mysql
# useradd -g mysql -M -r mysql
1.2 创建数据目录
# mkdir -pv /mydata/data
# chown -R mysql.mysql /mydata/data/
1.3 安装并初始化
# tar -xf mysql-5.5.53-linux2.6-x86_64.tar.gz -C /usr/local/
# cd /usr/local/
# ln -sv mysql-5.7.15-linux-glibc2.5-x86_64/ mysql
# cd mysql
# chown -R mysql.mysql .
# scripts/mysql_install_db --user=mysql --datadir=/mydata/data
# chown -R root .
1.4为mysql提供主配置文件
# cd /usr/local/mysql
# cp support-files/my-large.cnf /etc/my.cnf
添加如下行指定mysql数据文件的存放位置:
datadir = /mydata/data
1.5为mysql提供sysv服务脚本
# cd /usr/local/mysql
# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
# chmod +x /etc/rc.d/init.d/mysqld
添加至服务列表:
# chkconfig --add mysqld
# chkconfig mysqld on
而后就可以启动服务测试使用了。
1.6设置root密码
设置root密码:
# ./bin/mysqladmin -u root password 'new-password'
2 Zabbix部署
2.1 编译安装
# yum install cc gcc –y
# yum insatll libxml2-devel.x86_64 –y
# yum install net-snmp-devel.x86_64 -y
# tar xf zabbix-3.2.4.tar.gz
# cd zabbix-3.2.4
configure:
./configure --prefix=/usr/local/zabbix-3.2.4/ \
--enable-server \
--enable-agent \
--with-mysql \
--with-net-snmp \
--with-libcurl \
--with-libxml2 \
--enable-proxy \
--enable-java
根据情况,安装缺少的开发库。
编译安装:
# make install
2.2 创建zabbix用户
# groupadd –r zabbix
# useradd -g zabbix –r zabbix
2.3 初始化zabbix数据库
zabbix server与 proxy需要数据库agent不需要。尤其要注意的是 proxy只需要导入一个sql 文件而server一共要导入3个sql文件。
# mysql -uroot –pzabbix
mysql> create database zabbix default charset utf8;
新建用户:
mysql> CREATE USER 'zabbix'@'127.0.0.1' IDENTIFIED BY 'zabbix';
mysql> GRANT all privileges ON zabbix.* TO 'zabbix'@'127.0.0.1' WITH GRANT OPTION;
mysql> flush privileges;
mysql> quit;
# mysql -uzabbix –pzabbix zabbix < database/mysql/schema.sql
创建数据库请别忘记加 default charset utf8
如果你仅仅是初始化 proxy 的数据库,那么够了。如果初始化 server,那么接着导入下面两个 sql
# mysql -uzabbix -pzabbix zabbix < database/mysql/images.sql
# mysql -uzabbix -pzabbix zabbix < database/mysql/data.sql
2.4 配置zabbix_server
配置zabbix_server配置文件,zabbix 源码目录下
# mkdir /etc/zabbix
# cp config/zabbix_server.conf /etc/zabbix/
# vim /etc/zabbix/zabbix_server.conf
ListenPort=10051
DBHost=127.0.0.1
DBName=zabbix
DBUser=zabbix
DBPassword= zabbix
DBPort=3306
2.5 启动服务
# /usr/local/zabbix-3.2.4/sbin/zabbix_server -c /etc/zabbix/zabbix_server.conf
默认端口 10051
3 PHP部署
3.1 安装依赖包
yum install gd-devel libjpeg-devel libxml2-devel bzip2-devel libcurl-devel –y
yum install libpng-devel.x86_64 –y
yum install freetype-devel.x86_64 -y
3.2 编译安装
# yum install libxml2 -y
# tar -xf php-5.6.29.tar.gz
# cd php-5.6.29
# ./configure --prefix=/usr/local/php-5.6.29 \
--with-config-file-path=/usr/local/php-5.6.29/etc \
--with-bz2 \
--with-curl \
--enable-ftp \
--enable-sockets \
--disable-ipv6 \
--with-openssl \
--with-gd \
--with-jpeg-dir=/usr/local \
--with-png-dir=/usr/local \
--with-freetype-dir=/usr/local \
--enable-gd-native-ttf \
--with-iconv-dir=/usr/local \
--enable-mbstring \
--enable-calendar \
--with-gettext \
--with-libxml-dir=/usr/local \
--with-zlib \
--with-pdo-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-mysql=mysqlnd --enable-dom \
--enable-xml \
--enable-fpm \
--with-libdir=lib64 \
--enable-bcmath
编译安装:
make
make install
3.3 配置php
# cp /usr/local/php-5.6.29/etc/php.ini-production /usr/local/php-5.6.29/etc/php.ini
# cp /usr/local/php-5.6.29/etc/php-fpm.conf.default /usr/local/php-5.6.29/etc/php-fpm.conf
PHP 配置参数
打开 php.ini 配置文件,修改如下参数为如下值,否则 zabbix 安装不了。
max_execution_time = 300
memory_limit = 128M
post_max_size = 16M
upload_max_filesize = 2M
max_input_time = 300
date.timezone = PRC
3.4 启动服务
# /usr/local/php-5.6.29/sbin/php-fpm
查看是否启动:
# netstat -lnt | grep 9000
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN
4 Nginx部署
4.1 解决依赖关系
yum -y install pcre-devel.x86_64
yum -y install openssl-devel.x86_64
4.2 创建nginx用户
添加用户nginx,实现以之运行nginx服务进程
# groupadd -r nginx
# useradd -g nginx -r nginx
4.3 编译和安装
# tar xf nginx-1.10.3.tar.gz
# cd nginx-1.10.3
根据需求,需要哪些模块,选择模块去编译
./configure --prefix=/usr --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock --user=nginx --group=nginx --with-http_ssl_module --with-http_flv_module --with-http_stub_status_module --with-http_gzip_static_module --http-client-body-temp-path=/var/tmp/nginx/client/ --http-proxy-temp-path=/var/tmp/nginx/proxy/ --http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi --http-scgi-temp-path=/var/tmp/nginx/scgi --with-pcre --with-file-aio
# make
# make install
4.4 配置nginx
# vim /etc/nginx/nginx.conf
server {
listen 80;
server_name zabbix.com;
index index.html index.php index.html;
root /var/www/zabbix.com;
location /
{
try_files $uri $uri/ /index.php?$args;
}
location ~ ^(.+.php)(.*)$ {
fastcgi_split_path_info ^(.+.php)(.*)$;
include fastcgi.conf;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
4.5 启动服务
/usr/sbin/nginx
5 在线配置Zabbix
5.1 访问配置页面
拷贝前端文件:
# mkdir -pv /var/www/zabbix.com/zabbix
# cp –rf ./zabbix-3.2.4/frontends/* /var/www/zabbix.com/zabbix/
# chown -R zabbix.zabbix /var/www/zabbix.com
浏览器打开 http://zabbix.com/zabbix
欢迎界面:
5.2 PHP配置需求
出现上述错误解决方法:找到CFrontendSetup.php添加$current = -1;
/include/classes/setup/CFrontendSetup.php
5.3 Mysql配置
5.4 Zabbix服务器详情信息
5.5 Zabbix安装前信息列表
5.6 安装完成
5.7 登录系统
默认:admin zabbix
修改语言为中文,乱码问题解决方法:
拷贝windows下C:\Windows\Fonts\ simkai.ttf到zabbix站点目录fonts下
修改include/defines.inc.php文件:
define('ZBX_FONT_NAME', 'DejaVuSans');后的结果:
define('ZBX_FONT_NAME', 'simkai');
修改define('ZBX_GRAPH_FONT_NAME', 'DejaVuSans');后的结果:
define('ZBX_GRAPH_FONT_NAME', 'simkai');
登陆后的界面如下:
总结:环境搭建时,注意按照自己业务的需求去编译软件,可以选择不同的web服务器或数据库去搭建;
被监控服务器Zabbix-agentd安装和配置这里不再赘述,使用rpm包安装即可;
上述文档中没有配置sysV风格的服务脚本,也可以自己编写或寻找服务器启动的脚本;
如果被监控服务器数量较多,服务器分布在不同的地区,可以选择分布式监控。