Zabbix5.0LTS+grafana-enterprise-8.3安装和配置
1. Zabbix介绍
1.1 Zabbix简介
Zabbix是由 Alexei Vladishev 创建,目前是由 Zabbix SIA 在持续开发和提供支持。
Zabbix是一种企业级的分布式开源监控解决方案。
Zabbix是一款能够监控众多网络参数和服务器的健康度和完整性的软件。Zabbix 使用灵活的通知机制,允许用户为几乎任何事件配置基于邮件的报警。支持推送到钉钉、微信等应用。
Zabbix支持轮询和被动捕获。所有的 Zabbix 报告、统计信息和配置参数都可以通过基于 Web 的前端页面进行访问。
Zabbix5.0中文官方参考链接:https://www.zabbix.com/documentation/5.0/zh/manual
1.2 Zabbix常用术语
1.主机(host):
你想要监控的联网设备,有IP/DNS。
2.主机组(host group):
主机的逻辑组;可能包含主机和模板。一个主机组里的主机和模板之间并没有任何直接的关联。通常在给不同用户组的主机分配权限时候使用主机组。
3.监控项(item):
你想要接收的主机的特定数据,一个度量/指标数据。
4.值预处理(value preprocessing):
转化/预处理接收到的指标数据 存入数据库之前。
5.触发器(trigger):
一个被用于定义问题阈值和“评估”监控项接收到的数据的逻辑表达式,当接收到的数据高于阈值时,触发器从“OK”变成“Problem”状态。当接收到的数据低于阈值时,触发器保留/返回“OK”的状态。
6.事件(event):
一次发生的需要注意的事情,例如触发器状态改变、发现/监控代理自动注册。
7.事件关联(event correlation):
自动灵活的、精确的关联问题和解决方案,你可以定义触发器A告警的异常可以由触发器B解决,触发器B可能采用完全不同的数据采集方式。
8.异常(problems):
一个处在“异常”状态的触发器。
9.异常更新(problem update):
Zabbix提供的问题管理选项,例如添加评论、确认异常、改变问题级别或者手动关闭等。
10.动作(action):
预先定义的应对事件的操作,一个动作由操作(例如发出通知)和条件(什么时间进行操作)组成。
11.升级(escalation):
一个在动作内执行操作的自定义方式; 发送通知/执行远程命令的顺序安排。
12.媒介(media):
发送告警通知的方式;传送途径。
13.通知(notification):
关于事件的信息,将通过选设定的媒介途径发送给用户。
14.远程命令(remote command):
一个预定义好的,满足特定条件的情况下,可以在被监控主机上自动执行的命令。
15.模版(template):
一组可以被应用到一个或多个主机上的实体(监控项,触发器,图形,聚合图形,应用,LLD,Web场景)的集合。
16.应用(application):
一组监控项组成的逻辑分组。
17.Web场景(web scenario):
检查网站可浏览性的一个或多个HTTP请求。
18.前端(frontend):
Zabbix提供的web界面。
19.Zabbix API:
Zabbix API允许用户使用JSON RPC协议来创建、更新和获取Zabbix对象(如主机、监控项、图形和其他)信息或者执行任何其他的自定义的任务。
20.加密(encryption):
支持Zabbix组件之间的加密通讯(server, proxy, agent, zabbix_sender 和 zabbix_get 程序) 使用TLS(Transport Layer Security )协议。
1.3 Zabbix功能
1.数据采集:
可用性和性能采集。
支持SNMP(包括主动轮询和被动捕获)、IPMI、JMX、VMware 监控。
自定义检查。
按照自定义的时间间隔采集需要的数据。
通过Server/Proxy 和 Agents 来执行数据采集。
2.灵活的阈值定义:
可以定义非常灵活的告警阈值,称之为触发器,触发器从后端数据库获得参考值。
3.高度可配置化的告警:
可以根据递增计划、接收者、媒介类型自定义发送告警通知。
使用宏变量可以使告警通知变得更加高效有益。
自动动作包含远程命令。
4.实时图形:
使用内置图形功能可实以将监控项绘制成图形。
5.Web监控功能:
Zabbix可以追踪模拟鼠标在 Web 网站上的点击操作,来检查 Web 网站的功能和响应时间。
6.丰富的可视化选项:
能够创建可以将多个监控项组合到单个视图中的自定义图形。
网络拓扑图。
以仪表盘样式展示自定义聚合图形和幻灯片演示。
报表。
监控资源的高层次(业务)视图。
7.历史数据存储:
存储在数据库中的数据。
可配置的历史数据。
内置数据管理机制(housekeeping)。
8.配置简单:
将被监控设备添加为主机。
主机一旦添加到数据库中,就会采集主机数据用于监控。
将模板用于监控设备。
9.套用模板:
在模板中分组检查。
模板可以关联其他模板,获得继承。
10.网络发现:
自动发现网络设备。
Zabbix Agent发现设备后自动注册。
自动发现文件系统、网络接口和SNMP OIDs 值。
11.快捷的 Web 界面:
基于PHP 的 Web 前端。
可以从任何地方访问(网络可达)。
可以定制自己的操作方式。
审计日志。
12.Zabbix API:
Zabbix API为 Zabbix 提供可编程接口,用于批量操作、第三方软件集成和其他用途。
13.权限管理系统:
安全的用户身份验证。
将特定用户限制于访问特定的视图。
14.功能强大且易于扩展的 Zabbix Agent:
部署于被监控对象上。
完美支持Linux 和 Windows 。
15.二进制守护进程:
为了更好的性能和更少的内存占用,采用C 语言编写。
便于移植。
16.适应更复杂的环境:
使用Zabbix Proxy 代理,可以轻松实现分布式远程监控 。
1.4 Zabbix组件
1.SERVER:
Zabbix server是整个 Zabbix 软件的核心程序。
Zabbix Server负责执行数据的主动轮询和被动获取,计算触发器条件,向用户发送通知。
Zabbix Server的功能可拆分为:Zabbix server、Web前端和数据库。
Zabbix的所有配置信息都存储在 Server 和Web前端进行交互的数据库中。
Zabbix server需要 UTF-8 语言环境。
Zabbix server允许使用非 root 用户运行。
如果Zabbix server 和 agent 均运行在同一台服务器上,建议您使用不同的用户运行 server和agent。
2.数据库:
所有配置信息以及Zabbix 收集到的数据都被存储在数据库中。
Zabbix支持 SQLite、MySQL和PostgreSQL 作为数据库,使用 Oracle 或 DB2 需要您承担一定的风险,例如,在自动发现规则中遇到的返回值问题 。
3.WEB界面:
为了从任何地方和任何平台轻松访问Zabbix ,我们提供了基于 web 的界面。该界面是 Zabbix server 的一部分,通常(但不一定)和 Zabbix server 运行在同一台物理机器上。
4.PROXY:
Zabbix proxy可以替 Zabbix server 收集性能和可用性数据。Zabbix proxy 是 Zabbix 环境部署的可选部分;它对于单个 Zabbix server 负载的分担是非常有益的。
5.AGENT:
Zabbix agent部署在被监控目标上,以主动监控本地资源和应用程序(硬盘、内存、处理器统计信息等)。
Zabbix agent收集本地的操作信息并将数据报告给 Zabbix server 用于进一步处理。一旦出现异常 (例如硬盘空间已满或者有崩溃的服务进程),Zabbix server 会主动警告管理员指定机器上的异常。
Zabbix agent可以运行被动检查和主动检查。
在被动检查模式中agent 应答数据请求。Zabbix server(或 proxy)询求数据,例如 CPU load,然后 Zabbix agent 返还结果。
主动检查处理过程将相对复杂。Agent 必须首先从 Zabbix sever 索取监控项列表以进行独立处理,然后会定期发送采集到的新值给 Zabbix server。
Zabbix agent同样需要 UTF-8 语言环境。
6.数据流:
为了创建一个采集数据的监控项,您就必须先创建主机。其次,必须有一个监控项来创建触发器。最后,您必须有一个触发器来创建一个动作,这几个点构成了一个完整的数据流。如果您想要收到CPU load it too high on Server X 的告警,您必须首先为 Server X 创建一个主机条目,其次创建一个用于监视其 CPU 的监控项,最后创建一个触发器,用来触发 CPU is too high 这个动作,并将其发送到您的邮箱里。
7. JAVA GATEWAY:
从Zabbix 2.0 开始,以 Zabbix 守护进程方式原生支持监控 JMX 应用程序就存在了。该组件便于监控一些常用的中间件,例如:Weblogic、Tomcat、WebSphere等。不需要安装额外的软件,只需要在中间件启动时添加相关参数即可。
8.SENDER:
Zabbix sender是一个命令行应用程序,可用于将性能数据发送到 Zabbix server 进行处理。
该实用程序通常用于长时间运行的用户脚本,用于定期发送可用性和性能数据。
要将结果直接发送到Zabbix server 或 proxy,必须配置 trapper 监控项 类型。
9.GET:
Zabbix get是一个命令行应用,它可以用于与 Zabbix agent 进行通信,并从 Zabbix agent 那里获取所需的信息。
该应用通常被用于Zabbix agent 故障排错。
10. JS:
zabbix_js是一个命令行实用程序,可用于嵌入脚本测试。
该程序可执行带有字符串参数的用户自定义脚本并打印结果。脚本的执行是由内嵌的Zabbix脚本引擎来完成的。
在编译或执行错误的情况下,zabbix_js将在stderr中打印错误并以代码1退出。
[if !supportLists]2. [endif] Zabbix5.0LTS安装和配置
2.1 安装Zabbix5.0LTS
##Zabbix5.0LTS+Centos7.9+mysql8.0.27+Nginx1.16安装
1. 系统环境
IP角色版本
172.16.1.51zabbix-serverzabbix-server-5.0.18
172.16.1.51zabbix-agentzabbix-server-5.0.18
172.16.1.51mysqlmysql8.0.27
172.16.1.51nginxnginx-1.16.1
172.16.1.51grafana-enterprisegrafana-enterprise-8.3.1
172.16.1.161zabbix-agentzabbix-server-5.0.18
172.16.1.161tomcatapache-tomcat-8.5.73
172.16.1.128zabbix-agentzabbix-server-5.0.18
172.16.1.128WebLogicWebLogic12C
2. 软件要求
https://www.zabbix.com/documentation/5.0/manual/installation/requirements
3. rpm包安装Zabbix5.0
##安装参数:https://www.zabbix.com/download?zabbix=5.0&os_distribution=centos&os_version=7&db=mysql&ws=nginx
##Install Zabbix repository
#rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
#yum clean all
##Install Zabbix server and agent
#yum install zabbix-server-mysql zabbix-agent
###Install Zabbix frontend
##Enable Red Hat Software Collections
#yum install centos-release-scl
##Edit file /etc/yum.repos.d/zabbix.repo and enable zabbix-frontend repository.
#vim /etc/yum.repos.d/zabbix.repo
[zabbix-frontend]
...
enabled=1
...
##Install Zabbix frontend packages.
#yum install zabbix-web-mysql-scl zabbix-nginx-conf-scl
2.2 安装数据库
2.2.1安装MariaDB-server-10.2.41
##卸载旧版本
#rpm -qa | grep mariadb
#rpm -e mariadb-libs-5.5.65-1.el7.x86_64 --nodeps
#rpm -qa | grep mariadb
##配置yum源
vim /etc/yum.repos.d/mariadb.repo
# MariaDB 10.2 CentOS repository list - created 2021-12-03 13:49 UTC
# https://mariadb.org/download/
[mariadb]
name = MariaDB
baseurl = https://mirror.rackspace.com/mariadb/yum/10.2/centos7-amd64
gpgkey=https://mirror.rackspace.com/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck=1
##安装mariadb
#yum install MariaDB-server MariaDB-client
systemctl start mariadb
##以默认的空密码登录
#mysql -uroot -p
##修改root的密码为root123
MariaDB [(none)]> use mysql;
MariaDB [mysql]> update user set password=password('root123') where user='root';
MariaDB [(none)]> flush privileges;
##一般不用配置 mariadb的时区,它默认使用操作系统的时区,只要操作系统的时区配置好就行了。
#vi /etc/my.cnf
default-time-zone='+8:00'
#systemctl restart mariadb
2.2.2 安装mysql8.0.27
##下载repo,可能需要曲线下载后再上传到服器
#wget https://dev.mysql.com/get/mysql80-community-release-el7-4.noarch.rpm
#yum localinstall mysql80-community-release-el7-4.noarch.rpm
##卸载旧版本
#rpm -qa | grep mariadb
#rpm -e mariadb-libs-5.5.68-1.el7.x86_64 --nodeps
#rpm -qa | grep mariadb
##安装mysql,注意要安装上mysql-community-libs-compat这个包,因为它提供了zabbix需要的低版本的libmysqlclient.so.18这个库文件
#yum install mysql-community-server mysql-community-client mysql-community-libs-compat
##初始化
#mysqld --initialize
#chown mysql:mysql /var/lib/mysql -R
##启动mysql
#systemctl start mysqld.service
##如果启动失败,则执行rm -rf /var/lib/mysql后再执行初始化的那两步
#systemctl status mysqld
#systemctl enable mysqld
##查看随机密码并第一次登录
#cat /var/log/mysqld.log | grep password
#mysql -uroot -p
##修改root的密码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root123';
##从MySQL 8.0.4开始, 默认的认证插件从mysql_native_password 变为caching_sha2_password.可通过下面命令查看某用户使用的是哪个插件。
mysql> use mysql;
mysql> select user,host,plugin from user;
##查看此mysql版本支持了哪些插件
mysql> show plugins;
##如果要换回mysql_native_password。
#ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root123';
##可选的,进行远程访问的授权(使用的是mysql_native_password密码验证方式)
mysql>create user 'root'@'%' identified with mysql_native_password by 'root123';
mysql>grant all privileges on *.* to 'root'@'%' with grant option;
mysql>flush privileges;
##可选的,进行远程访问的授权(使用的是caching_sha2_password密码验证方式)
mysql>create user 'root'@'%' identified with caching_sha2_password by 'root123';
mysql>grant all privileges on *.* to 'root'@'%' with grant option;
mysql>flush privileges;
##可选的设置时区,默认情况下,mysql使用其上的OS的时区
#vi /etc/my.cnf
default-time-zone='+8:00'
#systemctl restart mysqld
##查看mysql使用的时区
mysql>show variables like '%time_zone%';
##查看mysql当前的时间
mysql>select now();
2.2.3 导入zabbix数据表
#myssql -uroot -p
mysql> create database zabbix character set utf8 collate utf8_bin;
##如果是mariadb
mysql> create user zabbix@localhost identified by 'zabbix';
mysql> grant all privileges on zabbix.* to zabbix@localhost;
##为数据库zabbix增加%用户,是因为页面安装zabbix时需要。
mysql> create user zabbix@’%’ identified by 'zabbix';
mysql> grant all privileges on zabbix.* to zabbix@’%’;
##如果是mysql8,则执行如下命令,要使用mysql_native_password插件验证密码(此版本zabbix不支持caching_sha2_password)并设置主机为%。
mysql> create user zabbix@localhost identified with mysql_native_password by 'zabbix';
mysql> grant all privileges on zabbix.* to zabbix@localhost;
##为数据库zabbix增加%用户,是因为页面安装zabbix时需要。
mysql> create user zabbix@'%' identified with mysql_native_password by 'zabbix';
mysql> grant all privileges on zabbix.* to zabbix@'%';
##On Zabbix server host import initial schema and data. You will be prompted to enter your newly created password.
# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
2.2.4 配置zabbix使用数据库,php和nginx
##Configure the database for Zabbix server
#vi /etc/zabbix/zabbix_server.conf
DBPassword=zabbix
DBHost=172.16.1.51
##Configure PHP for Zabbix frontend
##Edit file /etc/opt/rh/rh-nginx116/nginx/conf.d/zabbix.conf, uncomment and set 'listen' and 'server_name' directives.
listen 80;
server_name example.com;
##Edit file /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf, add nginx to listen.acl_users directive.
listen.acl_users = apache,nginx
##Then uncomment and set the right timezone for you.
; php_value[date.timezone] = Europe/Riga
php_value[date.timezone] = Asia/Shanghai
##Start Zabbix server and agent processes
##Start Zabbix server and agent processes and make it start at system boot.
# systemctl restart zabbix-server zabbix-agent rh-nginx116-nginx rh-php72-php-fpm
# systemctl enable zabbix-server zabbix-agent rh-nginx116-nginx rh-php72-php-fpm
2.2.5 页面安装zabbix
##Connect to your newly installed Zabbix frontend: http://server_ip_or_name
http://172.16.1.51
##web配置zabbix
下一步
下一步
下一步
完成
用户名/密码:Admin/zabbix
##查看zabbix server日志
#tailf /var/log/zabbix/zabbix_server.log
##设置Web界面支持中文
Administration-->users-->Admin-->Language-->
2.2.6 zabbix agent客户端安装
##在172.16.1.161上
# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
# yum install zabbix-agent
# vim /etc/zabbix/zabbix_agentd.conf
##要允许zabbix-server访问
Server=172.16.1.51
##zabbix-agent的主机名
Hostname=172.16.1.161
##手动添加agent
此处主机名称要与Agentd.conf配置文件中的Hostname保持一致,否则会报错;Agent
最后点添加,添加个模板,后面可编辑或增加其他模板。
2.2.7 Zabbix自动发现
2.2.7.1 设置zabbix-agent
##注意,先决条件是agent端/etc/zabbix/zabbix_agentd.conf中要配置Server=172.16.1.51
和Hostname=172.16.1.161这两行。
2.2.7.2 创建发现规则
##配置->自动发现->创建发现规则
2.2.7.3 创建发现后的动作
##配置-- >动作-->Discovery actions
主要指定了ABC三个条件。
##指定发现后加入到主机群组
指定发现后关联模板。
2.2.7.4 自动发现测试
##过一会就能看到发现的主机了
2.2.8 zabbix自动注册
2.2.8.1 设置zabbix-agent
##配置文件只需要2行。并注释Hostname=Zabbix server行(因为Hostname可不配置,如果不配置,它由HostnameItem决定,而HostnameItem的默认值是HostnameItem=system.hostname)。
vim /etc/zabbix/zabbix_agentd.conf
Server=172.16.1.51
ServerActive=172.16.1.51
#Hostname=Zabbix server
2.2.8.2 配置动作
##主机名匹配wls或pvi
注意:是匹配wls或pvi不是包含。如果其他主机名不符合这里的名称,则再添加,计算方式为“或”。
2.2.9 配置Zabbix邮件报警
2.2.9.1创建媒介
1. 创建脚本媒介
注:实现发邮件功能,使用第三方(自己的)的邮件服务器,这个不推荐,复杂些。
##如果用第三方(自己的)邮件地址:
vim /etc/mail.rc,最后添加
(set [email protected]
set smtp=smtp.126.com
set smtp-port=994
set smtp-auth-password=shouquanma,#这里是授权码,不是登录密码。
set smtp-auth=login)
##测试:
#yum install mailx -y
#echo "test" | mail -s 'test linux 20211207' [email protected],保证能测试成功.
##编写邮件脚本:
#vim /usr/lib/zabbix/alertscripts/sendmail.sh
(#!/bin/bash
# export LANG=zh_CN.UTF-8
to=$1
subject=$2
body=$3
FILE=/tmp/mailtmp.txt
echo "$3" >$FILE
dos2unix -k $FILE
/bin/mail -s "$2" $1 < $FILE)
# touch /tmp/mailtmp.txt
# chown zabbix.zabbix /tmp/mailtmp.txt
# chown zabbix:zabbix /usr/lib/zabbix/alertscripts/sendmail.sh
# chmod 755 /usr/lib/zabbix/alertscripts/sendmail.sh
# ls -l /usr/lib/zabbix/alertscripts/sendmail.sh
##测试脚本
#yum install dos2unix
#sudo -H -u zabbix bash -c '/usr/lib/zabbix/alertscripts/sendmail.sh [email protected] "test linux" "test my"'
[if !supportLists]2. [endif]创建电子邮件媒介
注:还是使用第三方(自己的)的邮件服务器,推荐方式。
注意:密码为邮箱的授权码。Message format为文本(为了收到的邮件内容能有换行)。
2.2.9.2设置用户媒介
用户为Admin(也可以新建一个用户)
点击权限,管理员不要修改,如果是新建的其他用户,则需要修改.
2.2.9.3增加动作
##自定义消息:
主题:{TRIGGER.STATUS}:{TRIGGER.NAME}
消息:Trigger Name:{TRIGGER.NAME}
Trigger Description:{TRIGGER.DESCRIPTION}
Trigger Expression:{TRIGGER.EXPRESSION}
Trigger Status:{TRIGGER.STATUS}
Trigger Severity:{TRIGGER.SEVERITY}
Trigger URL:{TRIGGER.URL}
2.2.9.4测试
##关闭一个zabbix-agent,过几分钟看能不能收到邮件。
2.2.9.5排错
##如果没有发邮件,则点失败邮件的图标查看原因:
3. Zabbix监控实例
3.1 监控WebLogic JVM状态
1. Zabbix server或者zabbix proxy上需要安装java gateway软件
# yum install -y zabbix-java-gateway
[if !supportLists]2. [endif]修改java gateway配置
# vi /etc/zabbix/zabbix_java_gateway.conf
START_POLLERS=5
TIMEOUT=30
3. 修改zabbix server配置
# vi /etc/zabbix/zabbix_server.conf
JavaGateway=172.16.1.51
StartJavaPollers=5
4. 重启服务
# systemctl enable zabbix-java-gateway
# systemctl start zabbix-java-gateway
# systemctl restart zabbix-server
5. 开启应用服务器的JMX接口
使用jmx方式监控weblogic JVM的状态,zabbix官方给出了两种认证方式: 1.不认证,不使用SSL;2.使用ssl认证,本文采用不认证的方式
需要在应用服务器上启动脚本中JAVA_OPTIONS中添加以下参数:
-Djava.rmi.server.hostname=172.16.1.128 \
-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=12345 \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.ssl=false
说明:-Djava.rmi.server.hostname:因为应用服务器需要使用管理网,所以最好指定在管理地址方式启用JMX
-Dcom.sun.management.jmxremote:开启JMX
-Dcom.sun.management.jmxremote.port:指定JMX的端口
-Dcom.sun.management.jmxremote.authenticate=false:不使用认证
-Dcom.sun.management.jmxremote.ssl=false:不使用SSL
注意:如果既要监控AdminServer 又要监控被管Server,不能直接在setDomainEnv.sh脚本中添加参数,启动会报端口被占用的错误。请参考第6步解决端口冲突。
6. 参数添加方式:
6.1对于监控AdminServer的参数添加,建议在{DOMAIN_HOME}目录下新建startWebLogic.sh,脚本示例如下:
#!/bin/sh
DOMAIN_HOME="/home/demoapp/demo_domain"
export JAVA_OPTIONS="-Djava.rmi.server.hostname=192.168.43.10 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"
nohup ${DOMAIN_HOME}/bin/startWebLogic.sh $* &
6.2对于监控其他被管Server的参数添加,如果是启用了Nodemanager,则可以直接添加到控制台。如果没有启用Nodemanager则需要为每一个被管Server编写脚本,脚本示例如下:
#!/bin/sh
DOMAIN_HOME="/home/demoapp/demo_domain"
export JAVA_OPTIONS="-Djava.rmi.server.hostname=192.168.43.10
-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=12346
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false"
nohup ${DOMAIN_HOME}/bin/startManagedWebLogic.sh Server1 t3://192.168.43.10:7001 &
7. 启动被监控的服务并验证:
7.1运行脚本,启动被监控的服务;
7.2windows环境安装JDK并配置环境变量;
7.3验证被监控服务的JMX启动情况,运行cmd ---> jconsole 弹出的图形窗口中选择远程进程--->输入ip:port 点击连接,如下图表示已经成功启用了JMX。
8. Zabbix控制台添加监控的服务器信息:
8.1编辑主机信息
配置--->主机 --->pvibsa1--->interfaces ---> 添加 JMX --->输入IP地址:172.16.1.128 和端口号: 12345--->模板 搜索: jmx 选择:Template App Generic JMX--->点击 添加。
8.2检查添加的主机的可用性
监测---> 主机 ---> 查看新加的主机的可用性列,如果JMX背景变绿色表示可用。
3.2 监控Tomcat JVM状态
##说明:监控Tomcat JVM 状态与监控WebLogic的JVM状态类似,区别在于启动Tomcat的JMX的参数添加。本场景只介绍如何开启Tomcat的JMX接口
1. 下载
#wget https://dlcdn.apache.org/tomcat/tomcat-8/v8.5.73/bin/apache-tomcat-8.5.73.tar.gz
2. Tomcat安装路径: /usr/local/apache-tomcat-8.5.73
3. 编辑catalina.sh脚本
vim /usr/local/apache-tomcat-8.5.73/bin/catalina.sh
在“-Dorg.apache.catalina.security.SecurityListener.UMASK=`umask`”后面添加,添加后的内容如下:
JAVA_OPTS="$JAVA_OPTS -Dorg.apache.catalina.security.SecurityListener.UMASK=`umask` -Djava.rmi.server.hostname=172.16.1.161 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"
4. 重启Tomcat服务。
5. 注意:tomcat监控还是要使用Template App Generic Java JMX,而Template App Apache Tomcat JMX只有一个监控项目
3.3 监控IBM MQ(没实验)
说明:监控IBM MQ队列管理器通道状态、监听器状态、队列当前深度最大深度、队列管理器状态
1.自定义模板:Template App IBM MQ With Zabbix Agent.xml,通过控制台将此模板上传到Zabbix Server;
2.编写配置文件:userparameter_ibm_mq.conf,将此配置文件上传到Zabbix agent服务器的 /etc/zabbix/zabbix_agentd.d 目录下;
3.编写:discovery_mq.sh 、get_mq_status.sh 脚本,将此脚本上传到Zabbix agent 服务器的
/etc/zabbix/scripts目录下;
4.为IBM MQ服务器安装:zabbix-agent-5.0.10-1.el7.x86_64.rpm;
5.Zabbix控制台添加 IBM MQ主机,添加时选择:Template App IBM MQ With Zabbix Agent、
Template OS Linux by Zabbix agent模板;
6.修改zabbix_agentd.conf配置文件,Server 和 ServerActive 参数的值都填写Zabbix Server服务器的IP地址,Hostname的值填写 在控制台添加的IBM MQ主机的名称;
7.重启Zabbix-agent服务:systemctl restart zabbix-agent;
8.检查添加的IBM MQ 主机中的监控项是否存在定义的IBM MQ 的监控项;
4. 配置grafana
4.1安装grafana及对应的zabbix插件
##参考:https://alexanderzobnin.github.io/grafana-zabbix/installation/
#vim /etc/yum.repos.d/grafana.repo
[grafana]
name=grafana
baseurl=https://packages.grafana.com/enterprise/rpm
repo_gpgcheck=1
enabled=1
gpgcheck=1
gpgkey=https://packages.grafana.com/gpg.key
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
#yum install grafana-enterprise
2.Start the server (via systemd)
# systemctl daemon-reload
# systemctl start grafana-server
# systemctl status grafana-server
3. Enable the systemd service to start at boot
#sudo systemctl enable grafana-server.service
4.参数文件
##/etc/sysconfig/grafana-server
5.日志文件
##By default Grafana will log to /var/log/grafana
6.Database
##The default configuration specifies a sqlite3 database located at /var/lib/grafana/grafana.db
7.配置文件
##the configuration file is located at /etc/grafana/grafana.ini
8.访问
http://172.16.1.51:3000/,用户名/密码为:admin/admin
9.为grafana安装zabbix插件
#grafana-cli plugins install alexanderzobnin-zabbix-app
#systemctl restart grafana-server
4.2配置grafana的zabbix插件
##参考文件:https://alexanderzobnin.github.io/grafana-zabbix/configuration/#configuration
##Configuration-->plugins-->zabbix -->enable
##Configuration-->Data sources-->zabbix -->setting
URL: http://172.16.1.51/api_jsonrpc.php
Username:Admin,Password:zabbix,它们是登录zabbix的用户名和密码。
##导入全部Dashboards
##搜索想看的Dashboard
点左侧的Search Dashboards
##查看自定义面板(图)
参考:https://alexanderzobnin.github.io/grafana-zabbix/guides/gettingstarted/