Green 发表于 2021-7-21 11:24:42

Zabbix5.0(从0到1)--[全网最全]

Zabbix5.0(从0到1)
1.Zabbix测试环境部署
主机IP地址配置操作系统版本部署服务Zabbix10.0.0.1002核4GCentOS 7.6Zabbix-server+Zabbix-server+GrafanaNode110.0.0.111核1GCentOS 7.6Zabbix-agentNode210.0.0.121核1GCentOS 7.6Zabbix-agent2Node310.0.0.131核1GCentOS 7.6Zabbix-agent2Node410.0.0.141核1GCentOS 7.6Zabbix-agent22.安装Zabbix运行环境
2.0 安装PHP7.2
##要求PHP版本7.2以上+安装PHP第三方源
yum install epel-release -y
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm安装并且下载PHP7.2
yum install php72w-fpmphp72w-gd.x86_64 php72w-bcmath.x86_64 php72w-xml.x86_64 php72w-mbstring.x86_64 php72w-ldap.x86_64 php72w-mysqlnd.x86_64-y安装完成查看PHP版本信息
php-fpm -v启动PHP
systemctl start php-fpm
systemctl enable php-fpm
2.1 安装PHP7.4
##要求PHP版本7.2以上+安装PHP第三方源
yum -y install epel-release
yum -y install https://rpms.remirepo.net/enterprise/remi-release-7.rpm在CentOS 7上安装PHP 7.4版本
yum -y install yum-utils
yum repolist all |grep php
yum-config-manager --enable remi-php74
yum -y install phpphp-cli php-fpm php-mysqlnd php-zip php-devel php-gd php-mcrypt php-mbstring php-curl php-xml php-pear php-bcmath php-json php-redis安装完成查看PHP版本信息
php -v启动PHP
systemctl start php-fpm
systemctl enable php-fpm
#配置php-fpm修改php的配置文件
vim /etc/php-fpm.d/www.conf
user = nginx
group = nginx2.2 安装Nginx并编写配置文件
#下载安装Nginx
yum -y install nginx修改nginx的配置文件
vim /etc/nginx/nginx.conf
worker_processes1;
events {
worker_connections1024;
}
http {
include       mime.types;
default_typeapplication/octet-stream;
sendfile      on;
keepalive_timeout65;
server {

      listen       80;
      server_namelocalhost;
      location / {
            root   /html;
            indexindex.php index.html index.htm;
      }
      location ~ \.php$ {
            root         /html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_indexindex.php;
            fastcgi_paramSCRIPT_FILENAME/html$fastcgi_script_name;
            include      fastcgi_params;
      }
    }}
检查Nginx语法是否正确

nginx -t
启动Nginx

systemctl start nginx
systemctl enable nginx2.3 安装MySQL
#下载安装数据库
yum install mariadb-server -y启动并且初始化数据库
systemctl start mariadb
systemctl enable mariadb
mysql_secure_installation
先回车
再n
然后一路y创库授权
create database zabbix character set utf8 collate utf8_bin;
create user 'zabbix'@'localhost' identified by '123456';
grant all privileges on zabbix. to 'zabbix'@'localhost';2.4 部署zabbix-web的PHP代码
#创建代码目录
mkdir /html准备zabbix-web的php代码
https://cdn.zabbix.com/zabbix/sources/stable/5.0/
wget https://cdn.zabbix.com/zabbix/sources/stable/5.0/zabbix-5.0.8.tar.gz
tar xf zabbix-5.0.8.tar.gz
cd zabbix-5.0.8/ui/
cp -a/html/
chown -R nginx:nginx /html2.5 启动故障总结
#解决首次访问 zabbix-web安装界面 error 500的错误
mkdir /var/lib/php/session -p
chown -R nginx:nginx /var/lib/php/session/
#PHP爆红解决方法
vim /etc/php.ini
max_execution_time = 300
max_input_time = 300
post_max_size = 16M
date.timezone = Asia/Shanghai重新启动PHP
systemctl restart php-fpm.service
3.安装Zabbix-server
3.1 配置zabbix 5.0源
#配置zabbix 5.0源
rpm-ivhhttps://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
sed -i 's#http://repo.zabbix.com#https://mirrors.tuna.tsinghua.edu.cn/zabbix#g' /etc/yum.repos.d/zabbix.repo3.2 安装Zabbix_server
#安装zabbix-server
yum install zabbix-server-mysql -y3.3 导入Zabbix初始化数据
#导入zabbix初始化数据
zcat /usr/share/doc/zabbix-server-mysql-*/create.sql.gz|mysql -uzabbix -p123456 zabbix3.4 配置并且启动Zabbix-server
#配置zabbix-server
vim /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=123456
DBSocket=/tmp/mysql.sock软连接/tmp/mysql.sock
ln -s /var/lib/mysql/mysql.sock /tmp/启动zabbix-server
systemctl start zabbix-server.service
systemctl enable zabbix-server.service
netstat -lntup|grep 100514.安装Zabbix-web

#解决方法
vim /etc/php.ini
pdo_mysql.default_socket= /tmp/mysql.sock
mysqli.default_socket = /tmp/mysql.sock重启PHP
systemctl restart php-fpm5.浏览器登录Zabbix

Username:Admin
Password:zabbix
6.监控一台服务器主机
6.1 监控Zabbix本机
#监控zabbix自己下载监控模块
wget https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-agent-5.0.6-1.el7.x86_64.rpm安装监控模块
rpm -ivh zabbix-agent-5.0.6-1.el7.x86_64.rpm 启动并加入到开机自启
systemctl start zabbix-agent.service
systemctl enable zabbix-agent.service

6.2 添加其他的主机
#添加其他的主机监控下载并且安装服务
wget https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-agent-5.0.6-1.el7.x86_64.rpm修改配置文件
vim /etc/zabbix/zabbix_agentd.conf
...
Server=10.0.0.100   #Zabbix监控主节点IP地址
...启动并加入开机自启
systemctl start zabbix-agent.service
systemctl enable zabbix-agent.service



6.3 Zabbix-agent2的介绍及安装
Zabbix-agent2作为一款新的agent服务,未来可能会替代原有的agent
特性:
降低了TCP连接的数量.
Zabbix-agent2使用Go语言开发.
集成了Zabbix-agent原有的所有功能.
    易于通过插件扩展使用第三方功能.6.3.1 安装Zabbix-agent2
#配置zabbix源
rpm-ivhhttps://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
sed -i 's#http://repo.zabbix.com#https://mirrors.tuna.tsinghua.edu.cn/zabbix#g' /etc/yum.repos.d/zabbix.repo#下载安装Zabbix-agent2
yum -y install zabbix-agent2#启动并且加入开机自启
systemctl start zabbix-agent2.service
systemctl enable zabbix-agent2.service
6.3.2 Zabbix-agent2重要目录
# rpm -ql zabbix-agent2
/etc/logrotate.d/zabbix-agent2
/etc/zabbix/zabbix_agent2.conf
/etc/zabbix/zabbix_agent2.d
/usr/lib/systemd/system/zabbix-agent2.service
/usr/lib/tmpfiles.d/zabbix_agent2.conf
/usr/sbin/zabbix_agent2
/usr/share/doc/zabbix-agent2-5.0.13
/var/log/zabbix
/var/run/zabbix7.自定义监控项
7.1 什么是监控项
监控项:就是我们想要监控的指标,例如剩余内存,磁盘空间,服务的状态等等
每一个监控项,都有一个唯一的key,简洁明了(相当于shell脚本的变量名)
只需要安装zabbix-agent,默认就支持大量的监控项,但是linux模板并没有使用所有监控项
Template OS Linux by Zabbix agent主要监控了cpu,内存,磁盘,网卡,安全,它们都属于通用监控
应用集是监控项的分组7.2 使用内置Key监控Nginx的状态




7.3 安装Zabbix-get测试取值
#只在Zabbix-server上安装
wget https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-get-5.0.13-1.el7.x86_64.rpm
rpm -ivh zabbix-get-5.0.13-1.el7.x86_64.rpm测试取值
zabbix_get -s 127.0.0.1 -k proc.num参数
-s 被监控主机的ip地址
-p 端口
-k 指定监控项的key7.4 自定义带参数的监控项
#建议把agent自定义监控项独立成一个配置文件
vim /etc/zabbix/zabbix_agentd.d/nginx_status.conf
UserParameter=nginx_status,netstat -lntp|grep -c nginx8.自定义触发器
#触发器:设置一个报警条件注意:一个触发器至少对应一个监控项




8.1 测试添加的触发器是否能触发自定义监控项
#node1
systemctl stop nginx可以看下图,当Nginx停止后,Zabbix马上监测到并立马报警.


9.自定义报警
9.1 邮件报警
9.1.1 配置邮箱发件人
#配置邮箱发件人



9.1.2 配置收件人
#配置收件人

9.1.3 配置触发器动作
#配置触发器动作
9.1.4 测试触发报警
#node1
systemctl stop nginx

9.1.5 自定义告警规则
##故障告警自定义[标题]
故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障![内容]
告警主机:{HOSTNAME1}
告警主机:{HOST.IP}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件 ID:{EVENT.ID}恢复告警自定义[标题]
恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复![内容]
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警持续:{EVENT.DURATION}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件 ID:{EVENT.ID}9.2 企业微信报警(自定义脚本报警)
9.2.1 企业微信信息收集
##微信企业号设置通讯录设置
登陆微信企业号控制台
点击左侧“通讯录”,新增部门(技术部)与子部门(运维部),并添加用户
点击(运维部)后方的三角,修改部门,记录部门ID
创建应用
点击左侧“应用中心”,新建消息型应用,应用名称为“zabbix报警”
“应用可见范围”,添加刚刚新建的子部门(运维部)
点击“zabbix报警”,记录应用ID
应用权限设置
点击左侧“设置”,权限管理,新建普通管理组,名称填写“zabbix报警组”
点击修改“通讯录权限”,勾选(技术部)后方的管理
点击修改“应用权限”,勾选刚刚创建的“zabbix报警”
点击刚刚创建的“zabbix报警组”,记录左侧的CorpID与Secret
收集微信相关信息
1.记录应用ID
3.记录CorpID与Secret
4.记录子部门(运维部)ID#企业ID
ww8d907d93e5cdb1fa AgentId
1000004Secret
EzTcGJ2sxmO_b_LNLyaUAtEnKZm5d_vGbi9aDgJuz3A9.2.2 Zabbix-server配置
#修改配置文件
vim /etc/zabbix/zabbix_server.conf
AlertScriptsPath=/usr/lib/zabbix/alertscripts   #[如果不存在则自动创建]9.2.3 安装组件requests
#方法一
yum -y install python-pip
pip install requests
pip install --upgrade requests#方法二
wget https://pypi.python.org/packages/c3/38/d95ddb6cc8558930600be088e174a2152261a1e0708a18bf91b5b8c90b22/requests-2.18.3.tar.gz
tar zxvf requests-2.18.3.tar.gz
cd requests-2.18.3
python setup.py build
python setup.py install9.2.4 下载WeChat报警脚本
git clone https://github.com/X-Mars/Zabbix-Alert-WeChat.git
cp Zabbix-Alert-WeChat/wechat.py /usr/lib/zabbix/alertscripts
chmod +x /usr/lib/zabbix/alertscripts/wechat.py9.2.5 修改WeChat报警脚本
#!/usr/bin/python2.7__coding:utf-8 __auther:火星小刘
import requests,sys,json
import urllib3
urllib3.disable_warnings()
reload(sys)
sys.setdefaultencoding('utf-8')
def GetTokenFromServer(Corpid,Secret):
Url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken"
Data = {

      "corpid":Corpid,
      "corpsecret":Secret
    }
    r = requests.get(url=Url,params=Data,verify=False)
    print(r.json())
    if r.json()['errcode'] != 0:
      return False
    else:
      Token = r.json()['access_token']
      file = open('/tmp/zabbix_wechat_config.json', 'w')
      file.write(r.text)
      file.close()
      return Tokendef SendMessage(User,Agentid,Subject,Content):
try:

      file = open('/tmp/zabbix_wechat_config.json', 'r')
      Token = json.load(file)['access_token']
      file.close()
    except:
      Token = GetTokenFromServer(Corpid, Secret)n = 0
Url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=%s" % Token
Data = {

      "touser": User,      # 企业号中的用户帐号,在zabbix用户Media中配置,如果配置不正常,将按部门发送。
      #"totag": Tagid,       # 企业号中的标签id,群发使用(推荐)
      #"toparty": Partyid,   # 企业号中的部门id,群发时使用。
      "msgtype": "text",   # 消息类型。
      "agentid": Agentid,    # 企业号中的应用id。
      "text": {
            "content": Subject + '\n' + Content
      },
      "safe": "0"
    }
    r = requests.post(url=Url,data=json.dumps(Data),verify=False)
    while r.json()['errcode'] != 0 and n < 4:
      n+=1
      Token = GetTokenFromServer(Corpid, Secret)
      if Token:
            Url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=%s" % Token
            r = requests.post(url=Url,data=json.dumps(Data),verify=False)
            print(r.json())return r.json()
if __name__ == '__main__':
User = sys.argv                                    # zabbix传过来的第一个参数
Subject = str(sys.argv)                            # zabbix传过来的第二个参数
Content = str(sys.argv)                            # zabbix传过来的第三个参数
Corpid = "wxaf"                                       # CorpID是企业号的标识
Secret = "aKDdCRT76"                                  # Secret是管理组凭证密钥
#Tagid = "1"                                       # 通讯录标签ID
Agentid = "1000001"                                  # 应用ID
#Partyid = "1"                                    # 部门ID
Status = SendMessage(User,Agentid,Subject,Content)
print Status9.2.6 测试脚本是否可用
# python /usr/lib/zabbix/alertscripts/wechat.pywww web 123
9.2.7 Zabbix-Web界面配置
#进入:管理-->报警媒介类型-->创建媒体类型
#配置发件人
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}


9.2.8 测试触发报警
#node1
systemctl stop nginx

9.2.9 自定义告警规则
##故障告警自定义[标题]
故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障![内容]
告警主机:{HOSTNAME1}
告警主机:{HOST.IP}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件 ID:{EVENT.ID}恢复告警自定义[标题]
恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复![内容]
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警持续:{EVENT.DURATION}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件 ID:{EVENT.ID}9.3 钉钉报警(自定义脚本报警)
9.3.1 钉钉机器人创建



9.3.2 Zabbix-server配置
#修改配置文件
vim /etc/zabbix/zabbix_server.conf
AlertScriptsPath=/usr/lib/zabbix/alertscripts   #[如果不存在则自动创建]9.3.3 编写钉钉报警脚本
vim /usr/lib/zabbix/alertscripts/dingding.py!/bin/pythoncoding:utf-8zabbix钉钉报警
import requests,json,sys,os,datetime
webhook="https://oapi.dingtalk.com/robot/send?access_token=8ea7abd3db4b49a9e898e911920d4899c526ae78f5794c977cfca8b6c0bjsdd"      #说明:这里改为自己创建的机器人的webhook的值
user=sys.argv
text=sys.argv
data={
"msgtype": "text",
"text": {

      "content": text
    },
    "at": {
      "atMobiles": [
            user
      ],
      "isAtAll": False      #False会@一个人.Ture会@所有人
    }}headers = {'Content-Type': 'application/json'}
x=requests.post(url=webhook,data=json.dumps(data, ensure_ascii=False),headers=headers)
if os.path.exists("/usr/local/zabbix/log/dingding.log"):
f=open("/usr/local/zabbix/log/dingding.log","a+")
else:
f=open("/usr/local/zabbix/log/dingding.log","w+")
f.write("\n"+"--"*30)
if x.json()["errcode"] == 0:
f.write("\n"+str(datetime.datetime.now())+"    "+str(user)+"    "+"发送成功"+"\n"+str(text))
f.close()
else:
f.write("\n"+str(datetime.datetime.now()) + "    " + str(user) + "    " + "发送失败" + "\n" + str(text))
f.close()9.3.4 钉钉报警脚本修改权限
#赋予脚本执行权限
# chmod +x dingding.py
创建上面脚本中的日志路径
# cd /var/log/zabbix/
# touch /var/log/zabbix/zabbix_dingding.log
# chown zabbix.zabbix /var/log/zabbix/zabbix_dingding.log手动测试脚本是否可以正常发送消息[这个条文档记录的测试信息,忽略]
# ./dingding.py A B "测试"9.3.5 Zabbix-server配置
#进入:管理-->报警媒介类型-->创建媒体类型
#配置发件人
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}


9.3.6 测试触发报警
#node1
systemctl stop nginx
#可以看到我们的故障告警和恢复告警都已经能发送成功了!

9.3.7 自定义告警规则
##故障告警自定义[标题]
故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障![内容]
告警主机:{HOSTNAME1}
告警主机:{HOST.IP}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件 ID:{EVENT.ID}恢复告警自定义[标题]
恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复![内容]
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警持续:{EVENT.DURATION}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件 ID:{EVENT.ID}10.自定义图形和Grafana出图
10.1 解决中文乱码问题


#进入字体管理目录
# cd /html/assets/fonts/上传中文字体
rz查看是否上传成功
# ls
DejaVuSans.ttfsimsun.ttc修改上传字体的名称为DejaVuSans
mv simsun.ttc DejaVuSans.ttf打开Zabbix-web界面点击图形就能看到我们已经成功解决中文乱码的问题了


10.2 自定义图形



10.3 安装Grafana
#grafana出图      gtafana:插件/数据源(设置Zabbix)下载gtafana的rpm包
wget https://dl.grafana.com/oss/release/grafana-8.0.5-1.x86_64.rpmyum安装gtafana
yum localinstall grafana-8.0.5-1.x86_64.rpm -y启动并且设置为开机自启
systemctl enable grafana-server.service
systemctl start grafana-server.service
10.4 安装Zabbix插件
# grafana-cli plugins install alexanderzobnin-zabbix-app 4.1.2
systemctl restart grafana-server
10.5 Grafana启用Zabbix插件



10.6 Grafana新建Zabbix数据源






10.7 导入Dashboard模板
#进入官网下载模板
官网:www.grafana.com
模板页面:https://grafana.com/grafana/dashboards示例用的模板为
9713
10.8 测试触发报警
#node1
systemctl stop nginx
11.Zabbix自动发现和自动注册[主动]
11.1 自动发现


11.2 添加主机的规则




11.3 自动注册





11.4 Zabbix-agent2修改配置文件
vim /etc/zabbix/zabbix_agent2.conf
Server=10.0.0.100         #Zabbix-server主机地址
ServerActive=10.0.0.100   #Zabbix-server主机地址
Hostname=10.0.0.14          #本机地址
HostMetadata=node         #关键字#配置完成后重新启动即可
systemctl restart zabbix-agent2.service11.5 Zabbix自动发现已成功

11.6 Zabbix自动发现前,服务器基本操作
#配置zabbix源
rpm-ivhhttps://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
sed -i 's#http://repo.zabbix.com#https://mirrors.tuna.tsinghua.edu.cn/zabbix#g' /etc/yum.repos.d/zabbix.repo#下载安装Zabbix-agent2
yum -y install zabbix-agent2#启动并且加入开机自启
systemctl start zabbix-agent2.service
systemctl enable zabbix-agent2.service
#修改Zabbix-agent2配置文件
vim /etc/zabbix/zabbix_agent2.conf
Server=10.0.0.100         #Zabbix-server主机地址
ServerActive=10.0.0.100   #Zabbix-server主机地址
Hostname=10.0.0.xx          #本机地址
HostMetadata=node         #关键字#配置完成后重新启动即可
systemctl restart zabbix-agent2.service#注意:服务器部署完成的这些操作,就可以去Zabbix-Web界面等待大约1分钟,就会发现新服务器,已经被监控到了.12.低级自动发现
12.1 新增一个监控项原型
#新增一个监控项原型
增加一个UserParameter=xxxx[],cmd $1
监控每块网卡的mac地址
# cat zbx_net.conf
UserParameter=net_mac[],ifconfig $1|awk '/ether /{print $$2}'
master节点手动查看是否能触发监控项
# zabbix_get -s 10.0.0.11 -k net_mac
00:0c:29:2e:16:18



12.2 创建监控项


13.自定义监控模板
模板:定义[监控项,应用集,触发器,图形等资源]
模板可以包含子模板
模板可以导入导出,可以分享13.1 自定义模板
#首先修改Nginx配置文件[开启Nginx监控页面]
vim /etc/nginx/nginx.conf
......

      location = /nginx_status {
             stub_status;
             access_log    off;
      }......#测试
# curl http://127.0.0.1/nginx_status
Active connections: 1
server accepts handled requests
7 7 7
Reading: 0 Writing: 1 Waiting: 0
#自定义监控项
# cat nginx_status.conf
UserParameter=nginx_status,netstat -lntu|grep -w -c '80'
UserParameter=nginx_accepts,curl http://127.0.0.1/nginx_status 2>/dev/null|awk 'NR==3{print $1}'
UserParameter=nginx_active_con,curl http://127.0.0.1/nginx_status 2>/dev/null|awk 'NR==1{print $NF}'
UserParameter=nginx_Reading,curl http://127.0.0.1/nginx_status 2>/dev/null|awk 'NR==4{print $2}'
UserParameter=nginx_Writing,curl http://127.0.0.1/nginx_status 2>/dev/null|awk 'NR==4{print $4}'
UserParameter=nginx_Raiting,curl http://127.0.0.1/nginx_status 2>/dev/null|awk 'NR==4{print $NF}'#创建监控项
13.2 制作模板


13.3 添加监控项



#后面大家就可以用同样发方法去复制触发器,复制图形等等.13.4 使用模板注意事项
#开启监控页面.导入模板[兼容性].把zabbix的取值配置文件,放入到指定目录/etc/zabbix/zabbix_agentd.d/.如果有取值脚本,需要把取值也放在对应的目录.zabbix-get调试取值.在目标主机链接刚导入的模板.验证,查看最新数据.

14.Zabbix-agent主动和被动的区别
#被动
如果有100个监控项,zabbix-server对agent进行100次取值.#主动
如果有100个监控项,agent主动向zabbix-server索要任务清单,根据清单采集所有监控项,一次性发送给zabbix-server.#配置主动
1.Zabbix-server配置主动模板
2.agent需要配置14.1 克隆模板

14.2 修改克隆后的模板为主动模式



14.3 查看最新数据

15.Zabbix监控角度总结
#物理层
    [物理服务器,物理交换机]物理服务器
    物理交换机
    [接口流量,snmp模板]系统层
    --Zabbix自带模板应用层
    业务层
    [网站访问速度,用户访问量pv\uv\ip,用户活跃度--日活,周活,月活,订单量,利润]
文档来源:51CTO技术博客https://blog.51cto.com/u_15111052/3135136
页: [1]
查看完整版本: Zabbix5.0(从0到1)--[全网最全]