阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Zabbix3.4.8搭建及邮件微信告警实现

142次阅读
没有评论

共计 17820 个字符,预计需要花费 45 分钟才能阅读完成。

配置:

主机
ip
操作系统
zabbix 版本
mysql 版本
zabbix-server172.27.9.63CentOS7.3.1611

zabbix_server (Zabbix) 3.4.8

5.7.21
zabbix-agent172.27.9.65Centos7.3.1611

zabbix_agentd (daemon) (Zabbix) 3.4.8

/

Server 端:

1. 安装源码库配置部署包

这个部署包包含了 yum 配置文件:

[root@zabbix-server ~]#  rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm

2. 安装 Zabbix-server 部署包

[root@zabbix-server ~]# yum -y install zabbix-server-mysql zabbix-web-mysql

Zabbix3.4.8 搭建及邮件微信告警实现

3. 安装初始化数据库

3.1 下载并安装 MySQL 官方的 Yum Repository

[root@zabbix-server zabbix-server-mysql-3.4.8]# rpm -ivh https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

3.2 查看当前可用的 Mysql 安装源

[root@zabbix-server ~]# yum repolist enabled | grep “mysql.*-community.*”
mysql-connectors-community/x86_64 MySQL Connectors Community                  45
mysql-tools-community/x86_64      MySQL Tools Community                      59
mysql57-community/x86_64          MySQL 5.7 Community Server                247 

3.3 安装 MySQL 数据库

[root@zabbix-server ~]# yum -y install mysql-community-server 

总下载量:204 M,请耐心等待。

Zabbix3.4.8 搭建及邮件微信告警实现安装完成,系统自带的 mariadb 被覆盖。

3.4 启动 mysql 服务并设置开机启动

[root@zabbix-server ~]# systemctl start mysqld.service
[root@zabbix-server ~]# systemctl enable mysqld.service 

3.5 登陆 mysql

安装好后,会在 my.cnf 文件中自动生成一个密码

[root@zabbix-server ~]# cat /var/log/mysqld.log | grep password
2018-04-17T16:12:53.340149Z 1 [Note] A temporary password is generated for root@localhost: +)pIf#FAu1%D
[root@zabbix-server ~]# mysql -uroot -p 

输入密码“+)pIf#FAu1%D”

登录数据库后需首先重置密码才能进行后续操作。修改密码如下(注意密码规则,此处不详谈):

mysql>  set password = password(‘Mysql123!’);
Query OK, 0 rows affected, 1 warning (0.03 sec) 

3.6 创建数据库和 zabbix 用户并授权

mysql> create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (10.03 sec)
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by ‘Zabbix123!’;
Query OK, 0 rows affected, 1 warning (0.00 sec) 

3.7 导入初始架构(Schema)和数据

[root@zabbix-server ~]# cd /usr/share/doc/zabbix-server-mysql-3.4.8/
[root@zabbix-server zabbix-server-mysql-3.4.8]# zcat create.sql.gz | mysql -uzabbix -pZabbix123! -D zabbix
mysql: [Warning] Using a password on the command line interface can be insecure.

执行过程中会有一个关于密码的告警,忽略。

查看执行结果:

Zabbix3.4.8 搭建及邮件微信告警实现Zabbix3.4.8 搭建及邮件微信告警实现

4. 启动 Zabbix Server 进程

4.1 在 zabbix_server.conf 中编辑数据库配置

修改或者解注释如下参数:

[root@zabbix-server ~]# view /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=Zabbix123!

4.2 修改 zabbix 安装目录属主和权限

[root@zabbix-server ~]# chown -R zabbix:zabbix /etc/zabbix/
[root@zabbix-server ~]# chmod -R 755 /etc/zabbix/

4.3 启动 zabbix-server 服务,并设置开机自启

[root@zabbix-server ~]# systemctl start zabbix-server
[root@zabbix-server ~]# systemctl enable zabbix-server

5. 编辑 Zabbix 前端的 PHP 配置

Zabbix 前端的 Apache 配置文件位于 /etc/httpd/conf.d/zabbix.conf。一些 PHP 设置已经完成了配置。

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 always_populate_raw_post_data -1
# php_value date.timezone Europe/Riga

5.1 去掉时区前的 #号并修改为 Asia/Shanghai:

php_value date.timezone Asia/Shanghai

5.2 启动 apache 服务,并设置开机自启

[root@zabbix-server ~]# systemctl restart httpd
[root@zabbix-server ~]# systemctl enable httpd

6. 登陆 zabbix

访问地址:http://172.27.9.63/zabbix

Zabbix3.4.8 搭建及邮件微信告警实现

下一步:

Zabbix3.4.8 搭建及邮件微信告警实现

下一步:

Zabbix3.4.8 搭建及邮件微信告警实现

输入密码“Zabbix123!”,下一步:

Zabbix3.4.8 搭建及邮件微信告警实现

name 可以不填,host 和 port 默认,下一步:

Zabbix3.4.8 搭建及邮件微信告警实现

信息汇总确认,下一步:

Zabbix3.4.8 搭建及邮件微信告警实现

安装完成,单击‘Finish’,跳转至如下界面:

Zabbix3.4.8 搭建及邮件微信告警实现

初始用户名密码为 ’Admin/zabbix’。

agent 端:

1. 安装源码库配置部署包

这个部署包包含了 yum 配置文件:

[root@zabbix-agent ~]# rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm

2. 安装 Zabbix-agent 部署包

[root@zabbix-agent ~]# yum -y install zabbix-agent

安装完毕:

Zabbix3.4.8 搭建及邮件微信告警实现

3.启动 Zabbix Agent 进程

3.1 配置 zabbxi-agent

[root@zabbix-agent ~]# sed -i ‘s/^ *Server=127.0.0.1/Server=172.27.9.63/g’ /etc/zabbix/zabbix_agentd.conf
[root@zabbix-agent ~]#  sed -i ‘s/^ *ServerActive=127.0.0.1/ServerActive=172.27.9.63/g’ /etc/zabbix/zabbix_agentd.conf
[root@zabbix-agent ~]#  sed -i ‘s/^ *Hostname=Zabbix server/Hostname=172.27.9.65/g’ /etc/zabbix/zabbix_agentd.conf

Server: 被动模式, 允许哪台机器连接到 aget。
ServerActive: 主动模式, 向哪台服务器传送数据。

Hostname: 唯一,需与添加主机时‘主机名称’保持一致。

Zabbix agents 可以执行被动和主动两种检查方式。
在 passive check 模式中 agent 应答数据请求,Zabbix server(或者 proxy)询问 agent 数据, 如 CPU 的负载情况,然后 Zabbix agent 回送结果。
Active checks 处理过程将相对复杂。Agent 必须首先从 Zabbix sever 索取监控项列表以进行独立处理,然后周期性地发送新的值给 server。
执行被动或主动检查是通过选择相应的监测项目类型来配置的。

本文选择被动模式,当 zabbix-server 监控主机过多出现性能问题时可考虑主动模式。

3.2 更改 zabbix 安装目录属主和权限

[root@zabbix-agent ~]# chown -R zabbix:zabbix /etc/zabbix
[root@zabbix-agent ~]# chmod -R 755 /etc/zabbix

3.3 启动 zabbix-agent 服务,并设置开机自启

[root@zabbix-agent ~]# systemctl start zabbix-agent
[root@zabbix-agent ~]# systemctl enable zabbix-agent

web 端监控配置

1. 修改语言

默认为界面为英文,修改为中文:

Zabbix3.4.8 搭建及邮件微信告警实现

Zabbix3.4.8 搭建及邮件微信告警实现

2. 新建主机

2.1 增加主机

Zabbix 中的主机(Host)是一个你想要监控的网络实体(物理的,或者虚拟的)。Zabbix 中,对于主机的定义非常灵活。它可以时一台物理服务器,一个网络交换机,一个虚拟机或者一些应用。

Zabbix 中,可以通过配置(Configuration)→ 主机(Hosts)菜单,查看已配置的主机信息。默认已有一个名为 ’Zabbix server’ 的预先定义好的主机。

Zabbix3.4.8 搭建及邮件微信告警实现

主机名称:可以使用字母数字、空格、点”.“、中划线”-“、下划线”_“,必须唯一。与 agent 中配置文件 zabbix_agentd.conf 的‘Hostname’参数保持一致。

可见的名称:显示在网页列表上供展示的名称。

新的群组:为主机新建分组,所有访问权限都分配到主机组,而不是单独的主机。这也是主机需要属于至少一个组的原因。

IP 地址:被监控主机的 ip 地址。

其它配置默认。

2.2 选择模板

Zabbix3.4.8 搭建及邮件微信告警实现

选择模板‘Template OS Linux’,单击‘选择’、‘添加’后‘更新’,同理更新默认的 ’Zabbix server’:

Zabbix3.4.8 搭建及邮件微信告警实现

2.3 更改字符集

选择新建的主机‘zabbix-test-centos7’,查看监控数据‘CPU user time’,选择‘图形’:

Zabbix3.4.8 搭建及邮件微信告警实现

发现乱码:

Zabbix3.4.8 搭建及邮件微信告警实现

在 zabbix-server 端执行如下命令:

[root@zabbix-server ~]# yum -y install wqy-microhei-fonts
[root@zabbix-server ~]# cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf

刷新 web 界面后正常:

Zabbix3.4.8 搭建及邮件微信告警实现

3. 新建监控项

新建监控项为监控主机运行时长,当主机运行时长超过 3 个月(180 天)触发告警(系统默认模板‘Template OS Linux’已有 uptime 的信息,记录主机启动时间)。

3.1agent 端修改被监控端的 zabbix_agent.conf 配置文件

[root@zabbix-agent ~]# view /etc/zabbix/zabbix_agentd.conf
UnsafeUserParameters=1
UserParameter=checkuptime,cat /proc/uptime| awk -F. ‘{run_days=$1 / 86400;print(run_days)}’

重启服务

[root@zabbix-agent ~]# systemctl restart zabbix-agent 

3.2server 测试

安装 zabbix-get。Zabbix get 是一种命令行应用,它可以用于与 Zabbix agent 进行通信,并从 agent 哪里获取所需的信息 该应用通常被用于 Zabbix agent 故障排除。

[root@zabbix-server ~]# yum -y install zabbix-get

测试命令

[root@zabbix-server ~]# zabbix_get -s 172.27.9.65 -k checkuptime
0.307488

3.3 新建模板

Zabbix3.4.8 搭建及邮件微信告警实现

查看新建模板:

Zabbix3.4.8 搭建及邮件微信告警实现

3.4 创建监控项

Zabbix3.4.8 搭建及邮件微信告警实现

对于监控项,名称(Name)、值(Key)、信息类型(Type of information)为必选项,且 Key 唯一。

查看新建监控项:

Zabbix3.4.8 搭建及邮件微信告警实现

3.5 新建触发器

Zabbix3.4.8 搭建及邮件微信告警实现

添加表达式:

Zabbix3.4.8 搭建及邮件微信告警实现

‘N’ 的值为触发告警值。

查看新建的触发器:

Zabbix3.4.8 搭建及邮件微信告警实现

3.6 添加图形

Zabbix3.4.8 搭建及邮件微信告警实现

 

 

3.8 关联主机

Zabbix3.4.8 搭建及邮件微信告警实现

查看主机新增模板:

Zabbix3.4.8 搭建及邮件微信告警实现

3.9 查看告警项

Zabbix3.4.8 搭建及邮件微信告警实现

查看图形:

Zabbix3.4.8 搭建及邮件微信告警实现

 

 

邮件推送

zabbxi 实现邮件告警推送有两种方式:

a. 使用 zabbix 服务端的本地邮箱账号发送,邮件名为:user@hostname.localdomain,user 为发送邮件的用户,hostname 为 zabbix-server 的主机名,该邮箱只能发送,不能接收外部邮件;

b. 使用外部邮箱指定为告警发送邮箱。

一般公司都有邮件系统,为方便管理,本文采用外部邮箱方式发送告警。(申请 163 邮箱号:zabbix_test_123@163.com,注意开启客户端授权)

1. 关闭 postfix

[root@zabbix-server ~]# systemctl stop postfix
[root@zabbix-server ~]# systemctl disable postfix

postfix 为本地邮箱推送方式需安装的软件,若同时配置本地和外部邮箱两种发送方式,系统会优先采用外部邮箱方式,所以该步骤不是必须但最好关闭这个服务。

2. 安装邮件发送工具 mailx

[root@zabbix-server ~]# yum -y install mailx

查看 mailx 版本:

[root@zabbix-server ~]# mail -V
12.5 7/5/10 

3. 配置外部邮箱

[root@zabbix-server ~]# view /etc/mail.rc
set from=zabbix_test_123@163.com
set smtp=smtp.163.com
set smtp-auth-user=zabbix_test_123@163.com
set smtp-auth-password=xxx
set smtp-auth=login

‘smtp-auth-password’为‘客户端授权密码’

Zabbix3.4.8 搭建及邮件微信告警实现

测试外部邮箱

[root@zabbix-server ~]# echo “zabbix test mail 123” |mail -s “zabbix” zabbix_test_123@163.com

Zabbix3.4.8 搭建及邮件微信告警实现

由于 163 的反垃圾机制,当发送为其它邮箱如 126、qq 邮箱时会报错,故本例中发送和接收邮箱都为zabbix_test_123@163.com。如若上生产可配置企业邮箱。

4. 编写邮件发送脚本

修改脚本路径

[root@zabbix-server ~]# view /etc/zabbix/zabbix_server.conf
AlertScriptsPath=/etc/zabbix/alertscripts

编写脚本 mail.sh

[root@zabbix-server ~]# cd /etc/zabbix/
[root@zabbix-server zabbix]# mkdir alertscripts && cd alertscripts && touch mail.sh
[root@zabbix-server alertscripts]# more mail.sh
#!/bin/bash
echo “$3” | mail -s “$2” $1
[root@zabbix-server alertscripts]# chmod 755 mail.sh

$1: 收件人邮箱地址;$2: 邮件标题;$3: 邮件内容

5.web 端配置

5.1 创建报警媒介类型

Zabbix3.4.8 搭建及邮件微信告警实现

脚本参数分别对应:收件人地址、主题、详细内容

5.2 配置用户

选择 Admin:

Zabbix3.4.8 搭建及邮件微信告警实现

添加报警媒介:

Zabbix3.4.8 搭建及邮件微信告警实现

5.3 创建报警动作

配置 - 动作 - 创建动作,新建动作:

Zabbix3.4.8 搭建及邮件微信告警实现

新建操作:

Zabbix3.4.8 搭建及邮件微信告警实现

Zabbix3.4.8 搭建及邮件微信告警实现

Zabbix3.4.8 搭建及邮件微信告警实现

新建操作就是通过何种方式将消息发送给谁,其它选项默认。

添加恢复操作:

Zabbix3.4.8 搭建及邮件微信告警实现

添加后的动作:

Zabbix3.4.8 搭建及邮件微信告警实现

 

5.4 测试邮件告警

新增告警项,在 agent 端 /home 文件系统使用 dd 命令创建文件,将文件系统使用率提升至 90% 以上以触发告警:

[root@zabbix-agent home]# dd if=/dev/zero of=test bs=1M count=1950

用 dd 命令生成一个 1950M 的 test 文件,使 /home 使用率告警。

Zabbix3.4.8 搭建及邮件微信告警实现

触发邮件告警:

Zabbix3.4.8 搭建及邮件微信告警实现

Zabbix3.4.8 搭建及邮件微信告警实现

Zabbix3.4.8 搭建及邮件微信告警实现

发现邮件以附件方式发送,显示不正常,修改邮件发送脚本。

安装 dos2unix 转换工具:

[root@zabbix-server ~]# yum -y install dos2unix

编辑发送脚本:

[root@zabbix-server ~]# cd /etc/zabbix/alertscripts
[root@zabbix-server alertscripts]# touch mailtmp.txt && chmod 777 mailtmp.txt
[root@zabbix-server ~]# chown -R zabbix:zabbix /etc/zabbix/alertscripts/
[root@zabbix-server alertscripts]# more mail.sh
#!/bin/bash
FILE=/etc/zabbix/alertscripts/mailtmp.txt
echo “$3” >$FILE
dos2unix -k $FILE
cat $FILE|/bin/mail -s “$2” $1

注意 :dos2unix 命令执行的时候会产生临时文件,所以要有写的权限, 故应修改 alertscripts 目录属主,不然测试过程中会报错:‘dos2unix: Failed to open temporary output file: 权限不够’。

Zabbix3.4.8 搭建及邮件微信告警实现

发现正文不再以附件形式显示。

查看告警日志:

Zabbix3.4.8 搭建及邮件微信告警实现

至此邮件告警配置完成。

微信推送

1. 公众号注册

登陆 https://work.weixin.qq.com/,注册企业号。

Zabbix3.4.8 搭建及邮件微信告警实现

 

 

 

Zabbix3.4.8 搭建及邮件微信告警实现

CorpID 后面 web 端配置会用到。

 

2. 新增应用

Zabbix3.4.8 搭建及邮件微信告警实现

Zabbix3.4.8 搭建及邮件微信告警实现

Zabbix3.4.8 搭建及邮件微信告警实现

AgentId 和 Secret 后面 web 端配置会用到。

 

3. 添加部门及成员

Zabbix3.4.8 搭建及邮件微信告警实现

Zabbix3.4.8 搭建及邮件微信告警实现

Zabbix3.4.8 搭建及邮件微信告警实现

部门 id 为 3,后面会用到。

添加成员。添加成员可以直接添加,也可以微信邀请:

Zabbix3.4.8 搭建及邮件微信告警实现

Zabbix3.4.8 搭建及邮件微信告警实现

直接添加:

Zabbix3.4.8 搭建及邮件微信告警实现

Zabbix3.4.8 搭建及邮件微信告警实现

成员添加完成后修改应用可见范围为新建部门 zabbix-webchat-01:

Zabbix3.4.8 搭建及邮件微信告警实现

查看部门成员:

Zabbix3.4.8 搭建及邮件微信告警实现

Zabbix3.4.8 搭建及邮件微信告警实现

 

4. 下载微信发送脚本

[root@zabbix-server ~]# git clone https://github.com/loong576/Wechat-Alert-for-Zabbix.git
[root@zabbix-server ~]# cd Wechat-Alert-for-Zabbix/
[root@zabbix-server Wechat-Alert-for-Zabbix]# cp wechat_alert.py /etc/zabbix/alertscripts/
[root@zabbix-server alertscripts]# chown -R zabbix:zabbix /etc/zabbix/alertscripts/
[root@zabbix-server alertscripts]# chmod -R 755 /etc/zabbix/alertscripts/

没有 git 命令可先用 yum 安装。

requests 库安装:

[root@zabbix-server ~]# yum -y install epel-release
[root@zabbix-server ~]# yum -y install python-pip
[root@zabbix-server ~]# pip install –upgrade pip
[root@zabbix-server ~]# pip install requests

requests 模块可以直接用 get(), post(),put(), delete(), head() ,options(), 方法对 url 操作。

5.web 端配置

5.1 创建报警媒介类型

Zabbix3.4.8 搭建及邮件微信告警实现

 

5.2 配置用户

新建用户组群“weixin”,新建用户“weixin”:

Zabbix3.4.8 搭建及邮件微信告警实现

添加访问主机群权限:

Zabbix3.4.8 搭建及邮件微信告警实现

添加的主机群主为“zabbix-test”,即用户“weixin”只会收到 zabbix-test 群组下主机的告警信息。

Zabbix3.4.8 搭建及邮件微信告警实现

 

配置用户的报警媒介:

Zabbix3.4.8 搭建及邮件微信告警实现

 

5.3 创建报警动作

Zabbix3.4.8 搭建及邮件微信告警实现

Zabbix3.4.8 搭建及邮件微信告警实现

Zabbix3.4.8 搭建及邮件微信告警实现

添加告警恢复消息:

Zabbix3.4.8 搭建及邮件微信告警实现

Zabbix3.4.8 搭建及邮件微信告警实现 

5.4 微信告警测试

在 agent 端触发 /var 文件系统告警:

[root@zabbix-agent ~]# cd /var
[root@zabbix-agent var]# dd if=/dev/zero of=test bs=1M count=1800

Zabbix3.4.8 搭建及邮件微信告警实现

Zabbix3.4.8 搭建及邮件微信告警实现

Zabbix3.4.8 搭建及邮件微信告警实现

微信告警接收可以直接关注企业号在“微信”app 接收,或者下载“企业微信”专门来收告警,以便和日常使用的微信做区分。

配置:

主机
ip
操作系统
zabbix 版本
mysql 版本
zabbix-server172.27.9.63CentOS7.3.1611

zabbix_server (Zabbix) 3.4.8

5.7.21
zabbix-agent172.27.9.65Centos7.3.1611

zabbix_agentd (daemon) (Zabbix) 3.4.8

/

Server 端:

1. 安装源码库配置部署包

这个部署包包含了 yum 配置文件:

[root@zabbix-server ~]#  rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm

2. 安装 Zabbix-server 部署包

[root@zabbix-server ~]# yum -y install zabbix-server-mysql zabbix-web-mysql

Zabbix3.4.8 搭建及邮件微信告警实现

3. 安装初始化数据库

3.1 下载并安装 MySQL 官方的 Yum Repository

[root@zabbix-server zabbix-server-mysql-3.4.8]# rpm -ivh https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

3.2 查看当前可用的 Mysql 安装源

[root@zabbix-server ~]# yum repolist enabled | grep “mysql.*-community.*”
mysql-connectors-community/x86_64 MySQL Connectors Community                  45
mysql-tools-community/x86_64      MySQL Tools Community                      59
mysql57-community/x86_64          MySQL 5.7 Community Server                247 

3.3 安装 MySQL 数据库

[root@zabbix-server ~]# yum -y install mysql-community-server 

总下载量:204 M,请耐心等待。

Zabbix3.4.8 搭建及邮件微信告警实现安装完成,系统自带的 mariadb 被覆盖。

3.4 启动 mysql 服务并设置开机启动

[root@zabbix-server ~]# systemctl start mysqld.service
[root@zabbix-server ~]# systemctl enable mysqld.service 

3.5 登陆 mysql

安装好后,会在 my.cnf 文件中自动生成一个密码

[root@zabbix-server ~]# cat /var/log/mysqld.log | grep password
2018-04-17T16:12:53.340149Z 1 [Note] A temporary password is generated for root@localhost: +)pIf#FAu1%D
[root@zabbix-server ~]# mysql -uroot -p 

输入密码“+)pIf#FAu1%D”

登录数据库后需首先重置密码才能进行后续操作。修改密码如下(注意密码规则,此处不详谈):

mysql>  set password = password(‘Mysql123!’);
Query OK, 0 rows affected, 1 warning (0.03 sec) 

3.6 创建数据库和 zabbix 用户并授权

mysql> create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (10.03 sec)
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by ‘Zabbix123!’;
Query OK, 0 rows affected, 1 warning (0.00 sec) 

3.7 导入初始架构(Schema)和数据

[root@zabbix-server ~]# cd /usr/share/doc/zabbix-server-mysql-3.4.8/
[root@zabbix-server zabbix-server-mysql-3.4.8]# zcat create.sql.gz | mysql -uzabbix -pZabbix123! -D zabbix
mysql: [Warning] Using a password on the command line interface can be insecure.

执行过程中会有一个关于密码的告警,忽略。

查看执行结果:

Zabbix3.4.8 搭建及邮件微信告警实现Zabbix3.4.8 搭建及邮件微信告警实现

4. 启动 Zabbix Server 进程

4.1 在 zabbix_server.conf 中编辑数据库配置

修改或者解注释如下参数:

[root@zabbix-server ~]# view /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=Zabbix123!

4.2 修改 zabbix 安装目录属主和权限

[root@zabbix-server ~]# chown -R zabbix:zabbix /etc/zabbix/
[root@zabbix-server ~]# chmod -R 755 /etc/zabbix/

4.3 启动 zabbix-server 服务,并设置开机自启

[root@zabbix-server ~]# systemctl start zabbix-server
[root@zabbix-server ~]# systemctl enable zabbix-server

5. 编辑 Zabbix 前端的 PHP 配置

Zabbix 前端的 Apache 配置文件位于 /etc/httpd/conf.d/zabbix.conf。一些 PHP 设置已经完成了配置。

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 always_populate_raw_post_data -1
# php_value date.timezone Europe/Riga

5.1 去掉时区前的 #号并修改为 Asia/Shanghai:

php_value date.timezone Asia/Shanghai

5.2 启动 apache 服务,并设置开机自启

[root@zabbix-server ~]# systemctl restart httpd
[root@zabbix-server ~]# systemctl enable httpd

6. 登陆 zabbix

访问地址:http://172.27.9.63/zabbix

Zabbix3.4.8 搭建及邮件微信告警实现

下一步:

Zabbix3.4.8 搭建及邮件微信告警实现

下一步:

Zabbix3.4.8 搭建及邮件微信告警实现

输入密码“Zabbix123!”,下一步:

Zabbix3.4.8 搭建及邮件微信告警实现

name 可以不填,host 和 port 默认,下一步:

Zabbix3.4.8 搭建及邮件微信告警实现

信息汇总确认,下一步:

Zabbix3.4.8 搭建及邮件微信告警实现

安装完成,单击‘Finish’,跳转至如下界面:

Zabbix3.4.8 搭建及邮件微信告警实现

初始用户名密码为 ’Admin/zabbix’。

agent 端:

1. 安装源码库配置部署包

这个部署包包含了 yum 配置文件:

[root@zabbix-agent ~]# rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm

2. 安装 Zabbix-agent 部署包

[root@zabbix-agent ~]# yum -y install zabbix-agent

安装完毕:

Zabbix3.4.8 搭建及邮件微信告警实现

3.启动 Zabbix Agent 进程

3.1 配置 zabbxi-agent

[root@zabbix-agent ~]# sed -i ‘s/^ *Server=127.0.0.1/Server=172.27.9.63/g’ /etc/zabbix/zabbix_agentd.conf
[root@zabbix-agent ~]#  sed -i ‘s/^ *ServerActive=127.0.0.1/ServerActive=172.27.9.63/g’ /etc/zabbix/zabbix_agentd.conf
[root@zabbix-agent ~]#  sed -i ‘s/^ *Hostname=Zabbix server/Hostname=172.27.9.65/g’ /etc/zabbix/zabbix_agentd.conf

Server: 被动模式, 允许哪台机器连接到 aget。
ServerActive: 主动模式, 向哪台服务器传送数据。

Hostname: 唯一,需与添加主机时‘主机名称’保持一致。

Zabbix agents 可以执行被动和主动两种检查方式。
在 passive check 模式中 agent 应答数据请求,Zabbix server(或者 proxy)询问 agent 数据, 如 CPU 的负载情况,然后 Zabbix agent 回送结果。
Active checks 处理过程将相对复杂。Agent 必须首先从 Zabbix sever 索取监控项列表以进行独立处理,然后周期性地发送新的值给 server。
执行被动或主动检查是通过选择相应的监测项目类型来配置的。

本文选择被动模式,当 zabbix-server 监控主机过多出现性能问题时可考虑主动模式。

3.2 更改 zabbix 安装目录属主和权限

[root@zabbix-agent ~]# chown -R zabbix:zabbix /etc/zabbix
[root@zabbix-agent ~]# chmod -R 755 /etc/zabbix

3.3 启动 zabbix-agent 服务,并设置开机自启

[root@zabbix-agent ~]# systemctl start zabbix-agent
[root@zabbix-agent ~]# systemctl enable zabbix-agent

web 端监控配置

1. 修改语言

默认为界面为英文,修改为中文:

Zabbix3.4.8 搭建及邮件微信告警实现

Zabbix3.4.8 搭建及邮件微信告警实现

2. 新建主机

2.1 增加主机

Zabbix 中的主机(Host)是一个你想要监控的网络实体(物理的,或者虚拟的)。Zabbix 中,对于主机的定义非常灵活。它可以时一台物理服务器,一个网络交换机,一个虚拟机或者一些应用。

Zabbix 中,可以通过配置(Configuration)→ 主机(Hosts)菜单,查看已配置的主机信息。默认已有一个名为 ’Zabbix server’ 的预先定义好的主机。

Zabbix3.4.8 搭建及邮件微信告警实现

主机名称:可以使用字母数字、空格、点”.“、中划线”-“、下划线”_“,必须唯一。与 agent 中配置文件 zabbix_agentd.conf 的‘Hostname’参数保持一致。

可见的名称:显示在网页列表上供展示的名称。

新的群组:为主机新建分组,所有访问权限都分配到主机组,而不是单独的主机。这也是主机需要属于至少一个组的原因。

IP 地址:被监控主机的 ip 地址。

其它配置默认。

2.2 选择模板

Zabbix3.4.8 搭建及邮件微信告警实现

选择模板‘Template OS Linux’,单击‘选择’、‘添加’后‘更新’,同理更新默认的 ’Zabbix server’:

Zabbix3.4.8 搭建及邮件微信告警实现

2.3 更改字符集

选择新建的主机‘zabbix-test-centos7’,查看监控数据‘CPU user time’,选择‘图形’:

Zabbix3.4.8 搭建及邮件微信告警实现

发现乱码:

Zabbix3.4.8 搭建及邮件微信告警实现

在 zabbix-server 端执行如下命令:

[root@zabbix-server ~]# yum -y install wqy-microhei-fonts
[root@zabbix-server ~]# cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf

刷新 web 界面后正常:

Zabbix3.4.8 搭建及邮件微信告警实现

3. 新建监控项

新建监控项为监控主机运行时长,当主机运行时长超过 3 个月(180 天)触发告警(系统默认模板‘Template OS Linux’已有 uptime 的信息,记录主机启动时间)。

3.1agent 端修改被监控端的 zabbix_agent.conf 配置文件

[root@zabbix-agent ~]# view /etc/zabbix/zabbix_agentd.conf
UnsafeUserParameters=1
UserParameter=checkuptime,cat /proc/uptime| awk -F. ‘{run_days=$1 / 86400;print(run_days)}’

重启服务

[root@zabbix-agent ~]# systemctl restart zabbix-agent 

3.2server 测试

安装 zabbix-get。Zabbix get 是一种命令行应用,它可以用于与 Zabbix agent 进行通信,并从 agent 哪里获取所需的信息 该应用通常被用于 Zabbix agent 故障排除。

[root@zabbix-server ~]# yum -y install zabbix-get

测试命令

[root@zabbix-server ~]# zabbix_get -s 172.27.9.65 -k checkuptime
0.307488

3.3 新建模板

Zabbix3.4.8 搭建及邮件微信告警实现

查看新建模板:

Zabbix3.4.8 搭建及邮件微信告警实现

3.4 创建监控项

Zabbix3.4.8 搭建及邮件微信告警实现

对于监控项,名称(Name)、值(Key)、信息类型(Type of information)为必选项,且 Key 唯一。

查看新建监控项:

Zabbix3.4.8 搭建及邮件微信告警实现

3.5 新建触发器

Zabbix3.4.8 搭建及邮件微信告警实现

添加表达式:

Zabbix3.4.8 搭建及邮件微信告警实现

‘N’ 的值为触发告警值。

查看新建的触发器:

Zabbix3.4.8 搭建及邮件微信告警实现

3.6 添加图形

Zabbix3.4.8 搭建及邮件微信告警实现

 

 

3.8 关联主机

Zabbix3.4.8 搭建及邮件微信告警实现

查看主机新增模板:

Zabbix3.4.8 搭建及邮件微信告警实现

3.9 查看告警项

Zabbix3.4.8 搭建及邮件微信告警实现

查看图形:

Zabbix3.4.8 搭建及邮件微信告警实现

 

 

邮件推送

zabbxi 实现邮件告警推送有两种方式:

a. 使用 zabbix 服务端的本地邮箱账号发送,邮件名为:user@hostname.localdomain,user 为发送邮件的用户,hostname 为 zabbix-server 的主机名,该邮箱只能发送,不能接收外部邮件;

b. 使用外部邮箱指定为告警发送邮箱。

一般公司都有邮件系统,为方便管理,本文采用外部邮箱方式发送告警。(申请 163 邮箱号:zabbix_test_123@163.com,注意开启客户端授权)

1. 关闭 postfix

[root@zabbix-server ~]# systemctl stop postfix
[root@zabbix-server ~]# systemctl disable postfix

postfix 为本地邮箱推送方式需安装的软件,若同时配置本地和外部邮箱两种发送方式,系统会优先采用外部邮箱方式,所以该步骤不是必须但最好关闭这个服务。

2. 安装邮件发送工具 mailx

[root@zabbix-server ~]# yum -y install mailx

查看 mailx 版本:

[root@zabbix-server ~]# mail -V
12.5 7/5/10 

3. 配置外部邮箱

[root@zabbix-server ~]# view /etc/mail.rc
set from=zabbix_test_123@163.com
set smtp=smtp.163.com
set smtp-auth-user=zabbix_test_123@163.com
set smtp-auth-password=xxx
set smtp-auth=login

‘smtp-auth-password’为‘客户端授权密码’

Zabbix3.4.8 搭建及邮件微信告警实现

测试外部邮箱

[root@zabbix-server ~]# echo “zabbix test mail 123” |mail -s “zabbix” zabbix_test_123@163.com

Zabbix3.4.8 搭建及邮件微信告警实现

由于 163 的反垃圾机制,当发送为其它邮箱如 126、qq 邮箱时会报错,故本例中发送和接收邮箱都为zabbix_test_123@163.com。如若上生产可配置企业邮箱。

4. 编写邮件发送脚本

修改脚本路径

[root@zabbix-server ~]# view /etc/zabbix/zabbix_server.conf
AlertScriptsPath=/etc/zabbix/alertscripts

编写脚本 mail.sh

[root@zabbix-server ~]# cd /etc/zabbix/
[root@zabbix-server zabbix]# mkdir alertscripts && cd alertscripts && touch mail.sh
[root@zabbix-server alertscripts]# more mail.sh
#!/bin/bash
echo “$3” | mail -s “$2” $1
[root@zabbix-server alertscripts]# chmod 755 mail.sh

$1: 收件人邮箱地址;$2: 邮件标题;$3: 邮件内容

5.web 端配置

5.1 创建报警媒介类型

Zabbix3.4.8 搭建及邮件微信告警实现

脚本参数分别对应:收件人地址、主题、详细内容

5.2 配置用户

选择 Admin:

Zabbix3.4.8 搭建及邮件微信告警实现

添加报警媒介:

Zabbix3.4.8 搭建及邮件微信告警实现

5.3 创建报警动作

配置 - 动作 - 创建动作,新建动作:

Zabbix3.4.8 搭建及邮件微信告警实现

新建操作:

Zabbix3.4.8 搭建及邮件微信告警实现

Zabbix3.4.8 搭建及邮件微信告警实现

Zabbix3.4.8 搭建及邮件微信告警实现

新建操作就是通过何种方式将消息发送给谁,其它选项默认。

添加恢复操作:

Zabbix3.4.8 搭建及邮件微信告警实现

添加后的动作:

Zabbix3.4.8 搭建及邮件微信告警实现

 

5.4 测试邮件告警

新增告警项,在 agent 端 /home 文件系统使用 dd 命令创建文件,将文件系统使用率提升至 90% 以上以触发告警:

[root@zabbix-agent home]# dd if=/dev/zero of=test bs=1M count=1950

用 dd 命令生成一个 1950M 的 test 文件,使 /home 使用率告警。

Zabbix3.4.8 搭建及邮件微信告警实现

触发邮件告警:

Zabbix3.4.8 搭建及邮件微信告警实现

Zabbix3.4.8 搭建及邮件微信告警实现

Zabbix3.4.8 搭建及邮件微信告警实现

发现邮件以附件方式发送,显示不正常,修改邮件发送脚本。

安装 dos2unix 转换工具:

[root@zabbix-server ~]# yum -y install dos2unix

编辑发送脚本:

[root@zabbix-server ~]# cd /etc/zabbix/alertscripts
[root@zabbix-server alertscripts]# touch mailtmp.txt && chmod 777 mailtmp.txt
[root@zabbix-server ~]# chown -R zabbix:zabbix /etc/zabbix/alertscripts/
[root@zabbix-server alertscripts]# more mail.sh
#!/bin/bash
FILE=/etc/zabbix/alertscripts/mailtmp.txt
echo “$3” >$FILE
dos2unix -k $FILE
cat $FILE|/bin/mail -s “$2” $1

注意 :dos2unix 命令执行的时候会产生临时文件,所以要有写的权限, 故应修改 alertscripts 目录属主,不然测试过程中会报错:‘dos2unix: Failed to open temporary output file: 权限不够’。

Zabbix3.4.8 搭建及邮件微信告警实现

发现正文不再以附件形式显示。

查看告警日志:

Zabbix3.4.8 搭建及邮件微信告警实现

至此邮件告警配置完成。

微信推送

1. 公众号注册

登陆 https://work.weixin.qq.com/,注册企业号。

Zabbix3.4.8 搭建及邮件微信告警实现

 

 

 

Zabbix3.4.8 搭建及邮件微信告警实现

CorpID 后面 web 端配置会用到。

 

2. 新增应用

Zabbix3.4.8 搭建及邮件微信告警实现

Zabbix3.4.8 搭建及邮件微信告警实现

Zabbix3.4.8 搭建及邮件微信告警实现

AgentId 和 Secret 后面 web 端配置会用到。

 

3. 添加部门及成员

Zabbix3.4.8 搭建及邮件微信告警实现

Zabbix3.4.8 搭建及邮件微信告警实现

Zabbix3.4.8 搭建及邮件微信告警实现

部门 id 为 3,后面会用到。

添加成员。添加成员可以直接添加,也可以微信邀请:

Zabbix3.4.8 搭建及邮件微信告警实现

Zabbix3.4.8 搭建及邮件微信告警实现

直接添加:

Zabbix3.4.8 搭建及邮件微信告警实现

Zabbix3.4.8 搭建及邮件微信告警实现

成员添加完成后修改应用可见范围为新建部门 zabbix-webchat-01:

Zabbix3.4.8 搭建及邮件微信告警实现

查看部门成员:

Zabbix3.4.8 搭建及邮件微信告警实现

Zabbix3.4.8 搭建及邮件微信告警实现

 

4. 下载微信发送脚本

[root@zabbix-server ~]# git clone https://github.com/loong576/Wechat-Alert-for-Zabbix.git
[root@zabbix-server ~]# cd Wechat-Alert-for-Zabbix/
[root@zabbix-server Wechat-Alert-for-Zabbix]# cp wechat_alert.py /etc/zabbix/alertscripts/
[root@zabbix-server alertscripts]# chown -R zabbix:zabbix /etc/zabbix/alertscripts/
[root@zabbix-server alertscripts]# chmod -R 755 /etc/zabbix/alertscripts/

没有 git 命令可先用 yum 安装。

requests 库安装:

[root@zabbix-server ~]# yum -y install epel-release
[root@zabbix-server ~]# yum -y install python-pip
[root@zabbix-server ~]# pip install –upgrade pip
[root@zabbix-server ~]# pip install requests

requests 模块可以直接用 get(), post(),put(), delete(), head() ,options(), 方法对 url 操作。

5.web 端配置

5.1 创建报警媒介类型

Zabbix3.4.8 搭建及邮件微信告警实现

 

5.2 配置用户

新建用户组群“weixin”,新建用户“weixin”:

Zabbix3.4.8 搭建及邮件微信告警实现

添加访问主机群权限:

Zabbix3.4.8 搭建及邮件微信告警实现

添加的主机群主为“zabbix-test”,即用户“weixin”只会收到 zabbix-test 群组下主机的告警信息。

Zabbix3.4.8 搭建及邮件微信告警实现

 

配置用户的报警媒介:

Zabbix3.4.8 搭建及邮件微信告警实现

 

5.3 创建报警动作

Zabbix3.4.8 搭建及邮件微信告警实现

Zabbix3.4.8 搭建及邮件微信告警实现

Zabbix3.4.8 搭建及邮件微信告警实现

添加告警恢复消息:

Zabbix3.4.8 搭建及邮件微信告警实现

Zabbix3.4.8 搭建及邮件微信告警实现 

5.4 微信告警测试

在 agent 端触发 /var 文件系统告警:

[root@zabbix-agent ~]# cd /var
[root@zabbix-agent var]# dd if=/dev/zero of=test bs=1M count=1800

Zabbix3.4.8 搭建及邮件微信告警实现

Zabbix3.4.8 搭建及邮件微信告警实现

Zabbix3.4.8 搭建及邮件微信告警实现

微信告警接收可以直接关注企业号在“微信”app 接收,或者下载“企业微信”专门来收告警,以便和日常使用的微信做区分。

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-21发表,共计17820字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中