中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Zabbix如何實現對Mysql、Apache、Nginx的監控

發布時間:2020-05-19 16:25:18 來源:網絡 閱讀:371 作者:三月 欄目:系統運維

下文主要給大家帶來Zabbix如何實現對Mysql、Apache、Nginx的監控,希望這些內容能夠帶給大家實際用處,這也是我編輯Zabbix如何實現對Mysql、Apache、Nginx的監控這篇文章的主要目的。好了,廢話不多說,大家直接看下文吧。

1)zabbix agent端安裝mysql

由于mysql安裝太浪費時間,本人提供一鍵安裝mysql腳本,如下:

[root@agent ~]# ls mysql*
mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz  mysql.sh
[root@agent ~]# sh mysql.sh 
Starting MySQL. SUCCESS! 
mysql: [Warning] Using a password on the command line interface can be insecure.
//出現此信息表示安裝成功!
[root@agent ~]# mysql -u root -p123   //腳本對應的root密碼為123
mysql> grant all on *.* to zabbix@'192.168.1.%' identified by 'zabbix';
//創建測試用戶

2)zabbix agent端編寫自定義監控mysql腳本

[root@agent ~]# mkdir /etc/zabbix/shell
[root@agent ~]# vim /etc/zabbix/shell/check_mysql.sh 
#!/bin/bash
MYSQL_HOST='192.168.1.8'     #指定mysql主機的IP地址
MYSQL_PORT='3306'            #指定mysql主機的監聽地址
MYSQL_CONN="/usr/local/bin/mysqladmin -h${MYSQL_HOST} -P${MYSQL_PORT}"     #指定連接使用的工具
if [ $# -ne "1" ];then
    echo "arg error!"
fi
# 獲取數據
case $1 in
    Uptime)
        result=`${MYSQL_CONN} status|cut -f2 -d":"|cut -f1 -d"T"`
        echo $result
        ;;
    Com_update)
        result=`${MYSQL_CONN} extended-status |grep -w "Com_update"|cut -d"|" -f3`
        echo $result
        ;;
    Slow_queries)
        result=`${MYSQL_CONN} status |cut -f5 -d":"|cut -f1 -d"O"`
        echo $result
        ;;
    Com_select)
        result=`${MYSQL_CONN} extended-status |grep -w "Com_select"|cut -d"|" -f3`
        echo $result
        ;;
    Com_rollback)
        result=`${MYSQL_CONN} extended-status |grep -w "Com_rollback"|cut -d"|" -f3`
        echo $result
        ;;
    Questions)
        result=`${MYSQL_CONN} status|cut -f4 -d":"|cut -f1 -d"S"`
        echo $result
        ;;
    Com_insert)
        result=`${MYSQL_CONN} extended-status |grep -w "Com_insert"|cut -d"|" -f3`
        echo $result
        ;;
    Com_delete)
        result=`${MYSQL_CONN} extended-status |grep -w "Com_delete"|cut -d"|" -f3`
        echo $result
        ;;
    Com_commit)
        result=`${MYSQL_CONN} extended-status |grep -w "Com_commit"|cut -d"|" -f3`
        echo $result
        ;;
    Bytes_sent)
        result=`${MYSQL_CONN} extended-status |grep -w "Bytes_sent" |cut -d"|" -f3`
        echo $result
        ;;
    Bytes_received)
        result=`${MYSQL_CONN} extended-status |grep -w "Bytes_received" |cut -d"|" -f3`
        echo $result
        ;;
    Com_begin)
        result=`${MYSQL_CONN} extended-status |grep -w "Com_begin"|cut -d"|" -f3`
        echo $result
        ;;
        *)
        echo "Usage:$0(Uptime|Com_update|Slow_queries|Com_select|Com_rollback|Questions|Com_insert|Com_delete|Com_commit|Bytes_sent|Bytes_received|Com_begin)"
        ;;
esac
由于將用戶名、密碼信息寫到腳本中不安全,所以將用戶名、密碼信息寫到/etc/my.cnf文件中
[root@agent ~]# vim /etc/my.cnf 
[mysqladmin]
user=zabbix
password=zabbix
[root@agent ~]# chmod +x /etc/zabbix/shell/check_mysql.sh 
[root@agent ~]# chown zabbix.zabbix /etc/zabbix/shell/check_mysql.sh 
[root@agent ~]# sh /etc/zabbix/shell/check_mysql.sh Uptime
5260
//agent端測試腳本能否使用

3)zabbix agent端修改配置

[root@agent ~]# vim /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf
//將原本的UserParameter全部注釋,添加以下內容
UserParameter=mysql.status[*],/etc/zabbix/shell/check_mysql.sh $1
UserParameter=mysql.ping,HOME=/etc /usr/local/bin/mysqladmin ping | grep -c alive
UserParameter=mysql.version,/usr/local/bin/mysql -V
[root@agent ~]# systemctl restart zabbix-agent
[root@zabbix ~]# zabbix_get -s 192.168.1.8 -p 10050 -k "mysql.status[Uptime]"
5372
//zabbix server端測試能否獲取到數據

4)zabbix web界面引入模板

zabbix自帶了mysql監控的模板,因此只需將模板鏈接到對應的主機即可!如下:
Zabbix如何實現對Mysql、Apache、Nginx的監控
Zabbix如何實現對Mysql、Apache、Nginx的監控
Zabbix如何實現對Mysql、Apache、Nginx的監控
Zabbix如何實現對Mysql、Apache、Nginx的監控
Zabbix如何實現對Mysql、Apache、Nginx的監控
這里重點需要關注的是每個監控項名稱對應的”鍵值“一列的配置,這里的鍵值,必須和agent端自定義的監控鍵值保持一致。另外,可以看到”mysql status“這個監控項有一個觸發器,用于檢查mysql的運行狀態。最后,還需關注這些監控項的監控類型是”zabbix客戶端“,所有監控項都存放在”MYSQL“應用集中。

以上設置完成,監控mysql的主機已經添加完成!

5)查看監控狀態數據

如圖:
Zabbix如何實現對Mysql、Apache、Nginx的監控
Zabbix如何實現對Mysql、Apache、Nginx的監控
從圖中可以看出已經獲取到數據!

配置mysql監控完成!

二、zabbix監控apache應用實戰

zabbix對apache的監控,稍微復雜一些,但基本流程還是兩個步驟:第一個是編寫監控apache的監控腳本;第二個是創建apache監控模板。以下操作均在zabbix agent端實現,具體步驟如下:

1)zabbix agent開啟apache狀態頁

要想監控apache的運行狀態,需要在apache的配置中開啟一個apache狀態頁面,然后再通過編寫腳本獲取這個狀態頁面的數據即可達到監控apache的目的!

[root@agent ~]# yum -y install httpd
[root@agent ~]# vim /etc/httpd/conf/httpd.conf 
//末尾添加以下內容
EnableSendfile on
<location /server-status>
SetHandler server-status
Require ip 127.0.0.1 192.168.1.10
</location>
[root@agent ~]# systemctl start httpd

配置項中解釋如下:

1)EnableSendfile on:表示開啟擴展的status信息,但是開啟后會降低云服務器運行效率;
2) /server-status:則表示通過”http://ip/server-status“ 來訪問,同時也可以通過”http://ip/server-status?refresh=N“  的方式進行動態訪問,N則表示N秒自動刷新一次;
3)Require ip 127.0.0.1 192.168.1.10:這是apache 2.4版本增加的一個新特效。即表示需要訪問的IP地址;

Require常用的用法如下:

1)Require all granted:允許所有主機訪問;
2)Require all denied:拒絕所有主機訪問;
3)Require ip IP地址:允許某個IP訪問;
4)Require not ip IP地址:禁止某個IP訪問;
5)Require host 主機名:允許某個主機訪問;
6)Require not host 主機名:禁止某個主機訪問;

修改完成后重啟apache服務生效!

2)zabbix agent獲取apache的狀態檢測腳本和zabbix模板

apache狀態頁面配置完成后,接下來就需要編寫獲取狀態數據的腳本了,腳本代碼較多,大家可通過以下方式下載!

[root@agent ~]# wget https://www.ixdba.net/zabbix/zabbix-apache.zip
[root@agent ~]# unzip zabbix-apache.zip
[root@agent ~]# ll zapache*
-rw-r--r-- 1 root root  5792 1月  31 23:00 zapache
-rw-r--r-- 1 root root 52024 4月  22 2016 zapache-template.xml
//zapache:是監控apache所需的腳本;
//zapache-template.xml:是監控apache所需的模板;
[root@agent ~]# mv zapache /etc/zabbix/shell/
[root@agent ~]# chmod 755 /etc/zabbix/shell/zapache 
[root@agent ~]# chown zabbix.zabbix /etc/zabbix/shell/zapache 
[root@agent ~]# vim /etc/zabbix/zabbix_agentd.d/userparameter_zapache.conf
//編寫apache的模板文件,用于調取apache的監控腳本
UserParameter=zapache[*],/etc/zabbix/shell/zapache $1
[root@agent ~]# systemctl restart zabbix-agent
[root@zabbix ~]# zabbix_get -s 192.168.1.8 -p 10050 -k "zapache[BusyWorkers]"
1
//zabbix server測試是否可以獲取數據

3)zabbix web頁面導入模板

如圖:
Zabbix如何實現對Mysql、Apache、Nginx的監控
Zabbix如何實現對Mysql、Apache、Nginx的監控
Zabbix如何實現對Mysql、Apache、Nginx的監控
Zabbix如何實現對Mysql、Apache、Nginx的監控

4)查看apache狀態數據

如圖:
Zabbix如何實現對Mysql、Apache、Nginx的監控
Zabbix如何實現對Mysql、Apache、Nginx的監控
從圖中可以看出已經獲取到數據!

配置apache監控完成!

三、zabbix監控Nginx應用實戰

zabbix對Nginx的監控,與監控apache的方式完全一樣,基本流程還是兩個步驟:第一個是編寫Nginx的腳本;第二個是創建Nginx監控模板。以下操作均在zabbix agent端實現,具體步驟如下:

1)zabbix agent開啟Nginx狀態頁

[root@agent ~]# yum -y install pcre-devel zlib-devel openssl-devel
[root@agent ~]# wget http://nginx.org/download/nginx-1.14.2.tar.gz
[root@agent ~]# tar zxf nginx-1.14.2.tar.gz -C /usr/src
[root@agent ~]# cd /usr/src/nginx-1.14.2/
[root@agent nginx-1.14.2]#  ./configure --with-http_stub_status_module && make && make install
[root@agent ~]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
[root@agent ~]# vim /usr/local/nginx/conf/nginx.conf
//添加loaction規則
        location /nginx-status {
          stub_status on;            //開啟狀態監控模塊
          access_log off;            //關閉訪問日志
          allow 127.0.0.1; 
          allow 192.168.1.10;       //允許訪問的IP地址
          deny all;                         //拒絕所有的IP地址
        }
[root@agent ~]# nginx -t
[root@agent ~]# nginx               
[root@agent ~]# curl 127.0.0.1/nginx-status
Active connections: 1 
server accepts handled requests
 1 1 1 
Reading: 0 Writing: 1 Waiting: 0 

輸出的信息說明:

1)Active connections:對后端發起的活動鏈接數;
2)accepts:nginx總共處理了多少個連接;
3)handled:nginx成功創建了幾次握手;
4)requests:nginx總共處理了多少請求;
5)Reading:nginx讀取客戶端的header數;
6)Writing:nginx返回給客戶端的header數;
7)Waiting:nginx請求處理完成,正在等待下一請求指令的連接;

2)zabbix agent獲取apache的狀態檢測腳本和zabbix模板

[root@agent ~]# wget https://www.ixdba.net/zabbix/zabbix-nginx.zip
[root@agent ~]# unzip zabbix-nginx.zip 
[root@agent ~]# ll nginx_status.sh zbx*
-rw-r--r-- 1 root root  1106 11月  1 2018 nginx_status.sh
-rw-r--r-- 1 root root 20703 11月  1 2018 zbx_nginx_templates.xml
//nginx_status.sh:所需的腳本
// zbx_nginx_templates.xml:所需的模板
[root@agent ~]# mv nginx_status.sh /etc/zabbix/shell/
[root@agent ~]# chmod o+x /etc/zabbix/shell/nginx_status.sh 
[root@agent ~]# chown zabbix.zabbix /etc/zabbix/shell/nginx_status.sh 
[root@agent ~]# vim /etc/zabbix/zabbix_agentd.d/userparameter_nginx.conf
//編寫nginx的模板文件,用于調取nginx的監控腳本
UserParameter=nginx.status[*],/etc/zabbix/shell/nginx_status.sh $1
[root@agent ~]# systemctl restart zabbix-agent
[root@zabbix ~]# zabbix_get -s 192.168.1.8 -p 10050 -k "nginx.status[active]"
1
//zabbix server測試是否可以獲取數據

3)zabbix web頁面導入模板

如圖:
Zabbix如何實現對Mysql、Apache、Nginx的監控
Zabbix如何實現對Mysql、Apache、Nginx的監控
Zabbix如何實現對Mysql、Apache、Nginx的監控
Zabbix如何實現對Mysql、Apache、Nginx的監控

4)查看nginx狀態數據

如圖:
Zabbix如何實現對Mysql、Apache、Nginx的監控
Zabbix如何實現對Mysql、Apache、Nginx的監控
從圖中可以看出已經獲取到數據!

配置nginx監控完成!

對于以上關于Zabbix如何實現對Mysql、Apache、Nginx的監控,大家是不是覺得非常有幫助。如果需要了解更多內容,請繼續關注我們的行業資訊,相信你會喜歡上這些內容的。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

夏津县| 芒康县| 榆中县| 黎城县| 左权县| 怀安县| 宁陕县| 自贡市| 云霄县| 宝清县| 荥经县| 永丰县| 罗甸县| 正蓝旗| 岑巩县| 达尔| 苍山县| 同德县| 大洼县| 平南县| 宜兰市| 繁昌县| 井研县| 罗江县| 师宗县| 射洪县| 揭阳市| 桓仁| 湾仔区| 洛扎县| 荥经县| 郑州市| 黄浦区| 天水市| 周至县| 屏山县| 将乐县| 芷江| 聂拉木县| 射洪县| 汾西县|