zabbix2.0
-
zabbix自动发现
-
zabbix代理设置
-
snmp ············》监控网络设备
监控的模式:
1、zabbix的主动模式和被动模式
主动和被动模式都是对于客户端而言的
-
主动模式:客户端主动将数据发送给server或者是代理
-
被动模式:服务端或者proxy(代理)主动去找客户端索要数据 ·············》被动模式(默认)
被动模式在成规模的集群(成百上千的情况),都是由服务端主动去找,那么服务端的压力会很大
自动发现:服务端可以自动发现客户端,并且把客户端添加到监控组当中去
1、zabbix官网提供的API内部的接口
api和端口之间的区别:
-
端口:应用和应用之间的通信
-
应用内部的组件进行通信的是API
内部的token密钥,首先要获取内部的通信密钥
官方获取内部token密钥的方法:
curl -s -X POST -H 'Content-Type:application/json' -d '
{
"jsonrpc": "2.0",
"method": "user.login",
"params": {
"username": "Admin",
"password": "zabbix"
},
"id": 1
}' http://192.168.31.10/zabbix/api_jsonrpc.php
curl -s -X POST -H 'Content-Type:application/json' -d '
{
"jsonrpc": "2.0",
"method": "host.create",#定义请求的方法,方法有很多,创建主机
"params": {
"host": "test2",#定义客户端的主机名
"interfaces": [ #定义监控项的类型和客户端的信息
{
"type": 1,#类型为1 agent 2 snmp 3 umpi 4 jmx
"main": 1,#调用主接口
"useip": 1,#0 ···使用dns解析主机名,1 ···表示使用ip地址
"ip": "192.168.233.20",客户端ip地址
"dns": "",
"port": "10050"#客户端端口
}
],
"groups": [
{
"groupid": "2"#所属的主机id
}
],
"templates": [
{
"templateid": "10001"#所属的模板的id
}
]
},
"auth": "d42ab5124b4e066114d26cfb1f6cfe9a",
"id": 1
}' http://192.168.31.10/zabbix/api_jsonrpc.php | python3 -m json.tool
f8G3K9s2!mB4@xL7#pQ6vZ1n0
apt install -y zabbix-proxy-mysql zabbix-get zabbix-sql-scripts
apt install -y mariadb-server( =mysql )
mysql_secure_installation
CREATE DATABASE zabbix_proxy character set utf8 collate utf8_bin;
GRANT all ON zabbix_proxy.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix';
flush privileges;
cat /usr/share/zabbix-sql-scripts/mysql/proxy.sql | mysql -u root -p123456 zabbix_proxy
curl -s -X POST -H 'Content-Type:application/json' -d '
{
"jsonrpc": "2.0",
"method": "host.create",
"params": {
"host": "test3",
"proxy_hostid": "10636",
"interfaces": [
{
"type": 1,
"main": 1,
"useip": 1,
"ip": "192.168.233.30",
"dns": "",
"port": "10050"
}
],
"groups": [
{
"groupid": "2"
}
],
"templates": [
{
"templateid": "10001"
}
]
},
"auth": "d42ab5124b4e066114d26cfb1f6cfe9a",
"id": 1
}' http://192.168.233.10/zabbix/api_jsonrpc.php | python3 -m json.tool
批量添加主机的脚本
#!/bin/bash
IP="
192.168.233.20
192.168.233.40
"
for i in ${IP}
do
#获取主机名
hostname=$(nslookup ${i} | grep 'name =' | awk '{print $4}'| sed 's/\.//')
curl -s -X POST -H 'Content-Type:application/json' -d '
{
"jsonrpc": "2.0",
"method": "host.create",
"params": {
"host": "'${hostname}'",
"interfaces": [
{
"type": 1,
"main": 1,
"useip": 1,
"ip": "'${i}'",
"dns": "",
"port": "10050"
}
],
"groups": [
{
"groupid": "2"
}
],
"templates": [
{
"templateid": "10343"
}
]
},
"auth": "2e8954eca193054c88b919d39bc93e7a",
"id": 1
}' http://192.168.233.10/zabbix/api_jsonrpc.php | python3 -m json.tool
done
zabbix-snmp监控:
snmp:简单网络管理协议
simple network management protocol:用来监控和管理网络设备的标准协议
路由器,交换机等等
snmp-agent sys-info version all
snmp1 snmp2 snmp3 all 开启snmp协议之后,支持以上的所有版本。
snmp-agent community write public
路由器设备可以被哪些团体进行读写,public:公共组,所有设备都可以读写路由器的配置信息
snmp-agent target-host trap-hostname zabbix address 192.168.233.10 udp-p
ort 161 trap-paramsname zabbix
声明监控的zabbix的server端的ip地址,和snmp的监听端口
view systemonly included .1.3.6.1.2.1.25.1
设备的oid信息,一般都是从设备厂商直接获取
1: 表示设备名,查询设备的所有信息
数字越短,能看到的信息就越多
zabbix监控:
zbx jmx ipmi snmp
zbx—传统监控,监控服务器状态和服务器上应用状态
snmp
代理配置:一般都是代理直接收集客户端的数据。
自动发现和代理的配置,可以通过api接口的方式实现
在当中写监控组件的时候,写了zabbix可以写普罗米修斯
如果写了普罗米修斯,就不需要再配置zabbix ···················》k8s集群当中
zabbix不适用监控容器,监控容器和k8s的pod的资源情况,使用普罗米修斯