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
1
[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
362173
[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
670293

2 查看默认conf配置以及格式

[root@linux-node1 ~]# cd /etc/zabbix/zabbix_agentd.d/
[root@linux-node1 /etc/zabbix/zabbix_agentd.d]# ll
total 4
-rw-r--r-- 1 root root 1531 May 27 08:33 userparameter_mysql.conf

[root@linux-node1 /etc/zabbix/zabbix_agentd.d]# tail -2 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:10050           0.0.0.0:*               LISTEN      4409/zabbix_agentd      
tcp6       0      0 :::10050                :::*                    LISTEN      4409/zabbix_agentd

5 在serverTest

[root@linux-node1 /etc/zabbix/zabbix_agentd.d]# zabbix_get -s linux-node2.example.com -k monitor_file
670293

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        0      0 192.168.194.132:80      0.0.0.0:*               LISTEN      4676/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}
1. {ITEM.NAME1} ({HOST.NAME1}:{ITEM.KEY1}): {ITEM.VALUE1}

 

启动httpd,停止httpd

 

 

报警声音设置

   

 

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.短信平台(未完成)

阿里大鱼

Unicode编码转换 - 站长工具

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 

 

4nginx监控

Nginx模板

https://gitee.com/tinee/zabbix-nginx-status  

 https://www.cnblogs.com/bluecarrife/p/9229693.html 

 https://github.com/adubkov 

https://cloud.tencent.com/developer/article/1400917 

1.安装配置启动nginx

1 安装

[root@linux-node2 ~]# yum list |grep nginx*
nginx.x86_64                            1:1.12.2-3.el7                 @epel    
nginx-all-modules.noarch                1:1.12.2-3.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/24;    #允许访问的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
   3581/redis-server 1 
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      106182/nginx: maste

2.准备conf文件,shell脚本,模板

1 新建conf文件

# 参考系统自带的
[root@linux-node2 /etc/zabbix/zabbix_agentd.d]# tail -2 userparameter_mysql.conf 
UserParameter=mysql.ping[*],HOME=/var/lib/zabbix mysqladmin -u$1 -p$2 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 $1

配置文件的相对路径

[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="80"
# 检测nginx进程是否存在
function ping {
    /sbin/pidof nginx | wc -l
}

# 检测nginx性能
function active {
    /usr/bin/curl "http://$HOST:$PORT/ngx_status/" 2>/dev/null| grep 'Active' | awk '{print $NF}'
}
function reading {
    /usr/bin/curl "http://$HOST:$PORT/ngx_status/" 2>/dev/null| grep 'Reading' | awk '{print $2}'
}
function writing {
    /usr/bin/curl "http://$HOST:$PORT/ngx_status/" 2>/dev/null| grep 'Writing' | awk '{print $4}'
}
function waiting {
    /usr/bin/curl "http://$HOST:$PORT/ngx_status/" 2>/dev/null| grep 'Waiting' | awk '{print $6}'
}
function accepts {
    /usr/bin/curl "http://$HOST:$PORT/ngx_status/" 2>/dev/null| awk NR==3 | awk '{print $1}'
}
function handled {
    /usr/bin/curl "http://$HOST:$PORT/ngx_status/" 2>/dev/null| awk NR==3 | awk '{print $2}'
}
function requests {
    /usr/bin/curl "http://$HOST:$PORT/ngx_status/" 2>/dev/null| awk NR==3 | awk '{print $3}'
}
# 执行function
$1

执行权限

[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>2017-01-13T07:55: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>0</type>
                    <snmp_community/>
                    <multiplier>0</multiplier>
                    <snmp_oid/>
                    <key>nginx.status[accepts]</key>
                    <delay>60</delay>
                    <history>90</history>
                    <trends>365</trends>
                    <status>0</status>
                    <value_type>3</value_type>
                    <allowed_hosts/>
                    <units/>
                    <delta>2</delta>
                    <snmpv3_contextname/>
                    <snmpv3_securityname/>
                    <snmpv3_securitylevel>0</snmpv3_securitylevel>
                    <snmpv3_authprotocol>0</snmpv3_authprotocol>
                    <snmpv3_authpassphrase/>
                    <snmpv3_privprotocol>0</snmpv3_privprotocol>
                    <snmpv3_privpassphrase/>
                    <formula>1</formula>
                    <delay_flex/>
                    <params/>
                    <ipmi_sensor/>
                    <data_type>0</data_type>
                    <authtype>0</authtype>
                    <username/>
                    <password/>
                    <publickey/>
                    <privatekey/>
                    <port/>
                    <description/>
                    <inventory_link>0</inventory_link>
                    <applications>
                        <application>
                            <name>Nginx</name>
                        </application>
                    </applications>
                    <valuemap/>
                    <logtimefmt/>
                </item>
                <item>
                    <name>Nginx Active connections</name>
                    <type>0</type>
                    <snmp_community/>
                    <multiplier>0</multiplier>
                    <snmp_oid/>
                    <key>nginx.status[active]</key>
                    <delay>60</delay>
                    <history>90</history>
                    <trends>365</trends>
                    <status>0</status>
                    <value_type>3</value_type>
                    <allowed_hosts/>
                    <units/>
                    <delta>0</delta>
                    <snmpv3_contextname/>
                    <snmpv3_securityname/>
                    <snmpv3_securitylevel>0</snmpv3_securitylevel>
                    <snmpv3_authprotocol>0</snmpv3_authprotocol>
                    <snmpv3_authpassphrase/>
                    <snmpv3_privprotocol>0</snmpv3_privprotocol>
                    <snmpv3_privpassphrase/>
                    <formula>1</formula>
                    <delay_flex/>
                    <params/>
                    <ipmi_sensor/>
                    <data_type>0</data_type>
                    <authtype>0</authtype>
                    <username/>
                    <password/>
                    <publickey/>
                    <privatekey/>
                    <port/>
                    <description/>
                    <inventory_link>0</inventory_link>
                    <applications>
                        <application>
                            <name>Nginx</name>
                        </application>
                    </applications>
                    <valuemap/>
                    <logtimefmt/>
                </item>
                <item>
                    <name>Nginx Handled connections\min</name>
                    <type>0</type>
                    <snmp_community/>
                    <multiplier>0</multiplier>
                    <snmp_oid/>
                    <key>nginx.status[handled]</key>
                    <delay>60</delay>
                    <history>90</history>
                    <trends>365</trends>
                    <status>0</status>
                    <value_type>3</value_type>
                    <allowed_hosts/>
                    <units/>
                    <delta>2</delta>
                    <snmpv3_contextname/>
                    <snmpv3_securityname/>
                    <snmpv3_securitylevel>0</snmpv3_securitylevel>
                    <snmpv3_authprotocol>0</snmpv3_authprotocol>
                    <snmpv3_authpassphrase/>
                    <snmpv3_privprotocol>0</snmpv3_privprotocol>
                    <snmpv3_privpassphrase/>
                    <formula>1</formula>
                    <delay_flex/>
                    <params/>
                    <ipmi_sensor/>
                    <data_type>0</data_type>
                    <authtype>0</authtype>
                    <username/>
                    <password/>
                    <publickey/>
                    <privatekey/>
                    <port/>
                    <description/>
                    <inventory_link>0</inventory_link>
                    <applications>
                        <application>
                            <name>Nginx</name>
                        </application>
                    </applications>
                    <valuemap/>
                    <logtimefmt/>
                </item>
                <item>
                    <name>Nginx Proc_Num</name>
                    <type>0</type>
                    <snmp_community/>
                    <multiplier>0</multiplier>
                    <snmp_oid/>
                    <key>nginx.status[proc_num]</key>
                    <delay>60</delay>
                    <history>90</history>
                    <trends>365</trends>
                    <status>0</status>
                    <value_type>3</value_type>
                    <allowed_hosts/>
                    <units/>
                    <delta>0</delta>
                    <snmpv3_contextname/>
                    <snmpv3_securityname/>
                    <snmpv3_securitylevel>0</snmpv3_securitylevel>
                    <snmpv3_authprotocol>0</snmpv3_authprotocol>
                    <snmpv3_authpassphrase/>
                    <snmpv3_privprotocol>0</snmpv3_privprotocol>
                    <snmpv3_privpassphrase/>
                    <formula>1</formula>
                    <delay_flex/>
                    <params/>
                    <ipmi_sensor/>
                    <data_type>0</data_type>
                    <authtype>0</authtype>
                    <username/>
                    <password/>
                    <publickey/>
                    <privatekey/>
                    <port/>
                    <description/>
                    <inventory_link>0</inventory_link>
                    <applications>
                        <application>
                            <name>Nginx</name>
                        </application>
                    </applications>
                    <valuemap/>
                    <logtimefmt/>
                </item>
                <item>
                    <name>Nginx Reading Connections</name>
                    <type>0</type>
                    <snmp_community/>
                    <multiplier>0</multiplier>
                    <snmp_oid/>
                    <key>nginx.status[reading]</key>
                    <delay>60</delay>
                    <history>90</history>
                    <trends>365</trends>
                    <status>0</status>
                    <value_type>3</value_type>
                    <allowed_hosts/>
                    <units/>
                    <delta>0</delta>
                    <snmpv3_contextname/>
                    <snmpv3_securityname/>
                    <snmpv3_securitylevel>0</snmpv3_securitylevel>
                    <snmpv3_authprotocol>0</snmpv3_authprotocol>
                    <snmpv3_authpassphrase/>
                    <snmpv3_privprotocol>0</snmpv3_privprotocol>
                    <snmpv3_privpassphrase/>
                    <formula>1</formula>
                    <delay_flex/>
                    <params/>
                    <ipmi_sensor/>
                    <data_type>0</data_type>
                    <authtype>0</authtype>
                    <username/>
                    <password/>
                    <publickey/>
                    <privatekey/>
                    <port/>
                    <description/>
                    <inventory_link>0</inventory_link>
                    <applications>
                        <application>
                            <name>Nginx</name>
                        </application>
                    </applications>
                    <valuemap/>
                    <logtimefmt/>
                </item>
                <item>
                    <name>Nginx Requests\min</name>
                    <type>0</type>
                    <snmp_community/>
                    <multiplier>0</multiplier>
                    <snmp_oid/>
                    <key>nginx.status[requests]</key>
                    <delay>60</delay>
                    <history>90</history>
                    <trends>365</trends>
                    <status>0</status>
                    <value_type>3</value_type>
                    <allowed_hosts/>
                    <units/>
                    <delta>2</delta>
                    <snmpv3_contextname/>
                    <snmpv3_securityname/>
                    <snmpv3_securitylevel>0</snmpv3_securitylevel>
                    <snmpv3_authprotocol>0</snmpv3_authprotocol>
                    <snmpv3_authpassphrase/>
                    <snmpv3_privprotocol>0</snmpv3_privprotocol>
                    <snmpv3_privpassphrase/>
                    <formula>1</formula>
                    <delay_flex/>
                    <params/>
                    <ipmi_sensor/>
                    <data_type>0</data_type>
                    <authtype>0</authtype>
                    <username/>
                    <password/>
                    <publickey/>
                    <privatekey/>
                    <port/>
                    <description/>
                    <inventory_link>0</inventory_link>
                    <applications>
                        <application>
                            <name>Nginx</name>
                        </application>
                    </applications>
                    <valuemap/>
                    <logtimefmt/>
                </item>
                <item>
                    <name>Nginx Waiting Connections</name>
                    <type>0</type>
                    <snmp_community/>
                    <multiplier>0</multiplier>
                    <snmp_oid/>
                    <key>nginx.status[waiting]</key>
                    <delay>60</delay>
                    <history>90</history>
                    <trends>365</trends>
                    <status>0</status>
                    <value_type>3</value_type>
                    <allowed_hosts/>
                    <units/>
                    <delta>0</delta>
                    <snmpv3_contextname/>
                    <snmpv3_securityname/>
                    <snmpv3_securitylevel>0</snmpv3_securitylevel>
                    <snmpv3_authprotocol>0</snmpv3_authprotocol>
                    <snmpv3_authpassphrase/>
                    <snmpv3_privprotocol>0</snmpv3_privprotocol>
                    <snmpv3_privpassphrase/>
                    <formula>1</formula>
                    <delay_flex/>
                    <params/>
                    <ipmi_sensor/>
                    <data_type>0</data_type>
                    <authtype>0</authtype>
                    <username/>
                    <password/>
                    <publickey/>
                    <privatekey/>
                    <port/>
                    <description/>
                    <inventory_link>0</inventory_link>
                    <applications>
                        <application>
                            <name>Nginx</name>
                        </application>
                    </applications>
                    <valuemap/>
                    <logtimefmt/>
                </item>
                <item>
                    <name>Nginx Writing Connections</name>
                    <type>0</type>
                    <snmp_community/>
                    <multiplier>0</multiplier>
                    <snmp_oid/>
                    <key>nginx.status[writing]</key>
                    <delay>60</delay>
                    <history>90</history>
                    <trends>365</trends>
                    <status>0</status>
                    <value_type>3</value_type>
                    <allowed_hosts/>
                    <units/>
                    <delta>0</delta>
                    <snmpv3_contextname/>
                    <snmpv3_securityname/>
                    <snmpv3_securitylevel>0</snmpv3_securitylevel>
                    <snmpv3_authprotocol>0</snmpv3_authprotocol>
                    <snmpv3_authpassphrase/>
                    <snmpv3_privprotocol>0</snmpv3_privprotocol>
                    <snmpv3_privpassphrase/>
                    <formula>1</formula>
                    <delay_flex/>
                    <params/>
                    <ipmi_sensor/>
                    <data_type>0</data_type>
                    <authtype>0</authtype>
                    <username/>
                    <password/>
                    <publickey/>
                    <privatekey/>
                    <port/>
                    <description/>
                    <inventory_link>0</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()}=0</expression>
            <name>Nginx is down on {HOST.NAME}</name>
            <url/>
            <status>0</status>
            <priority>5</priority>
            <description/>
            <type>0</type>
            <dependencies/>
        </trigger>
    </triggers>
    <graphs>
        <graph>
            <name>Active connections</name>
            <width>900</width>
            <height>200</height>
            <yaxismin>0.0000</yaxismin>
            <yaxismax>100.0000</yaxismax>
            <show_work_period>1</show_work_period>
            <show_triggers>1</show_triggers>
            <type>0</type>
            <show_legend>1</show_legend>
            <show_3d>0</show_3d>
            <percent_left>0.0000</percent_left>
            <percent_right>0.0000</percent_right>
            <ymin_type_1>0</ymin_type_1>
            <ymax_type_1>0</ymax_type_1>
            <ymin_item_1>0</ymin_item_1>
            <ymax_item_1>0</ymax_item_1>
            <graph_items>
                <graph_item>
                    <sortorder>0</sortorder>
                    <drawtype>0</drawtype>
                    <color>00C800</color>
                    <yaxisside>0</yaxisside>
                    <calc_fnc>2</calc_fnc>
                    <type>0</type>
                    <item>
                        <host>Template App Nginx</host>
                        <key>nginx.status[active]</key>
                    </item>
                </graph_item>
                <graph_item>
                    <sortorder>1</sortorder>
                    <drawtype>0</drawtype>
                    <color>C80000</color>
                    <yaxisside>0</yaxisside>
                    <calc_fnc>2</calc_fnc>
                    <type>0</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>900</width>
            <height>200</height>
            <yaxismin>0.0000</yaxismin>
            <yaxismax>100.0000</yaxismax>
            <show_work_period>1</show_work_period>
            <show_triggers>1</show_triggers>
            <type>0</type>
            <show_legend>1</show_legend>
            <show_3d>0</show_3d>
            <percent_left>0.0000</percent_left>
            <percent_right>0.0000</percent_right>
            <ymin_type_1>1</ymin_type_1>
            <ymax_type_1>0</ymax_type_1>
            <ymin_item_1>0</ymin_item_1>
            <ymax_item_1>0</ymax_item_1>
            <graph_items>
                <graph_item>
                    <sortorder>0</sortorder>
                    <drawtype>0</drawtype>
                    <color>00C800</color>
                    <yaxisside>0</yaxisside>
                    <calc_fnc>2</calc_fnc>
                    <type>0</type>
                    <item>
                        <host>Template App Nginx</host>
                        <key>nginx.status[accepts]</key>
                    </item>
                </graph_item>
                <graph_item>
                    <sortorder>1</sortorder>
                    <drawtype>0</drawtype>
                    <color>C80000</color>
                    <yaxisside>0</yaxisside>
                    <calc_fnc>2</calc_fnc>
                    <type>0</type>
                    <item>
                        <host>Template App Nginx</host>
                        <key>nginx.status[handled]</key>
                    </item>
                </graph_item>
                <graph_item>
                    <sortorder>2</sortorder>
                    <drawtype>0</drawtype>
                    <color>0000C8</color>
                    <yaxisside>0</yaxisside>
                    <calc_fnc>2</calc_fnc>
                    <type>0</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>900</width>
            <height>200</height>
            <yaxismin>0.0000</yaxismin>
            <yaxismax>100.0000</yaxismax>
            <show_work_period>1</show_work_period>
            <show_triggers>1</show_triggers>
            <type>0</type>
            <show_legend>1</show_legend>
            <show_3d>0</show_3d>
            <percent_left>0.0000</percent_left>
            <percent_right>0.0000</percent_right>
            <ymin_type_1>1</ymin_type_1>
            <ymax_type_1>0</ymax_type_1>
            <ymin_item_1>0</ymin_item_1>
            <ymax_item_1>0</ymax_item_1>
            <graph_items>
                <graph_item>
                    <sortorder>0</sortorder>
                    <drawtype>0</drawtype>
                    <color>00C800</color>
                    <yaxisside>0</yaxisside>
                    <calc_fnc>2</calc_fnc>
                    <type>0</type>
                    <item>
                        <host>Template App Nginx</host>
                        <key>nginx.status[proc_num]</key>
                    </item>
                </graph_item>
            </graph_items>
        </graph>
    </graphs>
</zabbix_export>
View Code

导入

 

 

3.新建主机

7item,模板里面

 

重启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]
9
[root@linux-node1 ~]# zabbix_get -s 192.168.194.132 -k nginx.status[handled]
10

 

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
1
[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 -2 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, 0 rows affected (0.17 sec)

MariaDB [(none)]> flush privileges;
Query OK, 0 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 '123456';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> flush privileges;
Query OK, 0 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文件,必须使用的

posted @ 2019-08-22 20:33  venicid  阅读(523)  评论(0编辑  收藏  举报