一.zabbix通知
邮件通知
开通邮箱的smtp协议
账号安全
需要建立报警媒介类型
-
邮件
-
短信
-
微信
可以直接修改 Email
名称:可以自定义
SMTP服务器: 写你对应邮箱的服务器,生产环境需要询问管理邮箱服务的同事
https://wx.mail.qq.com/list/readtemplate?name=app_intro.html#/agreement/authorizationCode
然后点击更新
模拟故障
二.zabbix自愈
当zabbix 监控到指定的监控项异常的时候,通过指定的操作使故障自动恢复,通常是重启服务等一些简单的操作,也可以调用脚本执行比较复杂的操作。
设置监控项和触发器,新建动作,在触发条件里面添加操作,在远程主机通过zabbix 客户端执行命令
1.开启zabbix sudo权限
2.配置允许允许特殊字符
3.配置远程命令
4.验证和测试
1.zabbix agent需要开启远程命令执行
vim /etc/zabbix/zabbix_agentd.conf
73 EnableRemoteCommands=1 #开启远程执行命令
287 UnsafeUserParameters=1 #允许远程执行命令的时候使用不安全的参数(特殊字符串)
root@zabbix-node4:~# systemctl restart zabbix-ag
2.zabbix用户授权
如果zabbix agent是使用zabbix用户启动的,那么要在zabbix 用户授权使用特权命令,负责有些命令zabbix没有权限执行,会导致定义好的自治愈策略因为权限拒绝为执行失败
[root@localhost etc]# vim /etc/sudoers
zabbix ALL=(ALL) NOPASSWD: ALL
3.创建动作
三.批量添加主机
curl -s -X POST -H 'Content-Type:application/json' -d '
{
"jsonrpc": "2.0",
"method": "user.login",
"params": {
"user": "Admin",
"password": "zabbix"
},
"id": 1
}' http://192.168.240.13/zabbix/api_jsonrpc.php
{"jsonrpc":"2.0","result":"939500f08ed433c67c7ff7b094d74936","id":1}
输出
curl -s -X POST -H 'Content-Type:application/json' -d '
> {
> "jsonrpc": "2.0",
> "method": "user.login",
> "params": {
> "user": "Admin",
> "password": "zabbix"
> },
> "id": 1
> }' http://192.168.240.13/zabbix/api_jsonrpc.php | python -m json.tool
{
"id": 1,
"jsonrpc": "2.0",
"result": "d7b5b6549420557ebde5458726d98489"
}
查询主机
curl -s -X POST -H 'Content-Type:application/json' -d '
{
"jsonrpc": "2.0",
"method": "host.get",
"params": {
"filter": {
"host": [
"192.168.240.11"
]
}
},
"auth": "d7b5b6549420557ebde5458726d98489",
"id": 1
}' http://192.168.240.13/zabbix/api_jsonrpc.php | python -m json.tool
查询所有主机
curl -s -X POST -H 'Content-Type:application/json' -d '
{
"jsonrpc": "2.0",
"method": "host.get",
"params": {
"output": ["host"]
},
"auth": "d7b5b6549420557ebde5458726d98489",
"id": 1
}' http://192.168.240.13/zabbix/api_jsonrpc.php | python -m json.tool
添加单台主机
不带proxy代理
配置解释
通过API添加主机命令格式:
API添加主机为预先知道要添加的主机IP、预先安装并配置好zabbix agent、预先知道要关联的模板ID/组ID等信
息,然后同API提交请求添加
# curl -s -X POST -H 'Content-Type:application/json' -d '
{
"jsonrpc": "2.0",
"method": "host.create", #定义方法,N多钟
"params": {
"host": "API Add Host Test", #自定义添加后的agent的名称
"interfaces": [
{
"type": 1, #类型为1表示agent,2是SNMP,3是IMPI,4是JMX
"main": 1, #主要接口
"useip": 1, #0是使用DNS,1是使用IP地址
"ip": "172.31.0.24", #添加的zabbix agent的IP地址
"dns": "",
"port": "10050" #agent端口
}
],
"groups": [
{
"groupid": "2" #添加到的组的ID
}
],
"templates": [
{
"templateid": "10001" #关联的模板的ID
}
]
},
"auth": "d7b5b6549420557ebde5458726d98489",
"id": 1
}' http://172.31.0.101/zabbix/api_jsonrpc.php | python3 -m json.tool