返回总目录页

zabbix第一篇:zabbix安装及使用

 

 常用软件安装及使用目录

 

一:搭建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

 

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将期中架构所有集群监控

 

具体内容:

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

所有集群节点(所有虚拟机)都监控上

 

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

snmp监控

 

二、应用服务监控

服务端口的监控测试

[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. 监控备份服务器,简单方法是监控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

 

问题:

 

 

客户端配置案例

# egrep -v "^#|^$"  /etc/zabbix/zabbix_agentd.conf 
PidFile=/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=zabbix.xx.com,10.x.x.x,10.x.x.x
ListenPort=10050
ListenIP=10.x.x.x
StartAgents=32
ServerActive=zabbix.xxx.com
Hostname=otter007.axx.axxs.com
Timeout=30
AllowRoot=0
Include=/etc/zabbix/zabbix_agentd.d/
UnsafeUserParameters=1

 

posted @ 2019-02-21 13:40  马昌伟  阅读(2313)  评论(0编辑  收藏  举报
博主链接地址:https://www.cnblogs.com/machangwei-8/