Zabbix5.0LTS+grafana-enterprise-8.3安裝和配置
1. Zabbix介紹
1.1 Zabbix簡介
Zabbix是由 Alexei Vladishev 創(chuàng)建匾荆,目前是由 Zabbix SIA 在持續(xù)開發(fā)和提供支持。
Zabbix是一種企業(yè)級的分布式開源監(jiān)控解決方案蚜厉。
Zabbix是一款能夠監(jiān)控眾多網(wǎng)絡(luò)參數(shù)和服務(wù)器的健康度和完整性的軟件懦底。Zabbix 使用靈活的通知機制证膨,允許用戶為幾乎任何事件配置基于郵件的報警吊奢。支持推送到釘釘页滚、微信等應(yīng)用铺呵。
Zabbix支持輪詢和被動捕獲。所有的 Zabbix 報告片挂、統(tǒng)計信息和配置參數(shù)都可以通過基于 Web 的前端頁面進行訪問幻林。
Zabbix5.0中文官方參考鏈接:https://www.zabbix.com/documentation/5.0/zh/manual
1.2 Zabbix常用術(shù)語
1.主機(host):
你想要監(jiān)控的聯(lián)網(wǎng)設(shè)備,有IP/DNS宴卖。
2.主機組(host group):
主機的邏輯組滋将;可能包含主機和模板。一個主機組里的主機和模板之間并沒有任何直接的關(guān)聯(lián)症昏。通常在給不同用戶組的主機分配權(quán)限時候使用主機組随闽。
3.監(jiān)控項(item):
你想要接收的主機的特定數(shù)據(jù),一個度量/指標數(shù)據(jù)肝谭。
4.值預(yù)處理(value preprocessing):
轉(zhuǎn)化/預(yù)處理接收到的指標數(shù)據(jù) 存入數(shù)據(jù)庫之前掘宪。
5.觸發(fā)器(trigger):
一個被用于定義問題閾值和“評估”監(jiān)控項接收到的數(shù)據(jù)的邏輯表達式,當接收到的數(shù)據(jù)高于閾值時攘烛,觸發(fā)器從“OK”變成“Problem”狀態(tài)魏滚。當接收到的數(shù)據(jù)低于閾值時,觸發(fā)器保留/返回“OK”的狀態(tài)坟漱。
6.事件(event):
一次發(fā)生的需要注意的事情鼠次,例如觸發(fā)器狀態(tài)改變腥寇、發(fā)現(xiàn)/監(jiān)控代理自動注冊赦役。
7.事件關(guān)聯(lián)(event correlation):
自動靈活的术羔、精確的關(guān)聯(lián)問題和解決方案,你可以定義觸發(fā)器A告警的異常可以由觸發(fā)器B解決扛禽,觸發(fā)器B可能采用完全不同的數(shù)據(jù)采集方式。
8.異常(problems):
一個處在“異称。”狀態(tài)的觸發(fā)器。
9.異常更新(problem update):
Zabbix提供的問題管理選項嚷堡,例如添加評論、確認異常、改變問題級別或者手動關(guān)閉等友鼻。
10.動作(action):
預(yù)先定義的應(yīng)對事件的操作,一個動作由操作(例如發(fā)出通知)和條件(什么時間進行操作)組成。
11.升級(escalation):
一個在動作內(nèi)執(zhí)行操作的自定義方式; 發(fā)送通知/執(zhí)行遠程命令的順序安排蔗衡。
12.媒介(media):
發(fā)送告警通知的方式;傳送途徑济蝉。
13.通知(notification):
關(guān)于事件的信息,將通過選設(shè)定的媒介途徑發(fā)送給用戶雁乡。
14.遠程命令(remote command):
一個預(yù)定義好的悠抹,滿足特定條件的情況下啤挎,可以在被監(jiān)控主機上自動執(zhí)行的命令。
15.模版(template):
一組可以被應(yīng)用到一個或多個主機上的實體(監(jiān)控項掏觉,觸發(fā)器,圖形,聚合圖形羊娃,應(yīng)用邮利,LLD,Web場景)的集合方庭。
16.應(yīng)用(application):
一組監(jiān)控項組成的邏輯分組。
17.Web場景(web scenario):
檢查網(wǎng)站可瀏覽性的一個或多個HTTP請求。
18.前端(frontend):
Zabbix提供的web界面欺殿。
19.Zabbix API:
Zabbix API允許用戶使用JSON RPC協(xié)議來創(chuàng)建、更新和獲取Zabbix對象(如主機、監(jiān)控項亦歉、圖形和其他)信息或者執(zhí)行任何其他的自定義的任務(wù)。
20.加密(encryption):
支持Zabbix組件之間的加密通訊(server, proxy, agent, zabbix_sender 和 zabbix_get 程序) 使用TLS(Transport Layer Security )協(xié)議赛蔫。
1.3 Zabbix功能
1.數(shù)據(jù)采集:
可用性和性能采集媚创。
支持SNMP(包括主動輪詢和被動捕獲)晌姚、IPMI、JMX宝磨、VMware 監(jiān)控别瞭。
自定義檢查晒衩。
按照自定義的時間間隔采集需要的數(shù)據(jù)。
通過Server/Proxy 和 Agents 來執(zhí)行數(shù)據(jù)采集。
2.靈活的閾值定義:
可以定義非常靈活的告警閾值浪漠,稱之為觸發(fā)器,觸發(fā)器從后端數(shù)據(jù)庫獲得參考值必盖。
3.高度可配置化的告警:
可以根據(jù)遞增計劃、接收者、媒介類型自定義發(fā)送告警通知嬉探。
使用宏變量可以使告警通知變得更加高效有益眷蜓。
自動動作包含遠程命令。
4.實時圖形:
使用內(nèi)置圖形功能可實以將監(jiān)控項繪制成圖形。
5.Web監(jiān)控功能:
Zabbix可以追蹤模擬鼠標在 Web 網(wǎng)站上的點擊操作蕴坪,來檢查 Web 網(wǎng)站的功能和響應(yīng)時間。
6.豐富的可視化選項:
能夠創(chuàng)建可以將多個監(jiān)控項組合到單個視圖中的自定義圖形。
網(wǎng)絡(luò)拓撲圖挺狰。
以儀表盤樣式展示自定義聚合圖形和幻燈片演示。
報表瞳购。
監(jiān)控資源的高層次(業(yè)務(wù))視圖吞杭。
7.歷史數(shù)據(jù)存儲:
存儲在數(shù)據(jù)庫中的數(shù)據(jù)绢掰。
可配置的歷史數(shù)據(jù)。
內(nèi)置數(shù)據(jù)管理機制(housekeeping)鲁捏。
8.配置簡單:
將被監(jiān)控設(shè)備添加為主機。
主機一旦添加到數(shù)據(jù)庫中虎谢,就會采集主機數(shù)據(jù)用于監(jiān)控擎场。
將模板用于監(jiān)控設(shè)備。
9.套用模板:
在模板中分組檢查。
模板可以關(guān)聯(lián)其他模板矾策,獲得繼承。
10.網(wǎng)絡(luò)發(fā)現(xiàn):
自動發(fā)現(xiàn)網(wǎng)絡(luò)設(shè)備。
Zabbix Agent發(fā)現(xiàn)設(shè)備后自動注冊地粪。
自動發(fā)現(xiàn)文件系統(tǒng)、網(wǎng)絡(luò)接口和SNMP OIDs 值聊品。
11.快捷的 Web 界面:
基于PHP 的 Web 前端。
可以從任何地方訪問(網(wǎng)絡(luò)可達)。
可以定制自己的操作方式厘贼。
審計日志。
12.Zabbix API:
Zabbix API為 Zabbix 提供可編程接口岳掐,用于批量操作、第三方軟件集成和其他用途纲酗。
13.權(quán)限管理系統(tǒng):
安全的用戶身份驗證。
將特定用戶限制于訪問特定的視圖。
14.功能強大且易于擴展的 Zabbix Agent:
部署于被監(jiān)控對象上规脸。
完美支持Linux 和 Windows 。
15.二進制守護進程:
為了更好的性能和更少的內(nèi)存占用,采用C 語言編寫堕花。
便于移植呻粹。
16.適應(yīng)更復(fù)雜的環(huán)境:
使用Zabbix Proxy 代理,可以輕松實現(xiàn)分布式遠程監(jiān)控 伴榔。
1.4 Zabbix組件
1.SERVER:
Zabbix server是整個 Zabbix 軟件的核心程序塘安。
Zabbix Server負責執(zhí)行數(shù)據(jù)的主動輪詢和被動獲取,計算觸發(fā)器條件砸脊,向用戶發(fā)送通知。
Zabbix Server的功能可拆分為:Zabbix server瞳抓、Web前端和數(shù)據(jù)庫。
Zabbix的所有配置信息都存儲在 Server 和Web前端進行交互的數(shù)據(jù)庫中横蜒。
Zabbix server需要 UTF-8 語言環(huán)境。
Zabbix server允許使用非 root 用戶運行。
如果Zabbix server 和 agent 均運行在同一臺服務(wù)器上,建議您使用不同的用戶運行 server和agent智哀。
2.數(shù)據(jù)庫:
所有配置信息以及Zabbix 收集到的數(shù)據(jù)都被存儲在數(shù)據(jù)庫中送巡。
Zabbix支持 SQLite、MySQL和PostgreSQL 作為數(shù)據(jù)庫煮寡,使用 Oracle 或 DB2 需要您承擔一定的風險外臂,例如挑童,在自動發(fā)現(xiàn)規(guī)則中遇到的返回值問題 菇民。
3.WEB界面:
為了從任何地方和任何平臺輕松訪問Zabbix 阔馋,我們提供了基于 web 的界面下梢。該界面是 Zabbix server 的一部分,通常(但不一定)和 Zabbix server 運行在同一臺物理機器上辆琅。
4.PROXY:
Zabbix proxy可以替 Zabbix server 收集性能和可用性數(shù)據(jù)暇屋。Zabbix proxy 是 Zabbix 環(huán)境部署的可選部分率碾;它對于單個 Zabbix server 負載的分擔是非常有益的。
5.AGENT:
Zabbix agent部署在被監(jiān)控目標上屋彪,以主動監(jiān)控本地資源和應(yīng)用程序(硬盤所宰、內(nèi)存、處理器統(tǒng)計信息等)畜挥。
Zabbix agent收集本地的操作信息并將數(shù)據(jù)報告給 Zabbix server 用于進一步處理。一旦出現(xiàn)異常 (例如硬盤空間已滿或者有崩潰的服務(wù)進程)麦向,Zabbix server 會主動警告管理員指定機器上的異常。
Zabbix agent可以運行被動檢查和主動檢查送挑。
在被動檢查模式中agent 應(yīng)答數(shù)據(jù)請求惭缰。Zabbix server(或 proxy)詢求數(shù)據(jù)腐芍,例如 CPU load,然后 Zabbix agent 返還結(jié)果膀跌。
主動檢查處理過程將相對復(fù)雜熄诡。Agent 必須首先從 Zabbix sever 索取監(jiān)控項列表以進行獨立處理康栈,然后會定期發(fā)送采集到的新值給 Zabbix server践叠。
Zabbix agent同樣需要 UTF-8 語言環(huán)境。
6.數(shù)據(jù)流:
為了創(chuàng)建一個采集數(shù)據(jù)的監(jiān)控項,您就必須先創(chuàng)建主機柳刮。其次,必須有一個監(jiān)控項來創(chuàng)建觸發(fā)器。最后,您必須有一個觸發(fā)器來創(chuàng)建一個動作基矮,這幾個點構(gòu)成了一個完整的數(shù)據(jù)流。如果您想要收到CPU load it too high on Server X 的告警,您必須首先為 Server X 創(chuàng)建一個主機條目,其次創(chuàng)建一個用于監(jiān)視其 CPU 的監(jiān)控項达罗,最后創(chuàng)建一個觸發(fā)器吊洼,用來觸發(fā) CPU is too high 這個動作蕉扮,并將其發(fā)送到您的郵箱里尉咕。
7. JAVA GATEWAY:
從Zabbix 2.0 開始,以 Zabbix 守護進程方式原生支持監(jiān)控 JMX 應(yīng)用程序就存在了。該組件便于監(jiān)控一些常用的中間件车摄,例如:Weblogic巩梢、Tomcat、WebSphere等西潘。不需要安裝額外的軟件,只需要在中間件啟動時添加相關(guān)參數(shù)即可别渔。
8.SENDER:
Zabbix sender是一個命令行應(yīng)用程序,可用于將性能數(shù)據(jù)發(fā)送到 Zabbix server 進行處理。
該實用程序通常用于長時間運行的用戶腳本冈止,用于定期發(fā)送可用性和性能數(shù)據(jù)狂票。
要將結(jié)果直接發(fā)送到Zabbix server 或 proxy,必須配置 trapper 監(jiān)控項 類型熙暴。
9.GET:
Zabbix get是一個命令行應(yīng)用闺属,它可以用于與 Zabbix agent 進行通信,并從 Zabbix agent 那里獲取所需的信息周霉。
該應(yīng)用通常被用于Zabbix agent 故障排錯掂器。
10. JS:
zabbix_js是一個命令行實用程序,可用于嵌入腳本測試俱箱。
該程序可執(zhí)行帶有字符串參數(shù)的用戶自定義腳本并打印結(jié)果国瓮。腳本的執(zhí)行是由內(nèi)嵌的Zabbix腳本引擎來完成的。
在編譯或執(zhí)行錯誤的情況下狞谱,zabbix_js將在stderr中打印錯誤并以代碼1退出乃摹。
[if !supportLists]2.?[endif]?Zabbix5.0LTS安裝和配置
2.1 安裝Zabbix5.0LTS
##Zabbix5.0LTS+Centos7.9+mysql8.0.27+Nginx1.16安裝
1. 系統(tǒng)環(huán)境
?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
##安裝參數(shù):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 安裝數(shù)據(jù)庫
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的時區(qū),它默認使用操作系統(tǒng)的時區(qū)跟衅,只要操作系統(tǒng)的時區(qū)配置好就行了孵睬。
#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
##如果啟動失敗肪康,則執(zhí)行rm -rf /var/lib/mysql后再執(zhí)行初始化的那兩步
#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 變?yōu)閏aching_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';
##可選的磷支,進行遠程訪問的授權(quán)(使用的是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;
##可選的谒撼,進行遠程訪問的授權(quán)(使用的是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;
##可選的設(shè)置時區(qū),默認情況下雾狈,mysql使用其上的OS的時區(qū)
#vi /etc/my.cnf
default-time-zone='+8:00'
#systemctl restart mysqld
##查看mysql使用的時區(qū)
mysql>show variables like '%time_zone%'廓潜;
##查看mysql當前的時間
mysql>select now();
2.2.3 導(dǎo)入zabbix數(shù)據(jù)表
#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;
##為數(shù)據(jù)庫zabbix增加%用戶,是因為頁面安裝zabbix時需要善榛。
mysql> create user zabbix@’%’ identified by 'zabbix';
mysql> grant all privileges on zabbix.* to zabbix@’%’;
##如果是mysql8,則執(zhí)行如下命令辩蛋,要使用mysql_native_password插件驗證密碼(此版本zabbix不支持caching_sha2_password)并設(shè)置主機為%。
mysql> create user zabbix@localhost identified with mysql_native_password by 'zabbix';
mysql> grant all privileges on zabbix.* to zabbix@localhost;
##為數(shù)據(jù)庫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使用數(shù)據(jù)庫,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
##設(shè)置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自動發(fā)現(xiàn)
2.2.7.1 設(shè)置zabbix-agent
##注意,先決條件是agent端/etc/zabbix/zabbix_agentd.conf中要配置Server=172.16.1.51
和Hostname=172.16.1.161這兩行。
2.2.7.2 創(chuàng)建發(fā)現(xiàn)規(guī)則
##配置->自動發(fā)現(xiàn)->創(chuàng)建發(fā)現(xiàn)規(guī)則
2.2.7.3 創(chuàng)建發(fā)現(xiàn)后的動作
##配置-- >動作-->Discovery actions
主要指定了ABC三個條件叙甸。
##指定發(fā)現(xiàn)后加入到主機群組
指定發(fā)現(xiàn)后關(guān)聯(lián)模板颖医。
2.2.7.4 自動發(fā)現(xiàn)測試
##過一會就能看到發(fā)現(xiàn)的主機了
2.2.8 zabbix自動注冊
2.2.8.1 設(shè)置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創(chuàng)建媒介
1. 創(chuàng)建腳本媒介
注:實現(xiàn)發(fā)郵件功能,使用第三方(自己的)的郵件服務(wù)器筷弦,這個不推薦肋演,復(fù)雜些。
##如果用第三方(自己的)郵件地址:
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,#這里是授權(quán)碼,不是登錄密碼烂琴。
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]創(chuàng)建電子郵件媒介
注:還是使用第三方(自己的)的郵件服務(wù)器爹殊,推薦方式。
注意:密碼為郵箱的授權(quán)碼奸绷。Message format為文本(為了收到的郵件內(nèi)容能有換行)梗夸。
2.2.9.2設(shè)置用戶媒介
用戶為Admin(也可以新建一個用戶)
點擊權(quán)限,管理員不要修改,如果是新建的其他用戶,則需要修改.
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測試
##關(guān)閉一個zabbix-agent,過幾分鐘看能不能收到郵件。
2.2.9.5排錯
##如果沒有發(fā)郵件号醉,則點失敗郵件的圖標查看原因:
3. Zabbix監(jiān)控實例
3.1 監(jiān)控WebLogic JVM狀態(tài)
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. 重啟服務(wù)
# systemctl enable zabbix-java-gateway
# systemctl start zabbix-java-gateway
# systemctl restart zabbix-server
5. 開啟應(yīng)用服務(wù)器的JMX接口
使用jmx方式監(jiān)控weblogic JVM的狀態(tài)反症,zabbix官方給出了兩種認證方式: 1.不認證辛块,不使用SSL;2.使用ssl認證,本文采用不認證的方式
需要在應(yīng)用服務(wù)器上啟動腳本中JAVA_OPTIONS中添加以下參數(shù):
-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:因為應(yīng)用服務(wù)器需要使用管理網(wǎng)铅碍,所以最好指定在管理地址方式啟用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
注意:如果既要監(jiān)控AdminServer 又要監(jiān)控被管Server,不能直接在setDomainEnv.sh腳本中添加參數(shù)润绵,啟動會報端口被占用的錯誤。請參考第6步解決端口沖突胞谈。
6. 參數(shù)添加方式:
6.1對于監(jiān)控AdminServer的參數(shù)添加尘盼,建議在{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對于監(jiān)控其他被管Server的參數(shù)添加烦绳,如果是啟用了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. 啟動被監(jiān)控的服務(wù)并驗證:
7.1運行腳本午阵,啟動被監(jiān)控的服務(wù);
7.2windows環(huán)境安裝JDK并配置環(huán)境變量享扔;
7.3驗證被監(jiān)控服務(wù)的JMX啟動情況底桂,運行cmd ---> jconsole 彈出的圖形窗口中選擇遠程進程--->輸入ip:port 點擊連接,如下圖表示已經(jīng)成功啟用了JMX伪很。
8. Zabbix控制臺添加監(jiān)控的服務(wù)器信息:
8.1編輯主機信息
配置--->主機 --->pvibsa1--->interfaces ---> 添加 JMX --->輸入IP地址:172.16.1.128 和端口號: 12345--->模板 搜索: jmx 選擇:Template App Generic JMX--->點擊 添加。
8.2檢查添加的主機的可用性
監(jiān)測---> 主機 ---> 查看新加的主機的可用性列奋单,如果JMX背景變綠色表示可用锉试。
3.2 監(jiān)控Tomcat JVM狀態(tài)
##說明:監(jiān)控Tomcat JVM 狀態(tài)與監(jiān)控WebLogic的JVM狀態(tài)類似,區(qū)別在于啟動Tomcat的JMX的參數(shù)添加览濒。本場景只介紹如何開啟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`”后面添加呆盖,添加后的內(nèi)容如下:
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服務(wù)。 ?
5. 注意:tomcat監(jiān)控還是要使用Template App Generic Java JMX贷笛,而Template App Apache Tomcat JMX只有一個監(jiān)控項目??
3.3 監(jiān)控IBM MQ(沒實驗)
說明:監(jiān)控IBM MQ隊列管理器通道狀態(tài)应又、監(jiān)聽器狀態(tài)、隊列當前深度最大深度乏苦、隊列管理器狀態(tài)
1.自定義模板:Template App IBM MQ With Zabbix Agent.xml株扛,通過控制臺將此模板上傳到Zabbix Server;
2.編寫配置文件:userparameter_ibm_mq.conf汇荐,將此配置文件上傳到Zabbix agent服務(wù)器的 /etc/zabbix/zabbix_agentd.d 目錄下洞就;
3.編寫:discovery_mq.sh 、get_mq_status.sh 腳本掀淘,將此腳本上傳到Zabbix agent 服務(wù)器的
/etc/zabbix/scripts目錄下旬蟋;
4.為IBM MQ服務(wù)器安裝: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 參數(shù)的值都填寫Zabbix Server服務(wù)器的IP地址,Hostname的值填寫 在控制臺添加的IBM MQ主機的名稱匆浙;
7.重啟Zabbix-agent服務(wù):systemctl restart zabbix-agent安寺;
8.檢查添加的IBM MQ 主機中的監(jiān)控項是否存在定義的IBM MQ 的監(jiān)控項;
4. 配置grafana
4.1安裝grafana及對應(yīng)的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.參數(shù)文件
##/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的用戶名和密碼。
##導(dǎo)入全部Dashboards
##搜索想看的Dashboard
點左側(cè)的Search Dashboards
##查看自定義面板(圖)
參考:https://alexanderzobnin.github.io/grafana-zabbix/guides/gettingstarted/