Zabbix 3.0 生产案例

 每日运维   2018-12-12 19:23   4853 人阅读  0 条评论

Zabbix 生产案例实战

Zabbix 3.0 生产案例  第1张

一、项目规划

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--->设置 
 Zabbix 3.0 生产案例  第2张
 1.3 Host页面设置 
Zabbix 3.0 生产案例  第3张
 1.4 Templates 模板设置 
Zabbix 3.0 生产案例  第4张
设置SNMP团体名称Macros宏 
这里的设置要跟我们创建的SNMP的设置相同 
Zabbix 3.0 生产案例  第5张
因为Zabbix监控的时候依赖团体名称 
 1.5 生产图片 
Zabbix 3.0 生产案例  第6张
  Zabbix会自动给我们进行检测端口,每个端口都会添加一个网卡的流量图,每个端口都会加上一个触发器。(端口的状态) 还会帮我们添加VLAN的一个监控 
 1.6 案例图 
  含有有进口和出口流量 
Zabbix 3.0 生产案例  第7张
提示:此图是Zabbix SNMP模板自动生成的


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

JMX监控 
  Zabbix默认提供了一个监控JMX 
通过java gateway来监控java 
Zabbix 3.0 生产案例  第8张
地址:https://www.zabbix.com/documentation/3.2/manual/appendix/config/zabbix_java 
  JAVA GATEWAY需要独立安装,相当于一个网关,因为zabbix_server和zabbix-agent不可以直接获取java信息。所以需要一个代理来获取 
Zabbix 3.0 生产案例  第9张
zabbix java Gateway不存任何数据,只是一个简单的代理 
1、安装

[root@linux-node1 ~]# yum install -y zabbix-java-gateway java-1.8.0提示:java-gateway 需要java环境

2、配置 
修改java-gateway

[root@linux-node1 ~]# 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、启动

[root@linux-node1 ~]# systemctl start zabbix-java-gateway.service

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

[root@linux-node1 ~]# 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

[root@linux-node1 ~]# 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在哪里 
修改配置文件

[root@linux-node1 ~]# 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

[root@linux-node1 ~]# systemctl restart zabbix-server.service

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

[root@linux-node2 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

[root@linux-node2 src]# tar xf apache-tomcat-8.5.5.tar.gz [root@linux-node2 src]# mv apache-tomcat-8.5.5 /usr/local/[root@linux-node2 src]# ln -s /usr/local/apache-tomcat-8.5.5/ /usr/local/tomcat[root@linux-node2 src]# yum install -y java-1.8.0    #tomcat 需要在java环境运行[root@linux-node2 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上面查看运行状态

[root@linux-node2 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

Zabbix 3.0 生产案例  第10张
JMX三种类型: 
  1.无密码认证 
  2.用户面密码认证 
  3.ssl

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

[root@linux-node2 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的方式

[root@linux-node2 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  查看是否被杀死[root@linux-node2 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

[root@linux-node2 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 
Zabbix 3.0 生产案例  第11张
  我们下载安装,具体步骤不说了,然后我们找到jconsole.exe文件运行 
Zabbix 3.0 生产案例  第12张
填写安装JMX的服务器 
Zabbix 3.0 生产案例  第13张
  因为在配置文件中我们设置的是无密码认证,所以这里不需要输入密码直接连接。端口号我们设置的是8888连接即可 
Zabbix 3.0 生产案例  第14张
这样我们就可以在图形化监控tomcat 
Zabbix 3.0 生产案例  第15张
  提示:按照现在观察,java-gateway已经安装成功,我们可以加入到zabbix中 
  找我们要添加的主机 
Zabbix 3.0 生产案例  第16张
填写安装java-gateway的主机 
Zabbix 3.0 生产案例  第17张
我们还需要设置一个模板 
Zabbix 3.0 生产案例  第18张
这个模板就是我们自带的一个监控JMX的模板,然后我们点击Update.更新 
Zabbix 3.0 生产案例  第19张
我们需要等待一会才可以出图

提示:可以在Zabbix-server上使用zabbix-get获取某一台机器的某一个key

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

[root@linux-node1 ~]# yum install -y zabbix-get

Key: 
Zabbix 3.0 生产案例  第20张
我们随便找一个key,然后我们复制后面的key

Zabbix 3.0 生产案例  第21张

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

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

[root@linux-node1 ~]# zabbix_get -s 192.168.56.12 -k system.cpu.util[,user]0.079323[root@linux-node1 ~]# zabbix_get -s 192.168.56.12 -k system.cpu.util[,user]0.075377[root@linux-node1 ~]# zabbix_get -s 192.168.56.12 -k system.cpu.util[,user]0.075377[root@linux-node1 ~]# zabbix_get -s 192.168.56.12 -k system.cpu.util[,user]0.073547

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

日志

开启zabbix debug模式

[root@linux-node2 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.添加权限及测试脚本

[root@linux-node1 zabbix_agentd.d]# chmod +x zabbix_linux_plugin.sh [root@linux-node1 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  编译安装需要查看安装路径[root@linux-node1 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所以我们配置文件也要这样修改 
  测试脚本

[root@linux-node1 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 [root@linux-node1 zabbix_agentd.d]# ./zabbix_linux_plugin.sh nginx_status 8080 active1[root@linux-node1 zabbix_agentd.d]# ./zabbix_linux_plugin.sh nginx_status 8080 reading0[root@linux-node1 zabbix_agentd.d]# ./zabbix_linux_plugin.sh nginx_status 8080 handled2823688

设置Key,首先是Key的名称

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

需要重启agent

[root@linux-node1 zabbix_agentd.d]# systemctl restart zabbix-agent

我们使用zabbix_get进行测试

[root@linux-node1 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,因为要加好多。我们就使用模板的方式进行添加 
Zabbix 3.0 生产案例  第22张

Zabbix 3.0 生产案例  第23张
Zabbix 3.0 生产案例  第24张
提示:我们写一下注释然后选择Add即可 
找到我们的模板 
Zabbix 3.0 生产案例  第25张
我们创建item 
Zabbix 3.0 生产案例  第26张
创建 
Zabbix 3.0 生产案例  第27张
各参数前文都有讲解不细说! 
 修改完成吼点击Add 
Zabbix 3.0 生产案例  第28张
  添加完成后我们要复制很多个用来监控Nginx status的所有状态,所以我们使用克隆。来克隆多个进行设置 
Zabbix 3.0 生产案例  第29张
点进我们的item,然后拖到最下面选择克隆 
Zabbix 3.0 生产案例  第30张
填一些基本的修改即可,例如下: 
Zabbix 3.0 生产案例  第31张
添加完成如下图: 
Zabbix 3.0 生产案例  第32张
item添加完成我们还需要添加一个图形,用于展示,找到图形路径。点击创建 
Zabbix 3.0 生产案例  第33张
Zabbix 3.0 生产案例  第34张
因为我们主机还没有加入我们的模板,所以我们这里是没有数据的 
Zabbix 3.0 生产案例  第35张
下面将模板加入到主机中 
Zabbix 3.0 生产案例  第36张
修改模板 
Zabbix 3.0 生产案例  第37张
查看结果如下: 
Zabbix 3.0 生产案例  第38张

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

Zabbix 3.0 生产案例  第39张
导出之后我们需要修改名称就可以了

 7.导入模板 
我们需要导出自然需要导入,操作如下: 
Zabbix 3.0 生产案例  第40张
点击添加即可 
Zabbix 3.0 生产案例  第41张
提示: 模板之间的名称不可以相同

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

 8.导入TCP模板 
  加入模板的步骤跟刚刚加入Nginx的一样,这里我们就使用模板了。 
下载链接:http://pan.baidu.com/s/1i54ULjJ 密码:25lh 
我们导入模板即可 
Zabbix 3.0 生产案例  第42张
导入完成之后我们可以查看模板 
Zabbix 3.0 生产案例  第43张
  在里面我们可以见到TCP的11种状态,这个item是我们需要根据我们脚本进行同步的。 
Zabbix 3.0 生产案例  第44张
我们可以随便点击一个进行查看,其中这里的key要和脚本的相同 
Zabbix 3.0 生产案例  第45张
Zabbix 3.0 生产案例  第46张
我们在两台服务器都加载这个模板 
Zabbix 3.0 生产案例  第47张
步骤和上面的一样 
Zabbix 3.0 生产案例  第48张
添加完成 
Zabbix 3.0 生产案例  第49张
  查看脚本需要等待1分钟,这主要看我们设置的获取值的时间而定。 
我们可以查看图形 
Zabbix 3.0 生产案例  第50张


本文地址:https://linux365.cn/53.html
版权声明:本文为原创文章,版权归 每日运维 所有,欢迎分享本文,转载请保留出处!

 发表评论


表情

还没有留言,还不快点抢沙发?