zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
zabbix由2部分构成,zabbix server与可选组件zabbix agent。
zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平台上。
实验环境:
server1:7.3/7.2版本虚拟机
server2:6.5虚拟机
zabbix版本:zabbix3.4.6
server1:
安装zabbix与依赖性(注:php-*的2个文件需根据系统版本安装:7.3为42版本,7.2为36,可在官网下载)
[root@server1 ~]# yum install -y zabbix-server-mysql-3.4.6-1.el7.x86_64.rpm zabbix-web-3.4.6-1.el7.noarch.rpm zabbix-web-mysql-3.4.6-1.el7.noarch.rpm fping-3.10-1.el7.x86_64.rpm iksemel-1.4-2.el7.centos.x86_64.rpm php-mbstring-5.4.16-36.el7_1.x86_64.rpm php-bcmath-5.4.16-36.el7_1.x86_64.rpm
安装mysql服务
[root@server1 zabbix]# yum install -y mariadb-server
打开数据库
systemctl start mariadb
数据库安全设置(设置密码)
mysql_secure_installation
登陆
mysql -p
创建库
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
授权
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by 'westos';
[root@server1 zabbix]# cd /usr/share/doc/zabbix-server-mysql-3.4.6/
[root@server1 zabbix-server-mysql-3.4.6]# zcat create.sql.gz | mysql -u zabbix -p zabbix #这条命令输入密码执行需要等一会儿
Enter password:
登陆数据库查看zabbix表
[root@server1 zabbix-server-mysql-3.4.6]# mysql -pwestos
MariaDB [(none)]> use zabbix
MariaDB [zabbix]> show tables; ##可看到有140条内容
[root@server1 zabbix-server-mysql-3.4.6]# cd /etc/zabbix/
[root@server1 zabbix]# vim zabbix_server.conf
117 DBUser=zabbix ##用户名
125 DBPassword=westos ##数据库密码
132 DBSocket=/var/lib/mysql/mysql.sock
Httpd配置:修改时区
[root@server1 zabbix]# cd /etc/httpd/conf.d/
[root@server1 conf.d]# vim zabbix.conf
19 php_value date.timezone Asia/Shanghai
打开httpd服务
[root@server1 conf.d]# systemctl start httpd
安装Zabbix-agent服务,打开zabbix-agent、zabbix-server服务
[root@server1 ~]# yum install -y zabbix-agent-3.4.6-1.el7.x86_64.rpm
[root@server1 ~]# systemctl start zabbix-agent
[root@server1 ~]# systemctl start zabbix-server
注意:selinux要设置为disabled、防火墙关闭
查看selinux状态
[root@server1 conf.d]# getenforce
查看防火墙状态
[root@server1 conf.d]# iptables -L
浏览器访问172.25.10.1/zabbix
显示Zabbix3.4首页,下一步
下一步
下一步
下一步
下一步
完成
注意:这里用户为Admin,密码为zabbix。下一步
点击右上角的“人头“ 进行设置
选择语言
修改密码
重新打开一个6.5版本的虚拟机作为agent:server2
解压安装包
rpm -ivh zabbix-agent-3.4.6-1.el6.x86_64.rpm
编辑配置文件
[root@server2 ~]# cd /etc/zabbix/
[root@server2 zabbix]# vim zabbix_agentd.conf
149 Hostname=server2 ##本机名字
138 ServerActive=172.25.10.1 ##server端IP
97 Server=172.25.10.1 ##server端IP
打开服务
[root@server2 zabbix]# /etc/init.d/zabbix-agent start
查看端口
[root@server2 zabbix]# netstat -antlp
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 1450/zabbix_agentd
在server端(server1)和agent端(server2)作地址解析
vim /etc/hosts
server2:
172.25.10.1 server1
server1:
172.25.10.2 server2
发现设备的4种方法
设置状态为“停用的”
主机设置
这是在配置-自动发现中点击local network进去设置的网段
在仪表板里可看见自动发现的状态
往下拉可看见
这时可看到server2已自动添加,并且状态为已启用
为做下一个实验,这里把server2删除
创建主机
添加主机名称,添加群组,添加IP地址和端口号
选择模板
添加并更新
这时可看到server2已添加且状态已启用
删除server2
创建动作
填写名称
添加主机
添加主机群组
添加模板
更新
查看动作已启用
符合条件的主机已发现
这里不删除server2
在访问Zabbix内部的任何数据之前,您需要登陆并获得一个身份验证令牌。以作为标准的Zabbix管理用户登陆。
编辑一个脚本
您的JSON请求如下所示:
curl -s -X POST -H 'Content-Type:application/json' -d '
{
"jsonrpc": "2.0",
"method": "user.login",
"params": {
"user": "Admin",
"password": "westos"
},
"id": 1,
"auth": null
}' http://172.25.10.1/zabbix/api_jsonrpc.php | python -m json.tool
给予权限
[root@server1 ~]# chmod +x zabbix-api.sh
执行脚本
[root@server1 ~]# ./zabbix-api.sh
如果您正确地提供了凭证,API返回的相应将包含用户身份验证令牌
编辑脚本
[root@server1 ~]# vim zabbix-api.sh
curl -s -X POST -H 'Content-Type:application/json' -d '
{
"jsonrpc": "2.0",
"method": "host.get",
"params": {
"output": [
"hostid",
"host"
],
"selectInterfaces": [
"interfaceid",
"ip"
]
},
"id": 2,
"auth": "791a06e74753c20264d03a9da05eb1e7"
}' http://172.25.10.1/zabbix/api_jsonrpc.php | python -m json.tool
执行脚本
响应对象将包含关于主机的请求数据
[root@server1 ~]# ./zabbix-api.sh
编辑脚本
[root@server1 ~]# vim zabbix-api.sh
curl -s -X POST -H 'Content-Type:application/json' -d '
{
"jsonrpc": "2.0",
"method": "host.delete",
"params": [
"10256"
],
"id": 2,
"auth": "791a06e74753c20264d03a9da05eb1e7"
}' http://172.25.10.1/zabbix/api_jsonrpc.php | python -m json.tool
执行脚本
[root@server1 ~]# ./zabbix-api.sh
编辑脚本
[root@server1 ~]# vim zabbix-api.sh
curl -s -X POST -H 'Content-Type:application/json' -d '
{
"jsonrpc": "2.0",
"method": "host.create",
"params": {
"host": "server2",
"interfaces": [
{
"type": 1,
"main": 1,
"useip": 1,
"ip": "172.25.10.2",
"dns": "",
"port": "10050"
}
],
"groups": [
{
"groupid": "2"
}
],
"templates": [
{
"templateid": "10001"
}
]
},
"id": 2,
"auth": "791a06e74753c20264d03a9da05eb1e7"
}' http://172.25.10.1/zabbix/api_jsonrpc.php | python -m json.tool
执行脚本
[root@server1 ~]# ./zabbix-api.sh