Zabbix

Zabbix

一个关于监控的问题

回复

运维监控Alvins 发起了问题 • 1 人关注 • 0 个回复 • 312 次浏览 • 2018-07-16 21:05 • 来自相关话题

Zabbix 2.2 LTS升级到Zabbix 3.0 LTS

运维监控赵班长 发表了文章 • 1 个评论 • 8007 次浏览 • 2016-02-19 15:59 • 来自相关话题

Zabbix 3.0 LTS正式发布了,详细的功能,大家自行Google。将生产的Zabbix从2.2升级到了3.0记录一下。分为三个阶段:   升级前的准备  升级过程  升级后的检查 1.升级前准备工作: ...查看全部
Zabbix 3.0 LTS正式发布了,详细的功能,大家自行Google。将生产的Zabbix从2.2升级到了3.0记录一下。分为三个阶段:
  1.   升级前的准备
  2.   升级过程
  3.   升级后的检查


1.升级前准备工作:

1.1 Zabbix Server部署
[root@lb-node2 ~]# cd /usr/local/src
[root@lb-node2 src]# wget http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/3.0.0/zabbix-3.0.0.tar.gz
[root@lb-node2 src]# tar zxf zabbix-3.0.0.tar.gz
[root@lb-node2 src]# cd zabbix-3.0.0
[root@lb-node2 zabbix-3.0.0]#./configure --prefix=/usr/local/zabbix-3.0.0 --enable-server \
--with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2 \
--with-openipmi --with-ldap --enable-java
[root@lb-node2 zabbix-3.0.0]# make install

1.2 对照老版本的zabbix_server.conf进行修改,不能直接替换。
[root@lb-node2 zabbix-3.0.0]# cd /usr/local/zabbix-3.0.0
[root@lb-node2 zabbix-3.0.0]# vim etc/zabbix_server.conf

1.3 COPY相关脚本到新编译的目录下
alertscripts和externalscripts 里面的相关脚本复制到新的安装目录下。

2.Zabbix 前端部署

2.1 将新的前端PHP代码也COPY到对应的目录下。
[root@lb-node2 ~]# cp -r /usr/local/src/zabbix-3.0.0/frontends/php /usr/local/apache/htdocs/zabbix-3.0.0-frontend

2.2 修改前端PHP的配置文件
[root@lb-node2 ~]# cd /usr/local/apache/htdocs/zabbix-3.0.0-frontend/conf
[root@lb-node2 conf]# mv zabbix.conf.php.example zabbix.conf.php
[root@lb-node2 conf]# vim zabbix.conf.php


 注意:可以直接使用老的文件替换即可,内容是一样的。



2.3 把之前准备好的中文字体COPY过去。
Cp xxx.ttf  /usr/local/apache/htdocs/zabbix/fonts

3.开始升级:
     3.1 先备份

  • 1.邮件通知相干系人,将对Zabbix进行版本升级,约定升级时间。
  • 2.在约定时间到来前,对新的Zabbix Server再一次进行环境确认。
  • 3.关闭老版本的Zabbix Server,并进行代码备份(如果使用的软连接,则可以不用)
  • 4.对Zabbix数据库进行备份。(非常重要,用来升级失败的恢复!)
      3.2 创建Zabbix Server软连接到对应的位置。            你懂的,源码安装的最佳实践    3.3 启动Zabbix
  • 启动新的Zabbix服务器。(注意:日志文件,启动前把老的日志文件先重命名
  • 完全确认Zabbix数据库升级完毕后,再创建前端访问的软连接,对外提供访问。
  •  


日志:
Zabbix Server启动的时候可以关注下日志,2.x的升级会自动进行数据库的升级操作
16527:20160219:153133.851 starting automatic database upgrade



验证并邮件通知相关干系人。做事情,一定要有头有尾!

 

应用监控-Redis状态监控

运维监控赵班长 发表了文章 • 1 个评论 • 3568 次浏览 • 2015-10-29 08:17 • 来自相关话题

Redis可以使用INFO命令,进行状态监控。 以一种易于解释(parse)且易于阅读的格式,返回关于 Redis 服务器的各种信息和统计数值。 通过给定可选的参数 section ,可以让命令只返回某一部分的信息: ...查看全部
Redis可以使用INFO命令,进行状态监控。

以一种易于解释(parse)且易于阅读的格式,返回关于 Redis 服务器的各种信息和统计数值。
通过给定可选的参数 section ,可以让命令只返回某一部分的信息:
    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 之间的比率
            mem_allocator : 在编译时指定的, Redis 所使用的内存分配器。可以是 libc 、 jemalloc 或者 tcmalloc 。
        在理想情况下, used_memory_rss 的值应该只比 used_memory 稍微高一点儿。
        当 rss > used ,且两者的值相差较大时,表示存在(内部或外部的)内存碎片。
        内存碎片的比率可以通过 mem_fragmentation_ratio 的值看出。
        当 used > rss 时,表示 Redis 的部分内存被操作系统换出到交换空间了,在这种情况下,操作可能会产生明显的延迟。
        Because Redis does not have control over how its allocations are mapped to memory pages, high used_memory_rss is often the result of a spike in memory usage.
        当 Redis 释放内存时,分配器可能会,也可能不会,将内存返还给操作系统。
        如果 Redis 释放了内存,却没有将内存返还给操作系统,那么 used_memory 的值可能和操作系统显示的 Redis 内存占用并不一致。
        查看 used_memory_peak 的值可以验证这种情况是否发生。

    persistence : RDB 和 AOF 的相关信息
    stats : 一般统计信息
    replication : 主/从复制信息
    cpu : CPU 计算量统计信息
    commandstats : Redis 命令统计信息
    cluster : Redis 集群信息
    keyspace : 数据库相关的统计信息

除上面给出的这些值以外,参数还可以是下面这两个:
    all : 返回所有信息
    default : 返回默认选择的信息
当不带参数直接调用 INFO 命令时,使用 default 作为默认参数。

应用监控-Apache状态监控

运维监控赵班长 发表了文章 • 0 个评论 • 2495 次浏览 • 2015-10-29 08:10 • 来自相关话题

开启方法 如果是源码安装的默认在httpd-info.conf里面有相关配置,可以在httpd.conf里面进行include。 httpd.conf: Include conf/extra/httpd-inf ...查看全部
开启方法

如果是源码安装的默认在httpd-info.conf里面有相关配置,可以在httpd.conf里面进行include。
httpd.conf:
Include conf/extra/httpd-info.conf
注意在httpd-info.conf里面有两个配置分别为server-status和server-info。分别依赖mod_status和mod_info模块。
  • Mod_status里面主要是Apache当前的连接状态,通过设置ExtendedStatus On可以输出更完整详细的内容。
  • Mod_info的输出是Apache所有运行状态的完整输出,包括配置文件等,有点类似于phpinfo的效果。

<Location /server-status>
SetHandler server-status
Order deny,allow
Deny from all
Allow from 124.192.11.16
</Location>
ExtendedStatus On
<Location /server-info>
SetHandler server-info
Order deny,allow
Deny from all
Allow from 124.192.11.16
</Location>

需要强调的是,用户开启状态,注意设置Allow From,以免造成敏感信息的泄漏。

一个关于监控的问题

回复

运维监控Alvins 发起了问题 • 1 人关注 • 0 个回复 • 312 次浏览 • 2018-07-16 21:05 • 来自相关话题

Zabbix 2.2 LTS升级到Zabbix 3.0 LTS

运维监控赵班长 发表了文章 • 1 个评论 • 8007 次浏览 • 2016-02-19 15:59 • 来自相关话题

Zabbix 3.0 LTS正式发布了,详细的功能,大家自行Google。将生产的Zabbix从2.2升级到了3.0记录一下。分为三个阶段:   升级前的准备  升级过程  升级后的检查 1.升级前准备工作: ...查看全部
Zabbix 3.0 LTS正式发布了,详细的功能,大家自行Google。将生产的Zabbix从2.2升级到了3.0记录一下。分为三个阶段:
  1.   升级前的准备
  2.   升级过程
  3.   升级后的检查


1.升级前准备工作:

1.1 Zabbix Server部署
[root@lb-node2 ~]# cd /usr/local/src
[root@lb-node2 src]# wget http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/3.0.0/zabbix-3.0.0.tar.gz
[root@lb-node2 src]# tar zxf zabbix-3.0.0.tar.gz
[root@lb-node2 src]# cd zabbix-3.0.0
[root@lb-node2 zabbix-3.0.0]#./configure --prefix=/usr/local/zabbix-3.0.0 --enable-server \
--with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2 \
--with-openipmi --with-ldap --enable-java
[root@lb-node2 zabbix-3.0.0]# make install

1.2 对照老版本的zabbix_server.conf进行修改,不能直接替换。
[root@lb-node2 zabbix-3.0.0]# cd /usr/local/zabbix-3.0.0
[root@lb-node2 zabbix-3.0.0]# vim etc/zabbix_server.conf

1.3 COPY相关脚本到新编译的目录下
alertscripts和externalscripts 里面的相关脚本复制到新的安装目录下。

2.Zabbix 前端部署

2.1 将新的前端PHP代码也COPY到对应的目录下。
[root@lb-node2 ~]# cp -r /usr/local/src/zabbix-3.0.0/frontends/php /usr/local/apache/htdocs/zabbix-3.0.0-frontend

2.2 修改前端PHP的配置文件
[root@lb-node2 ~]# cd /usr/local/apache/htdocs/zabbix-3.0.0-frontend/conf
[root@lb-node2 conf]# mv zabbix.conf.php.example zabbix.conf.php
[root@lb-node2 conf]# vim zabbix.conf.php


 注意:可以直接使用老的文件替换即可,内容是一样的。



2.3 把之前准备好的中文字体COPY过去。
Cp xxx.ttf  /usr/local/apache/htdocs/zabbix/fonts

3.开始升级:
     3.1 先备份

  • 1.邮件通知相干系人,将对Zabbix进行版本升级,约定升级时间。
  • 2.在约定时间到来前,对新的Zabbix Server再一次进行环境确认。
  • 3.关闭老版本的Zabbix Server,并进行代码备份(如果使用的软连接,则可以不用)
  • 4.对Zabbix数据库进行备份。(非常重要,用来升级失败的恢复!)
      3.2 创建Zabbix Server软连接到对应的位置。            你懂的,源码安装的最佳实践    3.3 启动Zabbix
  • 启动新的Zabbix服务器。(注意:日志文件,启动前把老的日志文件先重命名
  • 完全确认Zabbix数据库升级完毕后,再创建前端访问的软连接,对外提供访问。
  •  


日志:
Zabbix Server启动的时候可以关注下日志,2.x的升级会自动进行数据库的升级操作
16527:20160219:153133.851 starting automatic database upgrade



验证并邮件通知相关干系人。做事情,一定要有头有尾!

 

应用监控-Redis状态监控

运维监控赵班长 发表了文章 • 1 个评论 • 3568 次浏览 • 2015-10-29 08:17 • 来自相关话题

Redis可以使用INFO命令,进行状态监控。 以一种易于解释(parse)且易于阅读的格式,返回关于 Redis 服务器的各种信息和统计数值。 通过给定可选的参数 section ,可以让命令只返回某一部分的信息: ...查看全部
Redis可以使用INFO命令,进行状态监控。

以一种易于解释(parse)且易于阅读的格式,返回关于 Redis 服务器的各种信息和统计数值。
通过给定可选的参数 section ,可以让命令只返回某一部分的信息:
    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 之间的比率
            mem_allocator : 在编译时指定的, Redis 所使用的内存分配器。可以是 libc 、 jemalloc 或者 tcmalloc 。
        在理想情况下, used_memory_rss 的值应该只比 used_memory 稍微高一点儿。
        当 rss > used ,且两者的值相差较大时,表示存在(内部或外部的)内存碎片。
        内存碎片的比率可以通过 mem_fragmentation_ratio 的值看出。
        当 used > rss 时,表示 Redis 的部分内存被操作系统换出到交换空间了,在这种情况下,操作可能会产生明显的延迟。
        Because Redis does not have control over how its allocations are mapped to memory pages, high used_memory_rss is often the result of a spike in memory usage.
        当 Redis 释放内存时,分配器可能会,也可能不会,将内存返还给操作系统。
        如果 Redis 释放了内存,却没有将内存返还给操作系统,那么 used_memory 的值可能和操作系统显示的 Redis 内存占用并不一致。
        查看 used_memory_peak 的值可以验证这种情况是否发生。

    persistence : RDB 和 AOF 的相关信息
    stats : 一般统计信息
    replication : 主/从复制信息
    cpu : CPU 计算量统计信息
    commandstats : Redis 命令统计信息
    cluster : Redis 集群信息
    keyspace : 数据库相关的统计信息

除上面给出的这些值以外,参数还可以是下面这两个:
    all : 返回所有信息
    default : 返回默认选择的信息
当不带参数直接调用 INFO 命令时,使用 default 作为默认参数。

应用监控-Apache状态监控

运维监控赵班长 发表了文章 • 0 个评论 • 2495 次浏览 • 2015-10-29 08:10 • 来自相关话题

开启方法 如果是源码安装的默认在httpd-info.conf里面有相关配置,可以在httpd.conf里面进行include。 httpd.conf: Include conf/extra/httpd-inf ...查看全部
开启方法

如果是源码安装的默认在httpd-info.conf里面有相关配置,可以在httpd.conf里面进行include。
httpd.conf:
Include conf/extra/httpd-info.conf
注意在httpd-info.conf里面有两个配置分别为server-status和server-info。分别依赖mod_status和mod_info模块。
  • Mod_status里面主要是Apache当前的连接状态,通过设置ExtendedStatus On可以输出更完整详细的内容。
  • Mod_info的输出是Apache所有运行状态的完整输出,包括配置文件等,有点类似于phpinfo的效果。

<Location /server-status>
SetHandler server-status
Order deny,allow
Deny from all
Allow from 124.192.11.16
</Location>
ExtendedStatus On
<Location /server-info>
SetHandler server-info
Order deny,allow
Deny from all
Allow from 124.192.11.16
</Location>

需要强调的是,用户开启状态,注意设置Allow From,以免造成敏感信息的泄漏。
Zabbix