zabbix監控mysql數據庫、nginx、Tomcat

zabbix監控mysql數據庫、nginx、Tomcat

一.zabbix監控mysql數據庫

1.環境規劃

hostIP部署
zabbix-server192.168.198.17zabbix服務器搭建
zabbix-mysql192.168.198.15zabbix客戶端搭建

2.zabbix-server安裝部署(192.168.198.17)

請參考以下配置:https://blog.csdn.net/Katie_ff/article/details/132171211?spm=1001.2014.3001.5501

3.zabbix-mysql安裝部署(192.168.198.15)

需要提前在客戶端安裝mysql服務,具體安裝過程如下:

https://blog.csdn.net/Katie_ff/article/details/131255481?spm=1001.2014.3001.5501

3.1 部署 zabbix 客戶端

#關閉防火墻和selinux,更改主機名并運行bash刷新主機名
systemctl disable --now firewalld
setenforce 0hostnamectl set-hostname mysql
su
#服務端和客戶端都配置時間同步
yum install -y ntpdate
ntpdate -u ntp.aliyun.com13 Aug 13:23:05 ntpdate[76508]: adjust time server 203.107.6.88 offset 0.007140 sec
#客戶端配置時區,與服務器保持一致
mv /etc/localtime{,.bak}
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
date
2023年 08月 13日 星期日 13:23:23 CST
#設置 zabbix 的下載源,安裝 zabbix-agent2
rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm cd /etc/yum.repos.d
sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repoyum install -y zabbix-agent2
#修改 agent2 配置文件
vim /etc/zabbix/zabbix_agent2.conf
......
Server=192.168.198.17			#80行,指定 zabbix 服務端的 IP 地址
ServerActive=192.168.198.17		#120行,指定 zabbix 服務端的 IP 地址
Hostname=mysql          		#134行,指定當前 zabbix 客戶端的主機名
#啟動 zabbix-agent2
systemctl start zabbix-agent2
systemctl enable zabbix-agent2netstat -natp | grep zabbix
tcp6       0      0 :::10050                :::*                    LISTEN      44454/zabbix_agent2 

3.2 服務端驗證 zabbix-agent2 的連通性(192.168.198.17)

#安裝 zabbix 主動獲取數據的命令
yum install -y zabbix-get				
zabbix_get -s '192.168.198.15' -p 10050 -k 'agent.ping'
1zabbix_get -s '192.168.198.15' -p 10050 -k 'system.hostname'
mysql

3.3 Web 頁面中添加mysql主機

3.3.1 點擊左邊菜單欄【配置】中的【主機】,點擊【創建主機】

【主機名稱】設置成 mysql
【可見的名稱】設置成 MySQL-192.168.198.15
【群組】選擇 Linux server
【Interfaces】的【IP地址】設置成 192.168.198.15

點擊添加

再點擊上方菜單欄【模板】
【Link new tamplates】搜索 mysql ,選擇 【Template DB MySQL by Zabbix agent】
點擊 【添加】

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

3.4 自定義監控內容(在客戶端創建自定義 key:192.168.198.15)

3.4.1 明確需要執行的 linux 命令

who | wc -l
3

3.4.2 創建 zabbix 的監控項配置文件,用于自定義 key

vim /etc/zabbix/zabbix_agent2.conf
#可以將自定義的監控項配置文件創建在 zabbix_agent2.d 目錄中
273 Include=/etc/zabbix/zabbix_agent2.d/*.conf
#自定義監控項的格式如下
296 #	Format: UserParameter=<key>,<shell command>
cd /etc/zabbix/zabbix_agent2.d/
vim UserParameter_login.conf
#添加內容
UserParameter=login.user,who|wc -l
systemctl restart zabbix-agent2

3.4.3 在服務端驗證新建的監控項

[root@zbx-server opt]# zabbix_get -s '192.168.198.18' -p 10050 -k 'login.user'
3

此處為3是在客戶端有三個用戶,則監控的是這三個用戶

[root@mysql zabbix_agent2.d]# who
root     :0           2023-07-11 00:52 (:0)
root     pts/0        2023-07-11 01:08 (:0)
root     pts/1        2023-08-13 13:21 (192.168.198.1)

4. 可對mysql創建的主機根據實際修改

在這里插入圖片描述

根據實際篩選
在這里插入圖片描述

二.zabbix實現對nginx運行狀態的監控

利用zabbix實現對nginx運行狀態的監控 (要么運行 要么不運行)(配置對應的觸發器)

1.自定義key實現監控nginx運行狀態

1.1 在zabbix-agent服務器中安裝并開啟nginx

(1)編譯安裝nginx

#拖入nginx-1.12.2安裝包
cd /opt
#解壓
tar zxvf nginx-1.12.2.tar.gz -C /opt/
#編譯安裝
cd nginx-1.12.2/
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module
make -j2 && make install

注:如執行make -j2 && make install出現了以下錯誤:

make: *** 沒有規則可以創建“default”需要的目標“build”。 停止。

錯誤原因:這是因為安裝nginx 編譯時缺少一些依賴造成的

解決辦法:安裝依賴:

yum -y install gcc openssl openssl-devel pcre-devel zlib zlib-devel

再次執行:

./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module
make -j2 && make install

(2)優化路徑

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

(3)添加 Nginx 系統服務

vim /lib/systemd/system/nginx.service
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
chmod 754 /lib/systemd/system/nginx.service
systemctl start nginx.service
systemctl enable nginx.service

注:如果systemctl start nginx.service啟動不了,檢查 “nginx” 用戶是否存在于系統中。您可以運行以下命令檢查用戶是否存在:

id nginx
id: nginx: no such user

如不存在創建用戶并重啟:

useradd -r nginx
passwd nginx
systemctl restart nginx

(4)修改nginx配置

vim /usr/local/nginx/conf/nginx.conf

在server塊里面新增一個location塊:

location /nginx_status {stub_status on;access_log off;#allow 192.168.198.0/24; #允許訪問的范圍#deny all;
}

在這里插入圖片描述

#啟動nginx
/usr/local/nginx/sbin/nginx
 netstat -antp | grep nginx
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      88019/nginx: master 
#驗證nginx狀態頁面:
[root@nginx nginx-1.12.2]# curl http://192.168.198.15/status
Active connections: 1 
server accepts handled requests1 1 1 
Reading: 0 Writing: 1 Waiting: 0 

1.2 配置zabbix agent自定義參數

vim /etc/zabbix/zabbix_agentd.conf
Include=/etc/zabbix/zabbix_agentd.d/*.conf #改為只導入conf文件
#重啟agent
systemctl restart zabbix-agent2.service 
#上傳zabbix_linux_plugin.sh 腳本到/etc/zabbix/zabbix_agentd.d/并授權執行腳本測試,確認可以從本地獲取nginx狀態數據:
cd /etc/zabbix/zabbix_agent2.d/
vim zabbix_nginx.sh
#腳本內容如下:
#/bin/bash
#Description:Automated monitoring nginx performance and process nginx_status scriptsNGINX_PORT=80 
NGINX_COMMAND=$1nginx_ping(){/sbin/pidof nginx |wc -l}nginx_active(){/usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" |awk '/Active/ {print $NF}'}nginx_reading(){/usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" |awk '/Reading/ {print $2}'}nginx_writing(){/usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" |awk '/Writing/ {print $4}'}nginx_waiting(){/usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" |awk '/Waiting/ {print $6}'}nginx_accepts(){/usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" |awk 'NR==3 {print $1}'}nginx_handled(){/usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" |awk 'NR==3 {print $2}'}nginx_requests(){/usr/bin/curl -s "http://127.0.0.1:"$NGINX_PORT"/nginx_status/" |awk 'NR==3 {print $3}'}case $NGINX_COMMAND inping)nginx_ping;;active)nginx_active;;reading)nginx_reading;;writing)nginx_writing;;waiting)nginx_waiting;;accepts)nginx_accepts;;handled)nginx_handled;;requests)nginx_requests;;*)echo $"USAGE:$0 {ping|active|reading|writing|waiting|accepts|handled|requests}"
esac
#給腳本權限
chmod u+x /etc/zabbix/zabbix_agent2.d/zabbix_nginx.sh
#測試
./zabbix_linux_plugin.sh nginx_status 80 active

1.3 修改 zabbix 配置文件

vim /etc/zabbix/zabbix_agent2.d/userparameter_mysql.conf# 增加
UserParameter=nginx_status[*],/bin/bash /etc/zabbix/zabbix_agent2.d/zabbix_nginx.sh \$1
# 修改完成重啟 zabbix-agent
systemctl restart zabbix-agent2.service

1.4 服務端驗證

[root@zabbix ~]# zabbix_get -s 192.168.198.15 -k nginx_status[active]
1

1.5 添加主機及模塊等

在這里插入圖片描述

三.zabbix監控Tomcat

zabbix通過部署jmx來監控tomcat
zabbix提供了一個java gateway的應用去監控jmx(Java Management Extensions,即Java管理擴展)是一個為應用程序、設備、系統等植入管理功能的框架。JMX可以跨越一系列異構操作系統平臺、系統體系結構和網絡傳輸協議,靈活的開發無縫集成的系統、網絡和服務管理應用。

1.實驗環境的部署(客戶端)

安裝Tomcat服務,具體操作如下:

https://blog.csdn.net/Katie_ff/article/details/131442008?spm=1001.2014.3001.5501

#查看端口是否開啟
netstat -natp | grep 8080
tcp6       0      0 :::8080                 :::*                    LISTEN      54333/java  
#編輯發布目錄
[root@tomcat tomcat]# cd webapps/ROOT/
vim test.jsp
The time is: <%=new java.util.Date() %>cd /usr/local/tomcat/bin
vim catalina.sh
ATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.port=1234"/usr/local/tomcat/bin/shutdown.sh 
/usr/local/tomcat/bin/startup.sh 

瀏覽器端測試:http://192.168.198.15:8080/test.jsp

在這里插入圖片描述

2.服務端的配置

安裝請參考以下:

https://blog.csdn.net/Katie_ff/article/details/132171211?spm=1001.2014.3001.5501

yum install zabbix-java-gateway.x86_64 -y
cd /etc/zabbix/
vim zabbix_java_gateway.conf 
LISTEN_IP="0.0.0.0"  ##監聽地址
LISTEN_PORT=10052  ##監聽端口
PID_FILE="/var/run/zabbix/zabbix_java.pid"  ##PID_FILE文件路徑
START_POLLERS=5  ##開啟的工作線程數量
systemctl start zabbix-java-gateway  ##開啟服務
systemctl enable zabbix-java-gateway  ##設置開機自啟
vim zabbix_server.conf
JavaGateway=192.168.198.17 ##IP地址
JavaGatewayPort=10052  ##端口
StartJavaPollers=5  ##采集數據的進程數
systemctl restart zabbix-server  重啟進程
netstat -antlp
ps ax  ##查看server開啟的java進程是否為5個

2.1 zabbix監測界面的配置

在這里插入圖片描述

配置–主機–tomcat–模板

在這里插入圖片描述
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/36964.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/36964.shtml
英文地址,請注明出處:http://en.pswp.cn/news/36964.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Azure概念介紹

云計算定義 云計算是一種使用網絡進行存儲和處理數據的計算方式。它通過將數據和應用程序存儲在云端服務器上&#xff0c;使用戶能夠通過互聯網訪問和使用這些資源&#xff0c;而無需依賴于本地硬件和軟件。 發展歷史 云計算的概念最早可以追溯到20世紀60年代的時候&#x…

mysql 分庫分表淺析

分表是分散數據庫壓力的好方法。 分表&#xff0c;最直白的意思&#xff0c;就是將一個表結構分為多個表&#xff0c;然后&#xff0c;可以再同一個庫里&#xff0c;也可以放到不同的庫。 當然&#xff0c;首先要知道什么情況下&#xff0c;才需要分表。個人覺得單表記錄條數達…

2023河南萌新聯賽第(五)場:鄭州輕工業大學C-數位dp

鏈接&#xff1a;登錄—專業IT筆試面試備考平臺_牛客網 給定一個正整數 n&#xff0c;你可以對 n 進行任意次&#xff08;包括零次&#xff09;如下操作&#xff1a; 選擇 n 上的某一數位&#xff0c;將其刪去&#xff0c;剩下的左右部分合并。例如 123&#xff0c;你可以選擇…

年至年的選擇仿elementui的樣式

組件&#xff1a;<!--* Author: liuyu liuyuxizhengtech.com* Date: 2023-02-01 16:57:27* LastEditors: wangping wangpingxizhengtech.com* LastEditTime: 2023-06-30 17:25:14* Description: 時間選擇年 - 年 --> <template><div class"yearPicker"…

Smart HTML Elements 16.1 Crack

Smart HTML Elements 是一個現代 Vanilla JS 和 ES6 庫以及下一代前端框架。企業級 Web 組件包括輔助功能&#xff08;WAI-ARIA、第 508 節/WCAG 合規性&#xff09;、本地化、從右到左鍵盤導航和主題。與 Angular、ReactJS、Vue.js、Bootstrap、Meteor 和任何其他框架集成。 智…

九、多態(2)

本章概要 構造器和多態 構造器調用順序繼承和清理構造器內部多態方法的行為 協變返回類型使用繼承設計 替代 vs 擴展向下轉型與運行時類型信息 構造器和多態 通常&#xff0c;構造器不同于其他類型的方法。在涉及多態時也是如此。盡管構造器不具有多態性&#xff08;事實上…

【JavaScript】new 的原理以及實現

網道 - new 命令的原理 使用new命令時&#xff0c;它后面的函數依次執行下面的步驟。 創建一個空對象&#xff0c;作為將要返回的對象實例。將這個空對象的原型&#xff0c;指向構造函數的prototype屬性。將這個空對象賦值給函數內部的this關鍵字。如果構造函數返回了一個對象…

版本動態 | SolidUI 0.2.0 版本發布

SolidUI 一句話生成任何圖形 背景 隨著文本生成圖像的語言模型興起&#xff0c;SolidUI想幫人們快速構建可視化工具&#xff0c;可視化內容包括2D,3D,3D場景&#xff0c;從而快速構三維數據演示場景。SolidUI 是一個創新的項目&#xff0c;旨在將自然語言處理&#xff08;NLP&…

[SpringCloud] 組件性能優化技巧

Feign 配置優化hystrix配置 優化ribbon 優化Servlet 容器 優化Zuul配置 優化 文章目錄 1.Servlet 容器 優化2.Feign 配置優化3.Zuul配置 優化4.hystrix配置 優化5.ribbon 優化 1.Servlet 容器 優化 默認情況下, Spring Boot 使用 Tomcat 來作為內嵌的 Servlet 容器, 可以將 We…

在Visual Studio上,使用OpenCV實現人臉識別

1. 環境與說明 本文介紹了如何在Visual Studio上&#xff0c;使用OpenCV來實現人臉識別的功能 環境說明 : 操作系統 : windows 10 64位Visual Studio版本 : Visual Studio Community 2022 (社區版)OpenCV版本 : OpenCV-4.8.0 (2023年7月最新版) 實現效果如圖所示&#xff0…

Linux命令200例:adduser用于創建新用戶

&#x1f3c6;作者簡介&#xff0c;黑夜開發者&#xff0c;全棧領域新星創作者?。CSDN專家博主&#xff0c;阿里云社區專家博主&#xff0c;2023年6月csdn上海賽道top4。 &#x1f3c6;數年電商行業從業經驗&#xff0c;歷任核心研發工程師&#xff0c;項目技術負責人。 &…

代理模式【Proxy Pattern】

什么是代理模式呢&#xff1f;我很忙&#xff0c;忙的沒空理你&#xff0c;那你要找我呢就先找我的代理人吧&#xff0c;那代理人總要知道 被代理人能做哪些事情不能做哪些事情吧&#xff0c;那就是兩個人具備同一個接口&#xff0c;代理人雖然不能干活&#xff0c;但是被 代…

解決 Mac 上使用 Electron Updater 更新 App 不成功的問題!!!

文章目錄 1. 現象2. 分析并如何解決3. 后續 1. 現象 在Mac電腦上&#xff0c;使用Electron Updater對程序進行更新&#xff0c;但是一直不成功&#xff0c;也不報錯。具體表現是這樣的&#xff1a;當前我的程序版本是3.11版本&#xff0c;點擊更新之后&#xff0c;也下載了&am…

11 迭代器|生成器|協程

文章目錄 迭代器可迭代對象可迭代對象的本質iter()函數與 next()函數迭代器 Iterator樣例 for...in...循環的本質使用的場景--斐波那契數列list和tuple也可以接收可迭代對象 生成器簡介創建生成器方法一方法二總結 使用 send 喚醒 協程協程和線程差異簡單實現協程greenletgeven…

微PE工具箱實現U盤重裝Windows系統

教程來源 U盤重裝Windows系統&#xff08;微PE工具箱&#xff09;_嗶哩嗶哩_bilibili 加上自己的一丟丟理解&#xff0c;如果你覺得長視頻看了犯困&#xff0c;不如看看我的理解文章說不定能夠幫助到你 準備工作 到這個網站使用迅雷下載免費無插件的官方鏡像MSDN, 我告訴你…

JVM筆記 —— 出現內存溢出錯誤時時如何排查

一、出現內存溢出的幾種情況 內存溢出錯誤分為StackOverflowError和OutOfMemoryError&#xff0c;前者是棧中出現溢出&#xff0c;后者一般是堆或方法區出現溢出&#xff0c;簡稱OOM 1. 棧溢出 StackOverflowError 棧溢出一般都是因為沒有正確的結束遞歸導致的&#xff0c;無…

Linux中安裝MySQL8版本,安裝MySQL步驟,MySQL8離線安裝

Linux中安裝MySQL8版本的步驟如下&#xff1a; 1.檢查下libaio.so.1的位置 [roottdx ]# whereis libaio.so.1 libaio.so: /usr/lib64/libaio.so.1 如果沒有找到該文件 (1).在線安裝 [roottdx ]# yum install -y libaio (2).離線安裝&#xff1a; 上傳之后執行命令安裝&#…

pymysql 庫 - python 操作 mysql

環境&#xff1a; Win10 x64 Python 3.7 PyMySQL 1.0.2 MySQL 8.0.27 1 安裝 pip install pymysql 2 地址 https://pypi.org/project/pymysql/ 3.1 數據庫版本查詢 (search_version.py) import pymysql# 打開數據庫連接 try:db pymysql.connect(hostlocalhost, userr…

python安裝第三方包時報錯:...\lib\site-packages\pip\_vendor\urllib3\response.py...

安裝redis第三方包&#xff1a; pip install redis報錯現象&#xff1a; 解決方法&#xff1a;使用以下命令可成功安裝 pip install redis -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

關于網絡入侵檢測領域使用Spark/Flink等計算框架做分布式

關于網絡入侵檢測領域使用Spark/Flink等計算框架做分布式 0、引言1 基于LightGBM的網絡入侵檢測研究2 基于互信息法的智能化運維系統入侵檢測Spark實現3 基于Spark的車聯網分布式組合深度學習入侵檢測方法4 基于Flink的分布式在線集成學習框架研究5 基于Flink的分布式并行邏輯回…