Zabbix 3.0 生产案例 [四]

Zabbix 3.0 生产案例 [四]

zabbix
时间:2016年9月22日
笔者QQ:381493251
Abcdocker交流群:454666672
如果遇到什么问题可以进群询问,我们是一个乐于帮助的集体!

Zabbix 生产案例实战

一、项目规划

1、主机分组:

   交换机
   Nginx
   Tomcat
   MySQL

2、监控对象识别:

  1、使用SNMP监控交换机
  2、使用IPMI监控服务器硬件
  3、使用Agent监控服务器
  4、使用JMX监控Java应用
  5、监控MySQL
  6、监控Web状态
  7、监控Nginx状态

3、操作步骤:

SNMP监控
 1.1 在交换机上开启Snmp

config tsnmp-server community public roend提示:如果不知道我们可以百度

 1.2 在Zabbix上添加SNMP监控
 步骤:Configuration--->Hosts--->设置
 
 1.3 Host页面设置

 1.4 Templates 模板设置

设置SNMP团体名称Macros宏
这里的设置要跟我们创建的SNMP的设置相同

因为Zabbix监控的时候依赖团体名称
 1.5 生产图片

  Zabbix会自动给我们进行检测端口,每个端口都会添加一个网卡的流量图,每个端口都会加上一个触发器。(端口的状态) 还会帮我们添加VLAN的一个监控
 1.6 案例图
  含有有进口和出口流量

提示:此图是Zabbix SNMP模板自动生成的



IPMI监控
  2.1 添加IPMI
Configuration--->Hosts--->选择主机--->设置IPMI端口及主机--->用户名密码
  因为IMP容易超时,建议使用自定义item,本地执行ipmitool命令来获取数据

JMX监控
  Zabbix默认提供了一个监控JMX
通过java gateway来监控java

地址:https://www.zabbix.com/documentation/3.2/manual/appendix/config/zabbix_java
  JAVA GATEWAY需要独立安装,相当于一个网关,因为zabbix_server和zabbix-agent不可以直接获取java信息。所以需要一个代理来获取

zabbix java Gateway不存任何数据,只是一个简单的代理
1、安装

[[email protected] ~]# yum install -y zabbix-java-gateway java-1.8.0提示:java-gateway 需要java环境

2、配置
修改java-gateway

[[email protected] ~]# vim /etc/zabbix/zabbix_java_gateway.conf # LISTEN_IP="0.0.0.0"   监听的IP地址# LISTEN_PORT=10052     监听的端口PID_FILE="/var/run/zabbix/zabbix_java.pid" 存放pid路径# START_POLLERS=5       开通几个进程,默认是5。你有多少java进行可以设置多少个,也可以设置java进程的一半。TIMEOUT=3               超时时间1-30,如果网络环境差,超时时间就修改长一点

我们默认就可以了,不进行修改
3、启动

[[email protected] ~]# systemctl start zabbix-java-gateway.service

4、端口、进程查看
我们可以进行进程的查看

[[email protected] ~]# netstat -lntpActive Internet connections (only servers)Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      10439/mysqld        tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      33484/nginx: master tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1054/sshd           tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      2484/master         tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      76482/zabbix_agentd tcp        0      0 0.0.0.0:10051           0.0.0.0:*               LISTEN      34572/zabbix_server tcp        0      0 127.0.0.1:199           0.0.0.0:*               LISTEN      11143/snmpd         tcp6       0      0 :::80                   :::*                    LISTEN      10546/httpd         tcp6       0      0 :::22                   :::*                    LISTEN      1054/sshd           tcp6       0      0 ::1:25                  :::*                    LISTEN      2484/master         tcp6       0      0 :::10050                :::*                    LISTEN      76482/zabbix_agentd tcp6       0      0 :::10051                :::*                    LISTEN      34572/zabbix_server tcp6       0      0 :::10052                :::*                    LISTEN      13465/java

10052    zabbix-java-gateway默认端口已经起来了!
  它是一个java应用,需要安装jdk

[[email protected] ~]# ps -aux|grep javaroot      13465  0.4  3.4 2248944 34060 ?       Sl   19:17   0:01 java -server -Dlogback.configurationFile=/etc/zabbix/zabbix_java_gateway_logback.xml -classpath lib:lib/android-json-4.3_r3.1.jar:lib/logback-classic-0.9.27.jar:lib/logback-core-0.9.27.jar:lib/slf4j-api-1.6.1.jar:bin/zabbix-java-gateway-3.0.4.jar -Dzabbix.pidFile=/var/run/zabbix/zabbix_java.pid -Dzabbix.timeout=3 -Dsun.rmi.transport.tcp.responseTimeout=3000 com.zabbix.gateway.JavaGatewayroot      13584  0.0  0.0 112648   972 pts/0    S+   19:21   0:00 grep --color=auto java

5、通知zabbix-server
  我们需要通知zabbix-serverjava-gateway在哪里
修改配置文件

[[email protected] ~]# vim /etc/zabbix/zabbix_server.conf 编辑zabbix-server来指定zabbix-java-gatewayJavaGateway=192.168.56.11     #IP地址是安装java-gateway的服务器# JavaGatewayPort=10052       端口,默认就可以StartVMwareCollectors=5     预启动多少个进程[zabbix--->java-gateway的数量]

6、重启zabbix-server

[[email protected] ~]# systemctl restart zabbix-server.service

7、准备apache
我们安装tomcat-8版本
官网:http://tomcat.apache.org
下载软件包

[[email protected] src]# wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-8/v8.5.5/bin/apache-tomcat-8.5.5.tar.gz

我们将tomcat安装在apache服务器上,来模拟监控jvm

[[email protected] src]# tar xf apache-tomcat-8.5.5.tar.gz [[email protected] src]# mv apache-tomcat-8.5.5 /usr/local/[[email protected] src]# ln -s /usr/local/apache-tomcat-8.5.5/ /usr/local/tomcat[[email protected] src]# yum install -y java-1.8.0    #tomcat 需要在java环境运行[[email protected] src]# /usr/local/tomcat/bin/startup.sh Using CATALINA_BASE:   /usr/local/tomcatUsing CATALINA_HOME:   /usr/local/tomcatUsing CATALINA_TMPDIR: /usr/local/tomcat/tempUsing JRE_HOME:        /usrUsing CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jarTomcat started.

在web2上面查看运行状态

[[email protected] src]# netstat -lntupActive Internet connections (only servers)Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1073/sshd           tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      2498/master         tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      10088/zabbix_agentd tcp6       0      0 :::8080                 :::*                    LISTEN      25750/java          tcp6       0      0 :::22                   :::*                    LISTEN      1073/sshd           tcp6       0      0 ::1:25                  :::*                    LISTEN      2498/master         tcp6       0      0 :::10050                :::*                    LISTEN      10088/zabbix_agentd tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      25750/java          tcp6       0      0 :::8009                 :::*                    LISTEN      25750/java


JMX三种类型:
  1.无密码认证
  2.用户面密码认证
  3.ssl

开启JMX远程监控
官方文档:http://tomcat.apache.org/tomcat-8.0-doc/monitoring.html
我们创建一个无密码认证

[[email protected] src]# vim /usr/local/tomcat/bin/catalina.sh  CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote  -Dcom.sun.management.jmxremote.port=8888      #端口号   -Dcom.sun.management.jmxremote.ssl=false     #SSL 关闭  -Dcom.sun.management.jmxremote.authenticate=false  #用户密码验证关闭  -Djava.rmi.server.hostname=192.168.56.12"        #监控的主机

修改完成后重启tomcat
可以使用./shutdown.sh 或者使用kill的方式

[[email protected] src]# /usr/local/tomcat/bin/shutdown.sh Using CATALINA_BASE:   /usr/local/tomcatUsing CATALINA_HOME:   /usr/local/tomcatUsing CATALINA_TMPDIR: /usr/local/tomcat/tempUsing JRE_HOME:        /usrUsing CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar中间可以使用px -aux|grep java  查看是否被杀死[[email protected] src]# /usr/local/tomcat/bin/startup.sh Using CATALINA_BASE:   /usr/local/tomcatUsing CATALINA_HOME:   /usr/local/tomcatUsing CATALINA_TMPDIR: /usr/local/tomcat/tempUsing JRE_HOME:        /usrUsing CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jarTomcat started.

我们JMX端口设置为8888

[[email protected] src]# netstat -lntupActive Internet connections (only servers)Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1073/sshd           tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      2498/master         tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      10088/zabbix_agentd tcp6       0      0 :::8080                 :::*                    LISTEN      26226/java          tcp6       0      0 :::22                   :::*                    LISTEN      1073/sshd           tcp6       0      0 :::8888                 :::*                    LISTEN      26226/java          tcp6       0      0 ::1:25                  :::*                    LISTEN      2498/master         tcp6       0      0 :::10050                :::*                    LISTEN      10088/zabbix_agentd tcp6       0      0 :::38532                :::*                    LISTEN      26226/java          tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      26226/java          tcp6       0      0 :::8009                 :::*                    LISTEN      26226/java          tcp6       0      0 :::38377                :::*                    LISTEN      26226/java

 我们可以在windows上面安装jdk ,使用命令行来监控java

  我们下载安装,具体步骤不说了,然后我们找到jconsole.exe文件运行

填写安装JMX的服务器

  因为在配置文件中我们设置的是无密码认证,所以这里不需要输入密码直接连接。端口号我们设置的是8888连接即可

这样我们就可以在图形化监控tomcat

  提示:按照现在观察,java-gateway已经安装成功,我们可以加入到zabbix中
  找我们要添加的主机

填写安装java-gateway的主机

我们还需要设置一个模板

这个模板就是我们自带的一个监控JMX的模板,然后我们点击Update.更新

我们需要等待一会才可以出图

提示:可以在Zabbix-server上使用zabbix-get获取某一台机器的某一个key
效果图如下:需要等待一会

手动检测监控状态
Zabbix-Server操作:

[[email protected] ~]# yum install -y zabbix-get

Key:

我们随便找一个key,然后我们复制后面的key

[[email protected] ~]# zabbix_get -s 192.168.56.12 -k jmx["java.lang:type=Runtime",Uptime]ZBX_NOTSUPPORTED: Unsupported item key.

提示:未支持的key,现在并不能获取到这个key  因为没有获取到这个值,所以不会显示。我们可以获取别的试一下

[[email protected] ~]# zabbix_get -s 192.168.56.12 -k system.cpu.util[,user]0.079323[[email protected] ~]# zabbix_get -s 192.168.56.12 -k system.cpu.util[,user]0.075377[[email protected] ~]# zabbix_get -s 192.168.56.12 -k system.cpu.util[,user]0.075377[[email protected] ~]# zabbix_get -s 192.168.56.12 -k system.cpu.util[,user]0.073547

小结: Zabbix其实就是通过zabbix_get 获取到的这个值进行比较的

日志

开启zabbix debug模式

[[email protected] tomcat]# systemctl restart zabbix-agent### Option: DebugLevel#       Specifies debug level:#       0 - basic information about starting and stopping of Zabbix processes#       1 - critical information#       2 - error information#       3 - warnings#       4 - for debugging (produces lots of information)#       5 - extended debugging (produces even more information)DebugLevel=4

如果及别是4就是debug模式,修改完配置文件之后需要重启生效

Zabbix生产案例

1.开启Nginx监控
2.编写脚本来进行数据采集
3.设置用户自定义参数
4.重启zabbix-agent
5.添加item
6.创建图形
7.创建触发器
8.创建模板

实践步骤

  1. 脚本编写: 我们这里提供已经写好的脚本  
链接:http://pan.baidu.com/s/1jIlpNT0 密码:eix2
  2. 需要修改一下zabbix-agent的配置文件

vim /etc/zabbix/zabbix_agentd.conf#修改Include设置,这样我们可以把脚本放在这个目录下。配置就是.conf结尾Include=/etc/zabbix/zabbix_agentd.d/*.conf

  3.添加权限及测试脚本

[[email protected] zabbix_agentd.d]# chmod +x zabbix_linux_plugin.sh [[email protected] zabbix_agentd.d]# sh zabbix_linux_plugin.sh Usage: zabbix_linux_plugin.sh {tcp_status key|memcached_status key|redis_status key|nginx_status key}

提示: 这个脚本要用zabbix用户执行的权限,因为都是zabbix用户在执行,监控TCP会在/tmp/目录生成一个文件用于监控使用

 4.修改nginx配置文件

提示:nginx 默认路径是/usr/local/nginx  编译安装需要查看安装路径[[email protected] zabbix_agentd.d]# vim /usr/local/nginx/conf/nginx.conf        location /nginx_status {        stub_status on;        allow 127.0.0.1;        access_log off;    }

因为脚本的url是nginx_status所以我们配置文件也要这样修改
  测试脚本

[[email protected] zabbix_agentd.d]# curl 192.168.56.11:8080/nginx_statusActive connections: 1 server accepts handled requests 2823682 2823682 2821835 Reading: 0 Writing: 1 Waiting: 0 [[email protected] zabbix_agentd.d]# ./zabbix_linux_plugin.sh nginx_status 8080 active1[[email protected] zabbix_agentd.d]# ./zabbix_linux_plugin.sh nginx_status 8080 reading0[[email protected] zabbix_agentd.d]# ./zabbix_linux_plugin.sh nginx_status 8080 handled2823688

设置Key,首先是Key的名称

[[email protected] zabbix_agentd.d]# cat linux.confUserParameter=linux_status[*],/etc/zabbix/zabbix_agentd.d/zabbix_linux_plugin.sh "$1" "$2" "$3"[*]代表一个传参,可以将后面的$1,$2,$3引入进行,后面是脚步本的路径

需要重启agent

[[email protected] zabbix_agentd.d]# systemctl restart zabbix-agent

我们使用zabbix_get进行测试

[[email protected] zabbix_agentd.d]# zabbix_get -s 192.168.56.11 -k linux_status[nginx_status,8080,active]1[-k] 就是指定key 不细说了[*] *的作用在web界面配置item会显示出来

 5.Zabbix web界面设置
  我们需要添加item,因为要加好多。我们就使用模板的方式进行添加



提示:我们写一下注释然后选择Add即可
 找到我们的模板

我们创建item

创建

各参数前文都有讲解不细说!
 修改完成吼点击Add

  添加完成后我们要复制很多个用来监控Nginx status的所有状态,所以我们使用克隆。来克隆多个进行设置

点进我们的item,然后拖到最下面选择克隆

填一些基本的修改即可,例如下:

添加完成如下图:

item添加完成我们还需要添加一个图形,用于展示,找到图形路径。点击创建


因为我们主机还没有加入我们的模板,所以我们这里是没有数据的

下面将模板加入到主机中

修改模板

查看结果如下:

 6.导出模板
因为设置模板比较麻烦,我们可以将模板导出


导出之后我们需要修改名称就可以了

 7.导入模板
我们需要导出自然需要导入,操作如下:

点击添加即可

提示: 模板之间的名称不可以相同

以上就是Nginx完整的监控使用

 8.导入TCP模板
  加入模板的步骤跟刚刚加入Nginx的一样,这里我们就使用模板了。
下载链接:http://pan.baidu.com/s/1i54ULjJ 密码:25lh
我们导入模板即可

导入完成之后我们可以查看模板

  在里面我们可以见到TCP的11种状态,这个item是我们需要根据我们脚本进行同步的。

我们可以随便点击一个进行查看,其中这里的key要和脚本的相同


我们在两台服务器都加载这个模板

步骤和上面的一样

添加完成

  查看脚本需要等待1分钟,这主要看我们设置的获取值的时间而定。
我们可以查看图形

更多内容请看下集!~

  为了方便大家观看博客当中的文章,本人开通了微信公众号。喜欢我们就快来关注我们吧
  

时间: 2024-10-09 11:01:25

Zabbix 3.0 生产案例 [四]的相关文章

Zabbix 3.0 监控Web [七]

Zabbix 3.0 监控Web [七] 2016年10月0日 zabbix 笔者QQ:381493251 博客地址:www.abcdocker.com 微信公众号:abcdocker Abcdocker交流群:454666672 如果遇到什么问题可以进群询问,我们是一个乐于帮助的集体! Zabbix 默认自带一个web监控 我们可以从Monitoring--->Web进行查看 按照前面的文章,我们在192.168.56.12上面已经开启了一个Tomcat端口为8080.如果没有的小伙伴可以阅读

zabbix server3.0在centos 7上安装

安装前准备: 1.1 安装依赖包: yum -y install wget net-snmp-devel OpenIPMI-devel httpd openssl-devel java lrzsz fping-devel libcurl-devel perl-DBI pcre-devel libxml2 libxml2-devel mysql-devel gcc php php-bcmath php-gd php-xml php-mbstring php-ldap php-mysql.x86_6

zabbix 4.0 安装配置(一)

一.Zabbix 组件 (1)Zabbix Server:负责接收Zabbix Agent或Zabbix Proxy发送的报告信息,并负责组织配置信息.统计信息及操作数据等. (2)Zabbix Database:用于存储所有Zabbix的配置信息及监控数据的数据库,监控数据包括 a.历史数据:每次采样的结果,保存时长相对较短 b.趋势数据:聚合数据,保存相对较长周期内的数据 (3)Zabbix Web:Zabbix的GUI接口,管理员通过Web界面管理Zabbix配置以及查看Zabbix相关监

深入浅出Zabbix 3.0 -- 第二章 Zabbix Web操作与定义

第二章  Zabbix Web操作与定义 本章介绍Zabbix 中一些基本概念的定义和web前端页面的操作,包括Zabbix中使用的一些术语的定义,Web页面中用户管理.主机和主机组的管理,以及监控项.模板.触发器.告警的管理和操作,还有Graphs.Screens.Maps及Reports等.通过本章的学习掌握一些基本概念并能够通过Web页面的操作完成对Zabbix的管理. 2.1 定义 hosts(主机) Zabbix中需要监控的服务器.交换机及其他设备我们都统一称作host,这些设备与Za

CentOS 7 安装 Zabbix 3.0

CentOS7搭建Zabbix 一.安装数据库: 1.  安装数据库:sudo  yum  grouinstall mariadb mariadb-server –y 2.  启动数据库:sudo systemctl  start mariadb 3.  设置开机启动:sudo systemctl enable mariadb 4.  初始化数据库:sudo mysql_secure_installation            //设置密码为123456 二.安装Zabbix 1.  下载Z

日志监控_ElasticStack-0002.Logstash编码插件及实际生产案例应用?

新版插件: 说明: 从5.0开始,插件都独立拆分成gem包,每个插件可独立更新,无需等待Logstash自身整体更新,具体管理命令可参考./bin/logstash-plugin --help帮助信息../bin/logstash-plugin list其实所有的插件就位于本地./vendor/bundle/jruby/1.9/gems/目录下 扩展: 如果GitHub上面(https://github.com/logstash-plugins/)发布了扩展插件,可通过./bin/logstas

日志监控_ElasticStack-0003.Logstash输入插件及实际生产案例应用?

新版插件: 说明: 从5.0开始,插件都独立拆分成gem包,每个插件可独立更新,无需等待Logstash自身整体更新,具体管理命令可参考./bin/logstash-plugin --help帮助信息../bin/logstash-plugin list其实所有的插件就位于本地./vendor/bundle/jruby/1.9/gems/目录下 扩展: 如果GitHub上面(https://github.com/logstash-plugins/)发布了扩展插件,可通过./bin/logstas

Zabbix 3.0 监控MySQL

Mysql监控  zabbix自带了一个监控mysql的模板,但是真正监控mysql的并不是zabbix自带的模板.而是percona公司的一个监控mysql模板  percona官网: www.percona.com Percona组成介绍 1.php脚本    用来数据采集 2.shell脚本  用来调用采集信息 3.zabbix配置文件 4.zabbix模板文件 安装文档:https://www.percona.com/doc/percona-monitoring-plugins/LATE

estore商城案例(四、五)------添加购物车&购物车显示/生成订单&在线支付

一.添加购物车 1.获得商品id提交到servlet程序 2.根据id获取product对象 3.判断seesion中是否有存在购物车session.没有的话表示  添加的第一件商品  需要先创建session:有的话直接在session里添加获得的produce(添加product 要先判断session中是否存在对应的商品,存在话直接修改商品数量,没有的话新添加这个商品). servlet程序代码: 1 public void doGet(HttpServletRequest request