添加debian-zabbix-agent,zabbix-web添加新主机,以及grafana可视化配置 集群方案 架构软件 zabbix 监控系统



1.同个基础环境:  添加别名 zabbix


2.apt-get install -y zabbix-agent


vi  /etc/zabbix/zabbix_agentd.conf   修改agent配置文件


更新行:Server=127.0.0.1 => Server=192.168.1.5, 192.168.1.1   # zabbix server 

            ServerActive=127.0.0.1  =>  ServerActive=192.168.1.5, 192.168.1.1   # zabbix server 

             Hostname=Zabbix Server  => Hostname=192.168.0.210   # agent所在服务器IP


注:192.168.1.5是zabbix server,192.168.0.210是agent所在服务器IP
其中192.168.1.1是zabbix服务器的默认网关,因zabbix服务器与zabbix agent不在一个网段,192.168.0.0段服务器见到的所有zabbix信息均来自网关,因此Server参数一定要加上zabbix服务器默认网关192.168.1.1,配置Agent时请注意.


3.加入开机自启:

update-rc.d zabbix-agent defaults

/etc/init.d/zabbix-agent start


4.查看所有端口:   查看是否有10050

netstat -lnt


5.zabbix, 添加主机, 

a.agent代理程序的接口:   ip-*.*.*.*   端口-10050

b.添加模板: Template OS Linux.

c.看监控效果    

d.将多个监控项一个页面显示,这就是聚合图形功能, 点击“构造函数”自定义监控项.


6.添加端口监控:  https://abc.htmltoo.com/thread-44916.htm


i.创建一组专门用于端口监控的模板: Tcp Port


a.监控80端口是否在Listen状态的Item: 

 name: tcp port 80 is listen   key: net.tcp.listen[80]

b.用来检查TCP端口是否可以正常连接的Item:

  name:  tcp port 80 is connection   key: net.tcp.port[80]   

c.用来监控服务是否可用,不指定端口将检查该服务的默认端口的Item:

  name:  tcp port http is running   key: net.tcp.service[http,,]

  如http有使用其他端口设置如: key: net.tcp.service[http,,8080]

d.监控服务(端口)的连接性能,注意下面的数据类型选择float的Item, performance反映80端口连接性能,越小越好:

  name: tcp port 80 performance   key: net.tcp.service.perf[http,,80]   type: 浮点数(float)


e.给第一个Item创建一个触发器:  监控80端口是否在listen状态,返回0表示不在,返回1表示在:

name: tcp port 80 is down     

问题: {Tcp Port:net.tcp.listen[80].last()}=0

恢复: {Tcp Port:net.tcp.listen[80].last()}=1


f.创建一个图像,将4个Items显示在图像中:

name: tcp port 80    4个Item添加进去.


g.模板:Tcp Port,添加进主机.


ii. 创建对网卡的流量的监控

a. 监控项: 

name: Network incoming on eth0        key: net.if.in[eth0,bytes]       单位: bps

name: Network outcoming on eth0      key: net.if.out[eth0,bytes]   单位: bps

b.触发器:   1M:1048576  5M:5242880

Network incoming on eth0 >1M on {HOST.NAME}    表达式: {Tcp Port:net.if.in[eth0,bytes].last()}>1048576

Network outcoming on eth0 >1M on {HOST.NAME}  表达式: {Tcp Port:net.if.out[eth0,bytes].last()}>1048576

c.图形:

Network incoming or outcoming on eth0    添加以上两个监控项.

d.如是新模板,添加进主机.


iii. 添加报警设置

a.管理(Administration) → 媒体类型(Media types)  ->输入email账户信息.

b.为了建立一个通知,前往 配置(Configuration) → 动作(Actions),然后点击 创建动作(Create action)。

增加: 维护状态 非在 维护  and  触发器 = Tcp Port: tcp port 80 is down.

操作: email通知用户.


iv. Nginx的状态监控

a.添加配置:

   location /nginx_status {

                stub_status on;

                access_log off;

                #allow 10.42.0.0/24;

                #allow 127.0.0.1;

                #deny all;

   }


curl http://192.168.56.12/status

Active connections: 1 

server accepts handled requests

 9 9 7 

Reading: 0 Writing: 1 Waiting: 0 

 

Nginx状态解释:

Active connections  Nginx正处理的活动链接数1个

server              Nginx启动到现在共处理了9个连接。

accepts             Nginx启动到现在共成功创建9次握手。 

handled requests    Nginx总共处理了7次请求。

Reading             Nginx读取到客户端的 Header 信息数。

Writing             Nginx返回给客户端的 Header 信息数。

Waiting             Nginx已经处理完正在等候下一次请求指令的驻留链接,开启。

Keep-alive的情况下,Waiting这个值等于active-(reading + writing)。

请求丢失数=(握手数-连接数)可以看出,本次状态显示没有丢失请求。


b.添加agent的监控nginx状态配置:

mkdir /etc/zabbix/zabbix_agentd.conf.d/scripts

vi  /etc/zabbix/zabbix_agentd.conf.d/monitor.conf

UnsafeUserParameters=1  
UserParameter=nginx.status[*],/etc/zabbix/zabbix_agentd.conf.d/scripts/nginx_monitor.sh -F $1 -P $2


c.获取nginx状态的shell脚本:

vi  /etc/zabbix/zabbix_agentd.conf.d/scripts/monitor.sh

#!/bin/bash
# DateTime: 2018-07-01
# AUTHOR:cndo.org
# Description:zabbix监控nginx性能以及进程状态
# Note:此脚本需要配置在被监控端
# zabbix_agentd.conf: 添加自定义key,UserParameter=nginx.status[*],/.../zabbix/scripts/nginx_status.sh -F $1 -P $2 
 
HOST="127.0.0.1"
PORT="80"
 
# 检测nginx进程是否存在
function ping {
    /sbin/pidof nginx | wc -l
}
# 检测nginx性能
function active {
    /usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| grep 'Active' | awk '{print $NF}'
}
function reading {
    /usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| grep 'Reading' | awk '{print $2}'
}
function writing {
    /usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| grep 'Writing' | awk '{print $4}'
}
function waiting {
    /usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| grep 'Waiting' | awk '{print $6}'
}
function accepts {
    /usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| awk NR==3 | awk '{print $1}'
}
function handled {
    /usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| awk NR==3 | awk '{print $2}'
}
function requests {
    /usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| awk NR==3 | awk '{print $3}'
}
# 执行function
while getopts "H:P:F:" OPT; do
        case $OPT in
                "P")
                    PORT=$OPTARG
                    ;;
                "F")
                    fun=$OPTARG
                    ;;
                "H")
                    HOST=$OPTARG
                    ;;
        esac
done
$fun


给脚本添加执行权限

chmod +x  /etc/zabbix/zabbix_agentd.conf.d/scripts/monitor.sh

/etc/init.d/zabbix-agent restart

Server端测试一定使用Zabbix_get来获取值:

zabbix_get -s 10.42.145.26 -k nginx_status[accepts]

10


d. 创建监控模板以及添加监控项,并添加监控主机: 步骤和监控TCP状态一样

# 配置 –> 模板 –> 导入 –> 选择文件 –>刚刚保存的xml文件 –> 导入
# (需要注意,本模板监控端口是8080,如果需要修改监控端口,可以直接将xml文件中8080端口替换,或者导入之后在web界面修改)
<?xml version="1.0" encoding="UTF-8"?>
<zabbix_export>
    <version>3.2</version>
    <date>2018-07-01T08:57:20Z</date>
    <groups>
        <group>
            <name>Templates</name>
        </group>
    </groups>
    <templates>
        <template>
            <template>nginx.status</template>
            <name>nginx.status</name>
            <description/>
            <groups>
                <group>
                    <name>Templates</name>
                </group>
            </groups>
            <applications>
                <application>
                    <name>nginx.status</name>
                </application>
            </applications>
            <items>
                <item>
                    <name>nginx Accepts</name>
                    <type>0</type>
                    <snmp_community/>
                    <multiplier>0</multiplier>
                    <snmp_oid/>
                    <key>nginx.status[accepts,8080]</key>
                    <delay>30</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.status</name>
                        </application>
                    </applications>
                    <valuemap/>
                    <logtimefmt/>
                </item>
                <item>
                    <name>nginx Active</name>
                    <type>0</type>
                    <snmp_community/>
                    <multiplier>0</multiplier>
                    <snmp_oid/>
                    <key>nginx.status[active,8080]</key>
                    <delay>30</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.status</name>
                        </application>
                    </applications>
                    <valuemap/>
                    <logtimefmt/>
                </item>
                <item>
                    <name>nginx handled</name>
                    <type>0</type>
                    <snmp_community/>
                    <multiplier>0</multiplier>
                    <snmp_oid/>
                    <key>nginx.status[handled,8080]</key>
                    <delay>30</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.status</name>
                        </application>
                    </applications>
                    <valuemap/>
                    <logtimefmt/>
                </item>
                <item>
                    <name>nginx Reading</name>
                    <type>0</type>
                    <snmp_community/>
                    <multiplier>0</multiplier>
                    <snmp_oid/>
                    <key>nginx.status[reading,8080]</key>
                    <delay>30</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.status</name>
                        </application>
                    </applications>
                    <valuemap/>
                    <logtimefmt/>
                </item>
                <item>
                    <name>nginx requests</name>
                    <type>0</type>
                    <snmp_community/>
                    <multiplier>0</multiplier>
                    <snmp_oid/>
                    <key>nginx.status[requests,8080]</key>
                    <delay>30</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.status</name>
                        </application>
                    </applications>
                    <valuemap/>
                    <logtimefmt/>
                </item>
                <item>
                    <name>nginx waiting</name>
                    <type>0</type>
                    <snmp_community/>
                    <multiplier>0</multiplier>
                    <snmp_oid/>
                    <key>nginx.status[waiting,8080]</key>
                    <delay>30</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.status</name>
                        </application>
                    </applications>
                    <valuemap/>
                    <logtimefmt/>
                </item>
                <item>
                    <name>nginx writing</name>
                    <type>0</type>
                    <snmp_community/>
                    <multiplier>0</multiplier>
                    <snmp_oid/>
                    <key>nginx.status[writing,8080]</key>
                    <delay>30</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.status</name>
                        </application>
                    </applications>
                    <valuemap/>
                    <logtimefmt/>
                </item>
            </items>
            <discovery_rules/>
            <httptests/>
            <macros/>
            <templates/>
            <screens/>
        </template>
    </templates>
    <graphs>
        <graph>
            <name>nginx Clients Status</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>1A7C11</color>
                    <yaxisside>0</yaxisside>
                    <calc_fnc>2</calc_fnc>
                    <type>0</type>
                    <item>
                        <host>nginx.status</host>
                        <key>nginx.status[active,8080]</key>
                    </item>
                </graph_item>
                <graph_item>
                    <sortorder>1</sortorder>
                    <drawtype>0</drawtype>
                    <color>F63100</color>
                    <yaxisside>0</yaxisside>
                    <calc_fnc>2</calc_fnc>
                    <type>0</type>
                    <item>
                        <host>nginx.status</host>
                        <key>nginx.status[reading,8080]</key>
                    </item>
                </graph_item>
                <graph_item>
                    <sortorder>2</sortorder>
                    <drawtype>0</drawtype>
                    <color>2774A4</color>
                    <yaxisside>0</yaxisside>
                    <calc_fnc>2</calc_fnc>
                    <type>0</type>
                    <item>
                        <host>nginx.status</host>
                        <key>nginx.status[waiting,8080]</key>
                    </item>
                </graph_item>
                <graph_item>
                    <sortorder>3</sortorder>
                    <drawtype>0</drawtype>
                    <color>A54F10</color>
                    <yaxisside>0</yaxisside>
                    <calc_fnc>2</calc_fnc>
                    <type>0</type>
                    <item>
                        <host>nginx.status</host>
                        <key>nginx.status[writing,8080]</key>
                    </item>
                </graph_item>
            </graph_items>
        </graph>
        <graph>
            <name>nginx Socket Status</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>1A7C11</color>
                    <yaxisside>0</yaxisside>
                    <calc_fnc>2</calc_fnc>
                    <type>0</type>
                    <item>
                        <host>nginx.status</host>
                        <key>nginx.status[accepts,8080]</key>
                    </item>
                </graph_item>
                <graph_item>
                    <sortorder>1</sortorder>
                    <drawtype>0</drawtype>
                    <color>F63100</color>
                    <yaxisside>0</yaxisside>
                    <calc_fnc>2</calc_fnc>
                    <type>0</type>
                    <item>
                        <host>nginx.status</host>
                        <key>nginx.status[handled,8080]</key>
                    </item>
                </graph_item>
                <graph_item>
                    <sortorder>2</sortorder>
                    <drawtype>0</drawtype>
                    <color>2774A4</color>
                    <yaxisside>0</yaxisside>
                    <calc_fnc>2</calc_fnc>
                    <type>0</type>
                    <item>
                        <host>nginx.status</host>
                        <key>nginx.status[requests,8080]</key>
                    </item>
                </graph_item>
            </graph_items>
        </graph>
    </graphs>
</zabbix_export>

v. MySql模板监控项:

vi  /etc/zabbix/zabbix_agentd.conf.d/scripts/mysql_monitor.sh

# 用户名
#MYSQL_USER='zabbix'
# 密码
#MYSQL_PWD='zabbix'   #在脚本中输入密码mysql会提示安全告警信息#Warning: Using a password on the command line interface can be #insecure,需要将帐号密码等配置添加到mysql配置文件my.cnf中即可,脚本中#不用输入账号密码
# 主机地址/IP
MYSQL_HOST='127.0.0.1'
# 端口
MYSQL_PORT='3306'
# 数据连接
MYSQL_CONN="/usr/bin/mysqladmin -u${MYSQL_USER} -p${MYSQL_PWD} -h${MYSQL_HOST} -P${MYSQL_PORT}"
# 参数是否正确
if [ $# -ne "1" ];then 
    echo "arg error!" 
fi 
# 获取数据
case $1 in 
    Uptime) 
        result=`${MYSQL_CONN} status|cut -f2 -d":"|cut -f1 -d"T"` 
        echo $result 
        ;; 
    Com_update) 
        result=`${MYSQL_CONN} extended-status |grep -w "Com_update"|cut -d"|" -f3` 
        echo $result 
        ;; 
    Slow_queries) 
        result=`${MYSQL_CONN} status |cut -f5 -d":"|cut -f1 -d"O"` 
        echo $result 
        ;; 
    Com_select) 
        result=`${MYSQL_CONN} extended-status |grep -w "Com_select"|cut -d"|" -f3` 
        echo $result 
                ;; 
    Com_rollback) 
        result=`${MYSQL_CONN} extended-status |grep -w "Com_rollback"|cut -d"|" -f3` 
                echo $result 
                ;; 
    Questions) 
        result=`${MYSQL_CONN} status|cut -f4 -d":"|cut -f1 -d"S"` 
                echo $result 
                ;; 
    Com_insert) 
        result=`${MYSQL_CONN} extended-status |grep -w "Com_insert"|cut -d"|" -f3` 
                echo $result 
                ;; 
    Com_delete) 
        result=`${MYSQL_CONN} extended-status |grep -w "Com_delete"|cut -d"|" -f3` 
                echo $result 
                ;; 
    Com_commit) 
        result=`${MYSQL_CONN} extended-status |grep -w "Com_commit"|cut -d"|" -f3` 
                echo $result 
                ;; 
    Bytes_sent) 
        result=`${MYSQL_CONN} extended-status |grep -w "Bytes_sent" |cut -d"|" -f3` 
                echo $result 
                ;; 
    Bytes_received) 
        result=`${MYSQL_CONN} extended-status |grep -w "Bytes_received" |cut -d"|" -f3` 
                echo $result 
                ;; 
    Com_begin) 
        result=`${MYSQL_CONN} extended-status |grep -w "Com_begin"|cut -d"|" -f3` 
                echo $result 
                ;; 
        *) 
        echo "Usage:$0(Uptime|Com_update|Slow_queries|Com_select|Com_rollback|Questions|Com_insert|Com_delete|Com_commit|Bytes_sent|Bytes_received|Com_begin)" 
        ;; 
esac

vi  /etc/zabbix/zabbix_agentd.conf.d/monitor.conf

UnsafeUserParameters=1 
UserParameter=mysql.version,mysql -V
UserParameter=mysql.status[*], /etc/zabbix/zabbix_agentd.conf.d/scripts/mysql_monitor.sh $1
#UserParameter=mysql.ping,mysqladmin -P3306 -h127.0.0.1 ping | grep -c alive
UserParameter=mysql.ping,sudo netstat -ntpl |grep 3306|grep mysql|wc |awk '{print $1}'
修改/etc/sudoers( chmod +s /bin/netstat也可以,省去了修改/etc/sudoers的麻烦)
#注释掉此行
Defaults    requiretty   
 
#在最后加入如下行:
zabbix ALL=(ALL)   NOPASSWD:  /bin/netstat
 
#“NOPASSWD”表示zabbix用户在执行命令时,无需输入密码;
# “/bin/netstat”,是zabbix用户可以root身份执行的命令,如果有多个,请用逗号分隔,这样的好处是做到权限的精细控制

/etc/init.d/zabbix-agent restart

模板添加进主机, 在server端测试是否能获取到数据:

zabbix_get -s 10.42.145.26 -k "mysql.ping"

1


vi. 动作信息模板

a.故障模板:

故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!

告警主机:{HOSTNAME1}

告警时间:{EVENT.DATE} {EVENT.TIME}

告警等级:{TRIGGER.SEVERITY}

告警信息: {TRIGGER.NAME}

告警项目:{TRIGGER.KEY1}

问题详情:{ITEM.NAME}:{ITEM.VALUE}

当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}

事件ID:{EVENT.ID}

b.恢复模板

恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!

告警主机:{HOSTNAME1}

告警时间:{EVENT.DATE} {EVENT.TIME}

告警等级:{TRIGGER.SEVERITY}

告警信息: {TRIGGER.NAME}

告警项目:{TRIGGER.KEY1}

问题详情:{ITEM.NAME}:{ITEM.VALUE}

当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}

事件ID:{EVENT.ID}


6.grafana可视化配置

a.Data Sources

zabbix /  name: zabbix  type: zabbix   / 作为默认

b.HTTP

URL:  http://ip:8000/api_jsonrpc.php

Access: Server

c.Zabbix API details      账户 / 密码  / Trends 选择

c.Metrics:  Group-主机群: nginx   Host-主机: nginx-test   Application-应用集     Item-监控项



签名:这个人很懒,什么也没有留下!
最新回复 (0)
返回