zabbix(二)
监控组件之间的关系
微信报警
第一步: 注册企业微信
企业微信注册网址(如果有直接登陆即可)
https://work.weixin.qq.com
API接口文档
https://work.weixin.qq.com/api/doc#90000/90003/90487
在企业微信中需要获取知道的信息
- CorpID(获取方法:企业微信中我的企业 -> 企业信息)
- User(获取方法:企业微信中通信录点击要接收消息者的名字)
- Partyid(获取方法:企业微信中通信录左侧部门的选择按钮显示部门ID)[群发时需要]
- Agentid(获取方法:在企业微信中企业用用中创建自建应用中,所以微信监控需要在微信企业中自建一个应用)
- Secret(获取方法:同 Agentid)
第二步: 准备python脚本
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import requests
import sys
import os
import json
import logging
logging.basicConfig(level=logging.DEBUG,
format='%(asctime)s, %(filename)s %(levelname)s %(message)s',
datefmt='%a, %d %b %Y %H:%M:%S',
filename=os.path.join('/tmp', 'weixin.log'),
filemode='a'
)
# 企业微信id
corpid = 'ww2ae2f5ee2a7764e4'
# app的Secret
appsecret = 'f-J3XOvCyAjtO4FkMTy4w6VzSC423tO8caskhMt8G8A'
# 应用id
agentid = 1000002
# 获取accesstoken
token_url = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=%s&corpsecret=%s' % (corpid, appsecret)
req = requests.get(token_url)
accesstoken = req.json()['access_token']
# 发送消息
msgsend_url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=%s' % accesstoken
touser = sys.argv[1]
subject = sys.argv[2]
message = "%s\n\n%s" % (sys.argv[2], sys.argv[3])
params = {
'touser': touser,
'msgtype': "text",
"agentid": agentid,
"text": {
"content": message
},
"safe": 0
}
req = requests.post(msgsend_url, data=json.dumps(params))
logging.info('sendto: %s;;subject: %s;;message: %s'%(touser, subject, message))
第三步: 配置报警媒介类型为脚本
参考文档: https://www.zabbix.com/documentation/3.0/manual/introduction/whatsnew300
第四步: 设置收件人
创建自定义图形
第一步: 替换zabbix的字体文件
- 找到zabbix的站点目录
$ grep -Ev '^$|#' /etc/httpd/conf.d/zabbix.conf
Alias /zabbix /usr/share/zabbix
<Directory "/usr/share/zabbix">
Options FollowSymLinks
AllowOverride None
Require all granted
<IfModule mod_php5.c>
php_value max_execution_time 300
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300
php_value max_input_vars 10000
php_value always_populate_raw_post_data -1
php_value date.timezone Asia/Shanghai
</IfModule>
</Directory>
<Directory "/usr/share/zabbix/conf">
Require all denied
</Directory>
<Directory "/usr/share/zabbix/app">
Require all denied
</Directory>
<Directory "/usr/share/zabbix/include">
Require all denied
</Directory>
<Directory "/usr/share/zabbix/local">
Require all denied
</Directory>
- 找到字体文件
$ find /usr/share/zabbix/ -name '*.ttf'
/usr/share/zabbix/fonts/graphfont.ttf
$ ll /usr/share/zabbix/fonts/graphfont.ttf
lrwxrwxrwx. 1 root root 33 11月 24 15:17 /usr/share/zabbix/fonts/graphfont.ttf -> /etc/alternatives/zabbix-web-font
$ ll /etc/alternatives/zabbix-web-font
lrwxrwxrwx. 1 root root 38 11月 24 15:17 /etc/alternatives/zabbix-web-font -> /usr/share/fonts/dejavu/DejaVuSans.ttf
$ ll /usr/share/fonts/dejavu/DejaVuSans.ttf
-rw-r--r--. 1 root root 720012 2月 27 2011 /usr/share/fonts/dejavu/DejaVuSans.ttf
- 使用中文字体替代
$ cd /usr/share/fonts/dejavu/
$ mv DejaVuSans.ttf DejaVuSans.ttf.bak
$ mv msyh.ttc DejaVuSans.ttf
第二步: 创建图形
- 配置-主机-图形-创建图形
- 添加监控项
-
查看图形
检测中-图形-tps
自定义模板
tcp三次握手
ddos(分布式dos攻击)如何防护
- 物理机房会预留20%带宽, 临时加入这些带宽, 可以清洗ddos, 如果这些带宽满了, idc机房管理员会封掉当前被攻击的服务器的IP
- 买硬件防火墙, 硬件防火墙有拦截ddos的功能
- 买高防IP
- WAF: Web Access Firewall 基于openresty搭建应用防火墙
tcp四次挥手
监控tcp的11种状态的模板
应用模板的步骤
- 上传agent的配置文件
/etc/zabbix/zabbix_agentd.d/
- 重启服务,
systemctl restart zabbix-agent
- 导入模板
- 给要添加监控的主机链接模板