zabbix第一篇:zabbix安装及使用

 

 经常使用软件安装及使用目录php

 

一:搭建zabbix命令集

cat /etc/redhat-releasehtml

uname -rpython

getenforcemysql

systemctl status firewalld.servicenginx

hostname -Igit

tail -1 /etc/hostsgithub

      #192.168.19.200 repo.zabbix.com mirrors.aliyun.comweb

rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpmsql

yum install zabbix-server-mysql zabbix-web-mysqlshell

yum -y install mariadb-server

systemctl start mariadb.service

 

mysql

create database zabbix character set utf8 collate utf8_bin;

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

exit

 

zcat /usr/share/doc/zabbix-server-mysql-3.0.13/create.sql.gz|mysql -uzabbix -pzabbix zabbix

sed -i.ori '115a DBPassword=zabbix' /etc/zabbix/zabbix_server.conf

sed -i.ori '18a php_value date.timezone  Asia/Shanghai' /etc/httpd/conf.d/zabbix.conf

systemctl start zabbix-server

systemctl start httpd

 

rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm

yum install zabbix-agent

sed -i.ori 's#Server=127.0.0.1#Server=172.16.1.61#' /etc/zabbix/zabbix_agentd.conf

systemctl start zabbix-agent.service

 

yum install zabbix-get

zabbix_get -s 172.16.1.61 -p 10050 -k "system.cpu.load[all,avg1]"

zabbix_get -s 172.16.1.21 -p 10050 -k "system.cpu.load[all,avg1]"

yum -y install wqy-microhei-fonts

\cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf

 

一:zabbix服务端安装:

cat /etc/redhat-release

uname -r

getenforce

systemctl status firewalld.service

hostname -I

tail -1 /etc/hosts

      #192.168.19.200 repo.zabbix.com mirrors.aliyun.com

rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm

yum install zabbix-server-mysql zabbix-web-mysql

yum -y install mariadb-server

systemctl start mariadb.service

 

mysql

create database zabbix character set utf8 collate utf8_bin;

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

exit

 

zcat /usr/share/doc/zabbix-server-mysql-3.0.13/create.sql.gz|mysql -uzabbix -pzabbix zabbix

sed -i.ori '115a DBPassword=zabbix' /etc/zabbix/zabbix_server.conf

sed -i.ori '18a php_value date.timezone  Asia/Shanghai' /etc/httpd/conf.d/zabbix.conf

systemctl start zabbix-server

systemctl start httpd

 

ip/zabbix

 

 

 

 

zabbix页面中英文语言类型修改

建立监控主机

 

 

二:zabbix服务端自我监控

yum install zabbix-agent

sed -i.ori 's#Server=127.0.0.1#Server=172.16.1.61#' /etc/zabbix/zabbix_agentd.conf

systemctl start zabbix-agent.service

 

yum install zabbix-get

zabbix_get -s 172.16.1.61 -p 10050 -k "system.cpu.load[all,avg1]"

 

三:添加zabbix客户端

 

rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm

yum install zabbix-agent

sed -i.ori 's#Server=127.0.0.1#Server=172.16.1.61#' /etc/zabbix/zabbix_agentd.conf

systemctl start zabbix-agent.service

 

#服务端测试

zabbix_get -s 172.16.1.21 -p 10050 -k "system.cpu.load[all,avg1]"

 

 

可刷新查看

没变绿查看模板是否添加上了

 

zabbix图形界面有乱码:

#服务端操做:

yum -y install wqy-microhei-fonts

\cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf

刷新

http://c.onealert.com/ucid/registerForABTest/register.jsp

认识zabbix其余界面

 

监控案例

实际需求:公司已经有了100台服务器,如今须要使用zabbix所有监控起来。

1. 先出个方案(规划)

常规监控:cpu,内存,磁盘,网卡  问题:怎样快速添加100台机器

方法1:使用克隆的方式

方法2:自动注册和自动发现

方法3:调用zabbix api接口  curl python

开发本身的运维平台兼容zabbix的通道

 

curl -i -X POST -H 'Content-Type:application/json' -d'{"jsonrpc": "2.0","method":"user.login","params":{"user":"Admin","password":"zabbix"},"auth": null,"id":0}' "http://10.0.0.61/zabbix/api_jsonrpc.php"

 

curl -i -X POST -H 'Content-Type:application/json' -d'

{

"jsonrpc": "2.0",

"method": "host.get",

"params": {

"output": [

"hostid",

"host"

],

"selectInterfaces": [

"interfaceid",

"ip"

]

},

"id": 2,

"auth": "6a450a8fc3dce71fd310cfe338746578"

}' "http://10.0.0.61/zabbix/api_jsonrpc.php"

 

服务监控,url监控等特殊监控:自定义监控

 

2. 具体的实施步骤

 

1. 全网监控技术要点分析

 

考试目标:使用zabbix将期中架构全部集群监控

 

具体内容:

1、硬件、系统、网络监控

全部集群节点(全部虚拟机)都监控上

 

交换机,路由器监控(简单方法:换成端口对应服务器网卡流量监控;标准方法:监控交换机的网卡)

snmp监控

 

2、应用服务监控

服务端口的监控测试

[root@m01 ~]# zabbix_get -s 172.16.1.61 -p 10050 -k 'net.tcp.listen[80]'

1

[root@m01 ~]# zabbix_get -s 172.16.1.61 -p 10050 -k 'net.tcp.listen[81]'

0

[root@m01 ~]# zabbix_get -s 172.16.1.61 -p 10050 -k 'net.tcp.port[172.16.1.61,80]'

1

[root@m01 ~]# zabbix_get -s 172.16.1.61 -p 10050 -k 'net.tcp.port[172.16.1.62,80]'

0

[root@m01 ~]# zabbix_get -s 172.16.1.61 -p 10050 -k 'net.tcp.port[,80]'

1

添加监控项

进程监控测试(m01服务端

zabbix_get -s 172.16.1.61 -p 10050 -k 'proc.num[httpd,]'

zabbix_get -s 172.16.1.61 -p 10050 -k 'proc.num[,apache]

添加模板,监控项图形等等

 

部分服务器监控方案

 1. 监控备份服务器方案

监控备份服务器,简单方法是监控rsync端口,若是有其余更佳方案能够说明;

方法1:监控873端口net.tcp.port[,873]

方法2:模拟推送拉取文件

2. 监控NFS服务器方案

监控NFS服务器,使用监控NFS进程来判断NFS服务器正常,若是有其余更佳方案能够说明;

方法1:端口(经过111rpc端口获取nfs端口) net.tcp.port[,111]

方法2showmount -e ip|wc -l

 3. 监控MySQL服务器方案

 监控MySQL服务器,简单方法监控mysql3306端口,或者使用zabbix提供的Mysql模板,若是有其余更佳方案能够说明;

方法1:端口(经过3306mysql端口) net.tcp.port[,3306]

方法2mysql远程登陆

方法3:使用zabbix agent自带的模板及key

没有权限访问 key中添加用户密码

4. 监控2web服务器方案

监控2web服务器,简单方法监控80端口,若是有其余更佳方案能够说明;

方法1:端口(经过80web端口) net.tcp.port[,80]

方法2:看网页状态码、返回内容==zabbix 自带WEB检测

 5. 监控URL地址构建web场景

监控URL地址来更精确的监控咱们的网站运行正常;

yum -y install nginx

echo ok >>/usr/share/nginx/html/check.html

浏览器测试 http://10.0.0.21/check.html

1) web场景

1) 步骤

1) 成功

1) 常见错误

步骤"监控check" [1之于1] 失败: Couldn't connect to server: Failed connect to 10.0.0.21:80; Connection refused

 

 6. 监控反向代理服务器方案

监控反向代理服务器,PPTP服务器等你在期中架构部署的服务。

 

nginxpptp

ntp 端口udp 123

 

 7. 监控Nginx7种链接状态

监控Nginx7种链接状态。

====cache01操做=============zabbix客户端

vim /etc/nginx/nginx.conf

……

location /status {

           stub_status on;

           access_log off;

        }

……

vim /etc/zabbix/zabbix_agentd.d/userparameter_nginx_status.conf

UserParameter=nginx_active,curl -s  127.0.0.1/status|awk '/Active/ {print $NF}'

UserParameter=nginx_accepts,curl -s  127.0.0.1/status|awk 'NR==3 {print $1}'

UserParameter=nginx_handled,curl -s  127.0.0.1/status|awk 'NR==3 {print $2}'

UserParameter=nginx_requests,curl -s  127.0.0.1/status|awk 'NR==3 {print $3}'

UserParameter=nginx_reading,curl -s  127.0.0.1/status|awk 'NR==4 {print $2}'

UserParameter=nginx_writing,curl -s  127.0.0.1/status|awk 'NR==4 {print $4}'

UserParameter=nginx_waiting,curl -s  127.0.0.1/status|awk 'NR==4 {print $6}'

编辑后重启zabbix客户端

zabbix 服务端命令测试

zabbix web页面添加监控模板,将它们放在同一图形中

因为三种总的状态和实时状态相差巨大,因此应该分两图显示,再作成聚合图形,这样更加美观,直观

 

web页面在zabbix服务端用zabbix给的键值测试

zabbix_get -s 172.16.1.21 -p 10050 -k 'web.page.get[172.16.1.21,check.html]'
zabbix_get -s 172.16.1.61 -p 10050 -k 'web.page.get[172.16.1.21,check.html]'
zabbix_get -s 172.16.1.21 -p 10050 -k 'web.page.get[www.baidu.com]'
zabbix_get -s 172.16.1.21 -p 10050 -k 'web.page.get[www.etiantian.org]'

 

监控服务通用方法:

1. 监控端口 netstat ss lsof  ==wc -l

2. 监控进程 ps -ef|grep 进程|wc -l  试运行一下

3. 模拟客户端的使用方式监控服务端

web  ==curl

mysql ==select insert

memcache ==setget

 

端口,进程,url监控也是你们都要的,全部zabbix也自带

 

[root@m01 ~]# zabbix_get -s 172.16.1.61 -p 10050 -k 'net.tcp.listen[80]'

1

[root@m01 ~]# zabbix_get -s 172.16.1.61 -p 10050 -k 'net.tcp.listen[81]'

0

[root@m01 ~]# zabbix_get -s 172.16.1.61 -p 10050 -k 'net.tcp.port[172.16.1.61,80]'

1

[root@m01 ~]# zabbix_get -s 172.16.1.61 -p 10050 -k 'net.tcp.port[172.16.1.62,80]'

0

[root@m01 ~]# zabbix_get -s 172.16.1.61 -p 10050 -k 'net.tcp.port[,80]'

1

 

进程  

 

zabbix_get -s 172.16.1.61 -p 10050 -k 'proc.num[httpd,]'

zabbix_get -s 172.16.1.61 -p 10050 -k 'proc.num[,apache]'

 

监控URL

 

cd /etc/zabbix/zabbix_agentd.d/

vim userparameter_login.conf

UserParameter=login-user,who|wc -l

systemctl restart zabbix-agent.service 

systemctl restart zabbix-agent.service

 

1. 自定义监控(制做模板)

 

 

zabbix自带模板Template OS Linux (Template App Zabbix Agent)提供CPU、内存、磁盘、网卡等常规监控,只要新加主机关联此模板,就可自动添加这些监控项。

 

需求:服务器登陆人数不超过3人,超过3人报警

 

 

自定义key能被server和agent承认

 

# 正确的key

[root@m01 ~]# zabbix_get -s 172.16.1.21 -p 10050 -k "system.uname"

Linux cache01 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64

 

# 没有登记的,自定义的key

[root@m01 ~]# zabbix_get -s 172.16.1.21 -p 10050 -k "login-user"

ZBX_NOTSUPPORTED: Unsupported item key.

 

# 写错的key

[root@m01 ~]# zabbix_get -s 172.16.1.21 -p 10050 -k "system.uname1"

ZBX_NOTSUPPORTED: Unsupported item key.

 

 

1.1 在agent注册

 

语法:

UserParameter=<key>,<shell command>

UserParameter=login-user,who|wc -l

UserParameter=login-user,/bin/sh /server/scripts/login.sh

 

[root@cache01 ~]# cd /etc/zabbix/zabbix_agentd.d/

[root@cache01 zabbix_agentd.d]# vim userparameter_login.conf

UserParameter=login-user,who|wc -l

UserParameter=login-user2,who|wc -l

UserParameter=login-user3,who|wc -l

 

# key名字要惟一,多个key以行为分割

 

[root@cache01 zabbix_agentd.d]# systemctl restart zabbix-agent.service

 

 

# 在server检测

[root@m01 ~]# zabbix_get -s 172.16.1.21 -p 10050 -k "login-user"

3

[root@m01 ~]# zabbix_get -s 172.16.1.21 -p 10050 -k "login-user2"

3

[root@m01 ~]# zabbix_get -s 172.16.1.21 -p 10050 -k "login-user3"

3

[root@m01 ~]# zabbix_get -s 172.16.1.21 -p 10050 -k "login-user4"

ZBX_NOTSUPPORTED: Unsupported item key.

1.2 在server注册(web操做)

1.2.1 建立模板

Template Login User

1.2.2 建立应用集

给监控项分类

1.2.3 建立监控项

监控的内容

1.2.4 建立触发器

当监控项获取到的值 达到必定条件时 就触发报警

 

1.2.5 建立图形

 

1.2.6 主机关联模板

2. 监控报警设置

one It sm

http://c.onealert.com/ucid/login.jsp

 

[root@m01 ~]# grep AlertScriptsPath /etc/zabbix/zabbix_server.conf

### Option: AlertScriptsPath

# AlertScriptsPath=${datadir}/zabbix/alertscripts

AlertScriptsPath=/usr/lib/zabbix/alertscripts

[root@m01 ~]# cd /usr/lib/zabbix/alertscripts

 

 

wget http://www.onealert.com/agent/release/oneitsm_zabbix_release-1.0.1.tar.gz

 

tar -zxf oneitsm_zabbix_release-1.0.1.tar.gz

cd oneitsm/bin

bash install.sh d13ad820-fc56-2f53-df59-992a9fe3aad3

何时发邮件:当状态改变的时候才会发邮件

 

--

--

2.2安装后后多的四个东西,重装得删除这四样

3. 监控可视化,图形和幻灯片

 

最新数据

图形

聚合图形

幻灯片

https://github.com/zhangyao8/zabbix-community-repos

 

4. 模板的共享

主机共享

https://github.com/zhangyao8/zabbix-community-repos

 

模拟试验:将因此集群用zabbix监控起来

具体内容:

1、硬件、系统、网络监控

全部集群节点(全部虚拟机)都监控上

2、应用服务监控

1. 监控备份服务器,简单方法是监控rsync端口,若是有其余更佳方案能够说明;

2. 监控NFS服务器,使用监控NFS进程来判断NFS服务器正常,若是有其余更佳方案能够说明;

3. 监控MySQL服务器,简单方法监控mysql3306端口,或者使用zabbix提供的Mysql模板,若是有其余更佳方案能够说明;

4. 监控2web服务器,简单方法监控80端口,若是有其余更佳方案能够说明;

5. 监控URL地址来更精确的监控咱们的网站运行正常;

6. 监控反向代理服务器,PPTP服务器等你在期中架构部署的服务。

7. 监控Nginx7种链接状态

 

 

 

 

 

 

 

 

 

 

1. zabbix自动发现与自动注册的简介

自动发现:zabbix Server主动发现全部客户端,而后将客户端登记本身的小本本上,缺点zabbix server压力山大(网段大,客户端多),时间消耗多。

自动注册:zabbix agent主动到zabbix Server上报到,登记;缺点agent有可能找不到Server(配置出错)

 

被动模式:默认,都是站在agent的立场上说话,agentserver抓取数据

主动模式:都是站在agent的立场上说话,agent主动的将数据发送给Server

 

两种模式都是在agent上的配置文件配置的

 

 

1.1 自动发现(被动模式)

第一步:zabbix Server安装完毕 (完成)

第二步:zabbix agent安装完毕,Server=172.16.1.61  (完毕)

第三步:网页上配置自动发现规则

1.2 自动注册(主动模式)

第一步:zabbix Server安装完毕 (完成)

第二步:zabbix agent安装完毕,须要额外增长的配置

vim /etc/zabbix/zabbix_agentd.conf

ServerActive=172.16.1.61

# Hostname=Zabbix server

HostnameItem=system.hostname

systemctl restart zabbix-agent.service

netstat -tunlp|grep zabbix

看日志

第三步:Server上作hosts解析

echo "172.16.1.21 cache01" >> /etc/hosts

 

第四步:网页上配置自动注册

主机没有添加上,等候时间

 

2. 分布式监控

 

zabbix Server  ===  zabbix agent (只能同一个局域网监控)

 

分布式监控:

a. 分担压力,下降负载

    zabbix Server ===  zabbix proxy  ===zabbix agent1 agent2 agent3 。。。

172.16.1.61           172.16.1.21        172.16.1.0/24

                  ===  zabbix proxy  ===zabbix agent4 agent5 agent6 。。。

 

 

b. 多机房监控

    zabbix Server(北京)           ==  zabbix proxy(每一个机房搭建)  == zabbix agent

122.71.240.233/172.16.1.61          122.71.241.11/172.16.2.21     172.16.2.0/24

 

 环境

ZABBIX SERVER m01

zabbix proxy  cache01

zabbix agent  cache01

第一步:在代理机cache01安装zabbix proxy  

rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm

yum -y install zabbix-proxy-mysql

第二步: 配置zabbix proxy,并在zabbix网页登记

zabbix  proxy也须要数据库,这个数据库不是用于存储监控数据的 只是用于存储配置信息

# 安装数据库

yum -y install mariadb-server

systemctl start mariadb.service

#建库 建立用户受权

mysql

create database zabbix_proxy character set utf8 collate utf8_bin;

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

exit

# 导入数据库文件

zcat /usr/share/doc/zabbix-proxy-mysql-3.0.13/schema.sql.gz |mysql -uzabbix -pzabbix zabbix_proxy

# 配置zabbix proxy链接数据库

sed -i.ori '162a DBPassword=zabbix' /etc/zabbix/zabbix_proxy.conf

systemctl start zabbix-proxy.service

 

sed -i 's#Server=127.0.0.1#Server=172.16.1.61#' /etc/zabbix/zabbix_proxy.conf

sed -i 's#Hostname=Zabbix proxy#Hostname=cache01#' /etc/zabbix/zabbix_proxy.conf

systemctl start zabbix-proxy.service

第三步:agent 指向 proxy

[root@cache01 ~]# grep ^Server /etc/zabbix/zabbix_agentd.conf

Server=172.16.1.61

ServerActive=172.16.1.61

[root@cache01 ~]# sed -i 's#172.16.1.61#172.16.1.21#g' /etc/zabbix/zabbix_agentd.conf

[root@cache01 ~]# grep ^Server /etc/zabbix/zabbix_agentd.conf

Server=172.16.1.21

ServerActive=172.16.1.21

[root@cache01 ~]# systemctl restart zabbix-agent.service

 tailf /var/log/zabbix/zabbix_proxy.log 

 

小结:之前内容所有属于zabbix agent方式监控

 

错误:

server运行时,启动proxy起不来,但命令行看不出,杀掉server,启动proxy

3. SNMP监控

 

没法安装agent  不少前辈的监控软件均可以监控各类设备  都是经过snmp监控

snmp simple network manager protocol 简单网络管理协议

yum -y install net-snmp net-snmp-utils

配置snmp

sed -i.ori '57a view systemview   included  .1' /etc/snmp/snmpd.conf

systemctl start snmpd.service

http://www.ttlsa.com/monitor/snmp-oid/    .1相关权限问题

使用SNMP

[root@db01 ~]# snmpwalk -v 2c -c public 127.0.0.1 sysname

# snmpwalk 相似 zabbix_get

# -v 2c  指定使用snmp协议的版本  snmp分为v1 v2 v3

# -c public  指定暗号

# sysname  相似zabbixkey

[root@m01 ~]# snmpwalk -v 2c -c public 127.0.0.1 sysname

SNMPv2-MIB::sysName.0 = STRING: m01

[root@m01 ~]# snmpwalk -v 2c -c public 127.0.0.1 IfNumber

IF-MIB::ifNumber.0 = INTEGER: 3

[root@m01 ~]# snmpwalk -v 2c -c public 127.0.0.1 IfDescr

IF-MIB::ifDescr.1 = STRING: lo

IF-MIB::ifDescr.2 = STRING: eth0

IF-MIB::ifDescr.3 = STRING: eth1

 

问题:

 

相关文章
相关标签/搜索