一、zabbix简介
zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
zabbix由2部分构成,zabbix server与可选组件zabbix agent。
zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,可以运行在众多平台上。
二、实验环境
操作系统: CentOS7.5 Minimal
zabbixServer: 192.168.1.104
zabbixAgent: 192.168.1.104 192.168.1.105
三、编译工具和基础组件安装
zabbix的安装需要LAMP环境
# yum -y install epel-release
# yum -y install gcc gcc-c++
# yum -y install php php-gd php-mysql php-bcmath php-mbstring php-xml net-snmp perl-DBI
# yum -y install httpd
# yum -y install mariadb mariadb-server
# yum -y install mariadb-devel net-snmp-devel libxml2-devel libevent-devel curl-devel
四、创建程序运行用户
# groupadd -r zabbix
# useradd -r -g zabbix -s /sbin/nologin -M zabbix
五、数据库mariadb的配置
启动数据库
# systemctl start mariadb.service
# systemctl enable mariadb.service
# systemctl status mariadb.service
配置数据库管理员root密码
# mysql_secure_installation
设置的root密码为 MySQL@123
# mysql -u root -h 127.0.0.1 -p"MySQL@123"
创建zabbix用户和数据库
# mysql -u root -p"MySQL@123" -e "create database if not exists zabbix default character set utf8 collate utf8_general_ci;"
# mysql -u root -p"MySQL@123" -e "grant all privileges on zabbix.* to zabbix@'127.0.0.1' identified by 'zabbix';"
# mysql -u root -p"MySQL@123" -e "grant all privileges on zabbix.* to zabbix@'localhost' identified by 'zabbix';"
# mysql -u root -p"MySQL@123" -e "grant all privileges on zabbix.* to zabbix@'192.168.1.104' identified by 'zabbix';"
# mysql -u root -p"MySQL@123" -e "flush privileges;"
# mysql -u root -p"MySQL@123" -e "show databases;"
# mysql -u root -p"MySQL@123" -e "select user,host from mysql.user;"
六、zabbix的编译安装
①下载并进行编译安装
# yum -y install wget
# wget http://soft.xiaoz.org/linux/zabbix-3.4.4.tar.gz
# tar zxvf zabbix-3.4.4.tar.gz
# cd zabbix-3.4.4
# ./configure --prefix=/usr/local/zabbix \
--with-mysql \
--with-net-snmp \
--with-libcurl \
--with-libxml2 \
--with-net-snmp \
--enable-server \
--enable-agent
# make
# make install
# ll /usr/local/zabbix
# /usr/local/zabbix/sbin/zabbix_server --help
# /usr/local/zabbix/sbin/zabbix_agentd --help
②导入数据库
# ll zabbix-3.4.4/database/mysql/
# mysql -u root -p"MySQL@123" -D zabbix -e "source /root/zabbix-3.4.4/database/mysql/schema.sql"
# mysql -u root -p"MySQL@123" -D zabbix -e "source /root/zabbix-3.4.4/database/mysql/images.sql"
# mysql -u root -p"MySQL@123" -D zabbix -e "source /root/zabbix-3.4.4/database/mysql/data.sql"
注:导入请按以上顺序,否则会出现错误!
# mysql -u root -p"MySQL@123" -D zabbix -e "show tables;"
七、 配置zabbixServer和zabbixAgent
注意:配置文件=后面的字符串不能加引号
修改zabbixServer的配置文件zabbix_server.conf
# vim /usr/local/zabbix/etc/zabbix_server.conf
# cat /usr/local/zabbix/etc/zabbix_server.conf | grep -Ev "^#|^$"
######################################################
LogFile=/tmp/zabbix_server.log
#日志文件地址,默认不用更改
DBHost=localhost
#数据库主机IP,我们前面授权了127.0.0.1(localhost)和本机IP 192.168.1.104,或者写0.0.0.0
DBName=zabbix
#zabbix数据库名
DBUser=zabbix
#zabbix数据库用户名
DBPassword=zabbix
#zabbix数据库密码
ListenIP=127.0.0.1,192.168.1.104
#服务监听IP,写127.0.0.1和本机IP,如果只写127.0.0.1,那么其他主机的agent无法连接server
AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts
#zabbix运行脚本存放目录
#####################################################
修改zabbixAgent的配置文件zabbix_agentd.conf
# vim /usr/local/zabbix/etc/zabbix_agentd.conf
# cat /usr/local/zabbix/etc/zabbix_agentd.conf | grep -Ev "^#|^$"
###################################################
PidFile=/tmp/zabbix_agentd.pid
#进程PID
LogFile=/tmp/zabbix_agentd.log
#日志保存位置
EnableRemoteCommands=1
#允许执行远程命令
Server=127.0.0.1,192.168.1.104
#zabbix被动模式指明zabbixServer的IP ,授权zabbixServer能从zabbixAgent抓取监控数据
ServerActive=127.0.0.1,192.168.1.104
#zabbix主动模式指明zabbixServer的IP ,指明zabbixAgent将抓取的监控数据推送到zabbixServer的地址,如果zabbixAgent与zabbixServer不再同一台服务器或者zabbixServer没有监听127.0.0.1,不能写127.0.0.1
Hostname=zabbixServer
#在web端添加监控主机时,必须与zabbix创建的hostname相同
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/
#添加在定义Key时,存放的位置
UnsafeUserParameters=1
#启用自定义key
#########################################################
八、添加zabbix启动脚本
# cp zabbix-3.4.4/misc/init.d/fedora/core5/zabbix_server /etc/init.d/zabbix_server
# cp zabbix-3.4.4/misc/init.d/fedora/core5/zabbix_agentd /etc/init.d/zabbix_agentd
# ll /etc/init.d/
# vim /etc/init.d/zabbix_server
ZABBIX_BIN="/usr/local/zabbix/sbin/zabbix_server"
# vim /etc/init.d/zabbix_agentd
ZABBIX_BIN="/usr/local/zabbix/sbin/zabbix_agentd"
# chkconfig --add zabbix_server
# chkconfig --add zabbix_agentd
# chkconfig zabbix_server on
# chkconfig zabbix_agentd on
启动服务,查看监听端口
# systemctl start zabbix_server
# systemctl start zabbix_agent
# systemctl enable zabbix_server
# systemctl enable zabbix_agent
# systemctl status zabbix_server
# systemctl status zabbix_agent
# ss -tan
zabbbixServer 监听端口: 10051
zabbixAgent监听端口:10050
http监听端口:80
mariadb监听端口:3306
查看服务启动日志
# tail -f /tmp/zabbix_server.log
# tail -f /tmp/zabbix_agentd.log
六、修改PHP相关参数
# vim /etc/php.ini
##########################
max_execution_time = 300
max_input_time = 300
memory_limit = 128M
upload_max_filesize = 2M
date.timezone = Asia/Shanghai
post_max_size = 28M
#############################
# yum -y install php-ldap
# rpm -ql php-ldap
# echo "extension=ldap.so" >> /etc/php.ini
七、配置web站点
① 拷贝web文件,更改权限
# cp -r zabbix-3.4.4/frontends/php /var/www/html/zabbix
# chown -R apache:apache /var/www/html/zabbix
②修改httpd.conf的参数
# vim /etc/httpd/conf/httpd.conf
DirectoryIndex index.html index.php
③关闭SELinux
# sed -i 's/SELINUX=enforcing/SELINUX=permissive/' /etc/selinux/config
# setenforce 0
# systemctl start httpd.service
# systemctl enable httpd.service
# systemctl status httpd.service
设置防火墙策略,放行相关端口
如果使用firewalld(默认):
# systemctl start firewalld
# systemctl enable firewalld
# systemctl status firewalld
# firewall-cmd --zone=public --add-port=10051/tcp --permanent
# firewall-cmd --zone=public --add-port=80/tcp --permanent
# firewall-cmd --reload
如果使用iptables:
# yum -y install iptables iptables-services
# iptables -A INPUT -p tcp --dport 10051 -m state --state NEW,ESTABLISHED -j ACCEPT
# iptables -A INPUT -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
# service iptables save
浏览器访问:http://192.168.1.104/zabbix
默认管理员账号密码:admin/zabbix
现在zabbix server和 server端的agent安装完成了,添加模板,开启了zabbixServer本机监控。
八、在其他服务器上安装zabbixAgent
在zabbixServer端:
# scp -r /usr/local/zabbix root@192.168.1.105:/usr/local/
# scp /etc/init.d/zabbix_agentd root@192.168.1.105:/etc/init.d/
在zabbixAgent(192.168.1.105)端:
# rm -rf /usr/local/zabbix/sbin/zabbix_server
# rm -rf /usr/local/zabbix/etc/zabbix_server.conf*
# groupadd -r zabbix
# useradd -r -g zabbix -s /sbin/nologin -M zabbix
# vim /usr/local/zabbix/etc/zabbix_agentd.conf
# cat /usr/local/zabbix/etc/zabbix_agentd.conf | grep -Ev "^#|^$"
###################################################
PidFile=/tmp/zabbix_agentd.pid
#进程PID
LogFile=/tmp/zabbix_agentd.log
#日志保存位置
EnableRemoteCommands=1
#允许执行远程命令
Server=192.168.1.104
#zabbix被动模式指明zabbixServer的IP ,授权zabbixServer能从zabbixAgent抓取监控数据
ServerActive=192.168.1.104
#zabbix主动模式指明zabbixServer的IP ,指明zabbixAgent将抓取的监控数据推送到zabbixServer的地址,如果zabbixAgent与zabbixServer不再同一台服务器或者zabbixServer没有监听127.0.0.1,不能写127.0.0.1
Hostname=zabbixAgent
#在web端添加监控主机时,必须与zabbix创建的hostname相同
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/
#添加在定义Key时,存放的位置
UnsafeUserParameters=1
#启用自定义key
#########################################################
# chkconfig --add zabbix_agentd
# chkconfig zabbix_agentd on
# systemctl start zabbix_agent
# systemctl enable zabbix_agent
# systemctl status zabbix_agent
设置防火墙策略,放行相关端口
如果使用firewalld(默认):
# systemctl start firewalld
# systemctl enable firewalld
# firewall-cmd --zone=public --add-port=10050/tcp --permanent
# firewall-cmd --reload
如果使用iptables:
# yum -y install iptables iptables-services
# iptables -A INPUT -p tcp --dport 10050 -m state --state NEW,ESTABLISHED -j ACCEPT
# iptables -A INPUT -p tcp --dport 10051 -m state --state NEW,ESTABLISHED -j ACCEPT
# service iptables save
从zabbixAgent测试到zabbixServer的端口连通性
# echo > /dev/tcp/192.168.1.104/80
# echo > /dev/tcp/192.168.1.104/10051
# tail -f /tmp/zabbix_agentd.log
九、在zabbixServer添加对zabbixAgent的监控
从zabbixServert测试到zabbixAgent的端口连通性
# echo > /dev/tcp/192.168.1.104/50
十、参考
编译安装zabbix
https://www.lucissfer.com/2016/06/20/zabbix+install
https://www.zabbix.com/documentation/3.4/zh/manual/installation/install
源码安装zabbix3.2.7时PHP ldap Warning
https://www.cnblogs.com/me80/p/7410958.html
Server missing “ldap.so”
https://stackoverflow.com/questions/20130796/server-missing-ldap-so