zabbix实战

参考:

https://www.cnblogs.com/clsn/p/7885990.html#auto_id_15

https://my.oschina.net/logmm/blog/1844724#h1_14

 

一、监控平台介绍

1、常见的开源监控软件

cacti、nagios、zabbix、smokeping、open-falcon等

catcti、nagios、zabbix服务端监控,需要php环境支持,其中cacti、zabbix需要mysql作为数据存储;nagios不需要存储历史数据,注重服务或者监控项的状态;zabbix会获取服务或者监控项目的数据,并把它记录到数据库。

open-falcon是小米公司开发的。

2、zabbix

官方网站:https://www.zabbix.com/

Zabbix是一个基于WEB界面的提供分布式系统监控以及网络监控功能的企业级开源运维平台,也是目前国内互联网用户中使用最广的监控软件。

Zabbix易于管理和配置,能生成比较漂亮的数据图,其自动发 现功能大大减轻日常管理的工作量,丰富的数据采集方式和API接口可以让用户灵活进行数据采集,而分布式系统架构可以支持监控更多的设备。理论上,通过 Zabbix提供的插件式架构,可以满足企业的任何需求。

 

工作流程:

Agent安装在被监控的主机上,Agent负责定期收集客户端本地各项数据,并发送到Zabbix server端,Zabbix server端收到数据,将数据存储到数据库中,用户基于Zabbix Web可以看到数据在前端显示的图像。

 

zabbix监控部署,5个常见的程序:

  • zabbix_server:服务端守护进程,其中,zabbix_agentd、zabbix_get、zabbix_sender、zabbix_proxy的数据最终提交给zabbix_server。
  • zabbix_agentd:客户端守护进程,负责收集客户端数据,比如cpu负载、内存、磁盘使用情况等
  • zabbix_get:zabbix数据获取工具,单独使用的命令,通常在server端或proxy端执行获取远程客户端信息的命令
  • zabbix_sender:zabbix数据发送工具,用于发送数据给server端或proxy端,通常用于耗时比较长的检查,很多检查非常耗时,导致zabbix超时,于是需要在脚本中执行完毕之后,使用sender主动提交数据
  • zabbix_proxy:zabbix分布式代理守护进程,分布式监控架构需要部署zabbix_proxy

 

二、安装配置

1、环境

zabbix服务端服务器版本

# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)

 

zabbix使用目前最新版本:Zabbix 4.0 LTS 

 zabbix官网下载以及配置说明:https://www.zabbix.com/download_sources

2、安装-服务端

因为程序运行需要连接数据库,我们先安装数据库软件,MySQL和mariadb都可以

2.1、安装-数据库

yum安装mariadb

# yum install -y mariadb-server
# systemctl start mariadb.service

创建初始数据库

# mysql -uroot -p
password
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'password';
mysql> quit;

后面可能需要重置登录密码

mysql>update zabbix.users set passwd=md5('123456') where alias='Admin';
mysql>flush privileges;

2.2、yum形式安装zabbix rpm

配置yum源

阿里yum配置

#curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.rep

#curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

zabbix yum安装

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

开始yum安装zabbix服务

依赖包安装
# yum install  gcc curl curl-devel libcurl-devel pcre-devel net-snmp-devel net-snmp -y

 

安装服务端
# yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent //服务端也安装zabbix-agent用于监控自己和使用客户端的工具

安装成功 Installed: zabbix
-agent.x86_64 0:4.0.3-1.el7 zabbix-server-mysql.x86_64 0:4.0.3-1.el7 zabbix-web-mysql.noarch 0:4.0.3-1.el7 Dependency Installed: OpenIPMI-libs.x86_64 0:2.0.23-2.el7 OpenIPMI-modalias.x86_64 0:2.0.23-2.el7 dejavu-fonts-common.noarch 0:2.33-6.el7 dejavu-sans-fonts.noarch 0:2.33-6.el7 fontpackages-filesystem.noarch 0:1.44-8.el7 fping.x86_64 0:3.10-4.el7 iksemel.x86_64 0:1.4-2.el7.centos libXpm.x86_64 0:3.5.12-1.el7 libevent.x86_64 0:2.0.21-4.el7 libtool-ltdl.x86_64 0:2.4.2-22.el7_3 libxslt.x86_64 0:1.1.28-5.el7 libzip.x86_64 0:0.10.1-8.el7 net-snmp-libs.x86_64 1:5.7.2-37.el7 php.x86_64 0:5.4.16-46.el7 php-bcmath.x86_64 0:5.4.16-46.el7 php-cli.x86_64 0:5.4.16-46.el7 php-common.x86_64 0:5.4.16-46.el7 php-gd.x86_64 0:5.4.16-46.el7 php-ldap.x86_64 0:5.4.16-46.el7 php-mbstring.x86_64 0:5.4.16-46.el7 php-mysql.x86_64 0:5.4.16-46.el7 php-pdo.x86_64 0:5.4.16-46.el7 php-xml.x86_64 0:5.4.16-46.el7 t1lib.x86_64 0:5.1.2-14.el7 unixODBC.x86_64 0:2.3.1-11.el7 zabbix-web.noarch 0:4.0.3-1.el7

加入开机启动:

Linux6系列:chkconfig zabbix_server on

Linux7系列:systemctl enable zabbix_server

导入数据:

#zcat /usr/share/doc/zabbix-server-mysql-4.0.1/create.sql.gz|mysql -uzabbix -pzabbix zabbix

修改zabbix服务主配置文件

编辑文件/etc/zabbix/zabbix_server.conf 

#vim /etc/zabbix/zabbix_server.conf
DBPassword=password

添加时区  修改/etc/httpd/conf.d/zabbix.conf

#vim /etc/httpd/conf.d/zabbix.conf
   php_value date.timezone Asia/Shanghai

启动服务

# systemctl start zabbix-server
# systemctl start httpd

写入开机自启动

chmod +x /etc/rc.d/rc.local
cat >>/etc/rc.d/rc.local<<EOF
systemctl start mariadb.service
systemctl start httpd
systemctl start zabbix-server
EOF

2.3、编译安装zabbix

说明:

编译安装步骤分为:编译安装zabbix-server>添加服务>配置主配文件>将web主文件放到web程序目录下

添加客户端zabbix用户:

#groupadd zabbix
#useradd -g zabbix zabbix

下载源码包:

# wget https://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/4.0.3/zabbix-4.0.3.tar.gz

解压

#tar -zxvf zabbix-4.0.3.tar.gz

安装过程

安装依赖:
#yum install libevent-devel pcre* -y

配置
同时安装server和agent,并支持将数据放入MySQL数据库中,可使用如下配置命令
#./configure --enable-server --enable-proxy --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --prefix=/usr/local/zabbix

如果仅安装sever,并支持MySQL数据库,可使用如下配置命令
#./configure --enable-server --with-mysql --with-net-snmp --prefix=/usr/local/zabbix

如果仅安装proxy,并支持MySQL数据库,可使用如下配置命令
#./configure --enable-proxy --with-mysql --with-net-snmp --with-ssh2 --prefix=/usr/local/zabbix

如果仅安装客户端agent,可使用如下配置命令
#./configure --prefix=/usr/local/zabbix --enable-agent

编译安装
#make && make install

#ln -s /usr/local/zabbix/sbin/* /usr/local/sbin/ #添加系统软连接
#ln -s /usr/local/zabbix/bin/* /usr/local/bin/ #添加系统软连接

 导入数据:

源码形式安装的:zabbix源码包解压后的database/mysql/目录中有zabbix的模版数据,导入即可

zabbix-4.0.1]# cd database/mysql/

[mysql]# mysql -uzabbix -pzabbix zabbix < schema.sql      
[mysql]# mysql -uzabbix -pzabbix zabbix < images.sql 
[mysql]# mysql -uzabbix -pzabbix zabbix < data.sql 

修改zabbix服务主配置文件

编译安装的zabbix配置目录:/usr/local/zabbix/etc/zabbix_server.conf

#vim /usr/local/zabbix/etc/zabbix_server.conf
DBhost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
DBPort=3306

加入开机自启动

在zabbix源码包解压后的目录中的misc/init.d/fedora/core/目录下有zabbix_agentd、zabbix_server两个文件,这两个文件就是zabbix服务端、客户端的服务文件。

# cd zabbix-4.0.1
# ls misc/init.d/fedora/core/
zabbix_agentd  zabbix_server

 zabbix_agentd、zabbix_server就是服务端和客户端的服务文件,复制到/etc/rc.d/init.d/目录中。分别设置可执行权限并添加到系统服务管理中。

# cp misc/init.d/fedora/core/*  /etc/rc.d/init.d/
# chmod +x /etc/rc.d/init.d/zabbix_server 
# chmod +x /etc/rc.d/init.d/zabbix_agentd 
# chkconfig --add /etc/rc.d/init.d/zabbix_agentd
# chkconfig --add /etc/rc.d/init.d/zabbix_server  

修改zabbix_agentd、zabbix_server文件的BASEDIR:

# vim /etc/rc.d/init.d/zabbix_server
BASEDIR=/usr/local/zabbix/# vim /etc/rc.d/init.d/zabbix_agentd
BASEDIR=/usr/local/zabbix/

BASEDIR就是zabbx的安装目录。

 

复制zabbix的Web应用程序到网站目录中

# cd zabbix-4.0.1
# cp -r frontends/php/* /htdocs/zabbix/
# chown -R nginx.nginx /htdocs/

 编译安装 nginx和php参考:https://www.cnblogs.com/zengchunyun/p/5555997.html

使用浏览器访问http://zabbix_ip:port/setup.php

3、初始化配置WEB界面

1、使用浏览器访问http://zabbix_ip:port

 

2、检测页面需要全部通过

 

3、选择mysql数据库,填写连接信息

4、host与port不需要修改,name自定义

5、确认信息,正确点击下一步

6、完成

进入登陆界面  账号Admin密码zabbix   注意A大写

 

4、安装-客户端

4.1.Linux zabbix_agent客户端

安装配置步骤很简单:创建zabbix用户和组-→安装(yum/编译)-→修改配置文件中监控机ip-→安装后配置(开机启动、防火墙)

1、yum安装

#yum install zabbix-agent -y

2、编译安装

需要监控的客户端往往是企业内部的所有服务器,所以数量较多,如果没有访问外网权限,可以使用源码编译安装方式,

ansible批量安装zabbix-agentd

 # ansible zbx -m raw -a 'groupadd zabbix && useradd -g zabbix zabbix'               //设置客户端zabbix用户

# ansible zbx -m copy -a "src=/tools/zabbix-4.0.3.tar.gz dest=/tools/"              //传输软件包
# ansible zbx -m raw -a 'tar -zxvf /tools/zabbix-4.0.3.tar.gz -C /tools/'           //解压
# ansible zbx -m raw -a 'cd /tools/zabbix-4.0.3 && ./configure --prefix=/usr/local/zabbix --enable-agent && make && make install'    //编译安装
# ansible zbx -m raw -a 'sed -n 94p /usr/local/zabbix/etc/zabbix_agentd.conf'       //查看客户端配置
# ansible zbx -m raw -a 'sed -i "94s/127.0.0.1/192.168.12.120/" /usr/local/zabbix/etc/zabbix_agentd.conf'      //修改客户端配置
# ansible zbx -m raw -a 'ln -s /usr/local/zabbix/sbin/* /usr/local/sbin/'           //添加系统软连接
# ansible zbx -m raw -a 'ln -s /usr/local/zabbix/bin/* /usr/local/bin/'             //添加系统软连接

3、安装过程中的问题解决:

若编译安装报错:

configure: error: Unable to use libpcre (libpcre check failed)

我们需要安装依赖包:yum -y install pcre*

 

4、启动zabbix-agentd。

# ansible zbx -m raw -a '/usr/local/zabbix/sbin/zabbix_agentd'
# ansible zbx -m raw -a 'netstat -lnp | grep 10050'

 5、加入到开机启动

# ansible linux -m raw -a 'echo "/usr/local/zabbix/sbin/zabbix_agentd" >> /etc/rc.d/rc.local'

6、检查服务端和客户端的联通性

如果防火墙未开放

#iptables -A INPUT -s 192.168.12.120 -p tcp --dport 10050 -j ACCEPT

工具zabbix_get:yum install zabbix_get -y

# zabbix_get -s x.x.x.x -p 10050 -k "system.cpu.load[all,avg1]"              //x.x.x.x 是客户端的ip
0.000000

4.2.windows zabbix_zgent客户端

软件获取:https://www.zabbix.com/download_agents,下载zabbix_agents-4.0.0-win-i386.zip

1、解压后进行配置:编辑配置文件zabbix_agentd.win

EnableRemoteCommands=1           
#允许在本地执行远程命令

LogRemoteCommands=1               
LogFile =D:\Program Files\zabbix_agents-4.0.0-win-i386\zabbix.log
#执行远程命令是否保存操作日志
 
Server = 192.168.12.120                     
#填写zabbix服务器IP地址

Hostname=win-server13.39                   
#zabbix_agent客户端计算机名 (被监控主机)

2、安装并启动:dos下运行注册服务和启动

c:\zabbix\zabbix_agentd.exe -i -c C:\zabbix\zabbix_agentd.win.conf                      #安装zabbix客户端

C:\ zabbix\ zabbix_agentd.exe -s -c C:\zabbix\zabbix_agentd.win.conf                    #启动zabbix服务

3、win安装zabbix-agent的问题

【0X0000005】

这种报错说明需要使用管理员权限,重新用管理员权限运行cmd执行

卸载服务重新安装

先停止服务,然后运行C:\zabbix\zabbix_agentd.exe  -d  -c  C:\zabbix\zabbix_agentd.win.conf

 

三、主动和被动模式

主动或被动是相对客户端而言。

  • 被动模式:服务端会主动连接客户端获取监控项目数据,客户端被动地接收连接,并把监控信息传递给服务端
  • 主动模式:客户端会主动把监控数据汇报给服务端,服务端只负责接收即可。
  • 当客户端数量非常多时,建议使用主动模式,这样可以降低服务端的压力。
  • 服务端有公网ip,客户端只有内网ip,但却能连外网,这种场景适合主动模式。

主动模式:在agentd配置文件中定义:ServerActive=服务端ip

被动模式:在agentd配置文件中定义:Server=服务端ip

四、配置报警

1、配置邮件告警

1.1、说明

发送邮件主要思路是:触发器 -> 动作 -> 脚本发送邮件

脚本存放位置在zabbix_server.conf里:

#vim zabbix_server.conf
#AlertScriptsPath=/etc/zabbix/script //将发送告警邮件的脚本放在这里即可

 

修改了配置文件需要重启zabbix_server

使用163或qq邮箱发告警邮件,需要打开开启POP3/SMTP服务,开启后会生成授权码,授权码保存好,后面脚本中需要用到。

163邮箱为例,

 

 

 1.2、具体配置:

 第一步:安装邮件服务器

#wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz
#tar zxf sendEmail-v1.56.tar.gz -C /usr/src/
#cd /usr/src/sendEmail-v1.56/
#cp -a sendEmail /usr/local/bin/
#yum install perl-Net-SSLeay perl-IO-Socket-SSL -y
#wget http://www.cpan.org/src/5.0/perl-5.10.0.tar.gz
#tar zxf perl-5.10.0.tar.gz
#cd perl-5.10.0
#./configure.gnu -des -Dprefix=/usr/local/perl
#make
#make install
#mv /usr/bin/perl /usr/bin/perl.bak
#ln -s /usr/local/perl/bin/perl /usr/bin/perl

 

 测试邮件发送:

/usr/local/bin/sendEmail -f 发送方邮箱地址 -t 接收方邮件地址 -s 发送方SMTP服务器 -u "test" -xu 发送方邮箱登录用户名 -xp 发送方邮件服务器登录密码 -m "test-1234567890" -l /var/log/sendmail.log

 

 邮件测试成功,我们来写邮件脚本:

#vim /etc/zabbix/script/sendmail.sh
#!/bin/bash
#sendEmail //程序主命令
#-f //发件人邮箱
#-t //收件人邮箱
#-s //发件人邮箱的smtp服务器
#-u //邮件的标题
#-o message-content-type=html //邮件内容的格式为html
#-o message-charset=utf8 //邮件内容字符编码
#-xu //发件邮箱的用户名
#-xp //发件邮箱的密码,也就是上面获取到的授权码
#-m //邮件的具体内容
#-l //邮件发送日志记录文件,非必须

#以下位置变量是zabbix触发邮件时需要传参的
#$1 //收件人邮箱
#$2 //标题
#$3 //邮件的具体内容
to
=$1 subject=$2 body=$3 user='xxx@136.com' smtp_server='smtp.136.com' password='xxxxx' /usr/local/bin/sendEmail -f $user -t "$to" -s $smtp_server -u "$subject" -o message-content-type=html -o message-charset=utf8 -xu $user -xp $password -m "$body" >> /var/log/sendmail.log

 第二步:页面配置zabbix邮件告警

(1)添加告警媒介

 

 

 

{ALERT.SENDTO} //$1 收件人邮箱
{ALERT.SUBJECT} //$2 邮件标题
{ALERT.MESSAGE} //$3 邮件内容

 

写完点击更新,将其保存

我们来测试用zabbix调用脚本发送邮件

 

 

 

发送成功!!!

 

 

 

 

(2)添加触发器动作

 

 

 动作

 

 

 操作

 

 

 

 恢复操作

告警邮件 主机 和 问题详情 是红色  恢复邮件 主机 和问题详情 是绿色

<table border="1"  bordercolor="black" cellspacing="0px" cellpadding="4px">
<tr >

<td>告警主机</td>
<td bgcolor="#FF3333">{HOST.CONN}</td>
</tr>

<tr>
<td>告警时间</td>
<td>{EVENT.DATE} {EVENT.TIME}</td>
</tr>

<tr>
<td>告警等级</td>
<td>{TRIGGER.SEVERITY}</td>
</tr>

<tr>
<td>告警信息</td>
<td bgcolor="#FF3333">{TRIGGER.NAME}</td>
</tr>

<tr>
<td>告警项目</td>
<td>{TRIGGER.KEY1}</td>
</tr>
<tr >
<td>问题详情</td>
<td bgcolor="#FF3333">{ITEM.NAME}: {ITEM.VALUE}</td>
</tr>
<tr>
<td>当前状态</td>
<td>{TRIGGER.STATUS}: {ITEM.VALUE1}</td>
</tr>
<tr>
<td>事件ID</td>
<td>{EVENT.ID}</td>
</tr>

</table>
告警消息内容
<table border="1"  bordercolor="black" cellspacing="0px" cellpadding="4px">
<tr >

<td>告警主机</td>
<td bgcolor="#14ff68">{HOST.CONN}</td>
</tr>

<tr>
<td>告警时间</td>
<td>{EVENT.DATE} {EVENT.TIME}</td>
</tr>

<tr>
<td>告警等级</td>
<td>{TRIGGER.SEVERITY}</td>
</tr>

<tr>
<td>告警信息</td>
<td bgcolor="#14ff68">{TRIGGER.NAME}</td>
</tr>

<tr>
<td>告警项目</td>
<td>{TRIGGER.KEY1}</td>
</tr>
<tr >
<td>问题详情</td>
<td bgcolor="#14ff68">{ITEM.NAME}: {ITEM.VALUE}</td>
</tr>
<tr>
<td>当前状态</td>
<td>{TRIGGER.STATUS}: {ITEM.VALUE1}</td>
</tr>
<tr>
<td>事件ID</td>
<td>{EVENT.ID}</td>
</tr>

</table>
恢复消息内容

 

接下来只需要给Admin用户添加收件邮箱了

 

告警效果:

 

 

 

 

参考: https://www.cnblogs.com/hukey/p/11528971.html

 

2、配置报警第三方平台

1、添加报警第三方平台

http://www.onealert.com

通过 OneAlert 提供的通知分派与排班策略,以及全方位的短信、微信、QQ、电话提醒服务,您可以在最合适的时间,将最重要的信息推送给最合适的人员。

第一步:web操作

 

可在个人中心关联微信

第二步:按照提示安装

 报警效果展示

 

 2、删除onealert告警

在zabbix监控服务web端操作

第一步:删除报警媒介中的脚本

 

第二步:删除用户

 

第三步:删除用户群组

 

第四步:删除创建的动作

 

 

五、监控配置

1、添加监控host group、host

添加群组:登录zabbix web界面,点击:配置 -->主机群组 -->创建主机群组

根据业务或服务器类型自定义组名然后点击添加

添加主机:登录zabbix web界面,点击:配置 -->主机 -->创建主机

红色为必填项,名称写了客户端ip地址,可以自定义,接口地址必须为被监控服务器的ip和监控端口(默认10050)

 

2、自定义模板

登录zabbix web界面,点击:配置 -->模板 -->创建模板

模板的作用是可以通过模板来方便的为相同的主机匹配已经定义好的监控项等,使用起来特别方便

编辑模板名称和选择模板对应的主机群组

新建的这个模版为空的,如何快速完善空模板有两种方法

1、选择其他的模版,copy

比如Template OS Linux模版,选择一些监控项

 

勾选一些监控项,比如:

 

根据实际勾选一些监控项,选择自定义的模板然后点击Copy,这样可以快速的为新模板匹配监控项、触发器、图形

2、链接其他模板,然后删除不用的监控项

点击模板-->链接的模板,然后点击选择,选择需要的模版,再点击Add,最后更新即可。如下图:

 

注意:这时候再去删除链接过来的项目会报错,需要点击“取消链接”

 

3、自定义监控项

虽然zabbix自带了一些常用的监控项,但有时候我们还需要自定义需要的监控项,自定义监控项有助于我们学习监控项的配置和工作方式

下面是在配置文件中指定监控脚本的目录

#cat /etc/zabbix/zabbix_agentd.conf
...
Include=/usr/local/zabbix/etc/zabbix_agentd.d/*.conf         //主配置文件中有监控脚本目录
...

---------------------------------------------------------------------------------
ansible批量修改

  #ansible zbx -m raw -a "sed -i '267 s#^#Include=/usr/local/zabbix/etc/zabbix_agentd.d/*.conf\n#' /usr/local/zabbix/etc/zabbix_agentd.conf "

写一个监控在线用户数的例子:

# cat userparameter_login.conf
UserParameter=login-user,who|wc -l
//命令格式:UserParameter=<key>,<shell command>
---------------------------------------------------------------------------------
ansible批量修改
#ansible zax -m raw -a "mkdir /usr/local/zabbix/etc/zabbix_agentd.d"
#ansible zax -m raw -a 'echo "UserParameter=login-user,who|wc -l" > /usr/local/zabbix/etc/zabbix_agentd.d/userparameter_login.conf'

配置完成后重启客户端

#ps -ef|grep zabbix_agentd |awk '{print $2}' |xargs kill -9

#/usr/local/zabbix/sbin/zabbix_agentd -c /usr/local/zabbix/etc/zabbix_agentd.conf

-----------------------------------------------------------------------------------
ansible 批量重启
...

服务端测试

# zabbix_get -s 192.168.12.50 -p 10050 -k "login-user"    //-s 指定客户端ip     -p 指定端口    -k 指定key
2

4、在web端配置为主机添加自定义监控项一条龙配置过程

第一步:创建模板

配置→模板→创建模板

创建完成的模板

第二步:创建应用级,其作用是给监控项分类

点击应用级→创建应用级,自定义应用级名称添加

第三步:创建监控项

监控项→创建监控项

注:选择刚才创建的应用级

 

第四步:创建触发器

触发器→创建触发器

 

第五步:创建图像

 图形→创建图形

 

第六步:主机关联模板

一个主机可以关联多个模板

配置→主机

查看监控的图形效

5、自动发现

1、创建自动发现规则

zabbix可以利用discovery模块,实现自动发现主机、自动将主机添加到主机组、自动加载模版、自动创建项目、自动创建监控图像。具体操作如下:

依次选择:配置-->自动发现-->创建发现规则。创建客户端发现规则。如下图所示:

参数解释:

Name(名称):规则名称,自定义名称

Discovery by proxy(由agent代理发现):通过代理搜索

IP range(ip范围):zabbix_server搜索区域的IP范围

Update interval(更新间隔):更新的间隔

Checks(检查):检测方式,如果用ping方式去发现主机,则zabbix_server需要安装fping。此处使用agent方式发现。使用zabbix agentd方式的时候,要使用key,这里key为:system.uname。也可以在zabbix_agentd配置文件中自定义key。

Device uniqueness criteria(设备唯一性标准):以IP地址作为被发现主机的标识

设置好检查之后,点”添加“,检查添加完成后,勾选”已启用“,最后点底部的“添加”  

2、创建发现Action,即对发现的主机进行自动管理配置

zabbix发现规则创建后,被发现的IP主机不会自动添加至zabbix监控列表,必须添加发现动作。

依次选择:配置-->动作-->事件源(自动发现)-->创建动作。如下图:

 

设置好新的触发条件主机ip后,点击”添加“,然后点击”操作“:

 

按上图添加“操作”

3、查看监控主机

设置好之后。依次点击:监测中-->自动发现,这样就可以查看到发现到的主机。如下图:

6、常用监控项添加配置

6.1、端口监控

我们通过内置zabbix内置的key(net.tcp.listen[prot])配置

内置key官方说明:https://www.zabbix.com/documentation/3.4/zh/manual/config/items/itemtypes/zabbix_agent#supported_item_keys

在server端服务器上手动测试:

# zabbix_get -s ip地址 -p 10050 -k 'net.tcp.listen[3306]'        //以MySQL端口3306为例
1
// 返回1代表正常,返回0代表故障

 

web端配置监控项(配置>主机/模板>监控项>创建监控项)

 

 web端配置触发器(配置>主机/模板>触发器>创建触发器)

 

查看结果

注:配置完成正常的话显示“已启用”

6.2、进程监控

我们通过内置zabbix内置的key(proc.num[<name>,<user>,<state>,<cmdline>])配置

内置key官方说明:https://www.zabbix.com/documentation/3.4/zh/manual/config/items/itemtypes/zabbix_agent#supported_item_keys

在server端服务器上手动测试:

# zabbix_get -s ip地址 -p 10050 -k 'proc.num[keepalived]'   //以keepalived进程为例
3
// 返回3代表有进程正常,返回0代表故障

web端配置监控项(配置>主机/模板>监控项>创建监控项)

 web端配置触发器(配置>主机/模板>触发器>创建触发器)

 

 

 

查看结果

 

 

6.3、监控磁盘空间

6.4、MySQL主从监控

 

六、问题解决

1、解决中文乱码

发现文字的部分是不可读的方块,是因为zabbix字体库中没有中文,需要我们修改默认字体为中文

字体配置文件/usr/local/nginx/html/zabbix/include/defines.inc.php (/usr/local/nginx/html/是我网站的根目录),下配置了字体文件的位置

# vim /htdocs/zabbix/include/defines.inc.php
define('ZBX_FONTPATH',                          realpath('fonts')); // where to search for font (GD > 2.0.18)

字体放在fonts目录。也就是zabbix网站目录的fonts目录下:

# cd /usr/local/nginx-1.16.0/html/zabbix/assets/fonts/
]# ll

-rw-r-----. 1 nginx nginx 756072 10月 21 17:25 DejaVuSans.ttf

 

从windows中拷贝一个中文字体将其替换:

Windows中:C:\Windows\Fonts里面的就是字体:

-rw-r-----. 1 nginx nginx   756072 10月 21 17:25 DejaVuSans.ttf
-rw-r-----  1 root  root  18214472 10月 29 11:33 simsun.ttc    //windows中的中文字体文件
[fonts]# mv DejaVuSans.ttf DejaVuSans.ttf_bak
[fonts]# mv simsun.ttc DejaVuSans.ttf
[fonts]# chown nginx.nginx DejaVuSans.ttf
[fonts]# ll
总用量 18528
-rw-r-----  1 nginx nginx 18214472 10月 29 11:33 DejaVuSans.ttf
-rw-r-----. 1 nginx nginx   756072 10月 21 17:25 DejaVuSans.ttf_bak

也可以

# yum -y install wqy-microhei-fonts
# cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/local/nginx-1.16.0/html/zabbix/assets/fonts/DejaVuSans.ttf

 

 

七、内置变量

1、邮件告警变量表

常用变量值

默认接收人:故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!

默认信息:

告警主机:{HOSTNAME1},IP地址:{HOST.CONN}

告警时间:{EVENT.DATE} {EVENT.TIME}

告警等级:{TRIGGER.SEVERITY}

告警信息: {TRIGGER.NAME}

告警项目:{TRIGGER.KEY1}

问题详情:{ITEM.NAME}:{ITEM.VALUE}

当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}

事件ID:{EVENT.ID}

恢复信息:打钩

恢复主旨:恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!

恢复信息:

告警主机:{HOSTNAME1},IP地址:{HOST.CONN}

告警时间:{EVENT.DATE} {EVENT.TIME}

告警等级:{TRIGGER.SEVERITY}

告警信息: {TRIGGER.NAME}

告警项目:{TRIGGER.KEY1}

问题详情:{ITEM.NAME}:{ITEM.VALUE}

当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}

事件ID:{EVENT.ID}

主机显示名:{HOST.NAME}

 

 

ansible:playbook安装zabbix

posted @ 2020-10-21 09:43  abm  阅读(395)  评论(0编辑  收藏  举报