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
##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 ?from=libinglin@126.com
set ?smtp=smtp.126.com
set ?smtp-port=994
set ?smtp-auth-user=libinglin@126.com
set ?smtp-auth-password=shouquanma,#這里是授權碼,不是登錄密碼。
set ?smtp-auth=login)
##測試:
#yum ?install mailx -y
#echo "test" | mail -s 'test linux 20211207' ?libinglin@126.com,保證能測試成功.
##編寫郵件腳本:
#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 libinglin@126.com "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/