1. Zabbix简介

Zabbix 是一个企业级分布式开源监控解决方案。
Zabbix 软件能够监控众多网络参数和服务器的健康度、完整性。Zabbix 使用灵活的告警机制,允许用户为几乎任何事件配置基于邮件的告警。这样用户可以快速响应服务器问题。Zabbix 基于存储的数据提供出色的报表和数据可视化功能。这些功能使得 Zabbix 成为容量规划的理想选择。
Zabbix 支持主动轮询(polling)和被动捕获(trapping)。Zabbix所有的报表、统计数据和配置参数都可以通过基于 Web 的前端页面进行访问。基于 Web 的前端页面确保您可以在任何地方访问您监控的网络状态和服务器健康状况。适当的配置后,Zabbix 可以在监控 IT 基础设施方面发挥重要作用。无论是对于有少量服务器的小型组织,还是拥有大量服务器的大企业而言,同样适用。
Zabbix 是免费的。Zabbix 是根据 GPL 通用公共许可证的第二版编写和发布的。这意味着产品源代码是免费发布的,可供公共使用。
源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件。

2. 主机信息

主机名 服务 IP
zabbix_server zabbix_server、zabbix_agent、mysql 192.168.1.13
zabbix_agent zabbix_agent 192.168.1.15

3. Zabbix监控服务器安装

在zabbix_server主机上操作:

3.1.配置zabbix的yum源

#rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

#yum clean all

3.2.安装zabbix-server 和zabbix-agent

yum install zabbix-server-mysql zabbix-agent

3.3.安装zabbix frontend

yum install centos-release-scl

3.4.编辑配置文件

vi /etc/yum.repos.d/zabbix.repo
[zabbix-frontend]

enabled=1

3.5.安装Zabbix frontend包

yum install zabbix-web-mysql-scl zabbix-apache-conf-scl

3.6.创建初始数据库

在数据库主机上运行以下代码
#mysql -uroot -p
password
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@”%” identified by “zabbix”
mysql> exit;

3.7.导入初始架构和数据

zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix zabbix -p

3.8.为Zabbix server配置数据库

vi /etc/zabbix/zabbix_server.conf 密码为数据库中设置的密码。
DBPassword=Zabbix
DBSocket=/forp/mysql-8.0.23/temp/mysql.sock

3.9.为Zabbix前端配置PHP

vi /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
php_value[date.timezone] = Asia/Shanghai

3.10.启动Zabbix server和agent进程

systemctl start zabbix-server zabbix-agent httpd rh-php72-php-fpm
systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm

3.11.配置Zabbix前端

http://server_ip_or_name/zabbix
点击下一步
OK表示设置正常,点击下一步。
配置完成。登录,默认的账号和密码是Admin/zabbix
设置web页面中文显示

3.12.修改中文乱码问题

点击主机–>图形,会看到有乱码

解决方法
从windows找到楷体字体simkai,搜索楷体即可,windows路径 c盘–>Windows–>Fonts
在zabbix-server上备份zabbix默认字体并且上传新字体
[root@zabbix-server ~]# cd /usr/share/fonts/dejavu/

上传字体,修改名称为DejaVuSans.ttf
[root@zabbix-server dejavu]# mv DejaVuSans.ttf DejaVuSans.ttf.bak
[root@zabbix-server dejavu]# mv simkai.ttf DejaVuSans.ttf
注意字体的权限要让zabbix用户可以读
chmod 644 DejaVuSans.ttf

4. zabbix-agent部署

4.1.Linux系统安装客户端

在zabbix_agent主机上操作:

4.1.1.配置zabbix的yum源

rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

yum clean all

4.1.2.安装zabbix-agent

yum -y install zabbix-agent

4.1.3.修改配置文件

vim /etc/zabbix/zabbix_agentd.conf
Server=191.168.1.13 #改成 监控端的ip 被动模式
ServerActive=191.168.1.13 #改成 监控端的ip 主动模式
Hostname=Zabbix server #把这项注释掉
HostnameItem=system.hostname #把这项注释去掉 (自动获取主机名)
启动zabbix_agent服务
systemctl start zabbix-agent
Systemctl enable zabbix-agent

4.1.4.创建要监控的主机



ZBX为绿代表正常可监控

4.2.Windows系统安装客户端

在windows客户端执行

4.2.1.下载zabbix-agent安装包

Zabbix下载地址:https://www.zabbix.com/download
在D盘新建zabbix文件夹,将下载好的安装包解压到D盘的zabbix下

4.2.2.配置zabbix-agent.conf

找到conf下的配置文件 zabbix_agentd.conf ,修改LogFile、Server、ServerActive 、Hostname这几个参数。具体配置如下:
LogFile=D:\zabbix\zabbix_agentd.log
Server=192.168.1.134 #zabbix-server端地址
ServerActive=192.168.1.134:10051 #zabbix-server端地址
#Hostname=Win-server-2016 #注释掉
HostnameItem=system.hostname #去掉注释,自动获取主机名

4.2.3.zabbix-agent 安装

修改好配置文件后,用CMD(需有管理员权限)将Zabbix Agent安装为Windows系统的服务,在windows控制台下执行以下命令:

D:\zabbix\bin\zabbix_agentd.exe -i -c D:\zabbix\conf\zabbix_agentd.conf
控制台输出信息如下,表示安装成功:
zabbix_agentd.exe [4864]: service [Zabbix Agent] installed successfully
zabbix_agentd.exe [4864]: event source [Zabbix Agent] installed successfully

4.2.4.启动zabbix-agent客户端

C:\zabbix\bin\win64\zabbix_agentd.exe -c C:\zabbix\conf\zabbix_agentd.win.conf -s

4.2.5.查看任务管理器

4.2.6.Windows server 系统防火墙开放10050端口

控制面板–windows 防火墙–高级设置–入站规则–新建规则, 详细步骤参考下图:


根据上图步骤,依次添加,完成入站规则的添加

4.2.7.创建要监控的主机

其中的主机名称和客户端IP请根据实际情况填写。
ZBX为绿代表正常可监控。

5. 设置邮件报警

5.1.安装软件修改配置文件

yum -y install mailx
vi /etc/mail.rc
set from=sws@forp.cn
set smtp=smtp.exmail.qq.com
set smtp-auth-user=sws@forp.cn
set smtp-auth-password=Helper666
set smtp-auth=login

5.2.添加Zabbix服务端邮件发送脚本

cd /usr/lib/zabbix/alertscripts/ 进入脚本存放目录
vi sendmail.sh
#!/bin/sh
echo ‘start’ >> /tmp/zabbix.log
messages=echo $3 | tr '\r\n' '\n'
subject=echo $2 | tr '\r\n' '\n'
echo “messages"∣mail−s"{messages}" | mail -s "messages"∣mail−s"{subject}” 1echo"1 echo "1echo"{messages}" >> /tmp/zabbix.log
echo “end” >> /tmp/zabbix.log
date >> /tmp/zabbix.log
echo ‘-------------’ >> /tmp/zabbix.log
设置脚本所有者为zabbix用户
chown zabbix:zabbix sendmail.sh
设置脚本执行权限
chmod +x sendmail.sh

5.3.添加报警媒介

5.4.添加到用户

5.5.创建触发器(添加动作)

6. 配置微信告警功能

6.1.注册微信企业号,配置相关人员和应用

选择“通讯录”,添加一个部门,并新增一个成员,成员添加完之后,成员需关注你注册的企业号。

新建一个zabbix告警的”消息型“应用,如下:
配置应用的相关权限,让你应用对你的组及成员可见。记录CorpID和Secret的值。

6.2.zabbix配置wechat.py脚本,并测试脚本可用

安装simplejson
#wget https://pypi.python.org/packages/f0/07/26b519e6ebb03c2a74989f7571e6ae6b82e9d7d81b8de6fcdbfc643c7b58/simplejson-3.8.2.tar.gz
#tar zxvf simplejson-3.8.2.tar.gz
#cd simplejson-3.8.2
#python setup.py build
#python setup.py install
进入zabbix的脚本目录
#cd /usr/lib/zabbix/alertscripts/
#git clone https://github.com/X-Mars/Zabbix-Alert-WeChat.git
#cp Zabbix-Alert-WeChat/wechat.py /usr/lib/zabbix/alertscripts/
#chmod +x wechat.py

6.3.根据注释提示修改脚本

使用之前记录的CorpID和Secret
#!/usr/bin/python
#_coding:utf-8 _

import urllib,urllib2
import json
import sys
import simplejson
reload(sys)
sys.setdefaultencoding(‘utf-8’)
def gettoken(corpid,corpsecret):
gettoken_url = ‘https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=’ + corpid + ‘&corpsecret=’ + corpsecret
print gettoken_url
try:
token_file = urllib2.urlopen(gettoken_url)
except urllib2.HTTPError as e:
print e.code
print e.read().decode(“utf8”)
sys.exit()
token_data = token_file.read().decode(‘utf-8’)
token_json = json.loads(token_data)
token_json.keys()
token = token_json[‘access_token’]
return token
def senddata(access_token,user,subject,content):

send_url = ‘https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=’ + access_token
send_values = {
“touser”:“weixin”, #企业号中的用户帐号,在zabbix用户Media中配置,如果配置不正常,将按部门发送。
“toparty”:“2”, #企业号中的部门id。
“msgtype”:“text”, #消息类型。
“agentid”:“1”, #企业号中的应用id。
“text”:{
“content”:subject + ‘\n’ + content
},
“safe”:“0”
}
#send_data = json.dumps(send_values, ensure_ascii=False)
send_data = simplejson.dumps(send_values, ensure_ascii=False).encode(‘utf-8’)
send_request = urllib2.Request(send_url, send_data)
response = json.loads(urllib2.urlopen(send_request).read())
print str(response)

if name == ‘main’:
user = str(sys.argv[1]) #zabbix传过来的第一个参数
subject = str(sys.argv[2]) #zabbix传过来的第二个参数
content = str(sys.argv[3]) #zabbix传过来的第三个参数
corpid = ‘wx55e2936995a90a90’ #CorpID是企业号的标识
corpsecret = ‘CvHI0Jko3qsvv1XkEufWDWSWQj-1a5iuPpw-lcVcFze8yHFgcrBTDSFTFQ6lzPQq’ #corpsecretSecret是管理组凭证密钥
accesstoken = gettoken(corpid,corpsecret)
senddata(accesstoken,user,subject,content)

6.4.测试脚本是否可用

[root@zabbix-server alertscripts]# ./wechat.py test test message
https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=ww2b6c88112f22f05a&corpsecret=7E19pTE9QRICouULJ4v2EDItL0u5IqBU0H7xq4ME3SM
{u’invaliduser’: u’admin’, u’errcode’: 0, u’errmsg’: u’ok’}
提示消息发送成功,查看微信消息可看到相关的测试信息:

6.5.zabbix web前端配置微信告警媒介与动作

新增告警媒介,如下:

6.6.创建用户weixin


报警媒介

权限

6.7.添加告警动作

6.8.测试微信告警功能

手动停止zabbix-agent上的mysql服务,测试是否会收到消息
能收到微信,启动mysql服务后同样能收到告警恢复的消息,表示微信告警功能正常。

7. 使用zabbix 自带key 监控 应用

思路1:通过监测应用的端口是否挂掉来判断该端口对应的应用是否挂掉。
思路2:如果一个进程没有监听端口(即每次服务启动,生成的端口都不固定),则可以直接监测应用的进程,来判断应用有没有挂
以191.168.1.15这台服务器的mysql服务为例:

7.1.思路1 — 通过监控端口方式

配置 —> 主机:191.168.1.15 —> 监控项 —> 创建监控项
根据自己需求填写 监控项参数
配置 —> 主机: 191.168.1.15 ----> 触发器 ----> 创建触发器

7.2.思路2 — 通过监控进程方式

如果一个进程没有监听端口,则可以使用如下 key
key: proc.num[,,,]
通过某用户执行,某进程状态,进程名称来统计进程的数量
name: 是进程名称(默认“all processes”)
user: 运行该进程的用户名(默认"all user")
state: 进程状态(默认"all"), 可选:run, sleep, zomb
cmdline: 该项内容是模糊匹配,命令行过滤(支持正则表达式)
注:name 匹配可能不是很准,一般根据cmdline来匹配进程
先在zabbix 服务端通过 zabbix_get 测一下(不要在zabbix agent端 使用zabbix_agent 命令去测)
mysql服务关闭后
[root@zabbix_server ~]# zabbix_get -s 191.168.1.15 -k proc.num[,mysql,all,mysql]
0
[root@zabbix_server ~]# zabbix_get -s 191.168.1.15 -k proc.num[,mysql]
0
mysql服务启动后
[root@zabbix_server ~]# zabbix_get -s 191.168.1.15 -k proc.num[,mysql,all,mysql]
1
[root@zabbix_server ~]# zabbix_get -s 191.168.1.15 -k proc.num[,mysql]
1
配置 —> 主机:191.168.1.15 —> 监控项 —> 创建监控项

创建触发器
配置 —> 主机: 191.168.1.15 ----> 触发器 ----> 创建触发器

zabbix部署、设置邮件和微信告警相关推荐

  1. 在zabbix中实现发送带有图片的邮件和微信告警

    微信公众号:运维开发故事,作者:double冬 1 python实现在4.2版本zabbix发送带有图片的报警邮件 我们通常收到的报警,都是文字,是把动作中的消息内容当成了正文参数传给脚本,然后邮件或 ...

  2. Zabbix后续,邮件+企业微信监控

    本文是上一篇zabbix安装配置的后续,主要介绍配合通讯工具实时监控 使用公网邮箱发送邮件 邮件系统简要介绍: 电子邮件系统包括两个组件:MUA(Mail User Agent,邮件用户代理)和MTA ...

  3. 使用 Prometheus 实现邮件/企业微信告警

    一.安装 AlterManager 如果没有安装 Prometheus 以及监控客户端的话,可以看博主前面的文章:Prometheus(普罗米修斯)监控系统 [root@k8s-master01 ~] ...

  4. nginx正向代理https,zabbix内网实现企业微信告警

    1.首先给nginx添加模块ngx_http_proxy_connect_module模块主要用于隧道SSL请求的代理服务器 模块下载地址: https://github.com/chobits/ng ...

  5. Zabbix设置邮件告警+企业微信告警

    一.告警流程 首先要创建模板 在模板中创建触发器和监控项 创建监控项 创建触发器 1.1添加报警媒介 1.2声音设置 1.3创建用户 1.4配置动作 为触发器 系统用户登录数大于3 添加动作 1.5配 ...

  6. Zabbix 系统监控(三)VMware 虚拟平台监控、邮件告警、企业微信告警配置

    Vmware 虚拟平台监控.邮件告警.企业微信告警配置 8 Vmware 虚拟平台监控 阅读 zabbix 官方文档,官方提供了 Vmware 虚拟机监控模板,并对模板进行了解释说明,但未对相应名词做 ...

  7. Zabbix部署及微信告警功能

    大学毕业设计写的是关于Zabbix微信告警功能的设计与实现,因为某明星得瑟,高校严控查重率,所以我的毕业论文,虽然查重率比较低,但是还是感觉写的东西太少,不够专业,为了以后还能记住,特意写几篇文章记录 ...

  8. linux上配置zabbix并设置企业微信,机器人以及自主告警

    linux上配置zabbix并设置企业微信,机器人以及自主告警 配置lamp 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 linux上配置zabbix并设置企业微信,机 ...

  9. 用Zabbix部署onalert云告警平台

    一.用邮件接收告警 1.安装mailx [root@server1 ~]# yum install -y mailx 2.给自己发邮件 [root@server1 ~]# mail root Subj ...

最新文章

  1. 马斯克卫星互联网开测:最快60M,高清视频网游都OK,先造福偏远农村
  2. conda env环境配置
  3. Windows Phone 7 Tips (4)
  4. 美国诚实签经验——中英文行程单、往返机票、用英语面试的申请者通过率用中文面试的申请者的通过率、一直保持着微笑,看上去很自信,也很诚恳、户口簿带上最好...
  5. Java实现正整数数组的最小拼接数
  6. 给学习java web新手们的建议和推荐一些书籍
  7. 4.9.5 通用注释
  8. 27 构造连续的ICMP数据包
  9. tf 设置多显卡_海美迪H7四代解码4k hdr局域网教程,用TF卡双启动libreELEC成功
  10. Kotlin学习:标准函数(Standard.kt),run()、with()...
  11. 【vue】ramda.js在vue中的使用
  12. 比值法判定无穷级数收敛/发散性质MATLAB
  13. 深空摄影系列教程(昴星团摄星队)笔记
  14. 致力乡村振兴 从玉农业-林裕豪:中国金控优势强化政企合作
  15. 百度网盘限速代理下载工具
  16. 华为外包项目的测试流程
  17. dd大牛的背包九讲-背包问题汇总
  18. No6-6.从零搭建spring-cloud-alibaba微服务框架,添加用户鉴权逻辑,动态数据权限(使用AOP实现)等(六,no6-6)
  19. 2018网络工程师-倪奕文-专题视频课程
  20. 计算机物联网专业排名,物联网专业排名

热门文章

  1. 使用canvas绘制路线图
  2. excel 无法编辑单元格,忘记保护密码,怎么撤销保护密码
  3. 使用SSD和USB安装Windows Linux双系统
  4. 金山快盘 你不得不用的网络硬盘
  5. matlab定义双精度型变量_Matlab变量及运算(常用数据类型、数值型、整型数据、浮点数、复数、字符与字符串、细胞数组)...
  6. NodeJs入门常见模块
  7. python 通过openpyxl来操作Excel文件(一 ):读取Excel文件
  8. 无人驾驶前沿~CCF-GAIR 2019--港科大自主驾驶中心主任刘明~《低速无人驾驶系统的应用关键要素》学习记录
  9. 关于网站被强制跳转博彩棋牌网站的解决方法
  10. 计算机组成原理汇编答案许洁,许萍