zabbix 3.0.3 学习笔记

一.安装zabbix及解决图表方块字

php

1.安装zabbix(配置好相关yum源,解决包依赖问题,参考官方文档)mysql

yum install zabbix-agent zabbix-server-mysql zabbix-web-mysql mariadb-server -y
linux


2.更换PHP的时区web

vim /etc/php.inisql

data.timezone = "Asia/Shanghai"shell


3.配置mysql,解决编码问题vim

vim /etc/my.cnfwindows

character-set-server=utf8

centos

mysql -uroot -p<password>bash

mysql> create database zabbix character set utf8 collate utf8_bin;

mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';


cd /usr/share/doc/zabbix-server-mysql-3.0.3/

zcat create.sql.gz | mysql -uroot zabbix


vi /etc/zabbix/zabbix_server.conf

DBHost=localhost

DBName=zabbix

DBUser=zabbix

DBPassword=zabbix


4.其它配置

关闭sellinx

firewall-cmd --add-service=http

firewall-cmd --add-service=http --permanent


5.解决中文语言状态预览方块字

/usr/share/zabbix/fonts (linux下zabbix字体存路径 )到windows下载字体到此目录字体的TTF后缀改成小写

/usr/share/zabbix/include/defines.inc.php          #修改字体的配置文件

define('ZBX_GRAPH_FONT_NAME',           'SIMKAI'); // font file name


二.添加被监控主机

1.安装客户端

yum install zabbix-agent.x86_64

2.配置客户端

/etc/zabbix/zabbix_agentd.conf

Server=192.168.178.134

ServerActive=192.168.178.134

Hostname=centos7 #和服务器主机名称保持一致


3.服务器配置

配置--主机--建立主机

684e648527d6d49bec05279732ceb0a52861d6.p



三.定义监控项,自定义key

1.在主机上建立监控项

配置--主机--监控项--建立监控项

d867a1f35bd9a29b0ab71968ad5439e1287425.p

2.key的使用

proc.num[<name>,<user>,<state>,<cmdline>]

proc.num[,,,] # name,user,state为默认值

proc.num  # 查看全部的里程,客户端已经安装了代理,代理会自动的监测系统中的不少信息

3.安装zabbix-get获取客户端数据

yum install zabbix-get -y  # 须要配置好yum源

4.zabbix_get的使用

zabbix_get -s 被监测服务器地址 -k 监测的key

zabbix_get -s 192.168.178.132 -k proc.num[,,,]

zabbix_get -s 192.168.178.132 -k proc.num[,zabbix,] # 四个,号后面不使用的,,能够不写,前面的,号不能忽略

zabbix_get -s 192.168.178.132 -k proc.num[,,,pro] # pro为第四个值(cmdline),匹配关键字含有pro的进程

cmdline-->写上一个关键字,好比写pro,那么在ps aux里面command部分里面出现pro的进程都匹配

5.在服务器上建立主机图表

配置---主机---建立图形

f8ba7d0723c9a832cfd25400de031e3f55b9f1.j

--------------------------------------------------------------------------------------------------------------------------------------------------

测试多进程监控脚本

#!/bin/bash

while :

do

 echo 1 > /dev/null

done

--------------------------------------------------

#!/bin/bash

if [ $# -ne 1]; then

      echo '必须跟一个数字'

      exit 1

fi

echo "终止测试,请连续按ctrl+c"

trap 'killall -9 sh &> /dev/null ; rm -rf /tmp/aa*.sh' INT


for i in `seq 1 $1`

do 

 cp /root/aa.sh /tmp/aa${i}.sh 

  sh /tmp/aa${i}.sh &

done

--------------------------------------------------------------------------------------------------------------------------------------------------

6.自定义KEY

在客户端进行设置

 /etc/zabbix/zabbix_agentd.conf 

Include=/etc/zabbix/zabbix_agentd.d/ # 在此目录写自定义脚本

语法: UserParameter=key的名称,命令

例子:UserParameter=num-of,ps aux --no-header | wc -l

zabbix_get -s 192.168.178.132 -k num-of # 在服务器上执行触发客户端执行num-of的命令或脚本并将执行的结果回传给服务器

语法:UserParameter=key的名称[*],命令 $1

例子:UserParameter=pro[*],echo $1 

zabbix_get -s 192.168.178.132 -k pro[1]


配置--主机--监控项--建立监控项

自定义的键值在选择按钮列表是找不到键值的,须要手工录入

199425496da7de36547196e181c0faa87c5135.j


四.触发器的使用及报警

1.触发器的建立,针对某一个监控项

配置--主机--建立触发器

仅仅建立触发还不够,必须建立一个动做,当知足触发器的条件的话,而后要执行什么操做

774322c42289f6b7705051ee00690cfdba2dd1.p


2.动态的建立

配置---动做--事件来源[触发器]--建立动做

建立了一个动做--->当触发器触发的时候,则把信息发送给指定的人

当centos7.1上进程超过100的时则触发了这个条件,触发了动做会产生一些信息而且将这些信息发送给指定的人。

64a7f5b417f06e6f576811582d16d0429385cb.p


3.用户管理

管理--用户

决定admin收到信息以后要执行的操做,决定使用什么方式报警:

a.邮件

决定admin这个用户以什么邮件地址做为发件人

b.脚本

f337aec5916eec17996737618984fcf608f3eb.j


4.媒介类型的建立与修改

管理--报警媒介类型--建立媒介类型

c2ba9d99815bad6835791716d64a78110d7eeb.j

5.微信警报 (企业公众号)

配置一个触发器同,当cpu超过80%的时候就开始微信报警

/etc/zabbix/zabbix_server.conf

AlertScriptsPath=/usr/lib/zabbix/alertscripts # 将微信脚本放至此目录

/usr/lib/zabbix/alertscripts/WeiXin-Private-API/config.php # 修改此文件

/usr/lib/zabbix/alertscripts/WeiXin-Private-API/test.php 

$testFakeId = "$argv[1]"; # 发送给指定的用户

$msg="$argv[3]"; # 发送的信息内容

./weixin "owZmQwSvaFm1RmaYvmAdhoaemoDU" '' 'hello lincx' # 测试消息发送

15aa58b899cc159668f4072d07e158a464c59e.j


五.其它设置

1.应用集的定义

把相关的监控项定义一个应用集,对监控项进行分类

配置--主机--应用集--建立应用集


2.主机组定义

基于服务器进行分类,对类型相同的服务器进行分组


3.模板的建立(应用集、监控项、触发器 、图形、聚合图形、自动发现、Web监测,元素的集合被主机引用)


4.聚合图形的使用(基于图形)


5.幻灯片的使用(每隔一时间内自动切换多个聚合图形)


6.网络拓扑图

插入背景图(管理--通常--图片--建立图片)用于拓扑区分地理位置


7.宏定义

{$变量名} # 通常使用大写字母,全局性引用

全局性的设置

主机级别的变量

管理--通常--宏--添加--更新

监控项的名称、键值的参数能够引用自定义的宏xx[,{$AA},]

网络拓扑图不能引用这种变量,使用的是内置的变量例如{HOST,NAME}

zabbix有不少内置的宏(查询相关资料)

配置--主机--建立主机--宏定义(只能用于该主机,其它主机不能使用该主机自定义的宏)

44411d557d4ffcf15856698589dda8ae8aee2c.j


七.自动化

1.网络发现:zabbix服务器主动扫描环境中的主机,知足条件的话,自动的添加过来

使用第三方软件

puppet

saltstack

配置--自动发现--建立自动发现

493782f10f5f9aa985c63518a0a4a44e4326f1.j

2.自动发现动做的建立

发现主机后在哪一个主机组里进行添加主机、使用哪一个模板等的操做

f47425b0261dab5889a7652a72ea4bdb4a75dd.p

2.1.配置--动做--事件源[自动发现]--建立动做

132838f8429a9e5fdef74142bf06c231cd04cb.j

3.自动注册:zabbix server不主动,而是客户端主动去向zabbix server发送请求,要求注册

服务器须要设置一个动做,指定哪些客户端能加进来

配置--动做--事件源[自动注册]--建立动做

/etc/zabbix/zabbix_agentd.conf

HostMetadata=xx # xx客户端与服务端匹配的字符串

516a1bd1146e5d95111288c4e3171b4497cbbc.p

4.低级别发现(low-level discovery):

可让其自动的发现客户端要监测哪些东西

好比监测分区不一样的机器的分区确定是不同的

vfs.fs.size[/boot,used]

vfs.fs.size[/,used]

不一样机器不一样分区须要逐个去设置比较繁琐,可让zabbix自动的去发现客户端的分区状况,而后根据实际状况自动的定义监控项

zabbix_get -s 192.168.178.132 -k vfs.fs.discovery # 动态获取被监控机器的分区类型

{#FSNAME}--->  挂载点

{#FSTYPE}--->  文件系统类型

低级别发现是基于模板的,在这个模板里不须要定义具体的监控项,须要定义的是原型,监控项原型、图表原型

当某个主机使用这个模板的时候,会把模板里面的监控项原型转变为监控项、图表原型转变为图表


4.1.配置--模板--建立模板--自动发现--建立发现规则

经过vfs.fs.discovery能够获取客户端全部的文件系统信息

24ec3b5300fdd9c4fc713281f6dbaf3deb5e50.j

4.2.配置--模板--自动发现--监控项原型--建立监控项原型

c1b15e2860b713480d2178ec6c0a004630ba0c.p

4.3.配置--模板--自动发现--图形项原型--建立图形原型

1679f6733868dd76b782534d102a671f891504.j


八.分布式

1.安装zabbix-proxy

配置好相关yum源

yum install zabbix-proxy zabbix-proxy-mysql mariadb-server -y

2.配置mysql,解决编码问题

vim /etc/my.cnf

character-set-server=utf8


mysql -uroot -p<password>

mysql> create database zabbix character set utf8 collate utf8_bin;

mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';


cd /usr/share/doc/zabbix-proxy-mysql-3.0.3/

shell> mysql -uzabbix -p<password> zabbix < p_w_picpaths.sql

shell> mysql -uzabbix -p<password> zabbix < data.sql


3.代理服务器配置文件相关修改

/etc/zabbix/zabbix_proxy.conf

Server=192.168.178.134 # zabbix服务器的IP

DBHost=localhost

DBPassword=zabbix

Hostname=Zabbix proxy

SourceIP=192.168.178.132 # 代理服务器本身的IP


重启动服务

systemctl restart zabbix_proxy

4.代理的配置

管理---代理---建立代理

清除日志

cat /dev/nul > /var/log/zabbix/zabbix_agentd.log

38095658978eac5a955974d43c2893c0c1abcd.j