Linux部署zabbix
作者:互联网
zabbix监控服务架构模型
安装部署zabbix监控架构 部署环境: 系统:Centos7 web应用:Nginx php 72 mariadb 安装部署服务端 配置源 rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm 安装服务端与客户端 yum install zabbix-server-mysql zabbix-agent -y 单独配置前端源,并安装 yum install centos-release-scl -y # 修改/etc/yum.repos.d/zabbix.repo [zabbix-frontend] enabled=1 # 安装前端包 yum install zabbix-web-mysql-scl zabbix-nginx-conf-scl -y 准备数据库环境 安装数据库mysql或mariadb yum install mariadb-server -y systemctl start mariadb-server 创建zabbix业务库 te database zabbix character set utf8 collate utf8_bin; 授权zabbix用户 grant all on zabbix.* to zabbix@localhost identified by 'zabbix'; 导入初始化数据 zcat /usr/share/doc/zabbix-server-mysql-5.0.13/create.sql.gz > zabbix.sql 在zabbix.sql首行添加use zabbix; mysql -uzabbix -pzabbix <zabbix.sql< div=""> 配置服务端环境 配置zabbix_server连接数据库 vim /etc/zabbix/zabbix_server.conf DBUser=zabbix DBpasswd=zabbix 配置Nginx vim /etc/opt/rh/rh-nginx116/nginx/conf.d/zabbix.conf server_name ip;(IP可以不填只用默认的) listen 8080;(端口好要更改,不然会有冲突的风险) 配置php listen.acl_users = apache,nginx php_value[date.timezone] = Asia/Shanghai 重启服务 systemctl start zabbix-server zabbix-agent rh-nginx116-nginx.service rh-php72-php-fpm.service 在浏览器访问当前部署的机子的ip:端口号地址即可开始网页安装部署zabbix 添加自定义监控项 当前用户连接数量 首先更改zabbix-agent配置文件 UserParameter=User_num,who |wc -l;{(User_num是键值)键值后面接的命令而不是shell脚本} 在zabbix-agent.d,目录下创建一个key(键值)脚本 vm User_num.sh UserParameter=User_num,who |wc -l; 然后重启zabix-agent 服务 systemctl stop zabbix-agent systemctl start zabbix-agent 后在zabbix web前端添加自定义监控项 配置邮件告警 设置邮箱的POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务密码 配置钉钉告警 准备一个钉钉机器人 添加机器人之后将webhook地址保留 在服务器上编写脚本 cd /usr/lib/zabbix/alertscripts vim dingding.py #!/usr/bin/python #coding:utf-8 #zabbix钉钉报警 import requests,json,sys,os,datetime webhook="https://oapi.dingtalk.com/robot/send?access_token=6c68c760e9864fbeead97ca49ce118871796ec794480e98f67f2bf842f0273f2" #说明:这里改为自己创建的机器人的webhook的值 user=sys.argv[1] text=sys.argv[3] data={ "msgtype": "text", "text": { "content": text }, "at": { "atMobiles": [ user ], "isAtAll": False } } headers = {'Content-Type': 'application/json'} x=requests.post(url=webhook,data=json.dumps(data),headers=headers) if os.path.exists("/tmp/dingding.log"): f=open("/tmp/dingding.log","a+") else: f=open("/tmp/dingding.log","w+") f.write("\n"+"--"*30) if x.json()["errcode"] == 0: f.write("\n"+str(datetime.datetime.now())+" "+str(user)+" "+"发送成功"+"\n"+str(text)) f.close() else: f.write("\n"+str(datetime.datetime.now()) + " " + str(user) + " " + "发送失败" + "\n" + str(text)) f.close() 测试一下脚本 脚本执行成功 zabbix-server web端设置 参数:1.{ALERT.SENDTO} 2. {ALERT.SENDTO}3. {ALERT.MESSAGE} 主题: 故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME} 故障! 内容: 告警主机: {HOSTNAME1} 主机地址: {HOST.IP} 告警等级: {TRIGGER.SEVERITY} 监控项目: {TRIGGER.KEY1} 问题详情: {ITEM.NAME}:{ITEM.VALUE} 当前状态: {TRIGGER.STATUS}: {ITEM.VALUE1} 告警信息: {TRIGGER.NAME} 告警时间: {EVENT.DATE} {EVENT.TIME} 事件ID: {EVENT.ID} 恢复操作 更新操作 添加用户权限
安装部署zabbix监控架构 部署环境: 系统:Centos7 web应用:Nginx php 72 mariadb 安装部署服务端 配置源 rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm 安装服务端与客户端 yum install zabbix-server-mysql zabbix-agent -y 单独配置前端源,并安装 yum install centos-release-scl -y # 修改/etc/yum.repos.d/zabbix.repo [zabbix-frontend] enabled=1 # 安装前端包 yum install zabbix-web-mysql-scl zabbix-nginx-conf-scl -y 准备数据库环境 安装数据库mysql或mariadb yum install mariadb-server -y systemctl start mariadb-server 创建zabbix业务库 te database zabbix character set utf8 collate utf8_bin; 授权zabbix用户 grant all on zabbix.* to zabbix@localhost identified by 'zabbix'; 导入初始化数据 zcat /usr/share/doc/zabbix-server-mysql-5.0.13/create.sql.gz > zabbix.sql 在zabbix.sql首行添加use zabbix; mysql -uzabbix -pzabbix <zabbix.sql< div=""> 配置服务端环境 配置zabbix_server连接数据库 vim /etc/zabbix/zabbix_server.conf DBUser=zabbix DBpasswd=zabbix 配置Nginx vim /etc/opt/rh/rh-nginx116/nginx/conf.d/zabbix.conf server_name ip;(IP可以不填只用默认的) listen 8080;(端口好要更改,不然会有冲突的风险) 配置php listen.acl_users = apache,nginx php_value[date.timezone] = Asia/Shanghai 重启服务 systemctl start zabbix-server zabbix-agent rh-nginx116-nginx.service rh-php72-php-fpm.service 在浏览器访问当前部署的机子的ip:端口号地址即可开始网页安装部署zabbix 添加自定义监控项 当前用户连接数量 首先更改zabbix-agent配置文件 UserParameter=User_num,who |wc -l;{(User_num是键值)键值后面接的命令而不是shell脚本} 在zabbix-agent.d,目录下创建一个key(键值)脚本 vm User_num.sh UserParameter=User_num,who |wc -l; 然后重启zabix-agent 服务 systemctl stop zabbix-agent systemctl start zabbix-agent 后在zabbix web前端添加自定义监控项 配置邮件告警 设置邮箱的POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务密码 配置钉钉告警 准备一个钉钉机器人 添加机器人之后将webhook地址保留 在服务器上编写脚本 cd /usr/lib/zabbix/alertscripts vim dingding.py #!/usr/bin/python #coding:utf-8 #zabbix钉钉报警 import requests,json,sys,os,datetime webhook="https://oapi.dingtalk.com/robot/send?access_token=6c68c760e9864fbeead97ca49ce118871796ec794480e98f67f2bf842f0273f2" #说明:这里改为自己创建的机器人的webhook的值 user=sys.argv[1] text=sys.argv[3] data={ "msgtype": "text", "text": { "content": text }, "at": { "atMobiles": [ user ], "isAtAll": False } } headers = {'Content-Type': 'application/json'} x=requests.post(url=webhook,data=json.dumps(data),headers=headers) if os.path.exists("/tmp/dingding.log"): f=open("/tmp/dingding.log","a+") else: f=open("/tmp/dingding.log","w+") f.write("\n"+"--"*30) if x.json()["errcode"] == 0: f.write("\n"+str(datetime.datetime.now())+" "+str(user)+" "+"发送成功"+"\n"+str(text)) f.close() else: f.write("\n"+str(datetime.datetime.now()) + " " + str(user) + " " + "发送失败" + "\n" + str(text)) f.close() 测试一下脚本 脚本执行成功 zabbix-server web端设置 参数:1.{ALERT.SENDTO} 2. {ALERT.SENDTO}3. {ALERT.MESSAGE} 主题: 故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME} 故障! 内容: 告警主机: {HOSTNAME1} 主机地址: {HOST.IP} 告警等级: {TRIGGER.SEVERITY} 监控项目: {TRIGGER.KEY1} 问题详情: {ITEM.NAME}:{ITEM.VALUE} 当前状态: {TRIGGER.STATUS}: {ITEM.VALUE1} 告警信息: {TRIGGER.NAME} 告警时间: {EVENT.DATE} {EVENT.TIME} 事件ID: {EVENT.ID} 恢复操作 更新操作 添加用户权限
标签:部署,text,agent,server,zabbix,TRIGGER,str,Linux 来源: https://www.cnblogs.com/xfjs/p/16458332.html