介绍:
组成:
zabbix agent
:部署在被监控主机上,负责被监控主机的数据,并将数据发送给zabbix server
zabbix server
:负责接收agent发送的报告信息,并且负责组织配置信息、统计信息、操作数据等
zabbix database
:用于存储所有zabbix的配置信息,监控数据的数据库
zabbix web
:zabbix的web界面,管理员通过web界面管理zabbix配置以及查看zabbix相关监控信息,可以单独部署在独立的服务器上
在server1上:
yum install -y php-mbstring-5.4.16-46.el7.x86_64.rpm php-bcmath-5.4.16-46.el7.x86_64.rpm
yum install -y zabbix-agent zabbix-server-mysql zabbix-web zabbix-web-mysql.noarch
安装配置数据库:
yum install -y mariadb
systemctl start mariadb
mysql
create database zabbix character set utf8 collate utf8_bin;
grant all pricileges on zabbix.* to 'zabbix'@'localhost' identified by 'westos';
mysql -uzabbix -pwestos zabbix ##登录成功
cd /usr/share/doc
cd zabbix-server-mysql-4.0.23/
ls
ll create.sql.gz
zcat create.sql.gz | wc -l
zcat create.sql.gz | mysql -uzabbix -pwestos zabbix
cd /etc/zabbix
vim zabbix_server.conf
#DBName=zabbix
#DBUser=zabbix
#DBPassword=westos
systemctl start zabbix-server
vim /etc/httpd/conf.d/zabbix.conf
#20 php_value date.timezone Asia/Shanghai
#修改时区为亚洲上海
systemctl start httpd
systemctl enable --now httpd
浏览器访问172.25.10.1/zabbix/,进行zabbix的web界面配置:
Admin&&zabbix
进入zabbix平台后,可以修改监控界面语言和登陆密码:
登录 -> 问号旁边小人头
在server3中:
yum install -y zabbix-agent
cd /etc/zabbix
vim zabbix_agentd.conf
#Server=172.25.10.1
#ServerActive=172.25.10.1
#Hostname=server3/server4
systemctl restart zabbix-agent
ss -antlp
自动发现与自动注册
自动发现规则主要针对企业批量添加主机,如果使用传统办法去单个添加设备、分组、项目、图像…这是一个任务量巨大的一个工程,由此引入自动发现规则。
自动发现规则由服务端主动发起,Zabbix
Server开启发现进程,定时扫描局域网中IP服务器、设备,实现自动刚发现主机、自动将主机添加到主机组、自动加载模板、自动创建项目(item)、自动创建图像等功能。
zabbix-server主动发现zabbix-agent
step1 删除之前添加的server3设备
step2 配置—动作—自动发现—启用
step3 点击Auto discovery Linux servers—添加触发条件—更新
step4 配置—自动发现—Local network
step5 修改IP范围和时间间隔 -> 已启用 -> 更新
step6 配置 -> 主机 -> 等待1min左右,刷新页面—server3被自动发现
Zabbix的自动注册规则主要用于Agent主动且自动向Server注册,适用于当前云环境下的监控。Zabbix-Server在收到Zabbix-Agent的注册请求时,如果没有收到IP地址的值,则使用Zabbix-Agent和Zabbix-Server建立TCP连接时使用的IP地址。
zabbix-agent主动向zabbix-server注册
step1 添加zabbix-agent:(server4)
yum install -y zabbix-agent
编辑agent配置文件:
vim /etc/zabbix/zabbix_agentd.conf#
#98 Server=172.25.10.1zabbix被动模式要来取的ip地址(zabbix-server)
#139 ServerActive=172.25.10.1 #zabbix主动模式要发送的ip地址(zabbix-server)
#150 Hostname=server4
systemctl start zabbix-agent
netstat -antlp | grep 10050
step2 在zabbix-web中刷新 -> server4出现:
这是上一步骤自动发现的结果,删除server4
step3 配置->自动发现->停用
step4 配置-> 动作->自动注册->创建动作
step5 动作->名称->触发条件->启用->添加
step6 动作-> 操作-> 新的
step7 添加主机 ->添加
step8 添加到主机群组->选择群组->添加
step9 与模版关联->选择模版->添加->更新
step10 配置->主机->等待1min左右,刷新页面—server4自动注册成功
Zabbix API允许你以编程方式检索和修改Zabbix的配置,并提供对历史数据的访问。它广泛用于:创建新的应用程序以使用Zabbix; 将Zabbix与第三方软件集成;自动执行常规任务。
Zabbix API是基于Web的API,作为Web前端的一部分提供。该API包含一组独立的方法;客户端和API之间的请求和响应使用JSON格式进行编码。大多数API至少包含四种方法: get, create, update 和 delete ,分别是检索,创建,更新和删除数据。当完成了前端的安装配置后,你就可以使用远程HTTP请求来调用API。
在访问Zabbix中的任何数据之前,你需要登录并获取身份验证令牌。这可以使用该 user.login 方法完成。
** 在server1中:**
[root@server1 conf]# curl -s -X POST -H "Content-Type: application/json-rpc" -d '
> {
> "jsonrpc": "2.0",
> "method": "user.login",
> "params": {
> "user": "Admin",
> "password": "zabbix"
> },
> "id": 1,
> "auth": null
> }' http://172.25.10.1/zabbix/api_jsonrpc.php | python -m json.tool
chmod +x zabbix-api
./zabbix-api
会出现相应请求的标识符
JSON-PRC协议版本
以及result方法返回的数据
vim zabbix-api
curl -s -X POST -H "Content-Type: application/json-rpc" -d '
{
"jsonrpc": "2.0",
"method": "host.get",
"params": {
"output": [
"hostid",
"host"
],
"selectInterfaces": [
"interfaceid",
"ip"
]
},
"id": 2,
"auth": "49d21b4ea47d062bdab080248ecf7b68" 上一步的result
}' http://172.25.10.1/zabbix/api_jsonrpc.php | python -m json.tool
./zabbix-api
检索主机
curl -s -X POST -H "Content-Type: application/json-rpc" -d '
{
"jsonrpc": "2.0",
"method": "host.delete",
"params": [
"10265" ###hostid
],
"auth": "9a85195197da6e9db5146acf1c633f2d", ###身份验证牌令
"id": 1
}' http://172.25.10.1/zabbix/api_jsonrpc.php | python -m json.tool
./zabbix-api
curl -s -X POST -H "Content-Type: application/json-rpc" -d '
{
"jsonrpc": "2.0",
"method": "host.create",
"params": {
"host": "server4",
"interfaces": [
{
"type": 1,
"main": 1,
"useip": 1,
"ip": "172.25.1.4",
"dns": "",
"port": "10050"
}
],
"groups": [
{
"groupid": "2"
}
],
"templates": [
{
"templateid": "10001"
}
]
},
"auth": "9a85195197da6e9db5146acf1c633f2d",
"id": 1
}' http://172.25.10.1/zabbix/api_jsonrpc.php | python -m json.tool