1、总结zabbix安装过程(选择课程演示版本)。
包安装
#Install Zabbix repository
[root@ubuntu2004 ~]#wget
https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbixrelease_6.0-1+ubuntu20.04_all.deb
[root@ubuntu2004 ~]#dpkg -i zabbix-release_6.0-1+ubuntu20.04_all.deb
[root@ubuntu2004 ~]#cat /etc/apt/sources.list.d/zabbix.list
deb https://repo.zabbix.com/zabbix/6.0/ubuntu focal main
deb-src https://repo.zabbix.com/zabbix/6.0/ubuntu focal main
#加速,更新为国内源(可选)
[root@ubuntu2004 ~]#sed -i.bak
's#https://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#'
/etc/apt/sources.list.d/zabbix.list
[root@ubuntu2004 ~]#cat /etc/apt/sources.list.d/zabbix.list
deb https://mirrors.aliyun.com/zabbix/zabbix/6.0/ubuntu focal main
deb-src https://mirrors.aliyun.com/zabbix/zabbix/6.0/ubuntu focal main
[root@ubuntu2004 ~]#apt update
#安装Zabbix server,Web前端,agent2
[root@ubuntu2004 ~]#apt -y install zabbix-server-mysql zabbix-frontend-php
zabbix-nginx-conf zabbix-sql-scripts zabbix-agent2 zabbix-get
#安装nginx
[root@ubuntu2004 ~]#nginx -v
nginx version: nginx/1.18.0 (Ubuntu)
#安装php-fpm
[root@ubuntu2004 ~]#php-fpm7.4 -v
PHP 7.4.3 (fpm-fcgi) (built: May 6 2022 00:16:42)
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies
#安装zabbix_agent2
[root@ubuntu2004 ~]#zabbix_agent2 -V
zabbix_agent2 (Zabbix) 6.0.5
.......
#创建初始数据库
[root@ubuntu2004 ~]#apt -y install mysql-server
[root@ubuntu2004 ~]#mysql
Server version: 8.0.29-0ubuntu0.20.04.3 (Ubuntu)
mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;
mysql> create user zabbix@localhost identified by '123456';
mysql> grant all privileges on zabbix.* to zabbix@localhost;
mysql> set global log_bin_trust_function_creators = 1;
mysql> quit;
#导入初始架构和数据,系统将提示您输入新创建的密码。
[root@ubuntu2004 ~]#zcat /usr/share/doc/zabbix-sql-scripts/mysql/server.sql.gz |
mysql -uzabbix -p123456 zabbix
#验证数据库和表
[root@ubuntu2004 ~]#mysql -uzabbix -p123456 zabbix -e 'show tables;' |head
mysql: [Warning] Using a password on the command line interface can be insecure.
Tables_in_zabbix
acknowledges
actions
alerts
auditlog
autoreg_host
conditions
config
config_autoreg_tls
corr_condition
[root@ubuntu2004 ~]#mysql -uroot -p
password
mysql> set global log_bin_trust_function_creators = 0;
mysql> quit;
#为Zabbix server配置数据库
[root@ubuntu2004 ~]#vim /etc/zabbix/zabbix_server.conf
DBPassword=123456
#确认数据库配置
[root@ubuntu2004 ~]#grep -E '^DB|DBHost=' /etc/zabbix/zabbix_server.conf
# DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=123456
#为Zabbix前端配置PHP
[root@ubuntu2004 ~]#vim /etc/zabbix/nginx.conf
#取消下面两行的注释并修改
listen 80;
server_name zabbix.wang.org;
#默认安装apache2和nginx冲突,禁用apache2
[root@ubuntu2004 ~]#systemctl disable --now apache2.service
#重启服务
[root@ubuntu2004 ~]#systemctl restart zabbix-server zabbix-agent2 nginx php7.4-
fpm
[root@ubuntu2004 ~]#systemctl enable zabbix-server zabbix-agent2 nginx php7.4-fpm
2、总结 zabbix主动模式和被动模式简介及实现
主动模式和被动模式都是相对 zabbix agent 而言的
主动模式
主动模式是由每个zabbix agent 打开本机的随机端口, 主动向 Zabbix Server (或者Zabbix Proxy)的10051端口发起tcp连接请求主动模式下必须在zabbix agent配置文件中指定zabbix server的IP或者主机名(必须可以被解析为IP地址)在连接到zabbix server之前zabbix agent是不知道自己要采集那些数据以及间隔多久采集一次数据的,然后在连接到zabbix server以后获取到自己的监控项和数据采集间隔周期时间,之后再根据监控项采集数据并返回给zabbix server。
被动模式
被动模式是指 zabbix agent 被动的接受zabbix server(或者Zabbix Proxy)周期性发送过来的数据收集指令,此为默认的工作方式。在被动模式之下,zabbix server会根据主机关联的模板中的监控项和数据采集间隔时间,周期性的打开随机端口并向zabbix agent服务器的10050端口发起tcp连接,然后发送获取监控项数据的指令,即zabbix server发送什么指令那么zabbix agent就收集什么数据,zabbix server什么时候发送指令,zabbix agent就什么时候采集,zabbix server不发送指令,zabbix agent就一直不响应,所以zabbix agent也不用关心其监控项和数据采集周期间隔时间。
实现
1、在 Zabbix Agent 配置主机模式相关配置
[root@centos8 ~]#grep '^[^#]' /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=10.0.0.100 #被动模式指向 Zabbix Server的IP或FQDN
ServerActive=10.0.0.100 #主动模式指向 Zabbix Server的IP或FQDN
Hostname=10.0.0.104 #当前主机的IP,此项必须和Zabbix Server中设置的主机名称相
同
Timeout=30 #建议修改
Include=/etc/zabbix/zabbix_agentd.d/*.conf
[root@centos8 ~]#systemctl restart zabbix-agent.service
2、在 Zabbix Server 创建配置有主动模式监控项的模板
3、关联主动模板至支持主动模式的 Agent 主机
3、总结 zabbix proxy主动及被动案例
3.1 安装zabbix proxy
3.1.1 二进制包安装
[root@ubuntu2204 ~]#wget
https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbixrelease_6.0-4%2Bubuntu22.04_all.deb
[root@ubuntu2204 ~]#dpkg -i zabbix-release_6.0-4+ubuntu22.04_all.deb
[root@ubuntu2204 ~]#sed -i.bak
's/repo.zabbix.com/mirrors.tuna.tsinghua.edu.cn\/zabbix/'
/etc/apt/sources.list.d/zabbix.list
[root@ubuntu2204 ~]#apt update
[root@ubuntu2204 ~]#apt -y install zabbix-proxy-mysql zabbix-sql-scripts
3.2 准备数据库
3.2.1 为主动模式的 Proxy 准备独立的数据库
[root@zabbix-proxy-active ~]#apt -y install mysql-server
[root@zabbix-proxy-active ~]#mysql
mysql> select version();
+-----------+
| version() |
+-----------+
| 8.0.17 |
+-----------+
1 row in set (0.00 sec)
mysql> create database zabbix_proxy_active character set utf8 collate utf8_bin;
mysql> create user proxy@'localhost' identified by '123456';
mysql> grant all on zabbix_proxy_active.* to proxy@'localhost' ;
mysql> set global log_bin_trust_function_creators = 1;
mysql> quit; #从Proxy主机导入和zabbix Server不同的数据库和表
[root@zabbix-proxy-active ~]#yum -y install mysql
[root@zabbix-proxy-active ~]#apt -y install mysql
#包安装的路径
[root@zabbix-proxy-active ~]#zcat /usr/share/doc/zabbix-proxymysql/schema.sql.gz | mysql -uproxy -p123456 -h10.0.0.101 zabbix_proxy_active
[root@ubuntu2204 ~]#mysql
mysql> set global log_bin_trust_function_creators = 0;
mysql> exit
3.2.2 为被动模式的 proxy 准备独立的数据库
[root@zabbix-proxy-passive ~]#apt -y install mysql-server
[root@zabbix-proxy-passive ~]#mysql
mysql> create database zabbix_proxy_passive character set utf8 collate utf8_bin;
mysql> grant all on zabbix_proxy_passive.* to proxy@'10.0.0.%' identified by
'123456' ;
#创建被动模式使用的数据库和表
[root@zabbix-proxy-passive zabbix-5.0.13]#pwd
/root/zabbix-5.0.13
#源码编译的路径
[root@zabbix-proxy-passive zabbix-5.0.13]#mysql -uproxy -p123456
zabbix_proxy_passive < database/mysql/schema.sql
3.3 主动模式配置
3,.3.1 修改proxy配置文件
[root@zabbix-proxy-active ~]#grep '^[^#]' /etc/zabbix/zabbix_proxy.conf
ProxyMode=0 #主动模式为0,被动模式为1,默认为0即主动模式
Server=10.0.0.100 #指向Zabbix Server
Hostname=zabbix-proxy-active #此名称必须和后面Web管理页的agent代理程序名称相同
DBHost=localhost #MySQL服务器地址
DBName=zabbix_proxy_active #MySQL数据库名
DBUser=proxy #连接MySQL的用户
DBPassword=123456 #连接MySQL的用户密码
LogFile=/var/log/zabbix/zabbix_proxy.log
LogFileSize=0
DebugLevel=4 #指定日志级别,默认为3,值越大日志越详细
EnableRemoteCommands=1 #开启远程命令,允许server到proxy上执行命令,在故障
自愈时使用
PidFile=/var/run/zabbix/zabbix_proxy.pid
SocketDir=/var/run/zabbix
ProxyLocalBuffer=360 #当proxy将数据发送给server后将数据仍在本地保存多少时间,
默认不保留
ProxyOfflineBuffer=720 #当proxy和server无法连接时将数据在本地保存多长时间,默认
1小时
HeartbeatFrequency=60 #server端用来检测proxy可用性的心跳信息的时间间隔,被动模
式无效
ConfigFrequency=60 #每间隔多少时间到server获取监控项,在agent更新端监控
项,只在主动模式有效,默认3600s
DataSenderFrequency=60 #数据发送的间隔时间,只在主动模式有效,默认1s,建议加长
JavaGateway=10.0.0.101 #指向JAVA gateway主机
StartJavaPollers=10 #指定开启的进程数,默认为0,即不开启
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
CacheSize=8M #当主机数量很多时,会将获取的监控项存放在缓存中,生产中
设置2G
StartDBSyncers=4 #启动多少个线程和数据库连接
HistoryCacheSize=16M #保存agent发送过来的监控数据的内存空间大小,生产中设置
2G
HistoryIndexCacheSize=4M #历史数据的索引
Timeout=30 #获取数据的最长等待时间
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000 #慢查询时长
#默认zabbix-proxy.service不自动启动,设置服务开机自启
[root@zabbix-proxy-active ~]#systemctl enable --now zabbix-proxy.service
3.3.2 修改Zabbix Agent配置文件为主动模式的 Zabbix Proxy
[root@centos8 ~]#vim /apps/zabbix_agent/etc/zabbix_agentd.conf
[root@centos8 ~]#grep '^[^#]' /apps/zabbix_agent/etc/zabbix_agentd.conf
LogFile=/tmp/zabbix_agentd.log
Server=10.0.0.100,10.0.0.101 #指向Zabbix Server(可选)和Zabbix Proxy(必
选)
ServerActive=10.0.0.101 #指向Zabbix Proxy
Hostname=10.0.0.103
[root@centos8 ~]#systemctl restart zabbix-agent.service
3.3.3 在Zabbix Server上添加代理Proxies
3.3.4 在Zabbix Server上配置Zabbix Agent使用主动代理
3.4 被动模式配置
# vim /apps/zabbix_proxy/etc/zabbix_proxy.conf
ProxyMode=1 #0为主动,1为被动,此为默认
server=10.0.0.100 #zabbix server服务器的地址
Hostname=zabbix-proxy-passive-wang #代理服务器名称,被动模式不要求和后面Web管理页的
agent代理程序名称相同
DBHost=10.0.0.101 #数据库服务器地址
DBName=zabbix_proxy_passive #数据库库名称
DBUser=proxy #连接数据库的用户名称
DBPassword=123456 #数据库用户密码
DBPort=3306 #数据库端口
ListenPort=10051 #zabbix proxy监听端口
LogFile=/tmp/zabbix_proxy.log
Enab1eRemoteCommands=1 #允许zabbix server执行远程命令
ProxyLocalBuffer=720#已经提交到zabbix server的数据保留时间
ProxyofflineBuffer=720 #未提交到zabbix server的时间保留时间
ConfigFrequency=5 #间隔多少秒从zabbix server获取监控项信息,此横在被动模式无效
startPo1lers=20 #启动的数据采集器数量
javaGatewayPort=10052 #Java gateway服务端口
startJavaPollers=20 #启动多少个线程采集数据
cachesize=2G #保存监控项而占用的最大内存
Historycachesize=2G #保存监控历史数据占用的最大内存
HistoryIndexcachesize=128M #历史索引缓存的大小
Timeout=30 #监控项超时时间,单位为秒
LogslowQueries=3000 #毫秒,多久的数据库查询会被记录到日志
HeartbeatFrequency=60 #心跳间隔检测时间,默认60秒,范围0-3600秒,被动模式不使用
DatasenderFrequency=5 #数据发送时间间隔,默认为1秒,范围为1-3600秒,被动模式不使用
JavaGateway=10.0.0.102 #java gateway服务器地址,当需要监控java的时候必须配置否则监控不到数据
3.4.1 修改proxy配置文件
[root@zabbix-proxy-passive ~]#grep '^[^#]'
/apps/zabbix_proxy/etc/zabbix_proxy.conf
ProxyMode=1 #被动模式为1
Server=10.0.0.100 #指向zabbix server的地址
Hostname=zabbix-proxy-passvie-wang
LogFile=/tmp/zabbix_proxy.log
DBHost=localhost #指定MySQL的地址
DBName=zabbix_proxy_passive #指定MySQL数据库名称
DBUser=proxy #指定MySQL的用户
DBPassword=123456 #指定MySQL的用户密码
ProxyLocalBuffer=360
ProxyOfflineBuffer=720
JavaGateway=10.0.0.102
StartJavaPollers=10
CacheSize=8M
StartDBSyncers=4
HistoryCacheSize=16M
HistoryIndexCacheSize=4M
Timeout=30
LogSlowQueries=3000
[root@zabbix-proxy-passive zabbix-5.0.14]#grep -Ev '^$|#'
/apps/zabbix_proxy/etc/zabbix_proxy.conf
ProxyMode=1
Server=10.0.0.100
Hostname=Zabbix proxy passive
LogFile=/tmp/zabbix_proxy.log
DBName=zabbix_proxy_passive
DBUser=proxy
DBPassword=123456
HeartbeatFrequency=10
ConfigFrequency=10
DataSenderFrequency=1
Timeout=4
LogSlowQueries=3000
StatsAllowedIP=127.0.0.1
#默认zabbix-proxy.service不自动启动,设置服务开机自启
[root@zabbix-proxy-passive ~]#systemctl enable --now zabbix-proxy.service
3.4.2 在Zabbix Server上添加代理Proxies
3.4.3 在Zabbix Server上配置Zabbix Agent使用被动代理
3.4.4 修改Zabbix Agent配置文件为被动模式的Zabbix Proxy
[root@centos8 ~]#grep '^[^#]' /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=10.0.0.100,10.0.0.102#必须指向Proxy代理地址,否则Proxy无法监控,Zabbix Server地
址则是可选项
#ServerActive=10.0.0.100 #注释此行
Hostname=10.0.0.104
Timeout=30
Include=/etc/zabbix/zabbix_agentd.d/*.conf
[root@centos8 ~]#systemctl restart zabbix-agent.service
4、总结自定义监控,监控linux, nginx, 并基于短信/email报警。
4.1 监控Linux主机
4.1.1 添加主机
4.1.2 关联内置模版
4.2 监控nginx
4.2.1 自定义监控项监控 nginx状态页
[root@rocky8 ~]#vim /etc/nginx/conf.d/default.conf
# 加入
location /nginx_status {
stub_status;
access_log off;
allow 127.0.0.1;
deny all;
}
# 重启服务
[root@rocky8 ~]#systemctl restart nginx
4.2.2 配置agent
[root@rocky8 ~]#vim /etc/zabbix/zabbix_agentd.d/nginx_status.sh
#!/bin/bash
# Description:zabbix监控nginx性能以及进程状态
HOST="127.0.0.1"
PORT="80"
URL=nginx_status
# 检测nginx进程是否存在
case $1 in
ping)
pidof nginx | wc -l
;;
# 检测nginx性能
active)
curl -s "http://$HOST:$PORT/$URL/" | awk 'NR==1{print $NF}'
;;
reading)
curl -s "http://$HOST:$PORT/$URL/" | awk 'NR==4{print $2}'
;;
writing)
curl -s "http://$HOST:$PORT/$URL/" | awk 'NR==4{print $4}'
;;
waiting)
curl -s "http://$HOST:$PORT/$URL/" | awk 'NR==4{print $6}'
;;
accepts)
curl -s "http://$HOST:$PORT/$URL/" |awk 'NR==3{print $1}'
;;
handled)
curl -s "http://$HOST:$PORT/$URL/" | awk 'NR==3{print $2}'
;;
requests)
curl -s "http://$HOST:$PORT/nginx_status/" | awk 'NR==3{print $3}'
;;
*)
echo "Usage `basename $0` {ping | active | reading | writing | waiting |
accepts | handled | requests }"
esac
[root@rocky8 ~]#chmod +x /etc/zabbix/zabbix_agent2.d/nginx_status.sh
[root@rocky8 ~]#/etc/zabbix/zabbix_agent2.d/nginx_status.sh active
# 成功
1#添加监控配置
[root@rocky8 ~]#vim /etc/zabbix/zabbix_agent2.d/nginx.conf
UserParameter=nginx.status[*],/etc/zabbix/zabbix_agent2.d/nginx_status.sh $1
#agent测试
[root@rocky8 ~]#zabbix_agent2 -t nginx.status[ping]
nginx.status[ping] [s|1]
[root@rocky8 ~]#zabbix_agent2 -t nginx.status[active]
nginx.status[active] [s|1]
[root@rocky8 ~]#systemctl restart zabbix-agent2.service
#服务器测试
[root@zabbix-server ~]#zabbix_get -s 10.0.0.8 -k nginx.status[ping]
1
[root@zabbix-server ~]#zabbix_get -s 10.0.0.8 -k nginx.status[active]
1
4.3 email报警
4.3.1 邮箱开启SMTP功能
在邮箱上开启SMTP功能,利用此邮箱实现发送报警邮件
4.3.2 QQ邮箱开启邮件通知功能
获取授权码
4.3.3 创建报警媒介类型实现发信人功能
管理–>报警媒介类型–>创建报警媒介类型
4.3.4 QQ邮箱配置
添加消息模板用于发送信息
#可以修改两个消息模板
# 问题
主题: 告警: {EVENT.NAME}
告警主机:{HOST.NAME1}
告警服务: {ITEM.NAME1}
告警Key1: {ITEM.KEY1}:{ITEM.VALUE1}
告警Key2: {ITEM.KEY2}:{ITEM.VALUE2}
严重级别: {TRIGGER.SEVERITY}
# 恢复 Problem Recovery
主题: 恢复: {EVENT.DURATION}: {EVENT.NAME}
恢复主机:{HOST.NAME1}
恢复服务: {ITEM.NAME1}
恢复Key1:{ITEM.KEY1}:{ITEM.VALUE1}
恢复Key2: {ITEM.KEY2}:{ITEM.VALUE2}
创建完成后的界面
5、完成部署zabbix agent脚本,可适配rocky和ubuntu系统。
#!/bin/bash
ZABBIX_VER=5.0.13
FILE=zabbix-${ZABBIX_VER}.tar.gz
INSTALL_DIR=/apps/zabbix_agent
SERVER=10.0.0.100
HOST=`hostname -I`
. /etc/os-release
color () {
RES_COL=60
MOVE_TO_COL="echo -en \\033[${RES_COL}G"
SETCOLOR_SUCCESS="echo -en \\033[1;32m"
SETCOLOR_FAILURE="echo -en \\033[1;31m"
SETCOLOR_WARNING="echo -en \\033[1;33m"
SETCOLOR_NORMAL="echo -en \E[0m"
echo -n "$1" && $MOVE_TO_COL
echo -n "["
if [ $2 = "success" -o $2 = "0" ] ;then
${SETCOLOR_SUCCESS}
echo -n $" OK "
elif [ $2 = "failure" -o $2 = "1" ] ;then
${SETCOLOR_FAILURE}
echo -n $"FAILED"
else
${SETCOLOR_WARNING}
echo -n $"WARNING"
fi
${SETCOLOR_NORMAL}
echo -n "]"
echo
}
check(){
wget
https://cdn.zabbix.com/zabbix/sources/stable/${ZABBIX_VER%.*}/zabbix-$ZABBIX_VER
.tar.gz
[ -e ${FILE} ] || { color "$FILE 文件不存在,请检查" 1 ; exit 1; }
}
prepare (){
if [ $ID = "rocky" $ID = "rocky" ];then
yum -y install gcc make pcre-devel || { color "zabbix agent 相关包安装失
败,请检查" 1 ;exit; }
else
apt -y install gcc make || { color "zabbix agent 相关包安装失败,请检查" 1
;exit; }
fi
id zabbix &> /dev/null || useradd -r zabbix
}
install() {
tar xf $FILE
cd zabbix-$ZABBIX_VER
./configure --prefix=${INSTALL_DIR} --enable-agent
make && make install
}
config () {
sed -i.bak -e "s/Server=127.0.0.1/Server=$SERVER/" -e "s/Hostname=Zabbix
server/Hostname=$HOST/" ${INSTALL_DIR}/etc/zabbix_agentd.conf
echo 'PATH=${INSTALL_DIR}/bin/:${INSTALL_DIR}/sbin/:$PATH' >
/etc/profile.d/zabbix_agent.sh
}
service (){
cat > /lib/systemd/system/zabbix-agent.service <<EOF
[Unit]
Description=Zabbix Agent
After=syslog.target
After=network.target
[Service]
Type=forking
Restart=on-failure
PIDFile=/tmp/zabbix_agentd.pid
KillMode=control-group
ExecStart=${INSTALL_DIR}/sbin/zabbix_agentd -c
${INSTALL_DIR}/etc/zabbix_agentd.conf
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s
User=zabbix
Group=zabbix
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable --now zabbix-agent.service
systemctl is-active zabbix-agent.service && color "Zabbix Agent 安装完成并启动" 0}
check
prepare
install
config
service
6、完成命令行脚本,可以基于zabbix api添加zabbix agent到zabbix web。
#!/bin/bash
ZABBIX_SERVER=10.0.0.100
TOKEN=$(./zabbix-api-token.sh| awk -F'"' '{print $8}')
HOST=10.0.0.106
curl -s -XPOST -H "Content-Type: application/json-rpc" -d ' {
"jsonrpc": "2.0",
"method": "host.create",
"params": {
"host": "'web-api-$HOST'", #创建主机名称
"name": "'web-api-$HOST'", #可见的名称
"interfaces": [
{
"type": 1, #类型为1表示agent,2是SNMP,3是IPMI,4是JMX
"main": 1, #主要接口
"useip": 1, #0是使用DNS,1是使用IP地址
"ip": "'$HOST'", #添加的zabbix agent的IP地址
"dns": "",
"port": "10050" #agent使用的端口
}
],
"groups": [
{
"groupid": "2" #添加到的组的ID
}
],
"templates": [
{
"templateid": "10001" #关联的模板的ID
}
]
},
"id": 1,
"auth": "'$TOKEN'"
}' http://${ZABBIX_SERVER}/zabbix/api_jsonrpc.php | python3 -m json.tool
[root@zabbix-server ~]#./zabbix-api-addhost.sh
{
"jsonrpc": "2.0",
"result": {
"hostids": [
"10273"
]
},
"id": 1 }
[root@zabbix-server ~]#./zabbix-api-gethostlist.sh
{
"jsonrpc": "2.0",
"result": [
{
"hostid": "10084",
"host": "Zabbix server"
},
{
"hostid": "10270",
"host": "10.0.0.105"
},
{
"hostid": "10273",
"host": "10.0.0.106"
}
],
"id": 1 }