zabbix邮件告警
这里推荐用阿里云的邮件推送哈。以下分享下几个步骤:
-
注册阿里云账号,开通邮件推送。
-
准备一个域名,随便买一个就行,最低8元一年
-
进入控制台,配置。
4
点击立即开通即可
开通以后我们进入到邮件推送控制台里面来进行设置
找到左侧的发信域名点进去
点击新建域名
把自己的域名添加进去即可:
配置域名,将以下的几条记录添加到dnspod解析,添加完成之后过一分钟验证通过
新建发信地址,并配置smtp密码(复杂密码)
创建发邮件python脚本
[root@linux2019 ~]# vi mail.py
#!/usr/bin/python
#coding:utf-8
import smtplib
from email.mime.text import MIMEText
import sys
mail_user = ‘admin@aibenwoniu.xyz’
mail_pass = ‘yourpasswork’
def send_mail(to_list,subject,content):
me = “zabbix 监控告警平台”+"<"+mail_user+">"
msg = MIMEText(content, ‘plain’, ‘utf-8’)
msg[‘Subject’] = subject
msg[‘From’] = me
msg[‘to’] = to_list
try:
s = smtplib.SMTP("smtpdm.aliyun.com", 25)
s.login(mail_user,mail_pass)
s.sendmail(me,to_list,msg.as_string())
s.close()
return True
except Exception,e:
print str(e)
return False
if name == “main”:
send_mail(sys.argv[1], sys.argv[2], sys.argv[3])
[root@linux2019 ~]# chmod 755 mail.py
[root@linux2019 ~]# python mail.py 1370141703@qq.com “测试邮件”
[root@linux2019 ~]# vim /etc/zabbix/zabbix_server.conf
找到放置发送告警的邮件位置:AlertScriptsPath=/usr/lib/zabbix/alertscripts
root@linux2019 ~]# mv mail.py /usr/lib/zabbix/alertscripts/ #确保脚本拥有755权限
设置邮件接收地址
注意权限的分配,一般新建的用户默认没有权限,需要手动添加,通过指定用户类型
配置动作
注意添加条件
模拟测试网卡流量告警
修改网卡流量的触发器
这样我们等着zabbix触发警告给我们就可以了
zabbix监控nginx
在aminglinux02上安装Nginx
编辑yum仓库:
vi /etc/yum.repos.d/nginx.repo
粘贴:
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
安装:
yum install -y nginx
配置Nginx状态信息
vi /etc/nginx/conf.d/default.conf #增加
location /nginx_status
{
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
测试
curl http://127.0.0.1/nginx_status
编写监控脚本
vi /usr/local/sbin/ngx_status.sh #内容如下
#!/bin/bash
url=“http://127.0.0.1/nginx_status”
curl=/usr/bin/curl
检测nginx进程是否存在
function ping {
/sbin/pidof nginx | wc -l
}
检测nginx性能
function active {
$curl $url 2>/dev/null| grep ‘Active’ | awk ‘{print $NF}’
}
function reading {
$curl $url 2>/dev/null| grep ‘Reading’ | awk ‘{print $2}’
}
function writing {
$curl $url 2>/dev/null| grep ‘Writing’ | awk ‘{print $4}’
}
function waiting {
$curl $url 2>/dev/null| grep ‘Waiting’ | awk ‘{print $6}’
}
function accepts {
$curl $url 2>/dev/null| awk NR3 | awk ‘{print $1}’
}
function handled {
$curl $url 2>/dev/null| awk NR3 | awk ‘{print $2}’
}
function requests {
$curl $url 2>/dev/null| awk NR==3 | awk ‘{print $3}’
}
$1
chmod 755 /usr/local/sbin/ngx_status.sh
编辑zabbix_agent.conf
vi /etc/zabbix/zabbix_agentd.conf # 增加
UserParameter=nginx.status[*],/usr/local/sbin/ngx_status.sh $1
重启服务
systemctl restart zabbix-agent
zabbix_get 测试
在服务端执行
zabbix_get -s 192.168.222.129 -k 'nginx.status[accepts]
导入nginx模板
下载模板 https://github.com/aminglinux/linux2019/blob/master/zabbix_nginx_template/zbx_export_templates.xml
Configuration -> Templates -> 右上角Import
链接模板
Configuration -> Hosts -> aminglinux02 -> Templates -> Select -> Add -> Update