系统相关
首页 > 系统相关> > Linux部署zabbix

Linux部署zabbix

作者:互联网

zabbix监控服务架构模型
  0 安装部署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配置文件 0 UserParameter=User_num,who |wc -l;{(User_num是键值)键值后面接的命令而不是shell脚本} 在zabbix-agent.d,目录下创建一个key(键值)脚本 vm User_num.sh 0 UserParameter=User_num,who |wc -l; 然后重启zabix-agent 服务 systemctl stop zabbix-agent systemctl start zabbix-agent 后在zabbix web前端添加自定义监控项 0 0     配置邮件告警   0   0 设置邮箱的POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务密码 0 配置钉钉告警 准备一个钉钉机器人   0   0   0 0   0 添加机器人之后将webhook地址保留   0 在服务器上编写脚本 cd /usr/lib/zabbix/alertscripts vim dingding.py 0   #!/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() 测试一下脚本 0 0 脚本执行成功 zabbix-server web端设置 0 参数:1.{ALERT.SENDTO} 2. {ALERT.SENDTO}3. {ALERT.MESSAGE} 0 0 0 0 主题: 故障{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} 0 恢复操作 0 更新操作 0 添加用户权限 0 0 0  

标签:部署,text,agent,server,zabbix,TRIGGER,str,Linux
来源: https://www.cnblogs.com/xfjs/p/16458332.html