1. 程式人生 > 實用技巧 >zabbix服務監控

zabbix服務監控

一、zabbix自定義監控模板

# 強制重新整理自定義監控項
[root@zabbix plugins]# zabbix_server -R config_cache_reload
zabbix_server [62586]: command sent successfully

#設定監控項重新整理時間

二、zabbix監控nginx

1.安裝

2.配置nginx狀態頁

    server {
        listen 80;
        server_name localhost;
        root /usr/share/nginx/html;

        location /nginx_status {
                stub_status;			# 新增nginx狀態監控模組
        }
    }
    
[root@web01 ~]# systemctl restart nginx

3.nginx狀態頁

[root@web01 ~]# curl 10.0.0.7/nginx_status
Active connections: 3 
server accepts handled requests
 		3 		3 		3 
Reading: 0 Writing: 1 Waiting: 2

4.使用指令碼

[root@web01 ~]# mkdir /scripts
[root@web01 ~]# cd /scripts/
[root@web01 scripts]# rz nginx_status.sh			# 指令碼中定義監控網頁監控項
[root@web01 scripts]# chmod +x nginx_status.sh

5.配置監控項

# 在客戶端監控檔案中使用指令碼方式對nginx進行監控
[root@web01 ~]# vim /etc/zabbix/zabbix_agentd.d/nginx_status.conf
UserParameter=nginx_status[*],/bin/bash /scripts/nginx_status.sh $1

# 使客戶端監控檔案生效,需要對zabbix-agent進行重啟
[root@web01 ~]# systemctl restart zabbix-agent.service

6.測試監控項

#客戶端測試
[root@web01 ~]# zabbix_agentd -t nginx_status[active]
nginx_status[active]                          [t|1]

#服務端測試
[root@zabbix plugins]# zabbix_get -s 172.16.1.7 -k nginx_status[active]
1

7.匯入模板

  • 模板檔案中為針對nginx監控項的配置,直接匯入模板使用即可

8.新增監控

1.新增80埠監控
2.新增觸發器

9.針對nginx模板配置nginx監控項

  • 監控項建立完成後建立響應觸發器

  • 新增觸發項

  • 測試停止80埠,隨機收到郵件報警

三、zabbix監控php

1.安裝PHP

[root@web01 ~]# mkdir /package
[root@web01 ~]# cd /package/
[root@web01 package]# rz php72.tar.gz
[root@web01 package]# tar xf php72.tar.gz
[root@web01 package]# yum localinstall -y opt/php/packages/*.rpm

2.配置php狀態頁

# 將php配置檔案中的監控模組開啟
[root@web01 package]# vim /etc/php-fpm.d/www.conf
pm.status_path = /php_status

3.啟動php

[root@web01 package]# systemctl start php-fpm

4.配置nginx訪問php狀態頁

    server {
        listen       80;
        server_name  localhost;
        root         /usr/share/nginx/html;

        location /nginx_status {
                stub_status;
        }

        location ~* ^/(php_status)$ {
                fastcgi_pass 127.0.0.1:9000;
                fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
                include fastcgi_params;
        }
    }
    
[root@web01 package]# systemctl restart nginx

5.php狀態頁

[root@web01 package]# curl http://127.0.0.1/php_status
pool:                 www								#連線池
process manager:      dynamic							#管理方式
start time:           11/Sep/2020:16:05:50 +0800		  #啟動時間
start since:          417								#啟動了多久
accepted conn:        9									#連線數
listen queue:         0									#等待的請求佇列
max listen queue:     0									#最大等待的請求佇列
listen queue len:     128								#等待的請求佇列長度
idle processes:       4									#空閒的程序數
active processes:     1									#活躍的程序數
total processes:      5									#總的程序數
max active processes: 1									#最大的活躍的程序數
max children reached: 0									#
slow requests:        0									#慢查詢

6.上傳指令碼

[root@web01 scripts]# rz php_status.sh

[root@web01 scripts]# chmod +x php_status.sh

7.配置監控項

[root@web01 ~]# vim /etc/zabbix/zabbix_agentd.d/php_status.conf
UserParameter=php_status[*],/bin/bash /scripts/php_status.sh $1

[root@web01 ~]# systemctl restart zabbix-agent.service

8.驗證監控項

[root@web01 scripts]# zabbix_agentd -t php_status[max_active_processes]
php_status[max_active_processes]              [t|1]

[root@zabbix plugins]# zabbix_get -s 172.16.1.7 -k php_status[slow_requests]
0

9.新增監控項

新增模板

10.新增監控

1.php埠的監控
2.新增觸發器

11.主機新增模板


12.檢視監控項

13.告警檢測

四、zabbix監控mysql

如果想監控mysql,需要安裝 percona monitor plugins 外掛

1.安裝資料庫

[root@web01 ~]# yum install -y mariadb-server

2.啟動

[root@web01 ~]# systemctl start mariadb

3.建立使用者

MariaDB [(none)]> grant all on *.* to zabbix@'localhost' identified by '123';
Query OK, 0 rows affected (0.00 sec)

4.安裝percona

[root@web01 ~]# yum install -y http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm

#安裝外掛
[root@web01 ~]# yum install -y percona-zabbix-templates

5.檢視安裝的內容

[root@web01 ~]# tree /var/lib/zabbix/percona/
/var/lib/zabbix/percona/
├── scripts
│   ├── get_mysql_stats_wrapper.sh
│   └── ss_get_mysql_stats.php
└── templates
    ├── userparameter_percona_mysql.conf
    └── zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.8.xml

2 directories, 4 files
[root@web01 ~]#

6.配置監控項

[root@web01 ~]# cp /var/lib/zabbix/percona/templates/userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/

[root@web01 ~]# systemctl restart zabbix-agent.service

7.修改連線資料庫資訊

[root@web01 ~]# vim /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php
$mysql_user = 'zabbix';
$mysql_pass = '123';
$mysql_port = 3306;

8.驗證監控項

[root@web01 ~]# zabbix_agentd -t MySQL.running-slave
MySQL.running-slave                           [t|0]

#服務端驗證,報錯
[root@zabbix plugins]# zabbix_get -s 172.16.1.7 -k MySQL.running-slave
ERROR 1045 (28000): Access denied for user 'zabbix'@'localhost' (using password: NO)
0
#因為指令碼中沒有使用資料庫密碼和使用者
[root@web01 ~]# vim /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh
	#把 -uzabbix -p123 加進去
    RES=`HOME=~zabbix mysql -uzabbix -p123 -e 'SHOW SLAVE STATUS\G' | egrep '(Slave_IO_Running|Slave_SQL_Running):' | awk -F: '{print $2}' | tr '\n' ','`

9.匯入監控模板

1.下載percona模板
2.匯入模板,報錯
	模板與zabbix版本不相容
	解決辦法:將模板匯入2.0版本的zabbix,在到處,再倒入到4.0版本

3.匯入轉化過的模板  zbx_percona_mysql_template.xml

10.新增監控

1.新增埠監控
2.新增觸發器



11.找到主機新增模板

12.告警測試

五、zabbix監控redis

1.搭建discuz論壇

#1.配置nginx
[root@web01 ~]# vim /etc/nginx/conf.d/discuz.conf
server {
    listen 80;
    server_name linux.discuz.com;

    location / {
        root /code/upload;
        index index.php;
    }

    location ~* \.php$ {
        root /code/upload;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}
[root@web01 ~]# systemctl restart nginx

#2.配置站點
[root@web01 ~]# mkdir /code
[root@web01 ~]# rz Discuz_X3.3_SC_GBK.zip
[root@web01 ~]# unzip Discuz_X3.3_SC_GBK.zip -d /code/

#3.配置hosts
10.0.0.7 linux.discuz.com

#4.統一使用者
[root@web01 ~]# vim /etc/php-fpm.d/www.conf 
[root@web01 ~]# vim /etc/nginx/nginx.conf
[root@web01 ~]# groupadd www -g 666
[root@web01 ~]# useradd www -u 666 -g 666
[root@web01 ~]# systemctl restart nginx
[root@web01 ~]# systemctl restart php-fpm
[root@web01 ~]# chown -R www.www /code/

2.安裝redis

[root@web01 ~]# yum install -y redis
[root@web01 ~]# vim /etc/redis.conf
requirepass 123
[root@web01 ~]# systemctl start redis

3.配置discuz連線redis

[root@web01 ~]# vim /code/upload/config/config_global.php
// --------------------------  CONFIG MEMORY  --------------------------- //
$_config['memory']['prefix'] = 'kRZWnw_';
$_config['memory']['redis']['server'] = '127.0.0.1';
$_config['memory']['redis']['port'] = 6379;
$_config['memory']['redis']['pconnect'] = 1;
$_config['memory']['redis']['timeout'] = '0';
$_config['memory']['redis']['requirepass'] = '123';

4.redis狀態監控

[root@web01 ~]# redis-cli info

5.上傳指令碼

# 通過指令碼檔案對redis狀態進行呼叫
[root@web01 scripts]# rz redis_status_.sh	
[root@web01 scripts]# chmod +x redis_status_.sh

6.配置監控項

# 書寫zabbix客戶端自定義監控檔案,呼叫指令碼檔案
[root@web01 scripts]# vim /etc/zabbix/zabbix_agentd.d/redis_status.conf
UserParameter=redis_status[*],/bin/bash /scripts/redis_status.sh $1

[root@web01 scripts]# systemctl restart zabbix-agent.service

7.檢查監控項

[root@web01 scripts]# zabbix_agentd -t redis_status[used_memory]
redis_status[used_memory] 

[root@zabbix plugins]# zabbix_get -s 172.16.1.7 -k redis_status[used_memory]
/scripts/redis_status.sh: line 7: /tmp/redis_6379.tmp: Permission denied
924680
#許可權不足,將檔案刪除即可
[root@web01 scripts]# rm -rf /tmp/redis_6379.tmp

8.匯入模板


9.給模板新增監控

1.新增埠監控項
2.新增觸發器


10.主機關聯模板

11.告警檢測

[root@web01 scripts]# systemctl stop redis