1)点击配置—点击主机—点击创建主机—根据提示填写主机名称,选择群组,填写agent代理程序的接口(被监控主机ip)—点击添加
流程:点击你刚刚创建的主机—>点击模板—>点击选择—>找到Template OS Linux 打钩,点击选择—>点击添加—>点击更新—>在最上面的搜索栏搜索你当前主机就会看到监控项及触发器不在是0了
注:手动添加的主机是默认没有关联模板的
注:在服务器上添加主机成功了只是第一步,还得在你被监控主机是上安装zabbix-agent了
$ yum install zabbix-agent -y #安装zabbix客户端
$ vim /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0 #设置日志切割值,单位为M
Server=10.28.88.204 #服务器主机ip,也可以是域名
Hostname=hostname
Include=/etc/zabbix/zabbix_agentd.d/
$ systemctl restart zabbix-agent #重启zabbix-agent
#开启防火墙的同学注意开放10050端口(在7里面,得用firewalld命令设置防火墙,iptables仅用于查询防火墙规则了)
$ firewall-cmd --add-port 10050/tcp --zone=public --permanent #开放10050端口
Success
$ firewall-cmd --reload #重新加载命令或者配置文件
success
$ firewall-cmd --list-port #端口查询
10050/tcp
#设置完客户端之后,回到zabbix网页版,查看当前主机信息,如果可用性的 zbx 为绿色代表联机成功,那么就可以查询具体项目监控信息
流程:在最上面的查询框输入你要查询的 ip 回车 ——> 然后点击最新数据 ——>选择你要查询的具体项目信息——>点击图形——>选择您要的查询时间—然后就会显示一个效果图
现在常用的报警是邮件报警及钉钉报警(无论配置哪个报警之后都得配置动作,动作配置一次即可实现通用,前提是发送的需求一样)
流程:点击管理—>点击用户—>点击创建用户—>然后根据提示填写用户信息,报警媒介及权限
注:在4选择语言那里,默认是英文,你可以选择中文
流程:点击刚刚创建的那个用户—>点击报警媒介—>点击添加—>根据提示信息添加—>添加完成后点击更新
##zabbix server 安装mailx
$ yum install mailx -y
$ vim /etc/mail.rc
set from=个人邮箱账号
set smtp=smtp.163.com
set smtp-auth-user=个人邮箱账号
set smtp-auth-password=客户端授权密码
set smtp-auth=login
$ echo "zabbix test mail" |mailx -s "zabbix" ********@163.com #测试邮箱
# 添加邮件发送脚本
$ vim /opt/app/zabbix/share/zabbix/alertscripts/sendmail.sh
messages=$(echo $3 | tr '\r\n' '\n')
subject=$(echo $2 | tr '\r\n' '\n')
echo "${messages}" | mailx -s "${subject}" $1 >>/tmp/sendmail.log 2>&1
#授权
$ chown zabbix.zabbix /opt/app/zabbix/share/zabbix/alertscripts/sendmail.sh
$ chmod +x /opt/app/zabbix/share/zabbix/alertscripts/sendmail.sh
$ chmod 777 /tmp/sendmail.log
#指定脚本放置目录,不然脚本运行不了
$ vim /opt/app/zabbix/etc/zabbix_server.conf
AlertScriptsPath=/opt/app/zabbix/share/zabbix/alertscripts/
$ /opt/app/zabbix/share/zabbix/alertscripts/sendmail.sh 你的邮箱 zabbix #测试
#zabbix页面操作
(报警媒介设置)流程:点击管理—>点击报警媒介类型—>点击创建媒体类型—>然后根据如下信息填写
脚本名称:就是你刚刚在server端创建的那个脚本
3个参数(是zabbix内置宏):
{ALERT.SENDTO} #定义接收人
{ALERT.SUBJECT} #定义消息标题
{ALERT.MESSAGE} #定义消息内容
#上面的部署完毕你可以直接跳到配置动作那个章节了
1.首先在钉钉建立测试群组,添加钉钉群机器人,获取webhook地址
2.添加钉钉报警脚本
vim /opt/app/zabbix/share/zabbix/alertscripts/ding.py
#!/usr/bin/python
# -*- coding: utf-8 -*-
import requests
import json
import sys
import os
import ConfigParser
headers = {'Content-Type': 'application/json;charset=utf-8'}
content={}
def msg(text,call,api_url,All=False):
json_text= {
"msgtype": "text",
"text": {
"content": text
},
"at": {
"atMobiles": call,
"isAtAll": All
}
}
print requests.post(api_url,json.dumps(json_text),headers=headers).content
if __name__ == '__main__':
textemp,text = sys.argv[1],''
l1=textemp.split('\n')
for i in l1:
if i:
text=text+i+'\n'
#text = '{_text} ' .format(_text=text)
send_to = sys.argv[2]
config = ConfigParser.ConfigParser()
config.read('/opt/app/zabbix/etc/alert.conf')
if send_to in config.sections():
call = config.get(send_to,'user').split(' ')
api_url = config.get(send_to,'url')
All = config.get(send_to,'All')
else:
print('the group is not existed')
msg(text,call,api_url,All)
3.创建/opt/app/zabbix/etc/alert.conf 文件
[test]
user = 钉钉用户手机号码
url= 获取的webhook地址
All = True
4.测试
$ chmod +x /opt/app/zabbix/share/zabbix/alertscripts/ding.py
$ python /opt/app/zabbix/share/zabbix/alertscripts/ding.py “监控报警测试” test
报错:ImportError: No module named requests
解决:yum install python-requests -y
5.返回zabbix server web界面 —>点击管理 —>点击报警媒介—>点击创建报警媒介—>
注:设置报警后的触发动作才能进行报警
流程:点击配置—点击动作—点击创建动作(根据提示创建)—>在动作,操作,恢复操作根据下面例子填写
#创建动作 填写触发动作名称—>填写触发的条件—>点击添加(下面是个示例)
#定义告警操作 填写下列信息
【故障】 {HOST.CONN}: {TRIGGER.NAME}
告警主机:{HOSTNAME1} {HOST.IP}
告警主题:{TRIGGER.NAME}
告警级别:{TRIGGER.SEVERITY}
告警时间:{EVENT.DATE} {EVENT.TIME} 持续时间: {EVENT.AGE}
告警详情: {ITEM.NAME1} ({ITEM.KEY1}): {ITEM.VALUE1}
当前状态: {ITEM.LASTVALUE}
#恢复操作 根据如下内容填写
恢复 {HOST.CONN}: {TRIGGER.NAME}
【恢复】:{HOSTNAME1} {TRIGGER.NAME}
发生时间:{EVENT.DATE} {EVENT.TIME}
恢复时间: {TIME} 持续时间: {EVENT.AGE}
恢复详情: {ITEM.NAME1} ({ITEM.KEY1}): {ITEM.VALUE1}
当前状态: {TRIGGER.STATUS}: {ITEM.LASTVALUE}
#当动作,操作,恢复操作都添加的后,点击添加即可,然后出现最终的操作项
测试:看它恢复后有没有报警,
$ systemctl restart zabbix-agent #测试机启动了agent客户端 #我的是发送成功了