Nginx+PHP-FPM是目前最流行的LNMP架構,在基於PHP開發的系統下,對這些系統性能的監控,主要是關注PHP-FPM的運行狀態,那麼什麼是PHP-FPM呢?PHP-FPM是一個PHP FastCGI管理器,它提供了更好的PHP進程管理方式,能夠有效控制內存和進程、能夠平滑重載PHP配置,對於ZPHP5.3.3以前的PHP來講,它是一個補丁包,而從PHP5.3.3版本開始,PHP內部已經集成了php-fpm模塊,意味着被PHP官方收錄了。在編譯PHP時需指定參數「--enable-fpm」來開啓PHP-FPM。php
操做以下:html
1)安裝nginx [root@agent ~]# yum -y install zlib pcre pcre-devel openssl openssl-devel [root@agent ~]# wget http://nginx.org/download/nginx-1.14.1.tar.gz [root@agent ~]# tar zxf nginx-1.14.1.tar.gz -C /usr/src [root@agent ~]# cd /usr/src/nginx-1.14.1/ [root@agent nginx-1.14.1]# ./configure --prefix=/usr/local/nginx --user=www --group=www \ > --with-http_stub_status_module --with-http_ssl_module --with-pcre \ > --with-http_gzip_static_module && make && make install [root@agent nginx-1.14.1]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin 2)安裝php [root@agent ~]# yum -y install libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel curl curl-devel openssl openssl-devel openldap openldap-devel [root@agent ~]# wget https://www.php.net/distributions/php-7.2.3.tar.gz [root@agent ~]# useradd -s /sbin/nologin www [root@agent ~]# tar zxf php-7.2.3.tar.gz -C /usr/src [root@agent ~]# cd /usr/src/php-7.2.3/ [root@agent php-7.2.3]# ./configure --prefix=/usr/local/php7 --enable-fpm --with-fpm-user=www --with-fpm-group=www && make && make install [root@agent php-7.2.3]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin [root@agent php-7.2.3]# cp php.ini-production /usr/local/php7/lib/php.ini [root@agent php-7.2.3]# cp sapi/fpm/php-fpm.service /usr/lib/systemd/system/ [root@agent php-7.2.3]# vim /usr/local/php7/lib/php.ini post_max_size = 16M max_execution_time = 300 memory_limit = 128M max_input_time = 300 date.timezone = Asia/Shanghai [root@agent php-7.2.3]# vim /usr/local/nginx/conf/nginx.conf location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name; include fastcgi_params; } [root@agent php-7.2.3]# nginx -t [root@agent php-7.2.3]# cd /usr/local/php7/etc/ [root@agent etc]# cp php-fpm.conf.default php-fpm.conf [root@agent etc]# cp php-fpm.d/www.conf.default php-fpm.d/www.conf [root@agent etc]# vim php-fpm.d/www.conf [www] user = www group = www listen = 127.0.0.1:9000 pm = dynamic pm.max_children = 300 pm.start_servers = 20 pm.min_spare_servers = 5 pm.max_spare_servers = 35 pm.status_path = /status [root@agent etc]# nginx [root@agent etc]# systemctl daemon-reload [root@agent etc]# systemctl start php-fpm [root@agent etc]# ss -lnt | grep 9000 LISTEN 0 128 127.0.0.1:9000 *:* [root@agent etc]# ss -lnt | grep 80 LISTEN 0 128 *:80 *:*
/usr/local/php7/etc/php-fpm.d/www.conf 文件中修改的參數: 1)user和group:用於設置運行phpf-pm進程的用戶及用戶組; 2)listen:是配置php-fpm進程監聽的IP地址及端口,默認是127.0.0.1:9000; 3)pm:指定php-fpm進程池開啓進程的方式,有兩個值可供選擇,分別是static(靜態)和dynamic(動態) dynamic(動態):表示php-fpm進程數是動態的,最開始是php.start_servers指定的數量,若是請求較多,則會自動增長,保證空閒的進程數不小於pm.min_spare_servers,若是進程較多,也會進行相應清理,保證空閒的進程數很少與pm.max_spare_servers; static(靜態):表示php-fpm進程數是靜態的,進程數自始至終都是pm.max_children指定的數量,不在增長或減小; 4)pm.max_children = 300:在static方式下表示固定開啓的php-fpm進程數量,在dynamic方式下表示開啓php-fpm的最大進程數; 5)pm.start_servers = 20:表示在dynamic方式下初始開啓php-fpm進程數量; 6)pm.min_spare_servers = 5:表示在dynamic方式空閒狀態下開啓的最小php-fpm進程數量; 7)pm.max_spare_servers = 35:表示在dynamic方式空閒狀態下開啓的最大php-fpm進程數量,這裏需注意pm.max_spare_servers的值只能小於等於pm.max_children的值; 8)pm.status_path = /status:表示配置php-fpm運行狀態頁面的路徑;
設置參數時,需注意:若是pm爲static,那麼其實只有pm.max_children這個參數生效,系統會開啓設置數量的php-fpm進程。若是pm爲dynamic,系統會在php-fpm運行開始的時候啓動pm.start_servers個php-fpm進程,而後根據系統的需求動態地在pm.min_spare_servers和pm.max_spare_servers之間調整php-fpm進程數,最大不超過pm.max_children設置的進程數。java
我的建議:內存充足(16G以上)的服務器,推薦使用static方式,內存較小(16G如下)的服務器,推薦使用dynamic方式。mysql
開啓php-fpm的狀態監控頁面後,還需在nginx配置文件添加location規則來實現。以下:ios
[root@agent ~]# vim /usr/local/nginx/conf/nginx.conf //添加如下location規則 location ~^/(status)$ { fastcgi_pass 127.0.0.1:9000; fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name; include fastcgi_params; } [root@agent ~]# nginx -t [root@agent ~]# nginx -s reload
php-fpm狀態頁面比較個性化的一個地方就是它能夠自帶參數,能夠帶的參數有:json、xml、htm,使用zabbix或nagios監控能夠考慮使用xml或默認方式。nginx
[root@agent ~]# curl http://127.0.0.1/status //查看php-fpm狀態頁面信息(默認輸出方式) pool: www process manager: dynamic start time: 01/Feb/2020:11:19:34 +0800 start since: 3235 accepted conn: 1 listen queue: 0 max listen queue: 0 listen queue len: 128 idle processes: 19 active processes: 1 total processes: 20 max active processes: 1 max children reached: 0 slow requests: 0 [root@agent ~]# curl http://127.0.0.1/status?xml //以xml格式顯示 [root@agent ~]# curl http://127.0.0.1/status?json //以json格式顯示
輸出參數的含義:
1)pool:php-fpm pool(資源池)的名稱,大多數狀況下爲www;
2)process manager:進程管理方式,現今大多都爲dynamic,不要使用static;
3)start time:上次啓動的時間;
4)start since: 已運行了多少秒;
5)accepted conn pool:接收到的請求數;
6)listen queue:處於等待狀態中的鏈接數,若是不爲0,須要增長php-fpm進程數;
7)max listen queue:從php-fpm啓動到如今處於等待鏈接的最大數量;
8)listen queue len:處於等待鏈接隊列的套接字大小;
9)idle processes:處於空閒狀態的進程數;
10)active processes:處於活動狀態的進程數;
11)total processess:進程總數;
12)max active process:從php-fpm啓動到如今最多有幾個進程處於活動狀態;
13)max children reached:當php-fpm試圖啓動更多的children進程時,卻達到了進程數的限制,達到一次記錄一次,若是不爲0,須要增長php-fpm pool進程的最大數;
14)slow requests:當啓用了php-fpm slow-log功能時,若是出現php-fpm慢請求這個計數器會增長,通常不當的Mysql查詢會觸發這個值;git
監控php-fpm狀態,很是簡單,無需單獨編寫腳本,一條命令便可搞定,以下:web
[root@agent ~]# /usr/bin/curl -s "http://127.0.0.1/status?xml" | grep "<accepted-conn>" | awk -F'>'awk -F'<|>' '{print $3}' 17 [root@agent ~]# /usr/bin/curl -s "http://127.0.0.1/status?xml" | grep "<process-manager>" | awk -F'>'awk -F'<|>' '{print $3}' dynamic [root@agent ~]# /usr/bin/curl -s "http://127.0.0.1/status?xml" | grep "<active-processes>" | awk -F'>'awk -F'<|>' '{print $3}' 1 //只要將grep命令後的過濾值看成變量,這樣就能夠獲取任意值 [root@agent ~]# vim /etc/zabbix/zabbix_agentd.d/userparameter_phpfpm.conf //編寫phpfpm的模板文件,用於調取phpfpm的監控腳本 UserParameter=php-fpm.status[*],/usr/bin/curl -s "http://127.0.0.1/status?xml" | grep "<$1>" | awk -F'>'awk -F'<|>' '{print $$3}' //注意這個自定義監控項,定義了」php-fpm.status[*]「,這個「[*]」就是「$1」提供的值,$1爲輸入值,例如輸入accepted-conn,那麼監控項的鍵值就是php-fpm.status[accepted-conn]。另外,最後那個「$$3」是由於命令組合在變量中,因此要使用「$$」,否則沒法獲取數據 [root@agent ~]# systemctl restart php-fpm
zabbix默認並無自帶php-fpm的監控模板就,須要本身編寫,這裏咱們直接下載php-fpm的模板!redis
[root@agent ~]# wget https://www.ixdba.net/zabbix/zbx_php-fpm_templates.zip [root@agent ~]# unzip zbx_php-fpm_templates.zip [root@agent ~]# ll zbx_php-fpm_templates.xml -rw-r--r-- 1 root root 29138 11月 8 2018 zbx_php-fpm_templates.xml //這個就是須要的模板
如圖:sql
如圖:
從圖中能夠看出已經獲取到數據!
配置php-fpm監控完成!
對於使用tomcat的一些java類應用,在應用系統異常時,咱們須要瞭解tomcat以及JVM的運行狀態,以判斷是程序仍是系統資源出現了問題,此時,對tomcat的監控就顯得尤其重要。下面詳細介紹下如何經過zabbix監控tomcat實例的運行狀態。
zabbix監控tomcat,首選須要在zabbix server上開啓java poller,還須要開啓zabbix_java進程,開啓zabbix_java後,其實至關於開啓了一個JavaGateway,端口爲10052,最後,還需在Tomcat服務器上開啓8888端口,提供數據輸出。
所以,zabbix監控tomcat數據獲取流程,如圖:
[root@agent ~]# java -version openjdk version "1.8.0_161" OpenJDK Runtime Environment (build 1.8.0_161-b14) OpenJDK 64-Bit Server VM (build 25.161-b14, mixed mode) [root@agent ~]# wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-8/v8.5.50/bin/apache-tomcat-8.5.50.tar.gz [root@agent ~]# tar zxf apache-tomcat-8.5.50.tar.gz [root@agent ~]# mv apache-tomcat-8.5.50 /usr/local/tomcat sed -i '308a CATALINA_OPTS=" $CATALINA_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8888 -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=192.168.1.8 -Dcom.sun.management.jmxremote.authenticate=flase" ' /usr/local/tomcat/bin/catalina.sh //必須保證內容插入到如下位置(兩個#號中) # ----- Execute The Requested Command ----------------------------------------- CATALINA_OPTS=" $CATALINA_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8888 -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=192.168.1.8 -Dcom.sun.management.jmxremote.authenticate=flase" # Bugzilla 37848: only output this if we have a TTY //添加的內容中:IP爲Tomcat本機的IP,端口「8888」能夠自定義,不要衝突便可! [root@agent ~]# /usr/local/tomcat/bin/startup.sh //啓動tomcat服務 [root@agent ~]# ss -lnt | grep 8080 LISTEN 0 100 :::8080 :::* [root@agent ~]# ss -lnt | grep 8888 LISTEN 0 50 :::8888 :::*
默認狀況下,zabbix server通常是沒有加入java支持的,因此要讓zabbix監控tomcat,就須要開啓zabbix監控java的專用服務zabbix-java。
注意,在啓用java監控支持以前,zabbix server服務器上需安裝JDK,並須要設置JAVA_HOME,便於系統可以識別到jdk的路徑。
在zabbix server服務器上,編譯安裝zabbix server,需添加「--enable-java」,以支持jmx監控,若是以前的zabbix server在編譯時沒有添加此選項,那麼就須要從新編譯安裝,編譯的參數以下:
./configure --prefix=/usr/local/zabbix --with-mysql --with-net-snmp --with-libcurl --enable-server --enable-agent --enable-proxy --enable-java --with-libxml2
若是不想從新編譯,也可下載對應的rpm包,本篇博文采用下載rpm的方式進行安裝。
[root@zabbix ~]# wget https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-java-gateway-4.0.0-2.el7.x86_64.rpm [root@zabbix ~]# rpm -ivh zabbix-java-gateway-4.0.0-2.el7.x86_64.rpm [root@zabbix ~]# /usr/sbin/zabbix_java_gateway [root@zabbix ~]# ss -lnt | grep 10052 LISTEN 0 50 :::10052 :::* [root@zabbix ~]# vim /usr/local/zabbix/etc/zabbix_server.conf //修改如下內容 JavaGateway=127.0.0.1 JavaGatewayPort=10052 StartJavaPollers=5 [root@zabbix ~]# /etc/init.d/zabbix_server restart
zabbix默認自帶了tomcat的監控模板,可是自帶的模板默認有點問題,推薦使用如下地址下載tomcat模板文件。
[root@zabbix ~]# wget https://www.ixdba.net/zabbix/zbx_tomcat_templates.zip [root@zabbix ~]# unzip zbx_tomcat_templates.zip [root@zabbix ~]# ll zbx_tomcat_templates.xml -rw-r--r-- 1 root root 40030 11月 9 2018 zbx_tomcat_templates.xml //這個就是tomcat的監控模板文件
接下來就開始導入模板,如圖:
如圖:
從圖中能夠看出已經獲取到數據!
配置tomcat監控完成!
redis有自帶的redis-cli客戶端,經過redis的info命令就能夠查詢到redis的運行狀態,那麼zabbix對redis的監控就是經過客戶端redis-cli登陸到redis,而後根據info命令去獲取狀態數據的,根據這個思路,咱們能夠編寫一個腳本,而後由zabbix調用這個腳本,這樣就實現了對redis的監控。
[root@agent ~]# wget http://download.redis.io/releases/redis-5.0.7.tar.gz [root@agent ~]# tar zxf redis-5.0.7.tar.gz [root@agent ~]# cd redis-5.0.7/ [root@agent redis-5.0.7]# make && make install [root@agent redis-5.0.7]# cd utils/ [root@agent utils]# ./install_server.sh
要得到redis的當前狀況,能夠經過reids-cli工具登陸到redis命令行,而後經過info命令查看。
redis-cli命令格式:
redis-cli -h [hostname或ip] -p [port] -a [password] info [參數]
經常使用的、可選的參數有:
1)server:redis服務器相關的通用信息;
2)clients:客戶端鏈接的相關信息;
3)memory:內存消耗的相關信息;
4)persistence:RDB和AOF的相關信息;
5)stats:通用統計數據;
6)replication:主從複製的相關信息;
7)cpu:CPU消耗的統計數據;
8)commandstas:redis命令的統計數據;
9)cluster:redis集羣的相關信息;
10)keyspace:數據庫相關的統計信息;
11)all:返回全部的服務器信息;
12)default:只返回默認的信息集合;
舉例說明:
[root@agent ~]# redis-cli -h 127.0.0.1 -p 6379 info server //查詢redis server的信息 # Server redis_version:5.0.7 redis_git_sha1:00000000 redis_git_dirty:0 redis_build_id:97e1d29a41ca6e28 redis_mode:standalone os:Linux 3.10.0-862.el7.x86_64 x86_64 arch_bits:64 multiplexing_api:epoll atomicvar_api:atomic-builtin gcc_version:4.8.5 process_id:109646 run_id:b2c500cea4663f4c3585748ed90eb79081daefff tcp_port:6379 uptime_in_seconds:682 uptime_in_days:0 hz:10 configured_hz:10 lru_clock:3488956 executable:/usr/local/bin/redis-server config_file:/etc/redis/6379.conf
輸出信息各個選項的含義以下:
1)redis_version:redis服務器的版本信息;
2)redis_git_sha1:Git SHA1;
3)redis_git_dirty:Git dirty flag;
4)os:redis服務器的宿主機操做系統;
5)arch_bits:架構(32位或64位);
6)multiplexing_api:redis所使用的事件處理機制;
7)gcc_version:編譯reids時所使用的GCC版本;
8)process_id:服務器進程的PID;
9)run_id:redis服務器的隨機標識符(用於Sentinel和集羣);
10)tcp_port:TCP/IP監聽端口;
11)uptime_in_seconds:自redis服務器啓動以來通過的秒數;
12)uptime_in_day:自redis服務器啓動依賴通過的天數;
13)lru_clock:以分鐘爲單位進行自增的時鐘,用於LRU管理;
[root@agent ~]# redis-cli -h 127.0.0.1 -p 6379 info memory //查詢內存使用狀況 # Memory used_memory:853304 used_memory_human:833.30K used_memory_rss:2699264 used_memory_rss_human:2.57M used_memory_peak:854320 used_memory_peak_human:834.30K used_memory_peak_perc:99.88% used_memory_overhead:841078 used_memory_startup:791384 used_memory_dataset:12226 used_memory_dataset_perc:19.74% allocator_allocated:1075920 allocator_active:1413120 allocator_resident:3993600 total_system_memory:1910050816 total_system_memory_human:1.78G used_memory_lua:37888 used_memory_lua_human:37.00K used_memory_scripts:0 used_memory_scripts_human:0B number_of_cached_scripts:0 maxmemory:0 maxmemory_human:0B maxmemory_policy:noeviction allocator_frag_ratio:1.31 allocator_frag_bytes:337200 allocator_rss_ratio:2.83 allocator_rss_bytes:2580480 rss_overhead_ratio:0.68 rss_overhead_bytes:-1294336 mem_fragmentation_ratio:3.41 mem_fragmentation_bytes:1907864 mem_not_counted_for_evict:0 mem_replication_backlog:0 mem_clients_slaves:0 mem_clients_normal:49694 mem_aof_buffer:0 mem_allocator:jemalloc-5.1.0 active_defrag_running:0 lazyfree_pending_objects:0
輸出的各個選項的含義:
1)used_memory:由redis分配器分配的內存總量,以字節爲單位;
2)used_memory_human:以人類易讀的格式返回redis分配的內存總量;
3)used_memory_rss:從操做系統的角度,返回redis以分配的內存總量(俗稱常駐集大小)。這個值和top、ps等命令輸出的一致;
4)used_memory_peak:redis的內存消耗峯值(單位爲字節);
5)used_memory_peak_human:以人類易懂的方式返回redis的內存消耗峯值;
6)used_memory_lua:Lua引擎所使用的內存大小(單位爲字節);
7)mem_fragmentation_ratio:used_memory_rss和used_memory之間的比率;
8)mem_allocator:在編譯時指定的,redis所使用的內存分配器。能夠時libc、jemalloc、tcmalloc;
[root@agent ~]# redis-cli -h 127.0.0.1 -p 6379 info clients //查詢客戶端鏈接狀況 # Clients connected_clients:1 client_recent_max_input_buffer:0 client_recent_max_output_buffer:0 blocked_clients:0
輸出的各個選項的含義:
1)connected_clients:已鏈接客戶端的數量(不包括經過從屬服務器鏈接的客戶端);
2)client_recent_max_input_buffer:當前鏈接的客戶端中,最大輸入緩存;
3)client_recent_max_output_buffer:當前鏈接的客戶端中,最大輸出緩存;
4)client_recent_output_list:當前鏈接的客戶端中,最大的輸出列表;
5)blocked_clients:正在等待阻塞命令(BLPOP、BRPOP、BRPOPLPUSH)的客戶端的數量;
[root@agent ~]# redis-cli -h 127.0.0.1 -p 6379 info cpu //查看CPU使用狀況 # CPU used_cpu_sys:1.916430 used_cpu_user:2.779592 used_cpu_sys_children:0.000000 used_cpu_user_children:0.000000
輸出的各個選項的含義:
1)used_cpu_sys:redis服務器耗費的系統CPU;
2)used_cpu_use:redis服務器耗費的用戶CPU;
3)used_cpu_sys_children:後臺進程耗費的系統CPU;
4)used_cpu_user_children:後臺進程耗費的用戶CPU;
[root@agent ~]# redis-cli -h 127.0.0.1 -p 6379 info Stats //查詢通常統計信息 # Stats total_connections_received:8 total_commands_processed:7 instantaneous_ops_per_sec:0 total_net_input_bytes:200 total_net_output_bytes:8551 instantaneous_input_kbps:0.00 instantaneous_output_kbps:0.00 rejected_connections:0 sync_full:0 sync_partial_ok:0 sync_partial_err:0 expired_keys:0 expired_stale_perc:0.00 expired_time_cap_reached_count:0 evicted_keys:0 keyspace_hits:0 keyspace_misses:0 pubsub_channels:0 pubsub_patterns:0 latest_fork_usec:0 migrate_cached_sockets:0 slave_expires_tracked_keys:0 active_defrag_hits:0 active_defrag_misses:0 active_defrag_key_hits:0 active_defrag_key_misses:0
輸出的各個選項的含義:
1)total_connections_received:服務器已接收的鏈接請求數量;
2)total_commands_processed:服務器已執行的命令數量;
3)instantaneous_ops_per_sec:服務器每秒執行的命令數量;
4)rejected_connections:由於最大客戶端數量限制而被拒絕的鏈接請求數量;
5)expired_keys:由於過時而被自動刪除的數據庫鍵數量;
6)evicted_keys:由於最大內從容量限制而被去捉的鍵數量;
7)keyspace_hits:查找數據庫鍵成功的次數;
8)keyspace_misses:查找數據庫鍵失敗的次數;
9)pubsub_channels:目前被訂閱的頻道數量;
10)pubsub_patterns:目前被訂閱的模式數量;
11)latest_fork_usec:最近一次fork()操做耗費的毫秒數;
[root@agent ~]# redis-cli -h 127.0.0.1 -p 6379 info Replication //查詢redis主從複製信息 # Replication role:master connected_slaves:0 master_replid:b6c25ae1598c2460bb30e45139823e08ff5116a4 master_replid2:0000000000000000000000000000000000000000 master_repl_offset:0 second_repl_offset:-1 repl_backlog_active:0 repl_backlog_size:1048576 repl_backlog_first_byte_offset:0 repl_backlog_histlen:0
輸出的各個選項的含義:
1)role:若是當前服務器沒有在複製任何服務器,那麼這個域的值就是master;不然,這個域的值就是slave。注意,在建立複製鏈時,一個從服務器也可能時另外一個服務器的主服務器;
2)connected_slaves:已鏈接的Redis從機數量;
3)master_repl_offset:全局的複製偏移量;
4)repl_backlog_active:表示redis服務器是否爲部分同步開啓複製備份日誌功能的標誌;
5)repl_backlog_size:表示backlog的大小,backlog是一個緩衝區,在slave端失連時存放要同步到slave的數據,所以當一個slave要從新鏈接時,常常時不須要 徹底同步的,執行局部同步便可!backlog設置的越大,slave能夠失聯的時間就越長;
6)repl_backlog_first_byte_offse:備份日誌緩衝區的首個字節的複製偏移量;
7)repl_backlog_histlen:備份日誌的實際數據長度;
腳本代碼較多,可使用如下方式下載:
[root@agent ~]# wget https://www.ixdba.net/zabbix/zbx-redis-template.zip [root@agent ~]# unzip zbx-redis-template.zip [root@agent ~]# ll redis_status zbx-redis-template.xml -rw-r--r-- 1 root root 3968 11月 11 2018 redis_status -rw-r--r-- 1 root root 46397 11月 9 2018 zbx-redis-template.xml //redis_status:監控redis狀態的腳本 //zbx-redis-template.xml:監控redis狀態的模板文件 [root@agent ~]# mkdir /etc/zabbix/shell [root@agent ~]# mv redis_status /etc/zabbix/shell/ [root@agent ~]# chmod 755 /etc/zabbix/shell/redis_status [root@agent ~]# chown zabbix.zabbix /etc/zabbix/shell/redis_status //自行將腳本中所使用的密碼字段進行刪除 //更改reids-cli工具的存放路徑 [root@agent ~]# /etc/zabbix/shell/redis_status used_memory 853304 //測試腳本是否可用
[root@agent ~]# vim /etc/zabbix/zabbix_agentd.d/userparameter_redis.conf UserParameter=Redis.Info[*],/etc/zabbix/shell/redis_status $1 $2 UserParameter=Redis.Status,/usr/local/bin/redis-cli -h 127.0.0.1 -p 6379 ping | grep -c PONG [root@agent ~]# systemctl restart zabbix-agent
如圖:
如圖:
從圖中能夠看出已經獲取到數據!
配置reidst監控完成!
——————————本此博文到此結束,感謝閱讀————————————