一、Zabbix监控Nginx

1.1 实验环境

服务器系统 角色 IP
CentOS 7.4 x86_64 Zabbix-Server 192.168.90.10
CentOS 7.4 x86_64 Zabbix-Agent 192.168.90.11

1.2.在nginx.confServer标签下添加如下内容

location /nginx_status {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}

1.3.本地访问Nginx Status

[root@linux-node1 ~]# curl http://127.0.0.1/nginx_status
Active connections: 1
server accepts handled requests
1 1 1
Reading: 0 Writing: 1 Waiting: 0

1.4.编写Nginx的Shell脚本(如果端口不一致,只需要修改脚本端口即可)

[root@Agent ~]# mkdir -p /etc/zabbix/scripts
[root@linux-node1 scripts]# vim /etc/zabbix/scripts/nginx_status.sh
#!/bin/bash
############################################################
# $Name: nginx_status.sh
# $Version: v1.0
# $Function: Nginx Status
# $Author: xuliangwei
# $organization: www.xuliangwei.com,www,bjstack.com
# $Create Date: 2016-06-23
# $Description: Monitor Nginx Service Status
############################################################ NGINX_PORT=80 #如果端口不同仅需要修改脚本即可,否则修改xml很麻烦
NGINX_COMMAND=$1 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 in
active)
nginx_active;
;;
reading)
nginx_reading;
;;
writing)
nginx_writing;
;;
waiting)
nginx_waiting;
;;
accepts)
nginx_accepts;
;;
handled)
nginx_handled;
;;
requests)
nginx_requests;
;;
*)
echo $"USAGE:$0 {active|reading|writing|waiting|accepts|handled|requests}"
esac

1.5.给脚本添加执行权限

[root@Agent]# chmod +x /etc/zabbix/scripts/nginx_status.sh

1.6.监控项nginx_status.conf的配置文件如下:

[root@Agent ~]# cat /etc/zabbix/zabbix_agentd.d/nginx_status.conf
UserParameter=nginx_status[*],/bin/bash /etc/zabbix/zabbix_agentd.d/scripts/nginx_status.sh "$1"

1.7.重启zabbix-agent

[root@Agent ~]# systemctl restart  zabbix-agent

1.8.使用Zabbix_get来获取值

[root@linux-node1 ~]# zabbix_get -s 192.168.90.11 -k nginx_status[writing]
1

1.9.添加所有监控项, 如图4-3, 记得关联到指定的主机

二、Zabbix监控PHP

2.1.实践环境

服务器系统 角色 IP
CentOS 7.4 x86_64 Zabbix-Server 192.168.90.10
CentOS 7.4 x86_64 Zabbix-Agent 192.168.90.11

2.2.PHP-FPM工作模式通常与Nginx结合使用,修改php-fpm.conf

[root@Agent ~]# vim /etc/php-fpm.d/www.conf
pm.status_path = /phpfpm_status

2.3.修改nginx.conf的配置文件,增加如下location访问PHP-FPM状态信息。

   location ~ ^/(phpfpm_status)$ {
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}

2.4.访问测试phpfpm_status

[root@Agent ~]# curl http://127.0.0.1/phpfpm_status
pool: www
process manager: dynamic
start time: 05/Jul/2016:15:30:56 +0800
start since: 409
accepted conn: 22
listen queue: 0
max listen queue: 0
listen queue len: 128
idle processes: 4
active processes: 1
total processes: 5
max active processes: 2
max children reached: 0 #PHP-FPM状态解释:
pool #fpm池名称,大多数为www
process manager #进程管理方式dynamic或者static
start time #启动日志,如果reload了fpm,时间会更新
start since #运行时间
accepted conn #当前池接受的请求数
listen queue #请求等待队列,如果这个值不为0,那么需要增加FPM的进程数量
max listen queue #请求等待队列最高的数量
listen queue len #socket等待队列长度
idle processes #空闲进程数量
active processes #活跃进程数量
total processes #总进程数量
max active processes #最大的活跃进程数量(FPM启动开始计算)
max children reached #程最大数量限制的次数,如果这个数量不为0,那说明你的最大进程数量过小,可以适当调整。

2.5.编写php-fpmShell脚本(如果端口不一致,只需要修改脚本端口即可)

[root@Agent ~]# cd /etc/zabbix/scripts
[root@Agent scripts]# vim phpfpm_status.sh
#!/bin/bash
############################################################
# $Name: phpfpm_status.sh
# $Version: v1.0
# $Function: Nginx Status
# $Author: xuliangwei
# $organization: www.xuliangwei.com
# $Create Date: 2016-06-23
# $Description: Monitor Nginx Service Status
############################################################ PHPFPM_COMMAND=$1
PHPFPM_PORT=80 #根据监听不同端口进行调整 start_since(){
/usr/bin/curl -s "http://127.0.0.1:"$PHPFPM_PORT"/phpfpm_status" |awk '/^start since:/ {print $NF}'
} accepted_conn(){
/usr/bin/curl -s "http://127.0.0.1:"$PHPFPM_PORT"/phpfpm_status" |awk '/^accepted conn:/ {print $NF}'
} listen_queue(){
/usr/bin/curl -s "http://127.0.0.1:"$PHPFPM_PORT"/phpfpm_status" |awk '/^listen queue:/ {print $NF}'
} max_listen_queue(){
/usr/bin/curl -s "http://127.0.0.1:"$PHPFPM_PORT"/phpfpm_status" |awk '/^max listen queue:/ {print $NF}'
} listen_queue_len(){
/usr/bin/curl -s "http://127.0.0.1:"$PHPFPM_PORT"/phpfpm_status" |awk '/^listen queue len:/ {print $NF}'
} idle_processes(){
/usr/bin/curl -s "http://127.0.0.1:"$PHPFPM_PORT"/phpfpm_status" |awk '/^idle processes:/ {print $NF}'
} active_processes(){
/usr/bin/curl -s "http://127.0.0.1:"$PHPFPM_PORT"/phpfpm_status" |awk '/^active processes:/ {print $NF}'
} total_processes(){
/usr/bin/curl -s "http://127.0.0.1:"$PHPFPM_PORT"/phpfpm_status" |awk '/^total processes:/ {print $NF}'
} max_active_processes(){
/usr/bin/curl -s "http://127.0.0.1:"$PHPFPM_PORT"/phpfpm_status" |awk '/^max active processes:/ {print $NF}'
} max_children_reached(){
/usr/bin/curl -s "http://127.0.0.1:"$PHPFPM_PORT"/phpfpm_status" |awk '/^max children reached:/ {print $NF}'
} slow_requests(){
/usr/bin/curl -s "http://127.0.0.1:"$PHPFPM_PORT"/phpfpm_status" |awk '/^slow requests:/ {print $NF}'
} case $PHPFPM_COMMAND in
start_since)
start_since;
;;
accepted_conn)
accepted_conn;
;;
listen_queue)
listen_queue;
;;
max_listen_queue)
max_listen_queue;
;;
listen_queue_len)
listen_queue_len;
;;
idle_processes)
idle_processes;
;;
active_processes)
active_processes;
;;
total_processes)
total_processes;
;;
max_active_processes)
max_active_processes;
;;
max_children_reached)
max_children_reached;
;;
slow_requests)
slow_requests;
;;
*)
echo $"USAGE:$0 {start_since|accepted_conn|listen_queue|max_listen_queue|listen_queue_len|idle_processes|active_processes|total_processes|max_active_processes|max_children_reached}"
esac

2.6.给脚本添加执行权限

[root@Agent scripts]# chmod +x phpfpm_status.sh

2.7.监控项的phpfpm_status.conf配置文件如下:

[root@Agent ~]# cat /etc/zabbix/zabbix_agentd.d/phpfpm_status.conf
UserParameter=phpfpm_status[*],/bin/bash /etc/zabbix/phpfpm_status.sh "$1"

2.8.重启zabbix-agent

[root@Agent ~]# systemctl restart zabbix-agent

2.9.Server使用zabbix_get命令来获取Agent端的值

[root@ZabbixServer]# zabbix_get -s 192.168.90.11 -k phpfpm_status[accepted_conn]
45

2.10.添加所有监控项, 如下图4-5, 最后记得关联至对应主机

2.11.查看图形,如图4-4(图形自定义)

三、Zabbix监控MySQL

percona Monitoring Plugins是一个高质量的组件,为MySQL数据库添加企业级的监控和图表功能。但其脚本使用PHP实现,故而Zabbix-Agent需要安装PHP环境。

percona工具集

实践环境

服务器系统 角色 IP
CentOS 7.4 x86_64 Zabbix-Server 192.168.90.10
CentOS 7.4 x86_64 Zabbix-Agent 192.168.90.11

3.1.在Zabbix-Agent端安装percona Monitoring Plugins

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

3.2.查看percona安装后的目录结构

[root@Agent percona]# 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 #key文件位置
└── zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.6.xml #模板文件位置

3.4.将自定义监控项配置文件复制至/etc/zabbix_agentd.conf.d目录下

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

3.5.重启zabbix-agent

[root@Agent ~]# systemctl restart zabbix-agent

3.6.修改脚本中的MySQL用户名和密码

[root@Agent scripts]# vim /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php
$mysql_user = 'root';
$mysql_pass = 'xuliangwei.com';
$mysql_port = 3306;

3.7.在Zabbix-Server端上使用Zabbix_get获取值(否则会失败)

[root@Server ~]# zabbix_get -s 192.168.90.11 -k MySQL.pool-read-requests
223003813 //如果获取不到值常见问题
1.看是否是MySQL密码错误
2.不要直接执行脚本来获取
3.删除/tmp/localhost-mysql_cacti_stats.txt文件
4.权限问题导致

3.8.在Zabbix页面模板选项中导入Percona模板, 模板存放在/var/lib/zabbix/percona/templates, 最后关联主机即可。

四、Zabbix监控Redis

Redis使用自带的INFO命令,进行状态监控。以一种易于解释且易于阅读的格式,返回关于Redis服务器的各种信息和统计数值。

实践环境

服务器系统 角色 IP
CentOS 7.4 x86_64 Zabbix-Server 192.168.90.10
CentOS 7.4 x86_64 Zabbix-Agent 192.168.90.11

4.1.编写Shell脚本

  • 脚本端口、连接redis服务地址根据具体情况进行修改
  • AUTH认证没有开启,将PASSWD修改为空即可。
[root@Agent ~]# mkdir -p  /etc/zabbix/scripts
[root@Agent ~]# vim /etc/zabbix/scripts/redis_status.sh
#!/bin/bash
############################################################
# $Name: redis_status.sh
# $Version: v1.0
# $Function: Redis Status
# $Author: xuliangwei
# $organization: www.xuliangwei.com
# $Create Date: 2016-06-23
# $Description: Monitor Redis Service Status
############################################################ R_COMMAND="$1"
R_PORT="6379" #根据实际情况调整端口
R_SERVER="127.0.0.1" #根据具体情况调整IP地址
PASSWD="" #如果没有设置Redis密码,为空即可 redis_status(){
(echo -en "AUTH $PASSWD\r\nINFO\r\n";sleep 1;) | /usr/bin/nc "$R_SERVER" "$R_PORT" > /tmp/redis_"$R_PORT".tmp
REDIS_STAT_VALUE=$(grep "$R_COMMAND:" /tmp/redis_"$R_PORT".tmp | cut -d ':' -f2)
echo "$REDIS_STAT_VALUE"
} case $R_COMMAND in
used_cpu_user_children)
redis_status "$R_PORT" "$R_COMMAND"
;;
used_cpu_sys)
redis_status "$R_PORT" "$R_COMMAND"
;;
total_commands_processed)
redis_status "$R_PORT" "$R_COMMAND"
;;
role)
redis_status "$R_PORT" "$R_COMMAND"
;;
lru_clock)
redis_status "$R_PORT" "$R_COMMAND"
;;
latest_fork_usec)
redis_status "$R_PORT" "$R_COMMAND"
;;
keyspace_misses)
redis_status "$R_PORT" "$R_COMMAND"
;;
keyspace_hits)
redis_status "$R_PORT" "$R_COMMAND"
;;
keys)
redis_status "$R_PORT" "$R_COMMAND"
;;
expires)
redis_status "$R_PORT" "$R_COMMAND"
;;
expired_keys)
redis_status "$R_PORT" "$R_COMMAND"
;;
evicted_keys)
redis_status "$R_PORT" "$R_COMMAND"
;;
connected_clients)
redis_status "$R_PORT" "$R_COMMAND"
;;
changes_since_last_save)
redis_status "$R_PORT" "$R_COMMAND"
;;
blocked_clients)
redis_status "$R_PORT" "$R_COMMAND"
;;
bgsave_in_progress)
redis_status "$R_PORT" "$R_COMMAND"
;;
bgrewriteaof_in_progress)
redis_status "$R_PORT" "$R_COMMAND"
;;
used_memory_peak)
redis_status "$R_PORT" "$R_COMMAND"
;;
used_memory)
redis_status "$R_PORT" "$R_COMMAND"
;;
used_cpu_user)
redis_status "$R_PORT" "$R_COMMAND"
;;
used_cpu_sys_children)
redis_status "$R_PORT" "$R_COMMAND"
;;
total_connections_received)
redis_status "$R_PORT" "$R_COMMAND"
;;
*)
echo $"USAGE:$0 {used_cpu_user_children|used_cpu_sys|total_commands_processed|role|lru_clock|latest_fork_usec|keyspace_misses|keyspace_hits|keys|expires|expired_keys|connected_clients|changes_since_last_save|blocked_clients|bgrewriteaof_in_progress|used_memory_peak|used_memory|used_cpu_user|used_cpu_sys_children|total_connections_received}"
esac

4.2.Redis状态参数解释:

server : Redis 服务器信息,包含以下域:
redis_version : Redis 服务器版本
redis_git_sha1 : Git SHA1
redis_git_dirty : Git dirty flag
os : Redis 服务器的宿主操作系统
arch_bits : 架构(32 或 64 位)
multiplexing_api : Redis 所使用的事件处理机制
gcc_version : 编译 Redis 时所使用的 GCC 版本
process_id : 服务器进程的 PID
run_id : Redis 服务器的随机标识符(用于 Sentinel 和集群)
tcp_port : TCP/IP 监听端口
uptime_in_seconds : 自 Redis 服务器启动以来,经过的秒数
uptime_in_days : 自 Redis 服务器启动以来,经过的天数
lru_clock : 以分钟为单位进行自增的时钟,用于 LRU 管理
clients : 已连接客户端信息,包含以下域:
connected_clients : 已连接客户端的数量(不包括通过从属服务器连接的客户端)
client_longest_output_list : 当前连接的客户端当中,最长的输出列表
client_longest_input_buf : 当前连接的客户端当中,最大输入缓存
blocked_clients : 正在等待阻塞命令(BLPOP、BRPOP、BRPOPLPUSH)的客户端的数量
memory : 内存信息,包含以下域:
used_memory : 由 Redis 分配器分配的内存总量,以字节(byte)为单位
used_memory_human : 以人类可读的格式返回 Redis 分配的内存总量
used_memory_rss : 从操作系统的角度,返回 Redis 已分配的内存总量(俗称常驻集大小)。这个值和 top 、 ps 等命令的输出一致。
used_memory_peak : Redis 的内存消耗峰值(以字节为单位)
used_memory_peak_human : 以人类可读的格式返回 Redis 的内存消耗峰值
used_memory_lua : Lua 引擎所使用的内存大小(以字节为单位)
mem_fragmentation_ratio : used_memory_rss 和 used_memory 之间的比率
persistence : RDB 和 AOF 的相关信息
stats : 一般统计信息
replication : 主/从复制信息
cpu : CPU 计算量统计信息
commandstats : Redis 命令统计信息
cluster : Redis 集群信息
keyspace : 数据库相关的统计信息
参数还可以是下面这两个:
all : 返回所有信息
default : 返回默认选择的信息
当不带参数直接调用 INFO 命令时,使用 default 作为默认参数。

4.3.添加脚本执行权限

[root@Agent ~]# chmod +x /etc/zabbix/scripts/redis_status.sh

4.4.Zabbix权限不足处理办法

[root@Agent ~]# rm -f /tmp/redis_6379.tmp

4.5.key的redis_status.conf的配置文件如下:

[root@Agent ~]# cat /etc/zabbix/zabbix_agentd.d/redis_status.conf
UserParameter=redis_status[*],/bin/bash /etc/zabbix/scripts/redis_status.sh "$1"

4.6.重启zabbix-agent

[root@Agent ~]# systemctl restart  zabbix-agent

4.7.在Zabbix-Server使用Zabbix_get获取值

[root@Server ~]# zabbix_get -s 192.168.90.11 -k redis_status[used_cpu_sys]
16.81

4.8.展示所有Key(记得将模板关联主机)如图4-14

图4-14

4.9.查看图形,如图4-15、图4-16(图形自定义)


图4-15

图4-16

五、Zabbix监控JVM

在Zabbix中,JMX监控数据的获取由专门的代理程序来实现,即Zabbix-Java-Gateway来负责数据的采集,Zabbix-Java-Gateway和JMX的Java程序之间通信获取数据

5.1JMX在Zabbix中的运行流程:

1.Zabbix-Server找Zabbix-Java-Gateway获取Java数据
2.Zabbix-Java-Gateway找Java程序(zabbix-agent)获取数据
3.Java程序返回数据给Zabbix-Java-Gateway
4.Zabbix-Java-Gateway返回数据给Zabbix-Server
5.Zabbix-Server进行数据展示

5.2配置JMX监控的步骤:

1.安装Zabbix-Java-Gateway。
2.配置zabbix_java_gateway.conf参数。
3.配置zabbix-server.conf参数。
4.Tomcat应用开启JMX协议。
5.ZabbixWeb配置JMX监控的Java应用。

实践环境

服务器系统 角色 IP
CentOS 7.4 x86_64 Zabbix-Server 192.168.56.11
CentOS 7.4 x86_64 Zabbix-java-gateway 192.168.56.12
CentOS 7.4 x86_64 Zabbix-Agent 192.168.56.13

5.2.1.安装java以及zabbix-java-gateway (如果源码安装加上--enable-java参数)

//安装java-gateway
[root@linux-node1 ~]# yum install zabbix-java-gateway java-1.8.0-openjdk -y

5.2.2.配置zabbix-java-gateway

vim /etc/zabbix/zabbix_java_gateway.conf

5.2.3.启动zabbix-java-gateway

[root@linux-node1 ~]# systemctl start zabbix-java-gateway
[root@linux-node1 ~]# netstat -lntup|grep 10052
tcp6 0 0 :::10052 :::* LISTEN 13042/java

5.2.4.修改zabbix-server 配置文件

[root@linux-node1 ~]# vim /etc/zabbix/zabbix_server.conf
#java gateway地址
JavaGateway=192.168.90.11
#java gateway默认端口10052
JavaGatewayPort=10052
#启动进程轮询java gateway
StartJavaPollers=5

5.2.5.重启zabbix-server

[root@linux-node1 ~]# systemctl restart zabbix-server

5.2.6.安装tomcat服务

mkdir /soft/package/src -p
wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-9/v9.0.2/bin/apache-tomcat-9.0.2.tar.gz
tar xf apache-tomcat-9.0.2.tar.gz -C /soft/
ln -s /soft/apache-tomcat-9.0.2/ /soft/tomcat

5.2.7.开启tomcat的远程jvm配置文件

[root@linux-node1 ~]# vim /usr/local/tomcat/bin/catalina.sh
CATALINA_OPTS="$CATALINA_OPTS
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=12345
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=192.168.90.11" #jvm配置文件解释
CATALINA_OPTS="$CATALINA_OPTS
//启用远程监控JMX
-Dcom.sun.management.jmxremote
//jmx启用远程端口,Zabbix添加时必须一致
-Dcom.sun.management.jmxremote.port=12345
//不开启用户密码认证
-Dcom.sun.management.jmxremote.authenticate=false
//不启用ssl加密传输
-Dcom.sun.management.jmxremote.ssl=false
//运行tomcat主机的IP地址
-Djava.rmi.server.hostname=192.168.90.11"

5.2.8.重启tomcat服务

[root@linux-node1 ~]# /usr/local/tomcat/bin/shutdown.sh
[root@linux-node1 ~]# /usr/local/tomcat/bin/startup.sh

5.2.9.zabbix添加tomcat主机,并添加Zabbix自带java监控模板,如图4-10、图4-11、图4-12

图4-10

图4-11

图4-12

5.2.10.查看图形,如图4-13

图4-13

5.2.11.自带的监控可能无法满足企业需求,大家可以根据公司的业务定制不同的JVM监控模板。

 

六、Zbbix阶段小结

zabbix监控基础架构回顾
Zabbix监控方式(agent、snmp、ipmi、ssh、telnet)
Zabbix资源回顾(基于监控项基础的所有资源)

03.Zabbix应用服务监控的更多相关文章

  1. 03: zabbix API接口 对 主机、主机组、模板、应用集、监控项、触发器等增删改查

    目录:Django其他篇 01: 安装zabbix server 02:zabbix-agent安装配置 及 web界面管理 03: zabbix API接口 对 主机.主机组.模板.应用集.监控项. ...

  2. 基于Zabbix IPMI监控服务器硬件状况

    基于Zabbix IPMI监控服务器硬件状况 zabbix ipmi 公司有多个分部,且机房没有专业值班,机房等级不够.在这种情况下,又想实时监控机房环境,于是使用IPMI方式来达到目的.由于之前已经 ...

  3. 五 Zabbix全网监控

    监控的作用 我们的职责   1.保障企业数据的安全可靠.   2.为客户提供7*24小时服务.   3.不断提升用户的体验.在关键时刻,提前提醒我们服务器要出问题了当出问题之后,可以便于找到问题的根源 ...

  4. zabbix全网监控

    为什么要监控 运维的职责1.保障企业数据的安全可靠.2.为客户提供7*24小时服务.3.不断提升用户的体验. 在关键时刻,提前提醒我们服务器要出问题了 当出问题之后,可以便于找到问题的根源 拿到公司服 ...

  5. 03 Zabbix常用的术语

    03 Zabbix常用的术语 host(主机): 要监控的网络设备,可由IP或DNS名称指定 host group(主机组):主机的逻辑容器,可以包含主机和模板,但同一个组内的主机和模板不能互相链接: ...

  6. Zabbix分布式监控系统实践

    https://www.zabbix.com/wiki/howto/install/Ubuntu/ubuntuinstall 环境介绍OS: Ubuntu 10.10 Server 64-bitSer ...

  7. 使用Ubuntu系统管理包工具(apt)部署Zabbix企业级监控系统

    使用Ubuntu系统管理包工具(apt)部署Zabbix企业级监控系统  作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Ubuntu系统部署笔记:https://www.cnblo ...

  8. Zabbix+Orabbix监控oracle数据库表空间

    Orabbix 是设计用来为 zabbix 监控 Oracle 数据库的插件,它提供多层次的监控,包括可用性和服务器性能指标. 它提供了从众多 oracle 实例采集数据的有效机制,进而提供此信息的监 ...

  9. Zabbix自定义监控8080端口的连接数

    Zabbix自定义监控8080端口的连接数 一 zabbix自定义监控实现思路 实际上我们要想使用zabbix来监控一些服务的原理很简单,步骤分别是:1.写一个脚本用于获取待监控服务的一些状态信息2. ...

随机推荐

  1. 上证50ETF申赎清单

    [ETF50] Fundid1=510051 CreationRedemptionUnit=900000 MaxCashRatio=0.50000 Publish=1 CreationRedempti ...

  2. lnmp搭建-手动版

    参照链接:http://blog.csdn.net/bravemelon/article/details/64925499 centOS 下安装 Nginx yum -y groupinstall & ...

  3. EasyUI中对datagrid的扩展方法

    以下是给datagrid扩展一个方法的demo 1.给datagrid添加一个属性 $.extend($.fn.datagrid.defaults, { demo: "demo1" ...

  4. windows是下安装nvmw

    nvmw:Windows环境下的node多版本管理工具. 安装: 1.  git clone https://github.com/hakobera/nvmw.git 2.修改环境变量 计算机 -&g ...

  5. SpringBoot:SpringBoot整合JdbcTemplate

    个人其实偏向于使用类似于JdbcTemplate这种的框架,返回数据也习惯于接受Map/List形式,而不是转化成对象,一是前后台分离转成json方便,另外是返回数据格式,数据字段可以通过SQL控制, ...

  6. 周一不睡觉,也要把pandas groupy 肝完,你该这么学,No.8

    如果图片无法观看,请移步 https://blog.csdn.net/hihell 学编程就跟打游戏一样一样的 为啥一样啊,因为要肝的 你看,学编程有很多好处 掉头发,有借口吧 不洗头,有借口吧 不洗 ...

  7. navicat破解版的下载与激活

    原文链接:http://www.cnblogs.com/djwhome/p/9289295.html 以前一直使用的老版的破解版的navicat,但是最近老是报错 而且连接还特别慢,今天终于不忙了额, ...

  8. P5441 【XR-2】伤痕

    Luogu5441 有 \(n\) 个点 ( \(n\) 为奇数 , \(n \le 99\) ) 的完全图 , 其中可以有最多 \(n\) 条无向边 , 其他都是有向边 . 如果对于某四个点不经过这 ...

  9. 《Brennan's Guide to Inline Assembly》学习笔记

    原文见Brennan's Guide to Inline Assembly. AT&T语法 vs Intel语法 DJGPP是基于GCC的,因此它使用AT&T/UNIT语法,这和Int ...

  10. Spring mybatis源码篇章-动态SQL基础语法以及原理

    通过阅读源码对实现机制进行了解有利于陶冶情操,承接前文Spring mybatis源码篇章-Mybatis的XML文件加载 前话 前文通过Spring中配置mapperLocations属性来进行对m ...