Centos 7:zabbix自动发现、自定义监控项、邮件报警~~~

参考博客:https://blog.csdn.net/li_shi_heng/article/details/111873199
准备测试环境为centos 7

192.168.124.177192.168.124.178
zabbix-serverzabbix-agent

安装zabbix-server
首先上传一个zabbix的源
名字

zabbix_Aliyun.repo

内容为

[zabbix]
name=Zabbix Official Repository - $basearch
baseurl=http://mirrors.aliyun.com/zabbix/zabbix/4.2/rhel/7/$basearch/
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591

[zabbix-debuginfo]
name=Zabbix Official Repository debuginfo - $basearch
baseurl=http://mirrors.aliyun.com/zabbix/zabbix/4.2/rhel/7/$basearch/debuginfo/
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
gpgcheck=0

[zabbix-non-supported]
name=Zabbix Official Repository non-supported - $basearch
baseurl=http://mirrors.aliyun.com/zabbix/non-supported/rhel/7/$basearch/
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
gpgcheck=0

把他复制到yum源里

mv zabbix_Aliyun.repo /etc/yum.repos.d/

开始yum安装zabbix-server

yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent mariadb mariadb-server

装完后启动并进入数据库

systemctl start mariadb
mysql
MariaDB [(none)]> create database zabbix charset utf8;
MariaDB [(none)]> grant all on zabbix.* to zabbix@'localhost' identified by'zabbix';

在退出数据库吧数据导入新创建的库里

[root@localhost ~]# zcat /usr/share/doc/zabbix-server-mysql-4.2.8/create.sql.gz  | mysql -uzabbix -pzabbix zabbix

然后开始配置zabbix的配置文件

vim /etc/zabbix/zabbix_server.conf

更改内容

100 DBName=zabbix  #创建的库名我用的zabbix所以不用改
116 DBUser=zabbix  #创建用户名
124  DBPassword=zabbix #创建的用户密码

然后退出保存在更改时区

vim /etc/httpd/conf.d/zabbix.conf

20  php_value date.timezone Asia/Shanghai  #改为上海的

保存退出启动即可

[root@localhost ~]# systemctl  start zabbix-agent zabbix-server  httpd  

登录页面测试
在这里插入图片描述
成功然后按着指示安装到这一步的密码指的你创建的密码
在这里插入图片描述
到这一步用户名一般默认为admin或者Admin密码默认一般为zabbix
在这里插入图片描述
改中文
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
查看图像发现有乱码
在这里插入图片描述
修改字符

[root@localhost ~]# cd /usr/share/zabbix/assets/fonts
[root@localhost fonts]# ls
graphfont.ttf

物理机的字体上传上去一个
在这里插入图片描述
覆盖原来的

[root@localhost fonts]# ls
graphfont.ttf  SIMSUN.TTC
[root@localhost fonts]# mv SIMSUN.TTC graphfont.ttf
mv:是否覆盖"graphfont.ttf"? y
[root@localhost fonts]# ls
graphfont.ttf

再次查看

在这里插入图片描述
至此我们的server端安装完毕
开始安装agent端192.168.124.178主机
上传zabbix源并放到/etc/yum.repo下面并安装zabbix-agent

[root@localhost ~]# mv zabbix_Aliyun.repo /etc/yum.repos.d/
[root@localhost ~]# yum -y install zabbix-agent

安装一个nginx并访问两次安装好的跳过此步

[root@localhost ~]# yum -y install gcc gcc-c++ pcre-devel openssl-devel #装依赖
[root@localhost ~]# ls
anaconda-ks.cfg  nginx-1.12.2.tar.gz
[root@localhost ~]# tar xf nginx-1.12.2.tar.gz  #解包
[root@localhost ~]# cd nginx-1.12.2/      #进入目录
[root@localhost nginx-1.12.2]# ./configure && make && make install #编译安装
[root@localhost nginx-1.12.2]# /usr/local/nginx/sbin/nginx  #启动
[root@localhost nginx-1.12.2]# curl -I 192.168.124.178  #模拟访问


修改配置文件连接server端并简单的创建一个检测nginx的pv和uv的键值

[root@localhost ~]# vim /etc/zabbix/zabbix_agentd.conf
98 Server=192.168.124.177  #改为server端的ip
139 ServerActive=192.168.124.178  #改为server端的ip

保存退出后在一下目录下写脚本

[root@localhost zabbix]# mkdir nginx
[root@localhost nginx]# pwd
/etc/zabbix/nginx
[root@localhost nginx]# vim  nginx.sh

脚本内容

#!/bin/bash
lu=/usr/local/nginx/logs/access.log

case $1 in
pv)
cat $lu | wc -l
;;
uv)
cat $lu | awk '{print $1}' | sort | uniq | wc -l
;;
*)
echo "输入有误"
esac

测试一下是否可用

[root@localhost nginx]# sh nginx.sh pv
2

脚本没问题开始配置配置文件让这个脚本用于zabbix上

[root@localhost ~]# vim /etc/zabbix/zabbix_agentd.conf
287 UnsafeUserParameters=0  #去掉注释
296 UserParameter=296 UserParameter=nginx.status[*],/etc/zabbix/nginx/nginx.sh $1

UserParameter=nginx.status[*],/etc/zabbix/nginx/nginx.sh $1
解释一下这句nginx.status这个名字可以随意起是键值名字【】里的星号代表变量,逗号后面是跟的脚本路径$1是交互输入的一个变量。

给这个脚本一个执行权限

[root@localhost ~]# chmod +x /etc/zabbix/nginx/nginx.sh

然后在server端下载一个工具测试一下

 yum -y install zabbix-get
 [root@localhost ~]# zabbix_get -s 192.168.124.178 -k nginx.status[pv]
2

这说明这个键值创建成功。
开始配置主机的自动发现
在这里插入图片描述
开始创建发现规则
在这里插入图片描述
规则创建完后设置动作
在这里插入图片描述
进来后开始创建
在这里插入图片描述
然后
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
到这自动发现主机完毕
在这里插入图片描述
把我们创建的nginx的pv和uv创建成模板
在这里插入图片描述
给模板起名字
在这里插入图片描述
创建监控项
在这里插入图片描述
在这里插入图片描述
加入监控pv
在这里插入图片描述
加入监控uv
在这里插入图片描述
检测端口存活
在这里插入图片描述
然后添加触发器
在这里插入图片描述
开始创建
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
然后添加恢复的数值
在这里插入图片描述
在添加图形化
在这里插入图片描述
在这里插入图片描述

把创建好的模板加入进去也可以先创建模板在添加主机
在这里插入图片描述
在这里插入图片描述
查看图形
在这里插入图片描述
然后设置邮件报警
上传一个报警脚本在server端并给执行权限

[root@localhost ~]# mv baojing.py /usr/lib/zabbix/alertscripts/
[root@localhost ~]# chmod +x  /usr/lib/zabbix/alertscripts/baojing.py

报警文件的内容

#!/usr/bin/python
# _*_ coding:utf-8 _*_

import smtplib, sys
from email.mime.text import MIMEText
from email.utils import formataddr


def send_mail(to_email, subject, message):
    # 邮箱地址和邮箱密码
    my_sender = 'qq邮箱'
    my_pass = 'qq的邮箱授权吗'
    my_user = to_email

    # 发送邮件的信息主体,发件人,收件人,内容
    msg = MIMEText(message, 'plain', 'utf-8')
    msg['From'] = formataddr(["Zabbix", my_sender])
    msg['To'] = formataddr(["Ops", my_user])
    msg['Subject'] = subject

    # 发送邮件
    server = smtplib.SMTP_SSL("smtp.qq.com", 465)
    server.login(my_sender, my_pass)
    server.sendmail(my_sender, [my_user, ], msg.as_string())
    server.quit()


if __name__ == '__main__':
    send_mail(sys.argv[1], sys.argv[2], sys.argv[3])

然后报警媒介
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
配置动作
在这里插入图片描述
在这里插入图片描述
动作之后创建操作
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
至此邮件报警配置完毕测试一下

[root@localhost ~]# /usr/local/nginx/sbin/nginx -s stop

发送成功
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值