Zabbix 是由 Alexei Vladishev 开发的一种网络监视、管理系统,基于 Server-Client 架构。可用于监视各类网络服务、服务器和网络机器等状态。
zabbix官网: https://www.zabbix.com
zabbix 主要由2部分构成 zabbix server
和 zabbix agent
zabbix proxy是用来管理其余的agent,做为代理。php
zabbix有多个进程分别是:zabbix_agentd
、zabbix_get
、zabbix_sender
、zabbix_server
、zabbix_proxy
等。html
zabbix_agentd
客户端守护进程,此进程能够收集客户端数据,CPU负载,网络带宽等。所以在被监控的主机上只须要安装zabbix_agentd服务便可。java
zabbix_server
zabbix服务端守护进程。zabbix_agentd、zabbix_get、zabbix_sender、zabbix_proxy、zabbix_java_gateway的数据最终都是提交到server。这里的提交数据分为被监控主机主动提交数据给服务端和服务端主动去被监控主机提取数据(主动模式与被动模式)。mysql
zabbix_get
zabbix工具,单独使用的命令,一般在server或者proxy端执行获取远程客户端信息的命令。一般用户排错。例如在server端获取不到客户端的内存数据,可使用zabbix_get获取客户端的内容的方式来作故障排查。linux
zabbix_sender
zabbix工具,用于发送数据给server或者proxy,一般用于耗时比较长的检查。不少检查很是耗时间,致使zabbix超时。因而咱们在脚本执行完毕以后,使用sender主动提交数据。nginx
zabbix_proxy
zabbix代理守护进程。功能相似server,惟一不一样的是它只是一个中转站,它须要把收集到的数据提交/被提交到server里。web
1.1 环境说明sql
[root@moli_linux1 ~]$ cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core) [root@moli_linux1 ~]$ uname -r 3.10.0-862.6.3.el7.x86_64 [root@moli_linux1 ~]$ getenforce Disabled [root@moli_linux1 ~]$ [root@moli_linux1 ~]$ hostname -I 192.168.30.3
安装的前提是基于lnmp架构,所以本机已经安装nginx-1.13.8+mysql-5.6.35+php-7.1.6,安装详情可参考CentOS7安装LNMP(nginx1.14.二、mariadb10.3.1三、php7.3.3),下面开始安装zabbix:数据库
1.2 安装依赖包vim
yum install net-snmp-devel libxml2-devel libcurl-devel yum install libevent-devel
1.3 修改php.ini配置文件参数
max_execution_time = 300 max_input_time = 300 memory_limit = 128M post_max_size = 16M upload_max_filesize = 2M date.timezone = Asia/Shanghai always_populate_raw_post_data = -1
1.4 下载源码包,解压,安装
下载地址:https://sourceforge.net/proje...
下载后解压,安装。
tar -xvf zabbix-3.4.9.tar.gz cd zabbix-3.4.9 ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql=/usr/local/mysql/bin/mysql_config --with-net-snmp --with-libcurl --with-libxml2 make make install
注:若是mysql是yum安装的,用find找到mysql_config的路径,一般在/usr/bin/mysql_config下,编译安装zabbix选用这个路径。
1.5 建立zabbix用户
groupadd zabbix useradd zabbix
1.6 初始化zabbix_server数据库
建立zabbix数据库与用户
mysql -uroot -p mysql>create database zabbix; mysql>grant all on zabbix.* to 'zabbix'@localhost identified by 'zabbix'with grant option;
导入三张表到zabbix库
cd /usr/local/src/zabbix-3.4.9 mysql -uroot -p zabbix < database/mysql/schema.sql mysql -uroot -p zabbix < database/mysql/images.sql mysql -uroot -p zabbix < database/mysql/data.sql
1.7 配置zabbix_server
编辑zabbix_server配置文件,修改配置以下:vim /usr/local/zabbix/etc/zabbix_server.conf
LogFile=/var/log/zabbix/zabbix_server.log PidFile=/var/log/zabbix/zabbix_server.pid DBName=zabbix DBUser=zabbix DBPassword=zabbix DBPort=3306 StartDiscoverers=5 Timeout=30 CacheSize=16M ValueCacheSize=16M
1.8 配置zabbix_agent
编辑zabbix_agent配置文件,修改配置以下:vim /usr/local/zabbix/etc/zabbix_agentd.conf
LogFile=/var/log/zabbix/zabbix_agentd.log PidFile=/var/log/zabbix/zabbix_agentd.pid Server=192.168.30.3 ServerActive=192.168.30.3 ListenPort=10050 ListenIP=0.0.0.0 Hostname=192.168.30.3
1.9 添加web前段php文件
cp -rf /usr/local/src/zabbix-3.4.9/frontends/php/ /data/wwwroot/zabbix chown -R zabbix:zabbix /data/wwwroot/nginx/zabbix/ mkdir -p /var/log/zabbix chown -R zabbix:zabbix /var/log/zabbix
2.0 添加系统服务
cp misc/init.d/fedora/core/zabbix_server /etc/init.d/ cp misc/init.d/fedora/core/zabbix_agentd /etc/init.d/ chmod +x /etc/init.d/zabbix_server chmod +x /etc/init.d/zabbix_agentd
修改开启自动文件
vim /etc/init.d/zabbix_server vim /etc/init.d/zabbix_agentd
将其中的basedir=/usr/local
修改成/usr/local/zabbix
与PIDFILE=/tmp/zabbix/$BINARY_NAME.pid
改成PIDFILE=/var/log/zabbix/$BINARY_NAME.pid
或者执行:
sed -i 's/BASEDIR=\/usr\/local/BASEDIR=\/usr\/local\/zabbix/g' /etc/init.d/zabbix_server sed -i 's/BASEDIR=\/usr\/local/BASEDIR=\/usr\/local\/zabbix/g' /etc/init.d/zabbix_agentd
添加开机自启列表:
chkconfig --add zabbix_agentd chkconfig --add zabbix_server chkconfig zabbix_server on chkconfig zabbix_agentd on
2.1 添加nginx虚拟主机vim /usr/local/nginx/conf/extra/zabbix_server.conf
server { listen 80 default_server; server_name www.mori.com; location ~ \.php$ { include fastcgi_params; fastcgi_pass unix:/tmp/php-fcgi.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /data/wwwroot/zabbix$fastcgi_script_name; } index index.html index.htm index.php; root /data/wwwroot/zabbix; access_log /data/nginx_logs/nginx_aaa_access.log combined_realip; }
2.2 从新加载nginx服务,启动zabbix_agent,zabbix_server服务
/usr/local/nginx/sbin/nginx -t /usr/local/nginx/sbin/nginx -s reload /etc/init.d/zabbix_agentd start /etc/init.d/zabbix_server start
2.3 检查端口进程
2.3 web界面安装
浏览器访问192.168.30.3/setup.php
进行安装
点击下一步便可。
若是出现报错:PHP bcmath extension missing(PHP configuration parameter --enable-bcmarth)
PHP sockets extension missing(PHP configuration parameter --enable-sockets)
是由于zabbix的使用依赖php的bcmath模块和sockets模块,可是zabbix检测出系统的php没有这两个模块,所以只须要对php安装一下这两个模块便可。
解决缺乏bcmath.so问题:
# 进入php包路径 cd /usr/local/src/php-7.1.6/ext/bcmath/ # 执行命令 /usr/local/php-fpm/bin/phpize
若执行/usr/local/php-fpm/bin/phpize
出现如下报错:
Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF environment variable. Then, rerun this script
解决方法:
yum install -y autoconf m4
解决上诉报错再次执行:
/usr/local/php-fpm/bin/phpize # 安装php扩展模块: ./configure --with-php-config=/usr/local/php-fpm/bin/php-config make make install
执行完会生成一个路径,/usr/local/php-fpm/lib/php/extensions/no-debug-non-zts-20160303/bcmath.so
(每一个人的路径都不同,能够用find / -name bcmath.so找出)
而后在php.ini
添加
extension=/usr/local/php-fpm/lib/php/extensions/no-debug-non-zts-20160303/bcmath.so
最后重启php-fpm便可。
解决缺乏sockets.so问题:
cd /usr/local/src/php-7.1.6/ext/sockets/ /usr/local/php-fpm/bin/phpize ./configure --with-php-config=/usr/local/php-fpm/bin/php-config make make install
编辑php.ini,添加extension=sockets.so
,重启php-fpm服务便可。
接下来就继续安装,检测都是OK,下一步:
这一步填写数据库相关信息:
填写zabbix服务端信息:
查看你填写的信息,没有错误就下一步:
这一步报错是由于zabbix没法建立zabbix.conf.php文件,直接点击第一点的下载连接,下载zabbix.conf.php,而后拷贝到第二点的目录里面便可,解决就点击下一步:
大功告成!!