在之前的zabbix 监控部署(上) 这篇博客中,主要是使用了源码编译安装的方式,在实际的生产中,如果没有特殊要求,也可以直接使用yum 安装。这篇博文主要是使用yum方式通过salt安装的一个简单示例,同时介绍如何自定义监控项。

选择yum源和安装版本

由于zabbix每六个月会发布一个新的稳定版本,在此期间,还会发布长期支持版LTS (Long Term Support), 长期支持版本往往有较长时间的支持,遇到了问题也能更容易解决,所以如果使用yum安装的方式,建议使用LTS版本。目前的LTS版本是3.0, 在不久之后将会推出4.0的LTS版本,所以这里选择使用zabbix3.0最为示例。系统版本为CentOS7.2。

如果使用手动安装,需要添加3.0的yum源:

yum install http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm

使用salt安装的sls文件(仅供参考):

zabbix-server-rhel:file.managed:- name: /tmp/zabbix-release-3.0-1.el7.noarch.rpm- source: salt://zabbix/files/zabbix-release-3.0-1.el7.noarch.rpmcmd.run:- name: rpm -i /tmp/zabbix-release-3.0-1.el7.noarch.rpm- unless: test -f /etc/yum.repos.d/zabbix.repo
zabbix-server-install:pkg.installed:- pkgs:- httpd- mariadb-server - gcc  - gcc-c++- glibc - mariadb-devel - libxml2-devel - libcurl - curl  - libcurl-devel - fping- net-snmp- net-snmp-libs - net-snmp-utils  - net-snmp-devel- libssh2-devel - OpenIPMI-devel- java-1.8.0-openjdk-devel- zabbix-server-mysql- zabbix-agent- zabbix-web- zabbix-web-mysql- zabbix-get- require:- cmd: zabbix-server-rhel
zabbix-db-config:file.managed:- name: /etc/my.cnf- source: salt://zabbix/files/my.cnfservice.running:- name: mariadb- enable: True- require:- pkg: zabbix-server-installcmd.run:- name: mysql -e "DROP USER ''@'localhost';" && mysql -e "DROP USER ''@'$(hostname)'" && mysql -e "DROP DATABASE test" && mysql -e "DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');" && mysql -e " create database zabbix;grant all on zabbix.* to zabbix@localhost identified by'zabbix';" &&  mysql -e "UPDATE mysql.user SET Password = PASSWORD('zabbix') WHERE User = 'root';" && mysql -e "FLUSH PRIVILEGES"- onlyif: mysql -e "show databases;"- require:- service: zabbix-db-config
zb-server-db-import:cmd.run:- name: zcat /usr/share/doc/zabbix-server-mysql-*/create.sql.gz | mysql zabbix -uzabbix -pzabbix- unless: "mysql -uzabbix -pzabbix -e 'select alias from zabbix.users;'"- require:- cmd: zabbix-db-config
zb-web-config:file.managed:- name: /etc/httpd/conf.d/zabbix.conf- source: salt://zabbix/files/zabbix.conf- user: root- group: root- mode: 644zb-web-service:service.running:- name: httpd- enable: True- reload: True- watch:- file: zb-web-config
zb-agent-service:service.running:- name: zabbix-agent- enable: True- reload: True
zb-server-service:cmd.run:- name: mkdir -p /etc/zabbix/alertscripts- unless: test -d /etc/zabbix/alertscriptsfile.managed:- name: /etc/zabbix/zabbix_server.conf- source: salt://zabbix/files/zabbix_server.conf- user: root- group: root- mode: 644- template: jinja- defaults:DBHost: localhostDBName: zabbixDBUser: zabbixDBPassword: zabbixservice.running:- name: zabbix-server- enable: True- reload: True- watch:- file: zb-web-config

对应的配置文件都放在zabbix/files/目录下。如果使用手动安装,可以参照sls文件中的步骤完成安装。

使用snmp对交换机进行监控

zabbix 可以通过多种方式对多种设备进行监控。只要是支持SNMP协议的设备,就可以对其进行监控,如我们可以通过zabbix 监控网络设备如路由器,交换机,打印机等。对安装支持snmp的操作系统我们也可以对其进行监控。

简单介下绍对华为交换机的监控。

查看交换机支持的SNMP版本,设置团体名:

<sw5752p>display snmp-agent sys-info The contact person for this managed node: R&D Beijing, Huawei Technologies co.,Ltd.The physical location of this node: Beijing ChinaSNMP version running in the system: SNMPv2c

交换机支持v2c,如果交换机使用的是v3版本或者其他版本可以通过修改交换机版本,也可以配置的方式来使用snmpv3。

更改为v2c 版本:

[sw5752p]undo snmp-agent sys-info version v3
[sw5752p]snmp-agent sys-info version v2c

配置团体名:

[sw5752p]snmp-agent community read sw5752-public

在zabbix服务器上,我们可以通过snmp相关命令来获取交换机的状态信息:

# snmpwalk -v 2c -c sw5752-public 192.168.1.2 sysUpTime.0
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (197075041) 22 days, 19:25:50.41

在zabbix 上添加交换机为一个host,选择snmp:

添加需要的模板:

设置团体名:

在主机界面,我们可以看到已经添监控中:

使用agent 对主机进行监控

在大多数情况下,我们都会使用zabbix的agent来监控服务状态。需要对被监控的客户端安装agent,并配置它与服务端通信。

1、安装agent

在zabbix的官方网站上下载与服务端对应版本的agent安装包进行安装。

安装完成后,我们需要修改配置文件,让它与主机通信,再此之前需要统一主机名,主机名要可识别。

修改之后,配置文件要有如下几个参数:

[root@node2 ~]# grep "^[a-Z]"/etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=192.168.1.3  #服务端主机IP
ServerActive=192.168.1.3   #服务端主机IP
Hostname= node2   #本机主机名
Include=/etc/zabbix/zabbix_agentd.d/*.conf   #自定义配置文件路径
#UserParameter=login-users,uptime|awk -F" " '{print $6}'  #此行为自定义,默认注释状态

如果客户端配置了iptables,需要加入一条iptables规则:

iptables -A INPUT -m state --stateNEW -m tcp -p tcp --dport 10050 -j ACCEPT

启动客户端服务.

2、在服务端加入要监控的客户端服务器

打开服务端web管理界面,默认账户为Admin, 密码为 zabbix

创建一个主机组:

如果此时没有主机,这不会有选择列表,这里可以看到之前所创建的主机:

设置主机信息和所属组:

在zabbix3.0版本中,会默认添加本地的bases模板,在低版本中需要手动搜索OS Linux模板添加,这两者都是一样的,在此模板中会对一些基础的服务器状态进行监控:

自定义监控项

自定义监控项需要有两个主要步骤:

  • 修改配置文件,编写自定义监控内容。

  • 在server端加上自定义的监控key值。

1、例如我们要加入一个监控,监控当前状态下系统有多少人同时登录(系统自带的模板也有此功能)

可以使用此命令来获取用户的实时在线数量:

uptime|awk -F " "'{print $4}'

修改配置文件:

vim /etc/zabbix/zabbix_agentd.conf

找到UserParameter这一行,打开注释,设置监控的键值和获取键值的方式:

UserParameter=login-users,uptime|awk-F " " '{print $6}'

语法说明:

UserParameter=KEY,COMMAND

定义一个键值,后面为获得此键值的执行命令,键值的命名对于整个系统必须是唯一的,两者之间逗号隔开,命令也可以是脚本。用户自定义的数据最大可以返回512KB的数据。

提示:如果系统需要自定义多个模板,可以单独创建一个文件,存放路径Include=/usr/local/etc/zabbix_agentd.userparams.conf

配置完成之后,重启zabbix-agent.

2、配置server端

首先在server测试看能否获取到agent端所返回的KEY值,server端上执行:

使用zabbix-get命令:

zabbix_get -s 192.168.1.10 -klogin-users

如果返回值正常,则key 添加成功。

打开server web配置界面,在客户端主机上添加监控项:

创建监控项目:

添加成功后,在这个客户端的items中就可以看到添加的选项:

创建主机图形:

添加刚刚创建的监控项,可以自定义图形的样式:

此时通过监控的主界面,进入图形界面,就可以直接看到系统绘制的状态图:

 创建触发器

当监控的项目到某一个阈值时,需要触发一些动作,下面触发器:

进入触发器的配置界面,点击添加规则按钮就可以设置触发规则:

触发器规则配置界面:

添加成功后,查看添加的项目:

可以对创建的触发器添加报警声音:在userprofile,中设置即可。

创建触发行为:当出现故障时,条件触发报警行为时,自动发送邮件或者手机短信报警。

系统默认自带了一个未被启用的模板,可以重新编辑此模板,也可以添加一个新的模板来定义action的行为。

然后定义发送的内容和收件人:

自定义媒体介质:在系统中默认自带的有mail,短信等报警通知机制,一般常用的是mail功能.

这里定义的是发件箱的信息,在admin账户中,我们还要配置收件箱的信息:

我们也可以通过编写一个发邮件的脚本或者程序来实现,在系统中配置上执行此脚本的触发机制就可以了。

ZABBIX3.0以上的版本需要自定义三个脚本参数,才可以将邮件信息传入脚本:

在server端创建此脚本并加上执行权限,这个脚本的存放路径,在zabbix的配置文件中可以指定:

# grep"AlertScriptsPath"/usr/local/zabbix_server/etc/zabbix_server.conf|grep -v "#"

AlertScriptsPath=/etc/zabbix/alertscripts

将发邮件或者任何动作的脚本放在此目录下,也可以直接使用python编写发邮件的脚本。

注意:脚本中一定要接受三个参数 $1  $2  $3,分别为收件人,发送的主题和内容。对应的参数是 {ALERT.SENDTO}  {ALERT.SUBJECT}  {ALERT.MESSAGE}

编辑用户属性,指定发送报警信息的方式:

对于不同的组,如果有新加的设备和服务器,要添加权限给组,否则其他的组成员无法管理这些新加设备:

当设置的报警被触发成功后,会提示已经发送成功:

如果这里没有设置成功,看一下action模板是否开启,actions中设置是否正确,查看系统日志信息:

tail -f /var/log/zabbix/zabbix_server.log

附上邮件python发送脚本:

#! /usr/bin/envpython
# coding:utf-8from email importencoders
from email.headerimport Header
fromemail.mime.text import MIMEText
from email.utilsimport parseaddr, formataddr
import smtplib
import sysdefsend_mail(_to_email,_subject,_message):smtp_host = 'smtp.ym.163.com'        #邮箱服务器from_email = 'alert@dawanjia.com.cn'   #用户名passwd = '12345password'              #密码msg =MIMEText(_message,'plain','utf-8')msg['Subject'] = _subjectsmtp_server =smtplib.SMTP_SSL(smtp_host,994)   # 994为开启SSL的端口号smtp_server.login(from_email,passwd)smtp_server.sendmail(from_email,[_to_email],msg.as_string())smtp_server.quit()if __name__ =='__main__':send_mail(sys.argv[1],sys.argv[2],sys.argv[3])


自定义模板

对于一些系统不带的监控项目,我们需要自定义一个模板,然后在模板中添加自定义的监控项目。

之后就可以给当前自定义的模板添加 applications,items,trigger等组件.

注意:这里自定义的模板里所加的自定义监控项中,如果是需要修改agent端的配置文件,那么所有使用这个模板的agent端都要修改配置,可以将配置信息编写成单独文件和脚本都放在系统设定的路径下。

# grep "Include"/etc/zabbix/zabbix_agentd.conf

Include=/etc/zabbix/zabbix_agentd.d/*.conf

zabbix 客户端主动模式配置

在zabbix的默认配置中,agent端是被动模式的,server端是主动模式,server端主动发送请求给agent端获取需要的数据,但是当我们有大量的机器需要监控时,仅仅依靠server端去大量的主动发送数据请求是不合适的,所以需要配置agent端主动发送数据给server端才是最佳的方案。

在配置agent端为主动模式时,需要两步操作:

  • 克隆需要的模板,并将模板类型从agent 改为 agent-active状态。

  • 修改agent端的配置文件,注释掉被动模式配置,打开主动模式配置,并设置Activeserver.

转载于:https://blog.51cto.com/tryingstuff/1977879

zabbix 监控部署(下)相关推荐

  1. zabbix监控部署

    zabbix zabbix概念 ​ 对于运维人员来说,监控是非常重要的,想要保证线上业务整体能够稳定运行,那么我们就需要实时关注与其相关的各项指标是否正常.一个业务系统背后,往往存在着很多服务器.网络 ...

  2. zabbix监控部署与设置报警发送邮件

    zabbix监控介绍与部署 zabbix介绍 zabbix组件及功能 zabbix功能与特点 zabbix功能 zabbix特点 zabbix配置文件 部署zabbix zabbix介绍 1.zabb ...

  3. Zabbix监控部署(内网监控外网服务器)

    最近公司新买了一批OVH服务器,这些服务器的硬盘.负载.和实时带宽需要监控.首先想到的就是用Zabbix监控.因为在公司内网中,之前部署过Zabbix监控.只需要在这些OVH服务器上安装zabbix的 ...

  4. zabbix监控系统下——zabbix实现数据库监控、对JMX的支持、server和agent的关系、zabbix监控报警平台

    目录 五.zabbix实现数据库监控 1.在agent端设置 2.在浏览器前端设置 六.zabbix对JMX(Java)应用的支持 七.server和agent的关系 1.agent端的信息采集变被动 ...

  5. Zabbix监控部署在LNMP平台详细步骤

    目录 服务端安装配置 关闭防火墙 LNMP+zabbix 安装nginx1.14 安装mysql 5.7 安装php 7.2 配置nginx支持php 配置php请求被传送到后端的php-fpm模块 ...

  6. zabbix监控部署 与添加主机

    zabbix介绍: zabbix([`zæbiks])是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案. zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供 ...

  7. zabbix监控windows下的mysql

    1.创建监控账号 GRANT SELECT,PROCESS,REPLICATION CLIENT ON *.* TO zabbix@'localhost' IDENTIFIED BY 'zabbix' ...

  8. 2. zabbix监控LINUX下监控CPU,硬盘,流量,内存 (图形化方式)【网络工程】(保姆级图文)

    目录 1. 主机监控设置 启用主机与更新主机 2.设置监控内容 cpu监控 硬盘文件监控 3. 创建一个监控,以内存监控为例 4. 图形可视化,以流量监控为例 总结 欢迎关注 『网络工程专业』 系列, ...

  9. 部署zabbix监控

    文章目录 zabbix监控 部署zabbix服务端 部署zabbix客户端 自定义监控模板 添加报警媒介 zabbix 自动发现与自动注册 zabbix 自动注册(对于 agent2 是主动模式) 部 ...

最新文章

  1. 快速开发rails、==常用插件==
  2. DotNet 项目开发文档的自动生成和相关工具的使用
  3. 欧洲、加拿大、澳大利亚新增2.1万个点可购买比特币现金
  4. 防护很重要!教你教你认识和检验安防产品的IP防护等级
  5. Android开发之Buidler模式初探结合AlertDialog.Builder讲解
  6. 浅谈C#中的异步编程
  7. form表单按enter键自动提交的问题
  8. 【poj3070】Fibonacci
  9. 快微音频课程小程序v3.8.4+前端
  10. PHP源码_运营服务器打包微盘,外汇盘,时间盘
  11. javascript 西瓜一期 04 解释型语言与编译型语言的翻译过程
  12. C# Winform DataGridview 实现行号倒序
  13. python matplotlib绘图显示中文
  14. Julia: 关于Github上的其它库
  15. 怎么样学好c++_怎么样
  16. 十个3D 游戏引擎,html h5 js
  17. 马赛克 拼图 python_使用Python的马赛克艺术。
  18. 锐龙R7PRO 4750G、锐龙R5 PRO 4650G和 锐龙R3 PRO4350G怎么样 哪个好
  19. 夏季繁华系列||妆面照欣赏
  20. UEFI开发探索82- YIE002USB开发板(05 制作HID设备)

热门文章

  1. 2018年新疆教师计算机考试题,2018年新疆教师考试:模拟试题及答案解析(三)...
  2. PHP通过Redis做uv/pv统计
  3. (面试智力题)3ml 5ml 杯子各一个,拼出 4ml 的容量。
  4. 交通数据集在哪里下载?
  5. 永磁同步电机矢量控制算法梳理
  6. 新概念2 课文和单词(17)
  7. 经典数学故事 - 高斯的故事
  8. 微信系列研究之-手把手教你脱掉微信的外衣
  9. Java GUI编程的几种常用布局管理器
  10. python-pygame实现飞机大战-6-完结,增加游戏结束界面,历史记录、游戏得分、重新开始与结束游戏按钮