一. 监控知识


1.硬件监控:

机房巡检,远程控制卡,IPMI

2.系统监控:

cpu负载查看(指标):uptime(低于3),top(30%-70%), vmstat, mpstat

内存监控: free -m (不超过80%)

硬盘监控:df , iotop(查看进程使用io情况),iostat

网络监控:iftop -n

性能监控工具:nmon(全方位监控,测试用)。

ps: nmon使用参考文章:http://www.cnblogs.com/mululu/p/6398483.html

3.网络监控:

iftop,站长工具,SmokePing,监控宝

二. CPU监控知识


1.CPU三个重要的概念:

  1. 上下文切换: CPU调度器实施进程切换的过程,
  2. 运行队列(负载): 单位时间内运行队列的排队数
  3. 使用率:

2.性能的基准线:

  1. 每个CPU核心的运行队列在(1-3)比较正常,比如4核不超过12。
  2. CPU的使用率标准:65%-70%用户态(us),30%-35%内核态(sy),0%-5%空闲(id)

3.监控工具:

  1. top
  2. vmstat 1 10 (每秒运行1次,总共运行10次),mpstat (需要安装sysstat)

二. ZABBIX安装相关


官方安装文档:https://www.zabbix.com/documentation/2.4/manual/installation/install_from_packages

1.安装zabbix2.4的Yum源:

 rpm -ivh http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-release-2.4-1.el6.noarch.rpm

2.安装zabbix:

 yum install zabbix zabbix-server zabbix-get zabbix-web zabbix-server-mysql zabbix-web-mysql zabbix-agent

3.初始化数据库:

mysql> create database zabbix character set utf8 collate utf8_bin;      #创建zabbix库
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix123'; #创建zabbix用户
cd /usr/share/doc/zabbix-server-mysql-2.4.8/create/
mysql -uroot -pRoot123 zabbix< schema.sql
mysql -uroot -pRoot123 zabbix < images.sql
mysql -uroot -pRoot123 zabbix < data.sql

4.修改zabbix时区:

 vim /etc/httpd/conf.d/zabbix.conf
php_value date.timezone Asia/Shanghai

5.修改zabbix_server数据库配置:

vim /etc/zabbix/zabbix_server.conf

DBHost=172.16.1.214
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix123

6.启动zabbix:

 /etc/init.d/httpd restart
/etc/init.d/zabbix-server start

http://172.16.1.211/zabbix/ #访问地址,第一次访问会出现安装向导

登录默认用户:Admin 密码:zabbix

7.安装zabbix客户端:

yum install zabbix-agent
vim /etc/zabbix/zabbix_agentd.conf Server=172.16.1.211

8.启动zabbix客户端:

 /etc/init.d/zabbix-agent start

三. ZABBIX使用相关


1.客户端添加自定义监控项(监控系统用户数):

vim /etc/zabbix/zabbix_agentd.conf

UserParameter=login-user,uptime |awk '{print $6}'
#UserParameter后面的格式为: key名称,命令
/etc/init.d/zabbix-agent restart #添加完后要重启agent

2.服务端添加自定义监控项:

# zabbix_get -s 172.16.1.210 -k login-user   #先测试获取
-s: 客户端IP
-k: key名称

界面创建新Item:

PS:添加完成以后还可以为自定义监控项添加图表( Graphs)

3.Zabbix添加自定义告警脚本:

1.告警脚本放在“/usr/lib/zabbix/alertscripts”目录下。

2.要支持三个参数:收件人,主题,内容

3.执行权限

测试脚本:

vim sms.sh

#!/bin/bash
ALTER_TO=$1
ALTER_TITLE=$2
ALTER_BODY=$3 echo "$ALTER_TO $ALTER_TITLE $ALTER_BODY">>/tmp/sms.log

4.WEB页面添加自定义告警:



{ALERT.SENDTO}收件人地址

{ALERT.SUBJECT}主题

{ALERT.MESSAGE}详细内容

4.WEB页面配置动作信息:



配置报警操作动作:

状态:{TRIGGER.STATUS}
时间:{EVENT.DATE} {EVENT.TIME}
告警名称: {TRIGGER.NAME}
主机: {HOST.NAME}
监控项: {ITEM.NAME}:{ITEM.VALUE}

配置报警恢复动作

状态:{TRIGGER.STATUS}
时间: {EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}
告警名称: {TRIGGER.NAME}
主机: {HOST.NAME}
监控项: {ITEM.NAME}:{ITEM.VALUE}

四. ZABBIX通过percona监控Mysql


1.安装percona软件:

# yum install https://www.percona.com/downloads/percona-monitoring-plugins/percona-monitoring-plugins-1.1.7/binary/redhat/7/x86_64/percona-zabbix-templates-1.1.7-2.noarch.rpm
# yum install percona-zabbix-templates php php-mysql
# cp /var/lib/zabbix/percona/templates/userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/userparameter_percona_mysql.conf
# systemctl restart zabbix-agent.service

2.导入percona的Zabbix模板文件:

由于官方提供的模板文件不兼容3.0,我们需要下载我修改好的:

http://download.csdn.net/download/wmj2004/10012276

下载完成后导入zabbix模板即可

3.创建percona配置文件:

# vim /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php.cnf

<?php
$mysql_user = 'root';
$mysql_pass = 's3cret';

ps: 根据情况修改下get_mysql_stats_wrapper.sh文件的hostname参数

4.测试mysql监控是否正常:

# zabbix_get -s 172.16.20.11 -k MySQL.max-connections

五. Zabbix-Agent主动模式


1.哪些情况需要使用主动模式(active):

1.Queue里面有大量延时的item

2.生产环境监控主机超过300台

2.开启zabbix-agent主动模式:

#Server=172.16.100.1 #备注掉
StartAgents=0 #关闭监听进程
ServerActive=172.16.100.1 #配置服务器地址
Hostname=tools01-uat #配置主机名

ps: 开启主动模式后service端模板中的“监控项”类型改成“zabbix主动模式”

六. ZABBIX分布式部署


1.安装Zabbix-Proxy:

yum install zabbix-proxy zabbix-proxy-mysql mariadb-server
systemctl start mariadb
#mysql命令开始
create database zabbix_proxy character set utf8;
grant all on zabbix_proxy.* to zabbix_proxy@localhost identified by 'zabbix_proxy'
#mysql命令结束
zcat schema.sql.qz | mysql -uzabbix_proxy -pzabbix_proxy #初始化数据库

六. ZABBIX自动化监控


1.Zabbix-agent自动注册:

先修改zabbix-agent的配置文件:

# grep ^[a-Z] /etc/zabbix/zabbix_agentd.conf

PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
Server=172.16.100.1
ServerActive=172.16.100.1 #配置上service的ip
Hostname=tools01-uat.hewomi.com #配置上主机名称,注册时会自动填上
HostMetadataItem=system.uname #配置主机元素,取uanme
Include=/etc/zabbix/zabbix_agentd.d/*.conf

在service上面添加自动注册的动作,看图操作:

1.

2.

3.

2.Zabibx-service自动发现(生产不建议使用):

3.通过Zabbix-api自动化添加:

官方api说明文档: https://www.zabbix.com/documentation/3.4/zh/manual/api

先获取用户令牌,记录下返回的result参数。

curl -s -X POST -H 'Content-Type: application/json-rpc' -d '
{
"jsonrpc": "2.0",
"method": "user.login",
"params": {
"user": "Admin",
"password": "密码"
},
"id": 1,
"auth": null
}' http://172.16.100.1/zabbix/api_jsonrpc.php | python -m json.tool

通过获取的令牌,查看下所有主机列表:

curl -s -X POST -H 'Content-Type: application/json-rpc' -d '
{
"jsonrpc": "2.0",
"method": "host.get",
"params": {
"output": ["host"]
},
"auth": "6d49c3f282f3949dfa30805e9f5d984e",
"id": 1
}' http://172.16.100.1/zabbix/api_jsonrpc.php | python -m json.tool

4.通过Python脚本获取auth

#!/usr/bin/env python
# -*- coding:utf-8 -*- import requests
import json url = 'http://192.168.56.11/zabbix/api_jsonrpc.php'
post_data = {
"jsonrpc": "2.0",
"method": "user.login",
"params": {
"user": "zhangsan",
"password": "123123"
},
"id": 1
}
post_header = {'Content-Type': 'application/json-rpc'} ret = requests.post(url, data=json.dumps(post_data), headers=post_header) zabbix_ret = json.loads(ret.text)
if not zabbix_ret.has_key('result'):
print 'login error'
else:
print zabbix_ret.get('result')

只要添加主机的时候通过api添加主机并加入群组和模板即可

学习zabbix(四)的更多相关文章

  1. 学习zabbix(三)

    前言: 学习zabbix之前,不得不了解的是SNMP协议 SNMP:简单网络管理协议(Simple Network Protocol) Snmp由两部分组成,监控端和被监控端 监控模式: 主动模式:N ...

  2. 从零开始学习jQuery (四) 使用jQuery操作元素的属性与样式

    本系列文章导航 从零开始学习jQuery (四) 使用jQuery操作元素的属性与样式 一.摘要 本篇文章讲解如何使用jQuery获取和操作元素的属性和CSS样式. 其中DOM属性和元素属性的区分值得 ...

  3. 前端学习 第四弹: HTML(一)

    前端学习 第四弹: HTML(一) 元素分类:块元素 内联元素 块级元素在浏览器显示时,通常会以新行来开始(和结束). 例子:<h1>, <p>, <ul>, &l ...

  4. C#可扩展编程之MEF学习笔记(四):见证奇迹的时刻

    前面三篇讲了MEF的基础和基本到导入导出方法,下面就是见证MEF真正魅力所在的时刻.如果没有看过前面的文章,请到我的博客首页查看. 前面我们都是在一个项目中写了一个类来测试的,但实际开发中,我们往往要 ...

  5. Android Animation学习(四) ApiDemos解析:多属性动画

    Android Animation学习(四) ApiDemos解析:多属性动画 如果想同时改变多个属性,根据前面所学的,比较显而易见的一种思路是构造多个对象Animator , ( Animator可 ...

  6. 五、Android学习第四天补充——Android的常用控件(转)

    (转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 五.Android学习第四天补充——Android的常用控件 熟悉常用的A ...

  7. 四、Android学习第四天——JAVA基础回顾(转)

    (转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 四.Android学习第四天——JAVA基础回顾 这才学习Android的 ...

  8. MVC学习(四)几种分页的实现(3)

    在这篇MVC学习(四)几种分页的实现(2)博文中,根据URL中传入的两个参数(页码数,首页.上一页.下一页.末页的标记符)来获得对应的分页数据, 只是传入的参数太多,调用起来不太方便(标记符不能够写错 ...

  9. MyBatis学习 之 四、MyBatis配置文件

    目录(?)[-] 四MyBatis主配置文件 properties属性 settings设置 typeAliases类型别名 typeHandlers类型句柄 ObjectFactory对象工厂 pl ...

  10. 【转】MyBatis学习总结(四)——解决字段名与实体类属性名不相同的冲突

    [转]MyBatis学习总结(四)——解决字段名与实体类属性名不相同的冲突 在平时的开发中,我们表中的字段名和表对应实体类的属性名称不一定都是完全相同的,下面来演示一下这种情况下的如何解决字段名与实体 ...

随机推荐

  1. 推荐一款好用的国产web报表软件,轻松搞定复杂报表

    随着经济全球化程度的逐步加深以及全球市场的加速整合以便最大程度地对企业资源进行整合,从而达到降低成本和提高效率的目的.Web报表由于借助于web平台,即运用了B/S模式,即"浏览器/服务器& ...

  2. 企业环境下用脚本设置ubuntu防火墙

    ubuntu防火墙设置 初始状态下直接设置即可,尽量不要尝试 重装 iptables 以及ufw,很容易导致 防火墙崩掉,最后可能只能重装系统. 配置脚本 firewall.sh #/bin/bash ...

  3. shell之局域网内脚本检查主机网络通讯(附并发改写)

    转至:https://blog.csdn.net/yrx420909/article/details/104355825 需求:写一个脚本,局域网内,把能ping通的IP和不能ping通的IP分类,并 ...

  4. html实现随机验证码

    代码: <!DOCTYPE html> <html> <!-- head --> <head> <title>图片登录验证</titl ...

  5. Write Combining Buffer

    现代CPU使用了很多技术来降低对内存存取数据的延时,因为CPU执行的速度实在是太快了,在从内存存取数据的约120ns中,可以执行数百条指令. 其中多级的缓存架构就是为了减少这种延时,来提高CPU的利用 ...

  6. django程序在windows服务器上发布

    django程序在windows服务器上发布 参考文献:https://www.cnblogs.com/djangocn/p/10227006.html 1.安装 IIS 和 GCI 打开服务器管理器 ...

  7. CSDN中Markdown编辑器使用方法

    Markdown编辑器 如果想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识. 新的改变 CSDN中Markdown编辑器进行了一些功能拓展与语法支 ...

  8. HarmonyOS UI组件在线预览,程序员直呼“不要太方便~”

    一.介绍 以往大家如果想查看组件的使用效果,需要打开DevEco Studio构建工程.现在为了便于大家高效开发,文档上线了JS UI组件在线预览功能,无需本地构建工程,在线即可修改组件样式等参数.一 ...

  9. Kendo UI Grid 使用总结

    Kendo UI Grid控件的功能强大,这里将常用的一些功能总结一下. Kendo UI Grid 固定列 在使用Gird控件显示数据时,如果数据列过多,会出现横向滚动条,很多情况下,我们希望某些列 ...

  10. 编译OneAPI(支持Nvidia显卡)

    开始使用DPC++ 官方安装教程 预备条件 请确保当前开发环境满足如下条件: git cmake版本需要满足3.14及以上. python版本3.6以上的python. nijia版本1.8及以上(使 ...