zabbix功能应用

一、zabbix简介

1、zabbix概述

  • zabbix:是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案,能够监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
  • 本文中安装使用的是 version版本使用3.0,应用环境是centos7.0系统,实际应用中要使用长期维护版本LTS;

2、特性:

  • 数据采样支持协议:SNMP,agent,ipmi,jmx;
  • 报警机制:步进升级通知不同的管理人员
  • 数据存储:使用mysql/pgsql
  • 展示:php程序
    实时绘图:graph,screen,slide show,map
  • 支持监控模板
  • 网络自动发现
  • 分布式监控
  • API:支持二次开发

3、zabbix架构

监控方式有两种:

  • 主动方式:被监控端主动发送状态信息
  • 被动方式:被监控端监听一个端口,监控端发送监控请求,被监控端发送状态信息

实际应用中,被监控的主机,可以根据功能编成一个组便于监控管理


zabbix程序组件

4、zabbix程序组件

zabbix_server服务器端守护进程
zabbix_agentd :agent守护进程
zabbix_proxy:代理服务器,可选
zabbix_database:存储系统 MySQl、pgsql
zabbix_web: web gui 网页接口
zabbix_get:命令行工具,测试向agent端发起数据数据采集请求
zabbix_sender: 命令行工具,测试向server端发送数据
zabbix_java_gatway:java网关

zabbix逻辑组件

zabbix逻辑组件:
主机组(host groups)
主机 (hosts)
应用(application)
监控器(items)
触发器(triggers)
事件(events)
动作(actions):条件(conditions)和操作(operations)
媒介(media):发送通知的通道
通知(notifications)
远程命令(remote command)
报警升级(escalation)
模板(template)
图形(graph)
屏幕(screens)
幻灯(slideshow)

二、 zabbix的安装

通常在生产环境中zabbix的服务应该分开安装在各个服务器中;

1、环境准备

第一步、安装数据库mariadb
 [root@zabbix-12 ~]# yum -y install mariadb-server -y
 [root@zabbix-12 ~]# vim /etc/my.cnf
[mysqld]
skip_name_resolve = ON
innodb_file_per_table = ON
[root@zabbix-12 ~]# systemctl start mariadb.service
[root@zabbix-12 ~]# systemctl enable mariadb.service
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
[root@zabbix-12 ~]# ss -tnl
State      Recv-Q Send-Q       Local Address:Port                      Peer Address:Port              
LISTEN     0      128                      *:22                                   *:*                  
LISTEN     0      100              127.0.0.1:25                                   *:*                  
LISTEN     0      50                       *:3306                                 *:*         

如果出现,登录mysql错误代码1045
[root@zabbix-12 ~]# vim /etc/my.cnf
[mysqld]
skip-grant-tables   #执行完安全设定把它删掉
执行mysql的安全设定
[root@zabbix-12 ~] mysql_secure_installation

 [root@zabbix-12 ~]# mysql -uroot -p
Enter password:
MariaDB [(none)]> CREATE DATABASE zabbix CHARSET 'utf8';
Query OK, 1 row affected (0.00 sec)#创建zabbix数据库
MariaDB [(none)]> GRANT ALL ON zabbix.* TO 'zbxuser'@'192.168.%.%' IDENTIFIED BY 'zbxpass';
Query OK, 0 rows affected (0.00 sec)#远程用户授权
MariaDB [(none)]> GRANT ALL ON zabbix.* TO 'zbxuser'@'127.0.0.1' IDENTIFIED BY 'zbxpass';
Query OK, 0 rows affected (0.00 sec)#本地用户授权
MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)#刷新同步
第二步、server服务器端安装
  • server端的源码安装:
[root@zabbix-12 ~]# yum install gcc libxml2-devel net-snmp net-snmp-devel curl curl-devel php php-bcmath php-mbstring mariadb mariadb-devel libssh2-devel -y  安装依赖包
[root@zabbix-12 ~]# wget https://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/3.0.20/zabbix-3.0.20.tar.gz   #下载zabbix3.0
[root@zabbix-12 ~]# ./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-ssh2
[root@zabbix-12 ~]#  make&&makeinstall
  • server端的yum安装:
#安装zabbix仓库源
[root@zabbix-12 ~]#  yum install http://120.52.51.14/repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm -y
[root@zabbix-12 ~]#   yum clean all
[root@zabbix-12 ~]# wget http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-server-mysql-3.0.2-1.el7.x86_64.rpm#下载
[root@zabbix-12 ~]# wget http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-agent-3.0.2-1.el7.x86_64.rpm#下载
[root@zabbix-12 ~]#yum install zabbix-server-mysql-3.0.2-1.el7.x86_64.rpm zabbix-agent-3.0.2-1.el7.x86_64.rpm

第三步、导入数据库结构

[root@zabbix-12 ~]# cd /usr/share/doc/zabbix-server-mysql-3.0.2/
[root@zabbix-12 zabbix-server-mysql-3.0.2]# ls
AUTHORS  ChangeLog  COPYING  create.sql.gz  NEWS  README
[root@zabbix-12 zabbix-server-mysql-3.0.2]# gzip -d create.sql.gz解压缩
[root@zabbix-12 ~]# mysql -uzbxuser -h127.0.0.1 -pzbxpass zabbix  < /usr/share/doc/zabbix-server-mysql-3.0.2/create.sql #导入数据库结构
[root@zabbix-12 ~]# mysql -uzbxuser -h127.0.0.1 -pzbxpass
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 8
Server version: 5.5.60-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> use zabbix;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MariaDB [zabbix]> SHOW TABLES;   查询导入的表
+----------------------------+
| Tables_in_zabbix           |
+----------------------------+
| acknowledges               |
| actions                    |
| alerts                     |
| application_discovery      |
| application_prototype      |
| application_template       |
| applications               |
| auditlog                   |

注意:zabbix2*版本的sql要按顺序导入三个

第四步、配置文件

  • 程序环境:
    配置文件: /etc/zabbix/zabbix_server.conf
    unit file: zabbix-server.service
[root@zabbix-12 ~]# cd /etc/zabbix/
[root@zabbix-12 zabbix]# ls
zabbix_server.conf
[root@zabbix-12 zabbix]# cp zabbix_server.conf{,.bak}   备份配置文件
[root@zabbix-12 zabbix]# ls
zabbix_server.conf  zabbix_server.conf.bak
[root@zabbix-12 zabbix]# grep "^####" zabbix_server.conf   查找配置文件配置段

############ GENERAL PARAMETERS #################  通用参数
############ ADVANCED PARAMETERS ################ 高级参数
####### LOADABLE MODULES #######                  可装载模块
####### TLS-RELATED PARAMETERS #######              通信相关,可设置ssl加密

通用配置参数:
ListenPort=10051  监听端口
SourceIP=        源ip,允许那个ip监听
LogType=file      日志类型,默认存到文件
LogFile=/var/log/zabbix/zabbix_server.log  日志存储目录
LogFileSize=0      禁止滚动存储
DebugLevel=3     日志详细级别 默认为3正常级别

DBHost=192.168.1.12  授权数据库主机
DBName=zabbix    授权数据库名字
DBUser=zbxuser   授权数据库用户
DBPassword=zbxpass  授权用户密码
DBPort=3306        数据库默认端口
DBSocket=/var/lib/mysql/mysql.sock  程序接口位置
mysql程序接口位置

注意版本问题
[root@zabbix-12 zabbix]# systemctl restart zabbix-server.service #启动zabbix服务

第五步、zabbix web安装

搭建一个lamp环境

(1)[root@zabbix-12 ~]# yum install httpd php php-mysql php-mbsting php-gd php-bcmath php-ldap php-xml -y

(2)下载安装包

[root@zabbix-12 ~]# wget https://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-web-mysql-3.0.2-1.el7.noarch.rpm

[root@zabbix-12 ~]# wget https://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-web-3.0.2-1.el7.noarch.rpm

(3)安装web gui

[root@zabbix-12 ~]# yum -y install zabbix-web-mysql-3.0.2-1.el7.noarch.rpm zabbix-web-3.0.2-1.el7.noarch.rpm

(4)配置php时区参数

  方法一:编辑php.ini

  方法二:[root@zabbix-12 ~]# vim /etc/httpd/conf.d/zabbix.conf

....................

 php_value date.timezone Asia/shanghai

....................

 (5)启动web

[root@zabbix-12 ~]# systemctl start httpd

[root@zabbix-12 ~]# ss -tnl

State Recv-Q Send-Q Local Address:Port Peer Address:Port             

LISTEN 0 128 *:22 *:*                 

LISTEN 0 100       127.0.0.1:25 *:*                 

LISTEN 0 50 *:3306 *:*                 

LISTEN 0 128 :::80                         :::*
测试浏览

数据库相关信息

可选操作
生成的配置文件

安装后生成的配置文件:/etc/zabbix/web/zabbix.conf.php

登录管理员:

admin/zabbix(建议修改,不用默认)

主界面

(6)主菜单

Monitoring监控
Inventory主机列表
Reports报告
Configuration 设置
Administration 管理

第六步、zabbix配置被监控主机

1、下载安装
 [root@zabbix-12 ~]# wget https://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-agent-3.0.2-1.el7.x86_64.rpm 
[root@zabbix-12 ~]# wget https://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-sender-3.0.2-1.el7.x86_64.rpm 
[root@zabbix-12 ~]# yum -y install zabbix-sender-3.0.2-1.el7.x86_64.rpm zabbix-agent-3.0.2-1.el7.x86_64.rpm
2、程序环境
配置文件:/etc/zabbix/zabbix_agentd.conf
unit file: zabbix-agent.service
3、配置
[root@httpd1-73 zabbix]# grep -i "^####" zabbix_agentd.conf 
############ GENERAL PARAMETERS #################
##### Passive checks related  被动监控相关配置
##### Active checks related   主动监控相关配置
############ ADVANCED PARAMETERS #################
####### USER-DEFINED MONITORED PARAMETERS ####### 用户自定义的监控参数,使用UserParamter
####### LOADABLE MODULES #######
####### TLS-RELATED PARAMETERS #######
其中:
##### Passive checks related  被动监控相关配置

server=IP1,IP2,.....  允许那台主机采样
ListenPort=10050   监听端口
ListenIP=0.0.0.0     监听本机所有可用地址
StartAgents=3       响应预先发送的进程数量

##### Active checks related   主动监控相关配置
ServerActive=IP1,IP2  主动报告到主机的ip
Hostname=Zabbix server   被监控主机名
[root@httpd1-73 zabbix]# systemctl start zabbix-agent #启动代理服务
[root@httpd1-73 zabbix]# ss -tnl
State      Recv-Q Send-Q           Local Address:Port                          Peer Address:Port                        
LISTEN     0      128                         :::10050                          

三、监控项配置

1、监控项配置流程

  • 先添加host主机组--》host主机---》applications应用--》item监控项-->trggers(evens)触发(事件)-->action(condtions,operations)动作(状况、操作)
  • 其中oprerations操作:remote通知、 command传递命令、alert报警

2、展示图表定义:

item监控项,可以定义一个simple graph图表(里面只有一个监控项形成的图表)
多个items监控项可以定义一个graph图表(里面有多个监控项形成的图表)
多个graphs可以定义一个screen屏幕(里面有多个图表形成的一个集合屏幕)
多个screens可以定义一个slide show幻灯片(周期性播放多个屏幕)

3、快速配置一个监控项

先用命令测试监控项

[root@zabbix-12 ~]# zabbix_get -s 192.168.1.73 -k "system.cpu.switches"
509479   #获取被监控主机cpu上下文
  • (1)、添加主机组和主机
创建主机组

设置

添加完成
  • (2)、添加监控项
    监控数据类型:监控原数据、监控变化数据、监控变化数据速率
选择被监控主机
点击创建监控项

设置监控项

在监控菜单中查看此监控项的最新数据

4、item key

  • 功能:代替监控主机在被监控主机执行命令
  • item key 有两类:zabbix內建 key 的和自定义 key
  • 监控模式有:
    • zabbix_agent 被动监控模式
    • zabbix_agent activ 主动监控模式
(1)zabbix內建的key
zabbix內建的key里面 带中括号可以传递参数,可选的;带尖括号的是必选的

示例

对应key手动测试

[root@zabbix-12 ~]# zabbix_get -s 192.168.1.73 -k "net.if.in[ens33,packets]"
3569  #获取被监控主机网卡流入报文数量
[root@zabbix-12 ~]# zabbix_get -s 192.168.1.73 -k "net.if.in[ens33,bytes]"
297837  #获取被监控主机网卡流入字节数
[root@zabbix-12 ~]# zabbix_get -s 192.168.1.73 -k "net.if.out[ens33,bytes]"
294036 #获取被监控主机网卡流出字节数
克隆方式创建item
克隆方式的item,方便快捷
(2)用户自定义key(UserParamter)

采集到的数据类型
数值:整数浮点数
字符型:字符串、text、log
储存值:
AS is:不对数据做任何处理,存储采集到的数据本身;
Delta(simple change): 本次采样的数据减去前一次采样的数据;
Delta(speed per second):本次采样的数据减去前一次采样的数据,再除以经过的时长;速率数据;

5、定义触发器Triggers

状态转换:

正常ok----》问题-problem
问题-problem--》正常ok

逻辑表达式,阈值,通常用于定义数据的不合理区间;条件满足时,true,表示problem状态,反之,则ok状态
基本触发器表达式格式:
{<server>:<key>.<functon>(<prrameter>)}<operator><constant>
触发器之间的依赖关系


创建触发器

选择被监控主机

定义参数和阈值

触发器生成对应语句,seventy是报告等级左边最低

当前状态

6、媒介类型(Media Types)

媒介是报警信息的传递方式:

  • 类型:
    email:邮件,需要定义发件人邮箱地址和SMTP服务
    script:自定义脚本,此脚本有发送信息至相关用户的功能
    SMS,JABBER,EZ TEXTING 只有北美由此服务

  • 接受通知信息者为zabbix的用户:需要用户定义对应各种媒介通道的接收方式:localmail本地邮件、script脚本


    邮件媒介设置
设置邮件收件箱

7、定义动作action

  • conditions:触发此动作的条件,一般通过“事件”触发
  • operations:触发条件满足时要采用的动作
  • send message:发报警信息给关联的用户;
    (1) 可传递方式: email邮件方式和script 报警脚本方式
    (2)script 报警脚本位于server主机的AlerScriptPath参数定义的目录下,默认为/usr/lib/zabbix/alertscripts
    zabbix 调用脚本时会向其传递参数,3.0之前的版本通过
                   $1:消息接收人
                   $2:消息主题
                   $3:消息主体
     3.x之后的版本,此三个参数默认不再传递,需自行定义;
                    {ALTET.SENDTO}
                    {ALTET.SUBJECT}
                    {ALERT.MESSAGE}
    

注意:每个信息接收人相对于此媒介来说,得配置相应的接收地址;

[root@zabbix-12 ~]# vim /usr/lib/zabbix/alertscripts/sendmail.sh  #定义一个邮件脚本

#!/bin/bash
#
contact=$1     #收件人
subject="$2"    #消息主题
body="$3"  #消息主体

echo "$body" | mail -s "$subject" "$contact"
[root@zabbix-12 ~]# systemctl restart zabbix-server
使用邮件脚本

设置收件地址

添加媒介

此用户有两个接收邮件途径

remote command远程命令

功能:无人工介入处理
在agent所在的主机上运行用户指定的命令或脚本来尝试着恢复故障:例如重启服务,任何用户自定义的脚本

类型ipmi
custom script
ssh
Telnet
global script

其中custom script实现的前提:
(1)在agent端配置:

编辑/etc/sudoers文件,添加
        zabbix ALL=(ALL)NOPASSWD:ALL
注释如下行:Defaults requiretty

(2)agent进程要允许执行远程命令,编辑/etc/zabbix-agentd.conf文件,设置EnableRemoteCommands=1
(3)重启zabbix-agent生效


创建动作
添加一个触发器
选择ssh方式执行命令

设置第二步执行重启命令

设置第三步发送邮件到本地用户邮箱

示例:定义监听web服务器80端口,当80端口监控不到时,重启被监控主机的httpd服务

选择主机并设置监控项,设置监控端口

创建触发器

添加监控项

设置触发值

定义触发等级

创建一个动作

设置邮件格式

添加触发条件

第一步执行重启命令

第二步发送邮件

当被监控服务器httpd服务停止时候,启动触发器

触发器被启动

而后生成一个事件

8、定义图表Graphs

在主机中选择图表

创建图表

设置图表样式、数值类型、大小等

添加一个监控项
预览创建图表

9、screen屏幕

当创建多个graphs 就可以组建一个screen

创建屏幕

定义屏幕

选择被监控的主机

点击编辑

添加图表
生成一个屏幕

10、幻灯片slideshow

创建幻灯片

设置每屏轮换时间并添加屏幕

生成幻灯片

四、配置模板

  • 模板:主机配置模板,可连接至主机,从而实现主机的快速监控配置
  • 模板特性:可继承、在模板之上link其他模板即可使用。

1、创建自定义模板

创建自定义模板
定义模板
生成一个test模板

分别设置应用、事件等

2、模板的使用

(1)添加主机host


添加主机host

(2)选择模板


选择模板

模板的导入和导出


生成监控

(3)模板的继承


模板的继承

模板被继承

(4)从主机上删除模板
UNlink:反连接
UNlink and clear:反链接并清除数据


模板的删除

(5)模板可以导出,也可以从指定的文件导入

五、宏:MACRO

功能:预设的文本替换模式;

1、宏的级别:
  • 全局宏;Administraton-->General-->Macros
  • 模板宏;Configuration-->Templates-->Template-->Macros
  • 主机宏;先被查找,优先级最高Configuration-->Hosts--->HOST--->Macros


    全局宏使用

    模板宏使用
主机宏使用
宏在item中的使用

2、宏的类型:

內建:{MACRO_NAME}
自定义:{MACRO_NAME }要加
命名方式:大写字母、数字和下划线

六、网络发现

功能:zabbix server扫描指定网络范围内的主机
1、发现方式;ip地址范围
2、可用服务探测(ftp、ssh、http)
zabbix_agentd的响应对某个key的请求;
snmp_agent响应;
一旦发现某主机,就不会产生发现事件
3、事件有8类: 分别是 host、service的up、down、discovered、lost的组合;例如:hostup、hostdown
4、发现操作分两步:

discover发现阶段
actions:动作阶段
conditions条件:发现主机
operations操作:添加主机
可采取的动作:
send message发送邮件,remote command传送命令
add/remove host 添加或删除主机
enable/disable host 使用或不使用主机
link template to host 对主机使用模板

创建网络发现

设置网络发现规则

生成网络发现

选择网络发现,创建一个动作
定义发现主机

添加监控模板

生成一个网络发现动作

测试

测试

七、zabbix的自定义key

自定义key:在zabbix agent端的配置文件中由用户通过UserParameter指令
定义用户自定义参数;

格式 UserParamter=<key>,<command>
     UserParamter=<key>,<*>, <command>$1......$9
注意:类似awk命令自带$1...$9,需要改写为$$1.$$2.......$$9:

1、获取被监控主机内存空闲值示例

在被监控主机上

[root@httpd1-73 ~]# vim /etc/zabbix/zabbix_agentd.conf
### Option: UserParameter
UserParameter=system.memory.free,awk '/^MemFree/{print $2}' /proc/meminfo获取内存空闲值
[root@httpd1-73 ~]# systemctl restart zabbix-agent.service

在监控主机上测试
[root@zabbix-12 ~]# systemctl start httpd
 [root@zabbix-12 ~]# zabbix_get -s 192.168.1.73 -k "system.memory.free"
742672
[root@zabbix-12 ~]# zabbix_get -s 192.168.1.73 -k "system.memory.free"
742704
image.png

image.png

2、获取被监控主机内存数值示例

在被监控主机上
[root@httpd1-73 ~]# vim /etc/zabbix/zabbix_agentd.conf
### Option: UserParameter
UserParameter=system.memory.usage[*],awk '/^$1/{print $$2}' /proc/meminfo传递内存数值[root@httpd1-73 ~]# systemctl restart zabbix-agent.service

在监控主机上测试
[root@zabbix-12 ~]# zabbix_get -s 192.168.1.73 -k "system.memory.usage[MemFree]"  #空闲内存空间
741408
[root@zabbix-12 ~]# zabbix_get -s 192.168.1.73 -k "system.memory.usage[MemTotal]" #内存总量
999696
[root@zabbix-12 ~]# zabbix_get -s 192.168.1.73 -k "system.memory.usage[MemAvailable]"#可用内存空间
728700

还可以传递其他参数。

3、读取被监控主机nginx状态示例

被监控主机上
安装nginx
编辑配置文件
[root@httpd1-73]# vim /etc/ nginx/nginx.conf
server {
.................
location /ngxstatus {
             stub_status;
          }  #编辑状态信息
...................
[root@httpd1-73 ~]# systemctl start nginx  #启动nginx
[root@httpd1-73 ~]# curl 192.168.1.73/ngxstatus #获取状态信息
Active connections: 1 
server accepts handled requests
 7 7 4 
Reading: 0 Writing: 1 Waiting: 0
[root@httpd1-73 ~]# vim /etc/zabbix/zabbix_agentd.conf
UserParameter=nginx.status.active,curl http://localhost/ngxstatus | awk '/^Active/{print $3}' #自定义获取active的key
[root@httpd1-73 ~]# systemctl restatt zabbix-agent


在监控主机上测试
[root@zabbix-12 ~]# zabbix_get -s 192.168.1.73 -k "nginx.status.active"
1

4、编写监控nginx状态的key脚本示例

在被监控主机上:
[root@httpd1-73 ~]# vim /usr/bin/ngxstatus.sh编写脚本
#!/bin/bash
#
host='127.0.0.1'
port='80'
statusurl='/ngxstatus'
active() {
         curl -s http://${host}:${port}${statusurl} | awk '/^Active/{print $3}'
        }
accepts() {
         curl -s http://${host}:${port}${statusurl} | awk 'NR==3{print $1}'
}
handled() {
         curl -s http://${host}:${port}${statusurl} | awk 'NR==3{print $2}'
}
requests() {
         curl -s http://${host}:${port}${statusurl} | awk 'NR==3{print $3}'
}
reading() {
         curl -s http://${host}:${port}${statusurl} | awk 'NR==4{print $2}'
}

writing() {
         curl -s http://${host}:${port}${statusurl} | awk 'NR==4{print $4}'
}

waiting() {
         curl -s http://${host}:${port}${statusurl} | awk 'NR==4{print $6}'
}

$1
[root@httpd1-73 ~]# ngxstatus.sh accepts   #bash测试
139
[root@httpd1-73 ~]# ngxstatus.sh active
1
[root@httpd1-73 ~]# ngxstatus.sh waiting
0
[root@httpd1-73 ~]# ngxstatus.sh reading
0
[root@httpd1-73 ~]# ngxstatus.sh handled
145
[root@httpd1-73 ~]# vim /etc/zabbix/zabbix_agentd.conf #编辑
.................
UserParameter=nginx.status[*],/usr/bin/ngxstatus.sh $1  #[*]接受多个参数
在监控主机上测试:
[root@zabbix-12 ~]# zabbix_get -s 192.168.1.73 -k "nginx.status[active]"
1
[root@zabbix-12 ~]# zabbix_get -s 192.168.1.73 -k "nginx.status[accepts]"
170
创建对应脚本的监控项

生成监控项

生成图表

5、编写监控PHP状态的key脚本示例

安装php-fpm
编辑配置文件

[root@httpd1-73 ~]# vim /etc/php-fpm.d/www.conf
pm.status_path = /fpmstatus
ping.path = /ping
ping.response = pong
[root@httpd1-73 ~]# systemctl start php-fpm  #启动php

因为php是fastCGI协议,监控获取信息必须由nginx反代即可
所以编辑nginx配置文件:
[root@httpd1-73 ~]# vim /etc/nginx/nginx.conf
server {
.............
        location ~* ^/(fpmstatus|ping)/?$ {      #如果客户请求fpmstatus则传递参数
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_param  SCRIPT_FILENAME  $fastcgi_script_name;
            include   fastcgi_params;
          }
.............
[root@httpd1-73 ~]# nginx -t
[root@httpd1-73 ~]# nginx -s reload
[root@httpd1-73 ~]# curl http://127.0.0.1/fpmstatus
pool:                 www
process manager:      dynamic
start time:           31/Aug/2018:10:46:07 +0800
start since:          2604
accepted conn:        1
listen queue:         0
max listen queue:     0
listen queue len:     128
idle processes:       4
active processes:     1
total processes:      5
max active processes: 1
max children reached: 0
slow requests:        0

八、主动和被动监测

  • 被动监控:被监控主机agent监听一个指定端口,由监控主机zabbixserver发来item请求清单,被监控主机返回清单中的数据。
  • 主动监控:被监控主机agent监听一个指定端口,周期性的主动向监控主机zabbixserver发送item中的数据。
    serverActive的设置
    hostname的设置

1、基于snmp监控

简单网络管理协议,是udp协议
snmp版本有v1、v2、v3,其中v3是最安全的
工作模式:读(get,getnext)端口161/udp
写(set)端口162/udp
陷阱(trap)
snmp获取命令snmpget,snmpgetnext,
snmpwalk一次获取多个信息
snmptrap 捕获命令
OID对象标识符:Object ID
MIB:Management Information Base

2、使Linux主机支持snmp

[root@httpd2-74 ~]# yum install net-snmp net-snmp-utils -y  #安装snmp
[root@httpd2-74 ~]# vim /etc/snmp/snmpd.conf            #编辑snmp配置文件

 
[root@httpd2-74 ~]# systemctl start snmpd.service启动
[root@httpd2-74 ~]# ss -unl
State       Recv-Q Send-Q                          Local Address:Port                                         Peer Address:Port              
UNCONN      0      0                                           *:161                                                     *:*
[root@httpd2-74 ~]# snmpwalk -c public -v 2c 192.168.1.74 .1.3.6.1.2.1.1.1  #-c使用public密码-v使用2c版本读取.1.3.6.1.2.1.1.1级别的信息
SNMPv2-MIB::sysDescr.0 = STRING: Linux httpd2-74 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64
[root@httpd2-74 ~]# snmpwalk -c public -v 2c 192.168.1.74 sysName   #使用字段获取信息
SNMPv2-MIB::sysName.0 = STRING: httpd2-74
snmp配置文件
监控主机上,添加被监控主机的snmp接口
添加基于snmp监控模板
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,658评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,482评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,213评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,395评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,487评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,523评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,525评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,300评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,753评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,048评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,223评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,905评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,541评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,168评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,417评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,094评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,088评论 2 352

推荐阅读更多精彩内容

  • Zabbix简介 Zabbix官方网站Zabbix中文文档 本文系统环境是CentOS7x86_64, Zabbi...
    Zhang21阅读 7,982评论 0 37
  • 一、snmp(简单网络管理协议simple network management protocol) SNMP协议...
    Net夜风阅读 1,830评论 0 1
  • 自定义key网络发现Web监控主动检测基于SNMP监控基于JMX监控Zabbix ProxyZabbix调优 一、...
    哈喽别样阅读 1,140评论 0 1
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,646评论 18 139
  • 冬天已经渐行渐远,春姑娘正迈着轻盈的步伐向我们缓缓走来。在万物复苏、生机盎然的春季,不论是萌萌哒软妹子,还是孤傲高...
    meimeida200阅读 471评论 0 2