zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案,zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题
zabbix由两部分构成,zabbix server与可选组件zabbix agent
zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平台上
Centos7,yum安装MySQL数据库,源码安装Nginx和php-fpm
准备两台Centos7虚拟机,配置IP地址和hostname,关闭防火墙和selinux,时间同步,配置IP地址和Hostname映射
hostname | ip |
---|---|
master | 192.168.29.132 |
bak | 192.168.29.138 |
安装依赖包
[root@master ~]# yum install -y libevent-devel wget tar gcc gcc-c++ make net-snmp-devel libxml2-devel libcurl-devel mysql-devel
[root@bak ~]# yum install -y libevent-devel wget tar gcc gcc-c++ make net-snmp-devel libxml2-devel libcurl-devel mysql-devel
#升级curl
[root@master ~]# yum upgrade libcurl -y
下载zabbix安装包
安装可通过yum安装也可以通过源码包方式安装,yum源和源码包通过zabbix官网下载,本次采用的是源码包方式安装
解压
[root@master ~]# tar -zxvf zabbix-4.0.0.tar.gz
配置及初始化数据库
mysql>create database zabbix character set utf8 collate utf8_bin;
mysql>grant all privileges on zabbix.* to 'zabbix'@'localhost' identified by 'your_password';
mysql>flush privileges;
mysql>use zabbix
mysql>source /tmp/zabbix/database/mysql/schema.sql
mysql>source /tmp/zabbix/database/mysql/images.sql
mysql>source /tmp/zabbix/database/mysql/data.sql
安装配置
[root@master ~]#groupadd --system zabbix
[root@master ~]#useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix
[root@master ~]#./configure --prefix=/usr/local/zabbix -enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2 --with-mysql --enable-proxy
[root@master ~]# make && make install
[root@master ~]# mv /tmp/zabbix/frontends/php /home/zabbix
配置zabbix
[root@master ~]# vi /usr/local/zabbix/etc/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=your_password
启动zabbix
#后台运行
[root@master ~]# nohup /usr/local/zabbix/sbin/zabbix_server > /dev/null 2>&1
#查看启动情况
[root@master ~]#ss -anlp|grep 10051
配置Nginx
#在Nginx配置文件中添加server
server {
listen 80;
server_name www.myzabbix.cc;
location / {
root /home/zabbix;
index index.html index.htm index.php;
}
location ~ \.php$ {
root /home/zabbix/;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
[root@master ~]# systemctl start nginx
[root@master ~]# service php-fpm start
通过http://ip访问zabbix首页,此时主页会进入引导配置页面,只需要填写数据库页面的密码即可一直Next,若出现PHP错误则按照提示对php.ini中的相应配置进行修改
配置完成后可通过默认用户名密码(Admin:zabbix)进入zabbix主页
安装zabbix-agent
同样是从官方下载源码包
[root@bak ~]# tar -zxvf zabbix-4.0.0.tar.gz
[root@bak ~]# ./configure --prefix=/usr/local/zabbix --enable-agent
[root@bak ~]# make && make install
配置主服务器地址
[root@bak ~]# vi /usr/local/zabbix/etc/zabbix_agentd.conf
Server=192.168.29.132
ServerActive=192.168.29.132
Hostname=Zabbix agent
启动zabbix-agent
[root@bak ~]# useradd zabbix
[root@bak ~]#/usr/local/zabbix/sbin/zabbix_agentd -c /usr/local/zabbix/etc/zabbix_agentd.conf
#查看启动情况
[root@bak ~]#ss -anlp|grep 10050
自此zabbix监控报警系统部署完成
创建主机组
configuration->Host groups -> create host group
添加主机以及模板
注:
添加模板后一定要按add和update
配置完成后回到host选项点击update,就可以在graphs中看到监控对象对应监控项的图像
编写自定义配置文件
[root@bak ~]# vi /usr/local/zabbix/etc/zabbix_agentd.conf.d/mysql_status.conf
#格式
#UserParameter=监控名称,
#监控MySQL查询次数
UserParameter=mysql.questions,mysqladmin -u root --password="your_password" status 2>/dev/null |cut -f4 -d ":" |cut -f1 -d "S" |awk '{print int($0)}'
#配置完成后重启zabbix-agent
#在zabbix-server端验证
[root@master ~]# zabbix_get -s 192.168.29.138 -p 10050 -k "mysql.questions"
470
添加监控项
添加图像
配置完成后即可实现自定义监控项的可视化
为自定义的监控项设定触发器
自此自定义监控项设定完成
zabbix的自动发现功能是为了解决批量监控而设计的,即在zabbix server端设定自动发现规则,自动批量的发现局域网内的服务器并自动添加到zabbix监控平台中
添加自动发现规则
创建发现后的动作
配置完成可通过Monitoring的Discovery查看发现的服务器ip列表,依次选择Configure中的Hosts可查看是否服务器是否被zabbix监控