3 监控项、触发器、web监控、nginx监控
1、自定义监控项
Item 参数文档
https://www.zabbix.com/documentation/3.0/manual/config/items/itemtypes/zabbix_agent
1.查看与测试item
(1)查看所有的item
[root@linux-node1 ~]# zabbix_agentd -p
(2)查看 system.cpu.util[,idle]


文档参数查看

间隔时间1h

(3)测试item

[root@linux-node1 ~]# zabbix_get -s linux-node2.example.com -k agent.ping [root@linux-node1 ~]# zabbix_get -s linux-node2.example.com -k system.hostname
linux-node2.example.com
[root@linux-node1 ~]# zabbix_get -s linux-node2.example.com -k system.cpu.switches [root@linux-node1 ~]# zabbix_get -s linux-node2.example.com -k system.cpu.util[,idle]
99.800067
2.item1:查看文件大小
全程在 node2上面
1 取值方法: /etc/services文件的大小
[root@linux-node1 /etc/zabbix/zabbix_agentd.d]# stat -c %s /etc/services
2 查看默认conf配置以及格式
[root@linux-node1 ~]# cd /etc/zabbix/zabbix_agentd.d/
[root@linux-node1 /etc/zabbix/zabbix_agentd.d]# ll
total
-rw-r--r-- root root May : userparameter_mysql.conf [root@linux-node1 /etc/zabbix/zabbix_agentd.d]# tail - userparameter_mysql.conf
UserParameter=mysql.ping,HOME=/var/lib/zabbix mysqladmin ping | grep -c alive
UserParameter=mysql.version,mysql -V

3 添加自定义的 node2
[root@linux-node2 /etc/zabbix/zabbix_agentd.d]# vim monitor_file.conf
UserParameter=monitor_file,stat -c %s /etc/services
4 重启agent服务
[root@linux-node2 /etc/zabbix/zabbix_agentd.d]# systemctl restart zabbix-agent
[root@linux-node2 /etc/zabbix/zabbix_agentd.d]# netstat -ntlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0.0.0.0: 0.0.0.0:* LISTEN /zabbix_agentd
tcp6 ::: :::* LISTEN /zabbix_agentd
5 在server上Test
[root@linux-node1 /etc/zabbix/zabbix_agentd.d]# zabbix_get -s linux-node2.example.com -k monitor_file
6 网页添加item

7 添加成功

8 查看数据

3. item2:监控80端口
1 安装httpd,启动
[root@linux-node2 ~]# yum install httpd -y
[root@linux-node2 ~]# systemctl enable httpd
[root@linux-node2 ~]# systemctl restart httpd
[root@linux-node2 ~]# netstat -ntlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 192.168.194.132: 0.0.0.0:* LISTEN /httpd
2 添加item:监听80端口

3 查看数据
[root@linux-node1 /etc/zabbix/zabbix_agentd.d]# systemctl restart httpd

4. 自定义数据展示
1.定义数据
查看所有的



选择

结果

2 技术出图
[root@linux-node2 ~]# systemctl restart httpd
[root@linux-node2 ~]# systemctl stop httpd


3 技术出图2


4 字体-解决中文乱码
C:\Windows\Fonts

字体路径查找
[root@linux-node1 ~]# cat /etc/httpd/conf.d/zabbix.conf

[root@linux-node1 ~]# cd /usr/share/zabbix/fonts/
[root@linux-node1 /usr/share/zabbix/fonts]# ll
[root@linux-node1 /usr/share/zabbix/fonts]# ls
graphfont.ttf STZHONGS.TTF
[root@linux-node1 /usr/share/zabbix/fonts]# mv STZHONGS.TTF graphfont.ttf

5 Item数据解析
(1)数据格式定制

(2)存储值 每秒一次


取值命令
[root@linux-node1 /usr/share/zabbix/fonts]
# zabbix_get -s 192.168.194.131 -k system.cpu.switches
48199769

文档解释

2、触发器 -> 执行动作
1.创建触发器

触发器表达式


2.短信报警 Action
1 触发了有什么动作,发送邮件




2 如何发送邮件
https://www.zabbix.com/documentation/3.0/manual/installation/requirements
有邮件模块smtp

3 发件人


4 收件人



5 test报警
重启80端口


发送邮件


5 邮件内容自定义
https://www.zabbix.com/documentation/3.0/manual/appendix/macros/supported_by_location
日期:{DATE}
时间:{TIME}
主机:{HOST.NAME}
. {ITEM.NAME1} ({HOST.NAME1}:{ITEM.KEY1}): {ITEM.VALUE1}

启动httpd,停止httpd


6 报警声音设置

3.微信报警(未完成)
https://blog.csdn.net/yanggd1987/article/details/80093310
https://www.cnblogs.com/ssgeek/p/9223559.html
https://github.com/unixhot/Zabbix-Alert-WeChat
一般是脚本报警


查看报警目录



查看报警代码.py


4.短信平台(未完成)
阿里大鱼

http://tool.chinaz.com/tools/urlencode.aspx

3、web监控
只能zabbix server上外网,其他agent都不能上
1.监控url
1 命令行执行test

2 添加web监控



更新间隔时间 120s
模拟浏览器agent
返回状态码200

3 添加成功



2.缓存配置重新加载
[root@linux-node1 ~]# zabbix_server -R config_cache_reload
zabbix_server [20304]: command sent successfully
[root@linux-node1 ~]# zabbix_server -h

3.拓展作业
作业1:
登录验证 filter
退出验证 filter
Authertication 是ssl认证登录
验证登录可以选择,除了验证码不可以

作业2:监控天气
http://www.weather.com.cn/data/cityinfo/101160101.html
https://www.cnblogs.com/mthoutai/p/6937344.html

4、nginx监控
Nginx模板
https://gitee.com/tinee/zabbix-nginx-status
https://www.cnblogs.com/bluecarrife/p/9229693.html
https://cloud.tencent.com/developer/article/1400917
1.安装配置启动nginx
1 安装
[root@linux-node2 ~]# yum list |grep nginx*
nginx.x86_64 :1.12.-.el7 @epel
nginx-all-modules.noarch :1.12.-.el7 @epel
[root@linux-node2 ~]# yum install -y nginx.x86_64 nginx-all-modules.noarch
2 配置文件,开启nginx监控
[root@linux-node2 ~]# vim /etc/nginx/nginx.con
location /ngx_status {
stub_status on ; #开启访问功能stub_status功能
access_log off; #关闭访问日志
allow 192.168.194.0/; #允许访问的ip网段
allow 127.0.0.1;
deny all; #拒绝除了允许的ip外的所有ip访问
}

3 检查语法,启动
[root@linux-node2 ~]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful [root@linux-node2 ~]# systemctl stop httpd
[root@linux-node2 ~]# systemctl restart nginx 端口
[root@linux-node2 ~]# netstat -nltp
/redis-server
tcp 0.0.0.0: 0.0.0.0:* LISTEN /nginx: maste
2.准备conf文件,shell脚本,模板
1 新建conf文件
# 参考系统自带的
[root@linux-node2 /etc/zabbix/zabbix_agentd.d]# tail - userparameter_mysql.conf
UserParameter=mysql.ping[*],HOME=/var/lib/zabbix mysqladmin -u$ -p$ ping | grep -c alive
UserParameter=mysql.version,mysql -V
[root@linux-node2 /etc/zabbix/zabbix_agentd.d]# vim nginx_monitor.conf
UserParameter=nginx.status[*],/etc/zabix/zabbix_agentd.d/nginx_monitor.sh $
配置文件的相对路径
[root@linux-node2 /etc/zabbix/zabbix_agentd.d]# vim /etc/zabbix/zabbix_agentd.conf

2 添加.sh 文件,网上百度
[root@linux-node2 /etc/zabbix/zabbix_agentd.d]# vim nginx_monitor.sh
#!/bin/bash HOST="192.168.194.132"
PORT=""
# 检测nginx进程是否存在
function ping {
/sbin/pidof nginx | wc -l
} # 检测nginx性能
function active {
/usr/bin/curl "http://$HOST:$PORT/ngx_status/" >/dev/null| grep 'Active' | awk '{print $NF}'
}
function reading {
/usr/bin/curl "http://$HOST:$PORT/ngx_status/" >/dev/null| grep 'Reading' | awk '{print $2}'
}
function writing {
/usr/bin/curl "http://$HOST:$PORT/ngx_status/" >/dev/null| grep 'Writing' | awk '{print $4}'
}
function waiting {
/usr/bin/curl "http://$HOST:$PORT/ngx_status/" >/dev/null| grep 'Waiting' | awk '{print $6}'
}
function accepts {
/usr/bin/curl "http://$HOST:$PORT/ngx_status/" >/dev/null| awk NR== | awk '{print $1}'
}
function handled {
/usr/bin/curl "http://$HOST:$PORT/ngx_status/" >/dev/null| awk NR== | awk '{print $2}'
}
function requests {
/usr/bin/curl "http://$HOST:$PORT/ngx_status/" >/dev/null| awk NR== | awk '{print $3}'
}
# 执行function
$
执行权限
[root@linux-node2 /etc/zabbix/zabbix_agentd.d]# chmod +x nginx_monitor.sh
4 导入网上的模板
模板文件,网上百度
zbx_nginx_templates.xml
<?xml version="1.0" encoding="UTF-8"?>
<zabbix_export>
<version>3.0</version>
<date>--13T07::46Z</date>
<groups>
<group>
<name>Templates</name>
</group>
</groups>
<templates>
<template>
<template>Template App Nginx</template>
<name>Template App Nginx</name>
<description/>
<groups>
<group>
<name>Templates</name>
</group>
</groups>
<applications>
<application>
<name>Nginx</name>
</application>
</applications>
<items>
<item>
<name>Nginx Accepted connections\min</name>
<type></type>
<snmp_community/>
<multiplier></multiplier>
<snmp_oid/>
<key>nginx.status[accepts]</key>
<delay></delay>
<history></history>
<trends></trends>
<status></status>
<value_type></value_type>
<allowed_hosts/>
<units/>
<delta></delta>
<snmpv3_contextname/>
<snmpv3_securityname/>
<snmpv3_securitylevel></snmpv3_securitylevel>
<snmpv3_authprotocol></snmpv3_authprotocol>
<snmpv3_authpassphrase/>
<snmpv3_privprotocol></snmpv3_privprotocol>
<snmpv3_privpassphrase/>
<formula></formula>
<delay_flex/>
<params/>
<ipmi_sensor/>
<data_type></data_type>
<authtype></authtype>
<username/>
<password/>
<publickey/>
<privatekey/>
<port/>
<description/>
<inventory_link></inventory_link>
<applications>
<application>
<name>Nginx</name>
</application>
</applications>
<valuemap/>
<logtimefmt/>
</item>
<item>
<name>Nginx Active connections</name>
<type></type>
<snmp_community/>
<multiplier></multiplier>
<snmp_oid/>
<key>nginx.status[active]</key>
<delay></delay>
<history></history>
<trends></trends>
<status></status>
<value_type></value_type>
<allowed_hosts/>
<units/>
<delta></delta>
<snmpv3_contextname/>
<snmpv3_securityname/>
<snmpv3_securitylevel></snmpv3_securitylevel>
<snmpv3_authprotocol></snmpv3_authprotocol>
<snmpv3_authpassphrase/>
<snmpv3_privprotocol></snmpv3_privprotocol>
<snmpv3_privpassphrase/>
<formula></formula>
<delay_flex/>
<params/>
<ipmi_sensor/>
<data_type></data_type>
<authtype></authtype>
<username/>
<password/>
<publickey/>
<privatekey/>
<port/>
<description/>
<inventory_link></inventory_link>
<applications>
<application>
<name>Nginx</name>
</application>
</applications>
<valuemap/>
<logtimefmt/>
</item>
<item>
<name>Nginx Handled connections\min</name>
<type></type>
<snmp_community/>
<multiplier></multiplier>
<snmp_oid/>
<key>nginx.status[handled]</key>
<delay></delay>
<history></history>
<trends></trends>
<status></status>
<value_type></value_type>
<allowed_hosts/>
<units/>
<delta></delta>
<snmpv3_contextname/>
<snmpv3_securityname/>
<snmpv3_securitylevel></snmpv3_securitylevel>
<snmpv3_authprotocol></snmpv3_authprotocol>
<snmpv3_authpassphrase/>
<snmpv3_privprotocol></snmpv3_privprotocol>
<snmpv3_privpassphrase/>
<formula></formula>
<delay_flex/>
<params/>
<ipmi_sensor/>
<data_type></data_type>
<authtype></authtype>
<username/>
<password/>
<publickey/>
<privatekey/>
<port/>
<description/>
<inventory_link></inventory_link>
<applications>
<application>
<name>Nginx</name>
</application>
</applications>
<valuemap/>
<logtimefmt/>
</item>
<item>
<name>Nginx Proc_Num</name>
<type></type>
<snmp_community/>
<multiplier></multiplier>
<snmp_oid/>
<key>nginx.status[proc_num]</key>
<delay></delay>
<history></history>
<trends></trends>
<status></status>
<value_type></value_type>
<allowed_hosts/>
<units/>
<delta></delta>
<snmpv3_contextname/>
<snmpv3_securityname/>
<snmpv3_securitylevel></snmpv3_securitylevel>
<snmpv3_authprotocol></snmpv3_authprotocol>
<snmpv3_authpassphrase/>
<snmpv3_privprotocol></snmpv3_privprotocol>
<snmpv3_privpassphrase/>
<formula></formula>
<delay_flex/>
<params/>
<ipmi_sensor/>
<data_type></data_type>
<authtype></authtype>
<username/>
<password/>
<publickey/>
<privatekey/>
<port/>
<description/>
<inventory_link></inventory_link>
<applications>
<application>
<name>Nginx</name>
</application>
</applications>
<valuemap/>
<logtimefmt/>
</item>
<item>
<name>Nginx Reading Connections</name>
<type></type>
<snmp_community/>
<multiplier></multiplier>
<snmp_oid/>
<key>nginx.status[reading]</key>
<delay></delay>
<history></history>
<trends></trends>
<status></status>
<value_type></value_type>
<allowed_hosts/>
<units/>
<delta></delta>
<snmpv3_contextname/>
<snmpv3_securityname/>
<snmpv3_securitylevel></snmpv3_securitylevel>
<snmpv3_authprotocol></snmpv3_authprotocol>
<snmpv3_authpassphrase/>
<snmpv3_privprotocol></snmpv3_privprotocol>
<snmpv3_privpassphrase/>
<formula></formula>
<delay_flex/>
<params/>
<ipmi_sensor/>
<data_type></data_type>
<authtype></authtype>
<username/>
<password/>
<publickey/>
<privatekey/>
<port/>
<description/>
<inventory_link></inventory_link>
<applications>
<application>
<name>Nginx</name>
</application>
</applications>
<valuemap/>
<logtimefmt/>
</item>
<item>
<name>Nginx Requests\min</name>
<type></type>
<snmp_community/>
<multiplier></multiplier>
<snmp_oid/>
<key>nginx.status[requests]</key>
<delay></delay>
<history></history>
<trends></trends>
<status></status>
<value_type></value_type>
<allowed_hosts/>
<units/>
<delta></delta>
<snmpv3_contextname/>
<snmpv3_securityname/>
<snmpv3_securitylevel></snmpv3_securitylevel>
<snmpv3_authprotocol></snmpv3_authprotocol>
<snmpv3_authpassphrase/>
<snmpv3_privprotocol></snmpv3_privprotocol>
<snmpv3_privpassphrase/>
<formula></formula>
<delay_flex/>
<params/>
<ipmi_sensor/>
<data_type></data_type>
<authtype></authtype>
<username/>
<password/>
<publickey/>
<privatekey/>
<port/>
<description/>
<inventory_link></inventory_link>
<applications>
<application>
<name>Nginx</name>
</application>
</applications>
<valuemap/>
<logtimefmt/>
</item>
<item>
<name>Nginx Waiting Connections</name>
<type></type>
<snmp_community/>
<multiplier></multiplier>
<snmp_oid/>
<key>nginx.status[waiting]</key>
<delay></delay>
<history></history>
<trends></trends>
<status></status>
<value_type></value_type>
<allowed_hosts/>
<units/>
<delta></delta>
<snmpv3_contextname/>
<snmpv3_securityname/>
<snmpv3_securitylevel></snmpv3_securitylevel>
<snmpv3_authprotocol></snmpv3_authprotocol>
<snmpv3_authpassphrase/>
<snmpv3_privprotocol></snmpv3_privprotocol>
<snmpv3_privpassphrase/>
<formula></formula>
<delay_flex/>
<params/>
<ipmi_sensor/>
<data_type></data_type>
<authtype></authtype>
<username/>
<password/>
<publickey/>
<privatekey/>
<port/>
<description/>
<inventory_link></inventory_link>
<applications>
<application>
<name>Nginx</name>
</application>
</applications>
<valuemap/>
<logtimefmt/>
</item>
<item>
<name>Nginx Writing Connections</name>
<type></type>
<snmp_community/>
<multiplier></multiplier>
<snmp_oid/>
<key>nginx.status[writing]</key>
<delay></delay>
<history></history>
<trends></trends>
<status></status>
<value_type></value_type>
<allowed_hosts/>
<units/>
<delta></delta>
<snmpv3_contextname/>
<snmpv3_securityname/>
<snmpv3_securitylevel></snmpv3_securitylevel>
<snmpv3_authprotocol></snmpv3_authprotocol>
<snmpv3_authpassphrase/>
<snmpv3_privprotocol></snmpv3_privprotocol>
<snmpv3_privpassphrase/>
<formula></formula>
<delay_flex/>
<params/>
<ipmi_sensor/>
<data_type></data_type>
<authtype></authtype>
<username/>
<password/>
<publickey/>
<privatekey/>
<port/>
<description/>
<inventory_link></inventory_link>
<applications>
<application>
<name>Nginx</name>
</application>
</applications>
<valuemap/>
<logtimefmt/>
</item>
</items>
<discovery_rules/>
<macros/>
<templates/>
<screens/>
</template>
</templates>
<triggers>
<trigger>
<expression>{Template App Nginx:nginx.status[proc_num].last()}=</expression>
<name>Nginx is down on {HOST.NAME}</name>
<url/>
<status></status>
<priority></priority>
<description/>
<type></type>
<dependencies/>
</trigger>
</triggers>
<graphs>
<graph>
<name>Active connections</name>
<width></width>
<height></height>
<yaxismin>0.0000</yaxismin>
<yaxismax>100.0000</yaxismax>
<show_work_period></show_work_period>
<show_triggers></show_triggers>
<type></type>
<show_legend></show_legend>
<show_3d></show_3d>
<percent_left>0.0000</percent_left>
<percent_right>0.0000</percent_right>
<ymin_type_1></ymin_type_1>
<ymax_type_1></ymax_type_1>
<ymin_item_1></ymin_item_1>
<ymax_item_1></ymax_item_1>
<graph_items>
<graph_item>
<sortorder></sortorder>
<drawtype></drawtype>
<color>00C800</color>
<yaxisside></yaxisside>
<calc_fnc></calc_fnc>
<type></type>
<item>
<host>Template App Nginx</host>
<key>nginx.status[active]</key>
</item>
</graph_item>
<graph_item>
<sortorder></sortorder>
<drawtype></drawtype>
<color>C80000</color>
<yaxisside></yaxisside>
<calc_fnc></calc_fnc>
<type></type>
<item>
<host>Template App Nginx</host>
<key>nginx.status[waiting]</key>
</item>
</graph_item>
</graph_items>
</graph>
<graph>
<name>Nginx Connections\min</name>
<width></width>
<height></height>
<yaxismin>0.0000</yaxismin>
<yaxismax>100.0000</yaxismax>
<show_work_period></show_work_period>
<show_triggers></show_triggers>
<type></type>
<show_legend></show_legend>
<show_3d></show_3d>
<percent_left>0.0000</percent_left>
<percent_right>0.0000</percent_right>
<ymin_type_1></ymin_type_1>
<ymax_type_1></ymax_type_1>
<ymin_item_1></ymin_item_1>
<ymax_item_1></ymax_item_1>
<graph_items>
<graph_item>
<sortorder></sortorder>
<drawtype></drawtype>
<color>00C800</color>
<yaxisside></yaxisside>
<calc_fnc></calc_fnc>
<type></type>
<item>
<host>Template App Nginx</host>
<key>nginx.status[accepts]</key>
</item>
</graph_item>
<graph_item>
<sortorder></sortorder>
<drawtype></drawtype>
<color>C80000</color>
<yaxisside></yaxisside>
<calc_fnc></calc_fnc>
<type></type>
<item>
<host>Template App Nginx</host>
<key>nginx.status[handled]</key>
</item>
</graph_item>
<graph_item>
<sortorder></sortorder>
<drawtype></drawtype>
<color>0000C8</color>
<yaxisside></yaxisside>
<calc_fnc></calc_fnc>
<type></type>
<item>
<host>Template App Nginx</host>
<key>nginx.status[requests]</key>
</item>
</graph_item>
</graph_items>
</graph>
<graph>
<name>Nginx Proc_Num</name>
<width></width>
<height></height>
<yaxismin>0.0000</yaxismin>
<yaxismax>100.0000</yaxismax>
<show_work_period></show_work_period>
<show_triggers></show_triggers>
<type></type>
<show_legend></show_legend>
<show_3d></show_3d>
<percent_left>0.0000</percent_left>
<percent_right>0.0000</percent_right>
<ymin_type_1></ymin_type_1>
<ymax_type_1></ymax_type_1>
<ymin_item_1></ymin_item_1>
<ymax_item_1></ymax_item_1>
<graph_items>
<graph_item>
<sortorder></sortorder>
<drawtype></drawtype>
<color>00C800</color>
<yaxisside></yaxisside>
<calc_fnc></calc_fnc>
<type></type>
<item>
<host>Template App Nginx</host>
<key>nginx.status[proc_num]</key>
</item>
</graph_item>
</graph_items>
</graph>
</graphs>
</zabbix_export>
导入



3.新建主机



7个item,模板里面

重启agent
[root@linux-node2 /etc/zabbix/zabbix_agentd.d]# systemctl restart zabbix-agent
Test测试
1 访问网址test

2 server执行命令test
[root@linux-node1 ~]# zabbix_get -s 192.168.194.132 -k nginx.status[requests] [root@linux-node1 ~]# zabbix_get -s 192.168.194.132 -k nginx.status[handled]
3 查看数据


4.老师的脚本


讲解
取第一个的时候,缓存一份

创建时间与 文件的创建时间比较

如果<60则不更新

5、mysql监控(自带模板)
1.无密码的监控
1 安装mariadb
[root@linux-node1 ~]# yum install mariadb-server -y^C
[root@linux-node1 ~]# systemctl start mariadb.service
2 取值验证 test
[root@linux-node1 ~]# mysqladmin ping | grep -c alive [root@linux-node2 /etc/zabbix/zabbix_agentd.d]# mysqladmin ping
mysqld is alive
3 系统配置模板
监控mysql的,默认配置ok的
# 自带的conf
[root@linux-node2 ~]# cd /etc/zabbix/zabbix_agentd.d/
[root@linux-node2 /etc/zabbix/zabbix_agentd.d]# tail - userparameter_mysql.conf
UserParameter=mysql.ping,HOME=/var/lib/zabbix mysqladmin ping | grep -c alive
UserParameter=mysql.version,mysql -V
4 新建host




5 查看data
查看日志
[root@linux-node1 ~]# tail -f /var/log/zabbix/zabbix_server.log

Items

Latest data


6 配置文件,源码剖析
如何取值,看配置文件
[root@linux-node2 /etc/zabbix/zabbix_agentd.d]# vim userparameter_mysql.conf

$1的值

[root@linux-node2 ~]# echo "show global status where Variable_name='Com_begin';" | HOME=/var/lib/zabbix mysql -N
Com_begin 39038
两个$$
第一个$代表 相对路径
[root@linux-node2 ~]# vim /etc/zabbix/zabbix_agentd.conf

2.带密码的1
1 配置密码
[root@linux-node2 /etc/zabbix/zabbix_agentd.d]#
cp userparameter_mysql.conf userparameter_mysql.conf.bak
[root@linux-node2 /etc/zabbix/zabbix_agentd.d]# vim userparameter_mysql.conf


2 Mysql授权 给 zabbix
MariaDB [(none)]> grant all on *.* to zabbix@'localhost' identified by 'zabbix';
Query OK, rows affected (0.17 sec) MariaDB [(none)]> flush privileges;
Query OK, rows affected (0.02 sec)
Test

重启服务

3 刷新时间修改
某些item不能正常执行
刷新时间太长,改为30


Test这些item
[root@linux-node1 ~]# zabbix_get -s 192.168.194.132 -k mysql.status[Uptime]
1189
3.带密码的监控2:宏{$PASSWD},{$USER}
思想:
如果按照个新的mysql
Usermysql文件替换下,链接个模板,变量设置user pwd。
1.每个agent的数据库密码不一样,如何自动化,每个文件都要配置?
Zabbix可以自定义变量 宏

2.修改配置文件,使其生效
[root@linux-node2 /etc/zabbix/zabbix_agentd.d]# vim userparameter_mysql.conf
* 可以传多个参数
$1 $2 $3


3.重启agent,test
[root@linux-node2 /etc/zabbix/zabbix_agentd.d]# systemctl restart zabbix-agent
test执行命令
[root@linux-node1 ~]# zabbix_get -s 192.168.194.132 -k mysql.status[zabbix,zabbix,Uptime]
1471
4.修改模板,定义宏变量
定义变量
{$PASSWD}{$USER}

修改 template



Enable

5.修改item
有mysql.status,每个item都要执行
{$USER},{$PASSWD},

完成
只需要修改模板,剩下的item都变了

使用变量了

6. test,不同用户名密码,都可以执行
修改密码,重新授权
MariaDB [(none)]> grant all on *.* to monitor@'localhost' identified by '';
Query OK, rows affected (0.00 sec) MariaDB [(none)]> flush privileges;
Query OK, rows affected (0.00 sec)
修改 宏变量

查看data





6、mysql监控使用percona
https://www.cnblogs.com/wxzhe/p/10670546.html
https://blog.csdn.net/qq_31613055/article/details/78781752
1. Percona介绍
Percona Server由领先的MySQL咨询公司Percona发布。 Percona Server是一款独立的数据库产品,其可以完全与MySQL兼容,可以在不更改代码的情况了下将存储引擎更换成XtraDB 。
Percona团队的最终声明是“Percona Server是由Oracle发布的最接近官方MySQL Enterprise发行版的版本”,因此与其他更改了大量基本核心MySQL代码的分支有所区别。 Percona Server的一个缺点是他们自己管理代码,不接受外部开发人员的贡献,以这种方式确保他们对产品中所包含功能的控制。
Percona提供了高性能XtraDB引擎,还提供PXC高可用解决方案,并且附带了perconatoolkit等DBA管理工具箱
2.安装percona,php
在node2 上面
安装 percona
[root@linux-node2 ~]#
rpm -ivh https://www.percona.com/downloads/percona-monitoring-plugins/percona-monitoring-plugins-1.1.8/binary/redhat/7/x86_64/percona-zabbix-templates-1.1.8-1.noarch.rpm
安装完成会提示脚本和模板的位置
Scripts are installed to /var/lib/zabbix/percona/scripts
Templates are installed to /var/lib/zabbix/percona/templates

安装php
[root@linux-node2 ~]# yum install -y php php-mysql
3.配置文件,脚本,模板
(1)copy监控项配置到zabbix_agentd.d

[root@linux-node2 /var/lib/zabbix/percona/templates]# cp userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/

(2)修改脚本

[root@linux-node2 /var/lib/zabbix/percona/scripts]# vim get_mysql_stats_wrapper.sh
[root@linux-node2 /var/lib/zabbix/percona/scripts]# vim ss_get_mysql_stats.php
脚本1
Mysql密码

间隔300s,监控不要影响服务

脚本2

(3)重启agent,test
[root@linux-node2 /var/lib/zabbix/percona/scripts]# systemctl restart zabbix-agent
Test,如何取值

[root@linux-node1 ~]# zabbix_get -s 192.168.194.132 -k MySQL.Open-files
21
(4)导入自带模板
模板自带(有问题),导入到桌面

[root@linux-node2 /var/lib/zabbix/percona/templates]# sz zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.8.xml
导入到zabbix
把上面scripts下面的xml文件拷贝到win主机上,然后导入,导入的时候会报错



无底洞,不修改了
官方的是zabbix2.2 不兼容
(5)导入ok的模板
百度给的解决办法是: 将模板导入到2.4环境中,然后再导出到3的环境中,不会报错。百度上也提供了一个模板导入,
模板连接:
链接:https://pan.baidu.com/s/1HvoOGNqI9HYC9ymgi7HsDQ 提取码:emsh
wget http://jaminzhang.github.io/soft-conf/Zabbix/zbx_percona_mysql_template.xml
直接用好的,网上下载

4.创建Hosts



5. 依赖


添加触发器的时候,添加依赖



如果它报警了我就不报警了。
扩展:
报警依赖
优先监控路由器,再监控服务器
减少误报
所有服务器都依赖交换机
交换机报警,其他的就不报警了
7、总结
1.学习方法
学习监控的话,更多跟系统学习这些知识。
配置conf文件怎么写
触发器怎么设计
Item怎么转换,存储的
2.问题
Question1

检查发件人设置

Question2

解决:


/etc/zabbix/zabbix_agentd.d
只能放conf文件,必须使用的
3 监控项、触发器、web监控、nginx监控的更多相关文章
- 自学Zabbix4.2 web监控项创建+item详解
自学Zabbix4.2 web监控项创建+item详解 1. web监控项创建 1.1 Scenario 选项卡 Name: 监控项的名称 Application: 放到哪个应用中 Authenti ...
- Zabbix触发器和监控项设置时间范围
目录 一.实际业务场景 业务问题 解决办法 二.Zabbix触发器和监控项与用户预警设置时间范围配置流程 一.触发器设置时间范围 二.监控项设置时间范围 三.用户报警设置启用时间 一.实际业务场景 业 ...
- zabbix (6) 为主机添加监控项,触发器,动作
先了解一下zabbix的相关概念 监控项(iterms):一个具体的指标,比如某个人的体重. 键(key):通过定义(自定义或者zabbix自带)的key获取相应指标的具体值,比如这个人的体重50斤 ...
- 设置zabbix (3.4.2)添加监控项,触发器,让CPU使用超过85%就报警:
zabbix (3.4.2)添加监控项,触发器,让CPU使用超过85%就报警: zabbix自带模板有一个 Template OS Linux模板.这个模板有监控CPU的监控项,如果没有添加一个监控项 ...
- zabbix WebUI自定义Nginx监控项模板
zabbix webUI自定义Nginx监控项模板 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.创建模板 1>.如下图所示,依次点击"配置" --- ...
- zabbix自定义监控项二
为zabbix增加支持传参的自定义监控项 例如使用zabbix来监控tcp的12种状态 tcp的12种状态可以通过man netstat来找到,即 LISTEN:等待从任何远端TCP 和端口的连接请求 ...
- zabbix--自定义监控项vsftpd
Zabbix 自定义监控项之监控 vsftpd zabbix 提供了很多监控选择,功能丰富,我们还可以根据自定义来监控想要监控一些日常的服务等. 说明: 此处我们通过监控 ftp (自定义命令),实现 ...
- zabbix-自定义监控项
一.自定义一个监控项 模板虽好,但是不能解决所有的监控,有些需要的监控项在模板中并没有,需要我们自己定义一个监控项,如何定义一个监控项呢?大概的流程是这样的几步 .在插件配置文件中定义一个key/va ...
- Linux下Zabbix5.0 LTS添加自定义监控项
自定义监控项 zabbix本身提供了很多可选的监控项,可以满足绝大部分的监控需求.有时候由于业务需求,需要自定义监控项. 下面以创建mysql自定义监控项为例,分享如何创建zabbix自定义监控项. ...
- Druid 配置及内置监控,Web页面查看监控内容 【我改】
转: Druid 配置及内置监控,Web页面查看监控内容 1.配置Druid的内置监控 首先在Maven项目的pom.xml中引入包 1 2 3 4 5 <dependency> ...
随机推荐
- 【Python】【demo实验22】【练习实例】【猴子吃桃问题】
原题: 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个.以后每天早上都吃了前一天剩下的一半零一个.到第10天早上想再吃时,见只 ...
- Redis(1.5)Redis配置文件(4.0.14)
4.0.14 常用配置 bind 127.0.0.1 # 默认绑定本地,不写的话任何地址都可以访问 protected-mode yes #保护模式,如果没有设置bind 配置地址,也没有设置任何密码 ...
- gitignore忽略处理
.gitignore文件内容 忽略所有文件夹 /*/ 忽略所有文件 /* 这时 git add 已经失效 需要使用 git add -f 强制添加文件进版本库 好处在于在本地添加文件文件夹时, ...
- Keepalive+双主
一.建立3台服务器之间ssh互信在mydb1,mydb2,mydb3服务器上分别执行:ssh-keygen -t rsassh-copy-id -i .ssh/id_rsa.pub root@192. ...
- Tensorflow加载预训练模型和保存模型
转载自:https://blog.csdn.net/huachao1001/article/details/78501928 使用tensorflow过程中,训练结束后我们需要用到模型文件.有时候,我 ...
- mysql 8.x 登陆提示 Access denied for user 'root'@'localhost' (using password: YES)
第一步:修改 /etc/mysql/my.cnf. 在[mysql]下添加skip-grant-table:重启. 第二步:通过mysql命令登陆: flush privileges; use mys ...
- MVC4中去掉浏览器生成的无关代码方法
通过增加Web.Config配置,如: <add key="vs:EnableBrowserLink" value="false"/>可以去掉MVC ...
- 设计模式及UML图
UML图 1. 依赖关系
- Lab 色彩模型和取值范围
L∈(0,100) a∈(-128,127) b∈(-128,127) opencv 的Lab数据对齐做了量化,使其处于0-255范围 L=L*2.55 a=a+128 b=b+128
- WebStrom 中文显示异常中文变样乱码
问题描述 WebStorm 编辑文件时中文显示异常,大小不一 菜单栏字体需要更换 解决方法 修改编辑器字体 菜单栏默认字体取消 设置效果 编辑文件时中英文显示 菜单栏 其他相关 关于编码格式,这里未做 ...