zabbix服務監控
阿新 • • 發佈:2020-09-11
一、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