cl_303303303 发表于 2019-1-18 12:30:37

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

  安装参考文档:https://www.zabbix.com/documentation/3.4/zh/manual/installation/install_from_packages

  配置:
主机
ip
操作系统
zabbix版本
mysql版本
zabbix-server172.27.9.63
Centos7.3.1611  zabbix_server (Zabbix) 3.4.8
5.7.21zabbix-agent172.27.9.65
Centos7.3.1611  zabbix_agentd (daemon) (Zabbix) 3.4.8
/
  server端:

  1.安装源码库配置部署包
  这个部署包包含了yum配置文件:

#rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm  2.安装Zabbix-server部署包

# yum -y install zabbix-server-mysql zabbix-web-mysqlhttp://s1.运维网.com/images/20180417/1523946454699548.png
  3.安装初始化数据库
  3.1下载并安装MySQL官方的 Yum Repository
# rpm -ivh https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm  3.2查看当前可用的Mysql安装源
# 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数据库
# yum -y install mysql-community-server  总下载量:204 M,请耐心等待。
http://s1.运维网.com/images/20180417/1523952419737187.png安装完成,系统自带的mariadb被覆盖。
  3.4启动mysql服务并设置开机启动
# systemctl start mysqld.service
# systemctl enable mysqld.service  3.5登陆mysql
  安装好后,会在my.cnf文件中自动生成一个密码
# cat /var/log/mysqld.log | grep password
2018-04-17T16:12:53.340149Z 1 A temporary password is generated for root@localhost: +)pIf#FAu1%D
# 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)和数据
# cd /usr/share/doc/zabbix-server-mysql-3.4.8/
# zcat create.sql.gz | mysql -uzabbix -pZabbix123! -D zabbix
mysql: Using a password on the command line interface can be insecure.  执行过程中会有一个关于密码的告警,忽略。
  查看执行结果:
http://s1.运维网.com/images/20180418/1524018721274080.pnghttp://s1.运维网.com/images/20180418/1524018742959075.png
  4.启动Zabbix Server进程
  4.1在zabbix_server.conf中编辑数据库配置
  修改或者解注释如下参数:
# view /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=Zabbix123!  4.2修改zabbix安装目录属主和权限
# chown -R zabbix:zabbix /etc/zabbix/
# chmod -R 755 /etc/zabbix/  4.3启动zabbix-server服务,并设置开机自启
# systemctl start 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服务,并设置开机自启
# systemctl restart httpd
# systemctl enable httpd  6.登陆zabbix
  访问地址:http://172.27.9.63/zabbix
http://s1.运维网.com/images/20180418/1524020707369202.png
  下一步:
http://s1.运维网.com/images/20180418/1524020785530705.png
  下一步:
http://s1.运维网.com/images/20180418/1524020828152382.png
  输入密码“Zabbix123!”,下一步:
http://s1.运维网.com/images/20180418/1524021032530495.png
  name可以不填,host和port默认,下一步:
http://s1.运维网.com/images/20180418/1524021147220737.png
  信息汇总确认,下一步:
http://s1.运维网.com/images/20180418/1524021201130269.png
  安装完成,单击‘Finish’,跳转至如下界面:
http://s1.运维网.com/images/20180418/1524021290123872.png
  初始用户名密码为'Admin/zabbix'。
  agent端:
  1.安装源码库配置部署包
  这个部署包包含了yum配置文件:
# rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm  2.安装Zabbix-agent部署包
# yum -y install zabbix-agent  安装完毕:
http://s1.运维网.com/images/20180418/1524034261750843.png
  3.启动Zabbix Agent进程
  3.1配置zabbxi-agent
# sed -i 's/^ *Server=127.0.0.1/Server=172.27.9.63/g' /etc/zabbix/zabbix_agentd.conf
#sed -i 's/^ *ServerActive=127.0.0.1/ServerActive=172.27.9.63/g' /etc/zabbix/zabbix_agentd.conf
#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安装目录属主和权限

# chown -R zabbix:zabbix /etc/zabbix
# chmod -R 755 /etc/zabbix  3.3启动zabbix-agent服务,并设置开机自启
# systemctl start zabbix-agent
# systemctl enable zabbix-agent  
  web端监控配置
  1.修改语言

  默认为界面为英文,修改为中文:
http://s1.运维网.com/images/20180418/1524032910671517.png
http://s1.运维网.com/images/20180418/1524032931408544.png

  2.新建主机
  2.1增加主机
  Zabbix中的主机(Host)是一个你想要监控的网络实体(物理的,或者虚拟的)。Zabbix中,对于主机的定义非常灵活。它可以时一台物理服务器,一个网络交换机,一个虚拟机或者一些应用。
  Zabbix中,可以通过配置(Configuration) → 主机(Hosts)菜单,查看已配置的主机信息。默认已有一个名为'Zabbix server'的预先定义好的主机。
http://s1.运维网.com/images/20180418/1524040991415230.png
  
主机名称:可以使用字母数字、空格、点”.“、中划线”-“、下划线”_“,必须唯一。与agent中配置文件zabbix_agentd.conf的‘Hostname’参数保持一致。
  可见的名称:显示在网页列表上供展示的名称。
  新的群组:为主机新建分组,所有访问权限都分配到主机组,而不是单独的主机。这也是主机需要属于至少一个组的原因。
  IP地址:被监控主机的ip地址。
  其它配置默认。
  2.2选择模板
http://s1.运维网.com/images/20180418/1524042454735118.png
  选择模板‘Template OS Linux’,单击‘选择’、‘添加’后‘更新’,同理更新默认的'Zabbix server':
http://s1.运维网.com/images/20180419/1524119737343775.png
  2.3更改字符集
  选择新建的主机‘zabbix-test-centos7’,查看监控数据‘CPU user time’,选择‘图形’:
http://s1.运维网.com/images/20180419/1524119925698141.png
  发现乱码:

http://s1.运维网.com/images/20180419/1524119986997010.png
  在zabbix-server端执行如下命令:

# yum -y install wqy-microhei-fonts
# cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf  刷新web界面后正常:
http://s1.运维网.com/images/20180419/1524120271360999.png
  3.新建监控项
  新建监控项为监控主机运行时长,当主机运行时长超过3个月(180天)触发告警(系统默认模板‘Template OS Linux’已有uptime的信息,记录主机启动时间)。

  3.1agent端修改被监控端的zabbix_agent.conf配置文件
# view /etc/zabbix/zabbix_agentd.conf
UnsafeUserParameters=1
UserParameter=checkuptime,cat /proc/uptime| awk -F. '{run_days=$1 / 86400;print(run_days)}'  重启服务
# systemctl restart zabbix-agent  3.2server测试
  安装zabbix-get。Zabbix get 是一种命令行应用,它可以用于与Zabbix agent进行通信,并从agent哪里获取所需的信息 该应用通常被用于Zabbix agent故障排除。
# yum -y install zabbix-get  测试命令
# zabbix_get -s 172.27.9.65 -k checkuptime
0.307488  3.3新建模板
http://s1.运维网.com/images/20180420/1524213123129658.png
  查看新建模板:
http://s1.运维网.com/images/20180420/1524213148959669.png
  3.4创建监控项
http://s1.运维网.com/images/20180420/1524215150743880.png

  对于监控项,名称(Name)、值(Key)、信息类型(Type of information)为必选项,且Key唯一。
  查看新建监控项:
http://s1.运维网.com/images/20180420/1524213682391542.png
  3.5新建触发器
http://s1.运维网.com/images/20180420/1524213956441007.png
  添加表达式:

http://s1.运维网.com/images/20180420/1524213900662439.png
  'N'的值为触发告警值。
  查看新建的触发器:
http://s1.运维网.com/images/20180420/1524214065558304.png
  3.6添加图形
http://s1.运维网.com/images/20180420/1524214166195834.png
  3.8关联主机
http://s1.运维网.com/images/20180420/1524214306126909.png
  查看主机新增模板:
http://s1.运维网.com/images/20180420/1524214378397509.png
  3.9查看告警项
http://s1.运维网.com/images/20180420/1524215274452347.png
  查看图形:
http://s1.运维网.com/images/20180420/1524216332475519.png
  邮件推送

  zabbxi实现邮件告警推送有两种方式:
  a.使用zabbix服务端的本地邮箱账号发送,邮件名为:user@hostname.localdomain,user为发送邮件的用户,hostname为zabbix-server的主机名,该邮箱只能发送,不能接收外部邮件;
  b.使用外部邮箱指定为告警发送邮箱。
  一般公司都有邮件系统,为方便管理,本文采用外部邮箱方式发送告警。(申请163邮箱号:zabbix_test_123@163.com ,注意开启客户端授权)
  1.关闭postfix
# systemctl stop postfix
# systemctl disable postfix  postfix为本地邮箱推送方式需安装的软件,若同时配置本地和外部邮箱两种发送方式,系统会优先采用外部邮箱方式,所以该步骤不是必须但最好关闭这个服务。
  2.安装邮件发送工具mailx
# yum -y install mailx  查看mailx版本:
# mail -V
12.5 7/5/10  3.配置外部邮箱
# 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’为‘客户端授权密码’
http://s1.运维网.com/images/20180702/1530525478576966.png
  测试外部邮箱
# echo "zabbix test mail 123" |mail -s "zabbix" zabbix_test_123@163.comhttp://s1.运维网.com/images/20180423/1524471175333230.png
  由于163的反垃圾机制,当发送为其它邮箱如126、qq邮箱时会报错,故本例中发送和接收邮箱都为zabbix_test_123@163.com。如若上生产可配置企业邮箱。
  4.编写邮件发送脚本
  修改脚本路径
# view /etc/zabbix/zabbix_server.conf
AlertScriptsPath=/etc/zabbix/alertscripts  编写脚本mail.sh
# cd /etc/zabbix/
# mkdir alertscripts && cd alertscripts && touch mail.sh
# more mail.sh
#!/bin/bash
echo "$3" | mail -s "$2" $1
# chmod 755 mail.sh  $1:收件人邮箱地址;$2:邮件标题;$3:邮件内容
  5.web端配置
  5.1创建报警媒介类型
http://s1.运维网.com/images/20180423/1524472510565779.png
  脚本参数分别对应:收件人地址、主题、详细内容
  5.2配置用户
  选择Admin:
http://s1.运维网.com/images/20180423/1524473522771151.png

  添加报警媒介:
http://s1.运维网.com/images/20180423/1524473683731165.png

  5.3创建报警动作
  配置-动作-创建动作,新建动作:
http://s1.运维网.com/images/20180423/1524476127195978.png
  新建操作:

http://s1.运维网.com/images/20180423/1524474236544153.png
http://s1.运维网.com/images/20180424/1524554899102679.png
http://s1.运维网.com/images/20180423/1524475856303585.png
  新建操作就是通过何种方式将消息发送给谁,其它选项默认。
  添加恢复操作:
http://s1.运维网.com/images/20180423/1524476500529915.png
  添加后的动作:
http://s1.运维网.com/images/20180423/1524476342802637.png
  5.4测试邮件告警
  新增告警项,在agent端/home文件系统使用dd命令创建文件,将文件系统使用率提升至90%以上以触发告警:
# dd if=/dev/zero of=test bs=1M count=1950  用dd命令生成一个1950M的test文件,使/home使用率告警。

http://s1.运维网.com/images/20180424/1524534050207892.png
  触发邮件告警:
http://s1.运维网.com/images/20180424/1524533674463559.png
http://s1.运维网.com/images/20180424/1524533715714249.png
http://s1.运维网.com/images/20180424/1524533726252777.png
  发现邮件以附件方式发送,显示不正常,修改邮件发送脚本。
  安装dos2unix转换工具:
# yum -y install dos2unix  编辑发送脚本:
# cd /etc/zabbix/alertscripts
# touch mailtmp.txt && chmod 777 mailtmp.txt
# chown -R zabbix:zabbix /etc/zabbix/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: 权限不够’。
http://s1.运维网.com/images/20180424/1524554772603522.png
  发现正文不再以附件形式显示。
  查看告警日志:
http://s1.运维网.com/images/20180424/1524555066587821.png
  至此邮件告警配置完成。
  微信推送
  1.公众号注册
  登陆https://work.weixin.qq.com/, 注册企业号。
http://s1.运维网.com/images/20180424/1524557261493924.png
http://s1.运维网.com/images/20180424/1524559957286828.png
  CorpID后面web端配置会用到。

  2.新增应用

http://s1.运维网.com/images/20180424/1524559980333186.png

http://s1.运维网.com/images/20180424/1524560217553091.png

http://s1.运维网.com/images/20180424/1524560306818313.png
  AgentId和Secret后面web端配置会用到。
  3.添加部门及成员
http://s1.运维网.com/images/20180425/1524618722316216.png

http://s1.运维网.com/images/20180425/1524618759595049.png
http://s1.运维网.com/images/20180428/1524885667379674.png
  部门id为3,后面会用到。

  添加成员。添加成员可以直接添加,也可以微信邀请:
http://s1.运维网.com/images/20180425/1524621082290898.png

http://s1.运维网.com/images/20180425/1524621123709597.png
  直接添加:
http://s1.运维网.com/images/20180425/1524618825492545.png
http://s1.运维网.com/images/20180425/1524623364204522.png
  成员添加完成后修改应用可见范围为新建部门zabbix-webchat-01:
http://s1.运维网.com/images/20180425/1524624479538625.png
  查看部门成员:
http://s1.运维网.com/images/20180425/1524639328410723.png

http://s1.运维网.com/images/20180425/1524639306401778.png

  4.下载微信发送脚本
# git clone https://github.com/loong576/Wechat-Alert-for-Zabbix.git
# cd Wechat-Alert-for-Zabbix/
# cp wechat_alert.py /etc/zabbix/alertscripts/
# chown -R zabbix:zabbix /etc/zabbix/alertscripts/
# chmod -R 755 /etc/zabbix/alertscripts/  没有git命令可先用yum安装。

  requests库安装:
# yum -y install epel-release
# yum -y install python-pip
# pip install --upgrade pip
# pip install requests  requests模块可以直接用get(), post(),put(), delete(), head() ,options(),方法对url操作。
  5.web端配置
  5.1创建报警媒介类型
http://s1.运维网.com/images/20180428/1524881454593483.png
  5.2配置用户

  新建用户组群“weixin”,新建用户“weixin”:
http://s1.运维网.com/images/20180428/1524882011195989.png
  添加访问主机群权限:
http://s1.运维网.com/images/20180428/1524883599626704.png
  添加的主机群主为“zabbix-test”,即用户“weixin”只会收到zabbix-test群组下主机的告警信息。

http://s1.运维网.com/images/20180428/1524882041768728.png
  配置用户的报警媒介:

http://s1.运维网.com/images/20180428/1524881862231712.png
  5.3创建报警动作
http://s1.运维网.com/images/20180428/1524882152123936.png
http://s1.运维网.com/images/20180428/1524882274393745.png
http://s1.运维网.com/images/20180428/1524882616197536.png
  添加告警恢复消息:
http://s1.运维网.com/images/20180428/1524882690740632.png
http://s1.运维网.com/images/20180428/1524884326634021.png

  5.4微信告警测试
  在agent端触发/var文件系统告警:
# cd /var
# dd if=/dev/zero of=test bs=1M count=1800http://s1.运维网.com/images/20180428/1524885049318216.png

http://s1.运维网.com/images/20180428/1524884874580302.png
http://s1.运维网.com/images/20180428/1524884975367626.png
  微信告警接收可以直接关注企业号在“微信”app接收,或者下载“企业微信”专门来收告警,以便和日常使用的微信做区分。




页: [1]
查看完整版本: Zabbix3.4.8搭建及邮件微信告警实现