zabbix 从0开始学习的步骤

注明:以下学习过程参考了很多文档,如有问题,请留言联系!谢谢

一、系统版本

CentOS-6.5-x86_64

二、环境

1、主机名

1.1 hostname

1.2 vim /etc/sysconfig/network

HOSTNAME=

2、网卡

vim /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

ONBOOT=yes

BOOTPROTO=static

IPADDR=192.168.2.35

3、selinux

vim /etc/selinux/config

SELINUX=disabled

setenforce 0 #使配置立即生效

4、时间同步

ntpdate 0.pool.ntp.org

方法二

ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

vi /etc/ntp/step-tickers

加入一行:

pool.ntp.org

service ntpd start

5、防火墙

iptables -I INPUT -p tcp --dport 80 -j ACCEPT

iptables -I INPUT -p tcp --dport 21 -j ACCEPT

iptables -I INPUT -p tcp --dport 5901 -j ACCEPT

service iptables save

或:service iptables  stop 关闭防火墙

二、LAMP环境

yum  -y groupinstall  "Development Tools"

1、安装Apache

yum install -y httpd

vim /etc/httpd/conf/httpd.conf

ServerName www.domain.com:80去掉注释并把域名改成localhost或本机地址

service httpd start

chkconfig httpd on

2、安装PHP与关联

yum -y install php php-gd php-xml php-bcmath  php-mbstring php-mysql

3、安装Mysql

yum -y install mysql mysql-server mysql-devel

service mysqld start

chkconfig mysqld on

mysqladmin -u root password ‘123456‘         创建数据库登陆账户和密码

查看数据库:show databases;

查看库中的表:show tables FROM zabbix

4、测试

vim /var/www/html/index.php

<?php phpinfo(); ?>

三、安装zabbix

1、安装依赖软件包

yum -y install curl curl-devel net-snmp net-snmp-devel perl-DBI gcc libxml2*

2、下载zabbix(可供选择的下载地址)

http://www.zabbix.com/download.php

http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/ http://jaist.dl.sourceforge.net/project/zabbix/

3、下载,解压zabbix (在官网选择要安装的版本)

2.4

wget http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.4.0/zabbix-2.4.0.tar.gz

2.48(汉化)

http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.4.8/zabbix-2.4.8.tar.gz

2.2

wget http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.2.5/zabbix-2.2.5.tar.gz

tar xf zabbix

cd zabbix

4、编译

./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --enable-proxy --with-mysql --with-net-snmp --with-libcurl --with-libxml2

注1://--prefix指定zabbix安装目录,--enable-server 支持zabbix服务器,--enable-agent支持zabbix代理,--enable-proxy 支持zabbix代理服务器,--with-mysql 使用MySQL客户端库可以选择指定路径mysql_config,--with-net-snmp 使用net - snmp软件包,择性地指定路径NET- SNMP配置,--with-libcurl 使用curl包

注2:

报错:error: MySQL library not found

安装:yum install mariadb-devel

报错:error: LIBXML2 library not found,

安装:yum install -y libxml2*

报错:error: Invalid Net-SNMP directory

安装:yum install -y net-snmp-devel

5、安装执行

make&&make install

6、 进入zabbix目录创建用户

groupadd zabbix                                 创建用户组zabbix

useradd -g zabbix -m zabbix                     创建用户zabbix属于zabbix组

chown -R zabbix.zabbix /usr/local/zabbix   改变zabbix安装目录的拥有者和组群

7、创建数据库

mysql -u root -p

mysql> create database zabbix character set utf8;

mysql> grant all on zabbix.* to [email protected] identified by ‘zabbix‘;

授权:本机能访问mysql,root用户下授权

mysql> flush privileges;    ##刷新系统授权

mysql>quit;

8、导入数据库

在解压后的zabbix目录中执行

mysql -uzabbix -pzabbix -hlocalhost zabbix < database/mysql/schema.sql

mysql -uzabbix -pzabbix -hlocalhost zabbix < database/mysql/images.sql

mysql -uzabbix -pzabbix -hlocalhost zabbix < database/mysql/data.sql

10、服务器端配置文件

vim /usr/local/zabbix/etc/zabbix_server.conf

DBName=zabbix        数据库名

DBUser=zabbix        数据库登陆账户

DBPassword=zabbix    数据登陆密码

11、配置PHP

vi /etc/php.ini

max_input_time = 600

# sed -i ‘s/max_input_time = 60/max_input_time = 600/g‘ php.ini

max_execution_time = 300

# sed -i ‘s/max_execution_time = 30/max_execution_time = 300/g‘ php.ini

date.timezone = Asia/Shanghai

post_max_size = 16M

# sed -i ‘s/post_max_size = 8M/post_max_size = 16M/g‘ php.ini

memory_limit = 128M

service httpd restart

12、启动设置

1、修改启动参数

修改启动脚本中的路径/usr/local改成/usr/local/zabbix

cp misc/init.d/fedora/core/* /etc/init.d/

sed -i ‘s/BASEDIR=\/usr\/local/BASEDIR=\/usr\/local\/zabbix/g‘ /etc/init.d/zabbix_server

sed -i ‘s/BASEDIR=\/usr\/local/BASEDIR=\/usr\/local\/zabbix/g‘ /etc/init.d/zabbix_agentd

2、启动进程

echo "/etc/init.d/zabbix_server start" >> /etc/rc.local

echo "/etc/init.d/zabbix_agentd start" >> /etc/rc.local

/etc/init.d/zabbix_server start

/etc/init.d/zabbix_agentd start

ps -ef | grep zabbix   查看进程

3、开放端口

iptables -I INPUT -p tcp --dport 10050:10051 -j ACCEPT

iptables -I INPUT -p udp --dport 10050:10051 -j ACCEPT

service iptables save

查看端口

netstat -npl|grep 10050

netstat -npl|grep 10051

四、页面初始化

cd zabbix-2.2.5

cp -R frontends/php/ /var/www/html/zabbix

打开:

http://192.168.2.35/zabbix/

五、客户机端安装配置

1、主机名

1.1 hostname

1.2 vim /etc/sysconfig/network

HOSTNAME=

2、依赖环境

yum -y install curl curl-devel net-snmp net-snmp-devel perl-DBI gcc

3、下载与服务器端同版本,步骤相似

编译:

./configure --prefix=/usr/local/zabbix --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2

4.1、客户端配置文件

vim /usr/local/zabbix/etc/zabbix_agentd.conf

Server= #修改为zabbix服务器端IP

ServerActive= #修改为zabbix服务器端IP

Hostname=Zabbix server

UnsafeUserParameters=1 #启用自定义key

5、防火墙,端口

iptables -I INPUT -p tcp --dport 10050:10051 -j ACCEPT

iptables -I INPUT -p udp --dport 10050:10051 -j ACCEPT

service iptables save

或:service iptables stop

6、进入zabbix目录创建用户

groupadd zabbix                                 创建用户组zabbix

useradd -g zabbix -m zabbix                     创建用户zabbix属于zabbix组

chown -R zabbix.zabbix /usr/local/zabbix   改变zabbix安装目录的拥有者和组群

7、启动设置

1、修改启动参数

修改启动脚本中的路径/usr/local改成/usr/local/zabbix

cp misc/init.d/fedora/core/* /etc/init.d/

sed -i ‘s/BASEDIR=\/usr\/local/BASEDIR=\/usr\/local\/zabbix/g‘ /etc/init.d/zabbix_agentd

2、启动进程

echo "/etc/init.d/zabbix_agentd start" >> /etc/rc.local

/etc/init.d/zabbix_agentd start

ps -ef | grep zabbix   查看进程

3、开放端口

iptables -I INPUT -p tcp --dport 10050:10051 -j ACCEPT

iptables -I INPUT -p udp --dport 10050:10051 -j ACCEPT

service iptables save

查看端口

netstat -npl|grep 10050

netstat -npl|grep 10051

8、测试与主机的链接(在zabbix-service端)

/usr/local/zabbix/bin/zabbix_get -s 192.168.190.2 -p 10050 -k "system.uptime"

注:192.168.190.2 指agentd端IP

#有数据显示说明通信正常

9、服务重启(如不能正常重启,则使用以下方法)

查看进程

ps ax|grep zabbix_agentd

关闭进程

ps ax|grep zabbix_agentd|grep -v grep |awk ‘{print $1}‘|xargs kill -9

启动服务

/etc/init.d/zabbix_agentd restart

六、控制台使用

1、添加主机(主机组一样的创建方法)

configuration(配置)---> Hosts(主机)---> Create host(创建主机)

1.1 Host选项

host name 主机IP

visible name (显示的名字)

Groups (组)

New host group (新建组)

Agent interfaces

IP address 被监控端IP

1.2 链接模板

configuration ---> hosts ---> Name前选择要链接的服务器 ---> 左下角(下拉菜单)选择mass update(go) ---> 模板 ---> 选择模板“Template OS liunx”

2、用户

创建新登录用户

管理 ---> 用户 ---> 右上下拉菜单处选择‘用户’ ---> 右上‘创建用户’ ---> 组群(添加超级超级管理员组) --->  添加媒介(比如邮件) ---> 许可权 ---> 保存

注:许可权 指:权限,当前用户对哪些主机有权限,选择”超级管理员“。

3、图表数据

Monitoring ---> Graphs ---> group / host / Graph

4、item(监控项)

configuration(配置)---> Hosts(主机)---> (主机) ---> (item) ---> Create item

重点:key

Name item的名字

Type item类型,采集数据的方式

key item的标识符(标记item的键),唯一,可接受参数

Type of information 采集的数据类型

Flexible intervals 采集数据间隔数据

New flexible interval   添加采集数据间隔数据

application item组

5、创建图像

5.1 Graphs

Configuration  ---> Hosts ---> Graphs ---> Create Graphs

Name 图像名

Graph type 图像类型

items (add) 添加需要加进来的item(监控项)

5.2 Screen

configuration(配置)---> Screen ---> Create Screen

6、Triggers(触发器)

6.1 表达格式:{<server>:<key>.<function>(<parameter>)}<operator><constant>

server 主机名

key 主机上关系,相应监控项(item)的key

function 评估采集到的数据是否在河里范围内时所使用的函数

parameter 函数参数

举例:

{192.168.0.104:system.cpu.load[all,avg1].last(0)}>3

说明:

主机192.168.0.104上所有CPU的过去1分钟内的平均负载的最后一次取值大于3时将触发状态变换

6.2 创建triggers(触发器)

configuration(配置)---> Hosts(主机)---> triggers ---> Create triggers

6.2.1 Triggers(触发器)

configuration(配置)---> Hosts(主机)---> triggers ---> Create triggers

Name (Triggers名)

Expression (定义条件)

Severity 触发级别

7、action (动作,操作)

(宏参考文档:https://www.zabbix.com/documentation/2.2/manual/appendix/macros/supported_by_location)

7.1 定义媒介

Administration ---> Media types ---> Create media type

Name:媒介名字(自定义)

Type:(媒介类型)

7.2 接收人配置

Administration ---> Users ---> (用户)---> Media ---> add:

Type: (选择上一步自定义的媒介名)

send to:(收件邮箱)

---> add ---> save

7.3设置Action

Configration ---> Action ---> Create action

1.Actions项(发送邮件的格式和内容)

Name:action的名字

Default message (信息内容)

Recovery message (转换成OK时发送信息)

2.Conditions(发送警告的条件)

Trigge = PROBLEM (触发器)

3.Operation ---> New

Step (告警级别)

Operation type (告警方式)

Send message(发送信息)

******Remote command (命令操作)

Send to User groups (发送到的用户组)

Send to Users (发送到的用户)

Send only to (选择调用脚本)

---> add ---> save

8、模板

Configration ---> Templates

Create Templates (创建模板)

七、web监控

网页状态码获取(正常值为200):

curl -I -m 10 -o /dev/null -s -w %{http_code}"\n" www.baidu.com

1、首页是否能打开

创建application

1.1********* configuration ---> Host ---> Application ---> create application

1.2 configuration ---> Host ---> 你的主机 ---> web ---> 右上角Create scenario

scenario 主要选项:

Name:监控项的名称

Application:放到哪个应用中

Update interval:更新周期,默认60秒

Agetn:模拟浏览器

Variables:宏变量(没有可以不填)

steps 主要选项

name:当前step名称,item key中可以用到

url:需要检测的网址

POST:你需要post提交上去的内容(没有可以不填)

Timeout:超时时间,默认15秒

Required status codes:响应代码必须包含在里面,多个响应代码用逗号分隔

正常响应码为:200

web监控方案创建后自动添加以下item,可在创建trigger中直接使用

说明:使用时,Scenario换为真是方案的名称

web.test.in[Scenario,,bps]

说明:页面(step)的下载速度,默认单位bps

web.test.fail[Scenario]

说明:出现错误的步骤(步骤指监控的页面):ailed step of scenario "Scenario".

web.test.error[Web1]

说明:最后一次的错误信息:Last error message of scenario "Scenario".

web.test.in[Scenario,step,bps]

说明:页面(step)的下载速度(指定相应方案Scenario的相应步骤step)

web.test.rspcode[Scenario,step]

说明:指定步骤中的页面的响应码,页面正常的响应码为200

web.test.time[Scenario,step,resp]

说明:指定步骤中的页面的响应时间

2、登陆*********

scenario 选项:

Variables:宏变量

用来定义能登录的账号密码

user=

password

steps 主要选项

POST:你需要post提交上去的内容,

例如:使用宏变量:user={user}&password={password}&Sign in

3、验证登录*********

steps 主要选项:

Required string :Profile

4、查看结果

monitorning ---> web---> 筛选出你的主机 ---> 查看“WEB性能监控_FOR_TTLSA”,Status,显示OK 便是正常

5、监控项*********

web方案监控项当web监控项创建好之后,下面的key会被自动添加好(备注:Scenario为web方案的名称)

web.test.in[Scenario,,bps] 整个阶段中的下载速度,单位字节/秒

web.test.rspcode[Scenario,Step] 检索指定阶段的http响应代码

八、自定义邮件报警

1、linux zabbix-server端配置

mutt+msmtp下载安装:

下载MSMTP

# wget http://down1.chinaunix.net/distfiles/msmtp-1.4.30.tar.bz2

# tar xvf msmtp-1.4.17.tar.bz2

# cd msmtp-1.4.17

# ./configure --prefix=/usr/local/msmtp

# make

# make install

# cd /usr/local/msmtp/

# mkdir etc #配置文件目录和配置文件都要自己建

# cd etc

# vim msmtprc #手动创建配置文件

# account default

# host smtp.163.com

# port 25

# from [email protected] #要从哪个邮箱发出

# auth login #这里如果使用on的话会报 "msmtp: cannot use a secure authentication method"错误

# tls off

# user [email protected] #邮箱用户名

# password xmanufo  #邮箱密码,这里可是明文的,如果你觉得不安全可以把文件改为600属性

# logfile /var/log/mmlog

保存退出。简单测试一下

/usr/local/msmtp/bin/msmtp [email protected]

随便输入一些内容用ctrl+d结束。然后到邮箱查看

安装MUTT

yum -y install mutt

# vim /etc/Muttrc

# set sendmail="/usr/local/msmtp/bin/msmtp"

# set use_from=yes

# set realname="fan******[email protected]"

# set editor="vim"

测试一下吧!

echo "testmail" | mutt -s "测试" [email protected]

这里的-a 是指添加附件,如果是多个附件的话就 多加几个 -a 文件名

脚本路径

cd /usr/local/zabbix/share/zabbix/alertscripts/

编写sendmail脚本:

#!/bin/bash

#zabbix use msmtp+mutt sendmail script.

echo $1; #to email address.

echo $2; #title.

echo $3; #content.

echo "$3" | mutt -s "$2" $1

脚本权限:

chmod +x sendmail.sh

测试:

./sendmail.sh $1 $2 $3

$1 收邮件地址

$2 邮件标题

$3 邮件内容

2、控制台配置使用sendmail.sh脚本

2.1创建媒介

Administration ---> Media types ---> Create media type

# Name:媒介名字(自定义)

# Type :Script (选择脚本Script)

# Scriptname:sendmail.sh (脚本名)

2.2接收人配置

Administration ---> Users ---> (用户)---> Media ---> add:

# Type: (选择上一步自定义的媒介名)

# send to:(收件邮箱)

---> add ---> save

2.3设置Action

(宏参考文档:https://www.zabbix.com/documentation/2.2/manual/appendix/macros/supported_by_location)

Configration ---> Action ---> Create action

1.Actions项(发送邮件的格式和内容)

Name:action的名字

# Default message (信息内容)

# Recovery message (转换成OK时发送信息)

2.Conditions(发送警告的条件)

# Trigger value = PROBLEM (触发器)

3.Operation ---> New

Step (告警级别)

Operation type (告警方式,选择:Send message(发送信息))

Send to User groups (发送到的用户组)

# Send to Users (发送到的用户)

# Send only to (选择调用脚本)

# ---> add ---> save

2.4 测试

十、测试操作

1、 主机:node1 无任何模板和触发器

用户:admin

2、自定义item

选定node1对应的items ---> greate item --->

Name:Network Outbound Rating

key:net.if.out[eth0]

store value:Delta(speed per second)

application:Net

Name:Network Inbound Rating

key:net.if.in[eth0]

store value:Delta(speed per second)

application:Net

Name:CPU Switches

key:system.cpu.switches

store value:As is

application:CPU

Name:CPU Interrupts

key:system.cpu.intr

store value:As is

application:CPU

save 保存

查看各个item采集的数据图像

Monitoring  ---> Latest data ---> Graph

3、 可视图

3.1 自定义Graphs

图一: Network Outbound Rating

Network Inbound Rating

图二: CPU Switches

CPU Interrupts

3.2 自定义Screen

4、Triggers(触发器)

configuration(配置)---> Hosts(主机)---> triggers ---> Create triggers

自定义:Network Inbound Rating 的 Triggers(触发器)

Expression (定义条件)

{node1:net.if.in[eth0].last()}>10000

Severity 触发级别

High

5、设置邮件报警

当触发Triggers,邮箱便会收到邮件

十一:本机测试

1、创建媒介

Administration ---> Media types ---> Create media type

name:localhost_mail(自定义名)

Type:Email

SMTP server:localhost

SMTP helo:localhost

SMTP email:[email protected]

2、创建收件人媒介配置(测试用admin配置)

Administration ---> Users ---> (admin)---> Media ---> add:

# Type: localhost_mail

# send to:[email protected]

---> add ---> save

3、action动作配置

Configration ---> Action ---> Create action

1.Actions项(发送邮件的格式和内容)

Name:action的名字

# Default message (信息内容)

# Recovery message (转换成OK时发送信息)

2.Conditions(发送警告的条件)

# Trigger value = PROBLEM (触发器)

3.Operation ---> New

Step:1-3 (告警级别)

Operation type: (告警方式,选择:Send message(发送信息))

# Send to Users:Admin

# Send only to:localhost_mail

# ---> add ---> save

十二、自定义宏

官方参考文档:

https://www.zabbix.com/documentation/2.2/manual/appendix/macros/supported_by_location

变量可以用于如下地方:

item 名称

item key 参数

触发器名称和描述

触发器表达式

其他地方

宏变量优先级:

主机宏(checked first)

主机模板定义的宏,如果有多个模板,那么按照模板越靠前那么宏的优先级越高

全局宏(checked last)

自定义宏

定义全局宏

Administration → General → Macros

十三、自定义监控

客户端配置文件 zabbix_angentd.conf 里面配置 UserParameter=1.

语法如下:

UserParameter=<key>,<command>

示例:

1、自定义监控客户端free,(zabbix_angentd端添加)

vim zabbix-agentd.conf #zabbix-agent配置文件添加

UserParameter=memory.free,/usr/bin/free | awk ‘/^Mem/{print $4}‘

重启zabbix_angentd

测试是否定义成功:(在zabbix_server端)

/usr/local/zabbix/bin/zabbix_get -s 192.168.0.104 -k "memory.free"

返回了数据,即表示成功

控制台添加items

key:memory.free

灵活的自定义 key:

UserParameter=key[*],command

示例:

自定义监控cat /proc/meminfo下的所有项,[*]指/proc/meminfo下的项目参数

UserParameter=memory.usage[*],/bin/cat /proc/meminfo | awk ‘/^$1:/{print $$2}‘

测试是否定义成功:(在zabbix_server端)

/usr/local/zabbix/bin/zabbix_get -s 192.168.0.104 -k "memory.usage[Buffers]"

/usr/local/zabbix/bin/zabbix_get -s 192.168.0.104 -k "memory.usage[MemFree]"

/usr/local/zabbix/bin/zabbix_get -s 192.168.0.104 -k "memory.usage[MemTotal]"

控制台添加items

key:memory.usage[Buffers]

key:memory.usage[MemFree]

key: memory.usage[MemTotal]

实战:监控nginx(本机IP:192.168.0.106)

(参考文档:http://www.ttlsa.com/zabbix/zabbix-monitor-nginx-performance/)

nginx status信息

curl http://127.0.0.1/ngx_status

yum安装nginx:

rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm

yum -y install nginx

service nginx start

配置:

cd /etc/nginx/conf.d/

vim default.conf

nginx.status开启方法:

server{

...

location /status {

stub_status on;

access_log off;

allow 192.168.0.0/16;

deny all;

}

}

nginx -t  检查语法

状态页面各项数据的意义

active connections - 当前 Nginx 正处理的活动链接数

serveraccepts handled requests - 总共处理了233851个链接,成功创建233851次握手(证明中间没有失败的),总共处理了687942个请求(平均每场握手处理了2.94个数据请求)

reading - nginx 读取到客户端的 header 信息数

writing - nginx 返回给客户端的 header 信息数

waiting - 开启 keep-alive 的情况下,这个值等于 active - (reading + writing),意思就是Nginx已处理完正在等候下一次骑牛指令的驻留链接

nginx压力测试:

ab -n 1000 -c 100 http://192.168.0.106/status/

vim /usr/local/zabbix/etc/zabbix_agentd.conf

修改

UnsafeUserParameters=1

文档末尾:添加以下内容:

UserParameter=Nginx.active[*],/usr/bin/curl -s "http://$1:$2/status" | awk ‘/^Active/{print $NF}‘

UserParameter=Nginx.reading[*],/usr/bin/curl -s "http://$1:$2/status" | grep ‘Reading‘ | cut -d" " -f2

UserParameter=Nginx.writing[*],/usr/bin/curl -s "http://$1:$2/status" | grep ‘Writing‘ | cut -d" " -f4

UserParameter=Nginx.waiting[*],/usr/bin/curl -s "http://$1:$2/status" | grep ‘Waiting‘ | cut -d" " -f6

UserParameter=Nginx.accepted[*],/usr/bin/curl -s "http://$1:$2/status" | awk ‘/^[ \t]+[0-9]+[ \t]+[0-9]+[ \t]+[0-9]+/{print $$1}‘

UserParameter=Nginx.handled[*],/usr/bin/curl -s "http://$1:$2/status" | awk ‘/^[ \t]+[0-9]+[ \t]+[0-9]+[ \t]+[0-9]+/{print $$2}‘

UserParameter=Nginx.requests[*],/usr/bin/curl -s "http://$1:$2/status" | awk ‘/^[ \t]+[0-9]+[ \t]+[0-9]+[ \t]+[0-9]+/{print $$3}‘

说明:

$1 指主机HOST(IP或域名)

$2 端口

服务器端测试:

/usr/local/zabbix/bin/zabbix_get -s 192.168.0.106 -k "Nginx.accepted[192.168.0.106,80]"

控制台(192.168.0.105/zabbix)key

Nginx.active[192.168.0.106,80] as is

Nginx.reading[192.168.0.106,80] as is

Nginx.writing[192.168.0.106,80] as is

Nginx.waiting[192.168.0.106,80] as is

Nginx.accepted[192.168.0.106,80] delta

Nginx.handled[192.168.0.106,80] delta

Nginx.requests[192.168.0.106,80] delta

网页的http_code:

UserParameter=web.http_code:curl -I -m 10 -o /dev/null -s -w %{http_code}"\n" 192.168.2.35/index.php

第一阶段总结:定义一次完整的监控:

1、添加主机(主机组)

2、添加item(内置的简单图形 Monitoring ---> Latest data)

3、trigger(event:OK ---> Problem,Recovery)

4、action(发通知 message(通知信息中使用宏)conditond(自定义触发条件),operation(step))

5、媒介 Administration ---> Media types

Email

Script (脚本)

6、自定义图形

1、Graphs

2、screen

7、map(拓扑图)***********

8、定义模板

configuration --->  Templates

十四、自动发现

1、定义模板

1、创建定义模板

configuration --->  Templates ---> creat Template

必填参数:

Template name

Visible name

Groups

New group

2、为自定义的模板添加item

configuration --->  Templates ---> 创建的模板 ---> item ---> create item

3、为创建的item创建trigger

4、为创建的item创建graphs

2、discovery(发现)设置:

configuration ---> Discovery ---> create Discovery rule(自定义发现规则)

Name

Discovery by proxy

IP range:(IP范围,如:192.168.2.1-100)

Delay (in sec):(延迟时间)

Checks (New)

Check type:zabbix agent (发现规则)

Port range:10050

Key:(获取其中监控的一个key作为获取的手段)

Device uniqueness criteria: IP address

3、action添加主机:(添加主机:定义接口,关联模板)

configuration ---> Action ---> Event source:(discovery) ---> create action

1、action

Name

2、Conditions (发现条件)

New condition

Host IP=

Discovery rule =

Discovery status = Discovered

3、operations (发现后的操作)

Add host (添加发现的主机)

Link to templates: Test-Template (为添加的主机连接测试模板)

自动注册

configuration ---> Action --->Event source:(Auto registration) ---> create action

4、移除主机

configuration ---> Action ---> Event source:(discovery) ---> create action

1、action

Name

2、Conditions

Discovery status = "Lost"

Host IP=

3、operations (发现后的操作)

Remove host

十五、分布式环境中使用zabbix_proxy

1、依赖环境

yum -y install curl curl-devel net-snmp net-snmp-devel perl-DBI gcc

2、proxy安装配置

下载,解压zabbix (在官网选择要安装的版本)

2.4

wget http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.4.0/zabbix-2.4.0.tar.gz

2.48(汉化)

http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.4.8/zabbix-2.4.8.tar.gz

2.2

wget http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.2.5/zabbix-2.2.5.tar.gz

3、下载与服务器端同版本,步骤相似

编译:

./configure --prefix=/usr/local/zabbix --enable-agent --enable-proxy --with-mysql --with-net-snmp --with-libcurl

注:如需监控proxy端,可安装:--enable-agent

make && make install

4、安装mysql

yum -y install mysql mysql-server mysql-devel

service mysqld start

chkconfig mysqld on

mysqladmin -u root password ‘123456‘         创建数据库登陆账户和密码

查看数据库:show databases;

查看库中的表:show tables FROM zabbix

5、创建数据库

mysql -u root -p

mysql> create database zabbix_proxy character set utf8;

注:创建数据库 zabbix_proxy

mysql> grant all on zabbix_proxy.* to [email protected] identified by ‘zabbix‘;

授权:本机能访问mysql的zabbix_proxy库,root用户下授权

mysql> grant all on zabbix_proxy.* to [email protected]‘192.168.%.%‘ identified by ‘zabbix‘;

授权:192.168.网段的用户能访问mysql的zabbix_proxy库,root用户下授权

注:在其他服务器登录

mysql -u zabbix -h192.168.%.% -p

mysql> flush privileges;    ##刷新系统授权

mysql>quit;

6、导入数据库

在解压后的zabbix目录中执行

mysql -uzabbix -pzabbix -hlocalhost zabbix_proxy < database/mysql/schema.sql

7、配置文档

vim /usr/local/zabbix/etc/zabbix_proxy.conf

Server= #zabbix-server端IP

Hostname= #必须和控制台端的Proxy name 保持一直,建议使用IP

DBHost=localhost #数据库主机

DBName=zabbix_proxy #数据库名,与前面创建的数据名一定要相同

DBUser=zabbix #数据库登录用户

DBPassword= zabbix #数据库密码

ConfigFrequency=1 #默认3600秒,建议修改为短时间

DataSenderFrequency=10 #默认1秒,建议修改为10-30秒

ProxyOfflineBuffer=1 #默认1小时

8、进入zabbix目录创建用户

groupadd zabbix                                 创建用户组zabbix

useradd -g zabbix -m zabbix                     创建用户zabbix属于zabbix组

chown -R zabbix.zabbix /usr/local/zabbix

9、启动设置******

/usr/local/zabbix/sbin/zabbix_proxy

查看proxy端是否启动

ss -tanlp

重启方法:同zabbix-agentd端重启方法

10、需要被proxy监控的host的zabbix_agentd.conf的Server=指向proxy的IP

11、配置zabbix-server控制台端

11.1、创建proxy

Administration ---> DM ---> creat proxy

必填选项:

Proxy name

#必须和zabbix_proxy.conf配置文件的Hostname=保持一致

Proxy mode:Active

11.2、创建主机

Configuration ---> Hosts ---> creat host

必填选项:

Host name

Visible name

Agent interfaces

Monitored by proxy

重点:选择创建proxy时的Proxy name

11.3、创建item、trigger或嵌套模板

十六、监控Windows

1、agents端win版下载(官方下载)

conf目录存放是agent配置文件 bin文件存放windows下32位和64位安装程序

示例:

c:/zabbix

c:/zabbix/bin/

c:/zabbix/conf/

c:/zabbix/logs/

2、配置与安装

2.1 配置zabbix agent相关配置。

找到conf下的配置文件 zabbix_agentd.win.conf ,修改以下参数:

LogFile=c:/zabbix/logs/ #日志路径

Server #zabbix-server端IP

Hostname #本机名

ServerActive #zabbix-server端IP

3、启动

开始  ---> 运行 ---> CMD

cd c:\zabbix\bin

zabbix-agentd.exe -c c:\zabbix\conf/zabbix_agentd.win.conf

安装成Windows服务

service.msc 开始Windows服务控制台--->开启服务

netstat -an   查看端口是否被监控

4、控制台设置

添加主机、item、trigger

十七、监控类型

zabbix agent

zabbix 自带的客户端程序(被动模式)

需要注意的是,server 检索数据有超时限制,最大超时时间 30 秒,如果检索数据经常超过 30 秒,那么,不建议你使用主动模式的agent

zabbix agent (active )

agent主动模式

simple check

基本的检测,可以检测网络、端口、fping 这些,功能很少并且无需安装客户端。

snmp check

适用于以下场景:

客户基于安全考虑,不同意安装agent

路由器、打印机等无法安装的设备

十八、维护模式

Configuration(配置) → Maintenance(维护)—>点击 Create maintenance period (创建维护周期)

Maintenance

Maintenance type 维护类型

With data collection – 依旧收集数据

No data collection– 暂停收集数据

Active since   维护周期开始时间

Active till   维护结束时间

Periods:维护周期

十九、zabbix命令

19.1、zabbix_server

启动zabbix_server端

zabbix_server -c <file>

<file> 指配置.conf文件路径

19.2、获取agent端的key的数据

zabbix_get -s --host<hostname or IP> -p <post> -k --key <key of metric>

--host<hostname or IP> 指客户端主机名或IP

<post> 指监控端口

--key <key of metric>  指客户端的key

实例

./zabbix-get -s 127.0.0.1 -p 10050 -k "system.hostname"

19.3、zabbix_agentd

启动zabbix_agentd端

zabbix_agentd -c <file>

<file> 指配置.conf文件路径

19.4、zabbix_proxy

启动 zabbix_proxy 端

zabbix_proxy -c <file>

<file> 指配置.conf文件路径

二十、优化

1、操作系统优化

2、数据库优化

3、数据库分离

4、数据库引擎

mysql5.6或更高的版本

5、其他优化

减少item获取时间

减少不必要的监控项

终章:实战

zabbix监控

puppet_master

mem cached

mysql (master)

mysql (slave)

nginx(mogilefs) amoeba

mogilefs mogstored

tomcat

其它:

zabbix-service端安装配置,页面初始化“简易脚本”

#!/bin/bash

#

# 环境

yum -y install curl curl-devel net-snmp net-snmp-devel perl-DBI gcc libxml2*

# 下载安装

cd /usr/local/src

wget http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.2.5/zabbix-2.2.5.tar.gz

tar xf zabbix-2.2.5.tar.gz

cd zabbix-2.2.5

./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --enable-proxy --with-mysql --with-net-snmp --with-libcurl --with-libxml2

make && make install

# 创建用户

groupadd zabbix

useradd -g zabbix -m zabbix

chown -R zabbix.zabbix /usr/local/zabbix

# 数据库设置

mysql -u root -p123456 -e "

create database zabbix character set utf8;

grant all on zabbix.* to [email protected] identified by ‘zabbix‘;

flush privileges;

quit"

#数据库导入

mysql -uzabbix -pzabbix -hlocalhost zabbix < database/mysql/schema.sql

mysql -uzabbix -pzabbix -hlocalhost zabbix < database/mysql/images.sql

mysql -uzabbix -pzabbix -hlocalhost zabbix < database/mysql/data.sql

# 修改配置文件:zabbix_server.conf

cd /usr/local/zabbix/etc/

sed -i ‘s/DBUser=root/DBUser=zabbix/g‘ zabbix_server.conf

echo DBPassword=zabbix >> zabbix_server.conf

# 修改php配置文件

cd /etc/

sed -i ‘s/max_input_time = 60/max_input_time = 600/g‘ php.ini

sed -i ‘s/max_execution_time = 30/max_execution_time = 300/g‘ php.ini

sed -i ‘s/post_max_size = 8M/post_max_size = 16M/g‘ php.ini

echo ‘date.timezone = Asia/Shanghai‘ >> php.ini

service httpd restart

# 启动设置

cd /usr/local/src/zabbix-2.2.5/

cp misc/init.d/fedora/core/* /etc/init.d/

sed -i ‘s/BASEDIR=\/usr\/local/BASEDIR=\/usr\/local\/zabbix/g‘ /etc/init.d/zabbix_server

sed -i ‘s/BASEDIR=\/usr\/local/BASEDIR=\/usr\/local\/zabbix/g‘ /etc/init.d/zabbix_agentd

echo "/etc/init.d/zabbix_server start" >> /etc/rc.local

echo "/etc/init.d/zabbix_agentd start" >> /etc/rc.local

/etc/init.d/zabbix_server start

/etc/init.d/zabbix_agentd start

cp -R frontends/php/ /var/www/html/zabbix

时间: 2024-10-17 06:46:31

zabbix 从0开始学习的步骤的相关文章

zabbix 3.0.3 学习笔记

一.安装zabbix及解决图表方块字 1.安装zabbix(配置好相关yum源,解决包依赖问题,参考官方文档) yum install zabbix-agent zabbix-server-mysql zabbix-web-mysql mariadb-server -y 2.更换PHP的时区 vim /etc/php.ini data.timezone = "Asia/Shanghai" 3.配置mysql,解决编码问题 vim /etc/my.cnf character-set-se

深入浅出Zabbix 3.0 -- 第二章 Zabbix Web操作与定义

第二章  Zabbix Web操作与定义 本章介绍Zabbix 中一些基本概念的定义和web前端页面的操作,包括Zabbix中使用的一些术语的定义,Web页面中用户管理.主机和主机组的管理,以及监控项.模板.触发器.告警的管理和操作,还有Graphs.Screens.Maps及Reports等.通过本章的学习掌握一些基本概念并能够通过Web页面的操作完成对Zabbix的管理. 2.1 定义 hosts(主机) Zabbix中需要监控的服务器.交换机及其他设备我们都统一称作host,这些设备与Za

Zabbix 3.0 部署监控 [三]

Zabbix 3.0 部署监控 [三] zabbix 时间:2016年9月22日 笔者QQ:381493251 Abcdocker交流群:454666672 如果遇到什么问题可以进群询问,我们是一个乐于帮助的集体! Dashboard首页信息介绍 Status of Zabbix(Zabbix状态)介绍 Zabbix server is running                           #Zabbix服务器是否运行 Number of hosts (enabled/disabl

20145209 《信息安全系统设计基础》第0周学习总结

20145209 <信息安全系统设计基础>第0周学习总结 教材学习内容总结 一.师生关系: 最好的师生关系是健身学员与健身教练的关系.这种关系的前提就是学员即学生必须以自己学习为前提,在学习的过程中接受老师的指导,才能真正提高和进步.老师安排任务只能更具大多数人的水平,并不能完全的更具 你自己的能力给你最好的学习模式,只有通过自己对自己的了解,探索出自己的学习方式,在此期间向老师提出疑问与不解才能真正的进步. 二.习而学的要点: 找到学习共同体:因为大量知识存在于学习共同体的实践中,不是书本中

Zabbix 3.0 监控MySQL

Mysql监控  zabbix自带了一个监控mysql的模板,但是真正监控mysql的并不是zabbix自带的模板.而是percona公司的一个监控mysql模板  percona官网: www.percona.com Percona组成介绍 1.php脚本    用来数据采集 2.shell脚本  用来调用采集信息 3.zabbix配置文件 4.zabbix模板文件 安装文档:https://www.percona.com/doc/percona-monitoring-plugins/LATE

深入浅出Zabbix 3.0 -- 第八章 管理告警

第八章  管理告警 在本章中可以了解到Triggers(触发器)的配置和Actions(动作)的配置,详细介绍触发器的规则表达式.告警.告警升级等, 作为一个监控解决方案,告警是不可或缺的功能.当从监控对象上收集的监控项的值满足系统中设定的阈值即产生告警事件,依据告警事件的不同类型,产生相应的告警动作,给用户发送告警信息,或者执行命令等等.Zabbix中的告警流程如下图7-1所示. 图 8-1 8.1 触发器 我们知道在Zabbix中是通过监控项收集监控数据,然后这些数据会保存在数据库中.有时候

CentOS 7.2安装zabbix 3.0 LTS

1.zabbix简介 zabbix(音同 z?bix)是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案. zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题. zabbix由2部分构成,zabbix server与可选组件zabbix agent. zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以

Zabbix 3.0 监控MySQL [六]

Zabbix 3.0 监控MySQL [六] 2016年10月9日18:25:29 zabbix 笔者QQ:381493251 博客地址:www.abcdocker.com 微信公众号:abcdocker Abcdocker交流群:454666672 如果遇到什么问题可以进群询问,我们是一个乐于帮助的集体! Mysql监控 zabbix自带了一个监控mysql的模板,但是真正监控mysql的并不是zabbix自带的模板.而是percona公司的一个监控mysql模板 percona官网: www

Zabbix 3.0.3 LTS安装/配置/2.x升级

环境准备: 操作系统:CentOS 7或以上 一.安装mysql 1.建立Mysql账号 groupadd mysql useradd -s /sbin/nologin -g mysql -M mysql 2.创建mysql软件目录并修改权限 mkdir -p /usr/local/mysql mkdir -p /data/mysql chown -R root:mysql /usr/local/mysql chown -R mysql:mysql /data/mysql 3.安装依赖包 yum