s31 zabbix监控企业级监控

1.zabbix监控


zabbix/nagios + cacti/Prometheus(普罗米修斯)

 
- 安装软件(统一环境:LA(Apache)MP、LNMP)yum一键安装LAMP
- Apache(西方)nginx(俄罗斯)
- zabbix 3.0 LTS (长期支持版本)

- zabbix常规使用
- 监控Linux服务器
- 自定义监控
- 监控报警
- 分布式监控
- 。。。。

2. 环境准备

    zabbix 10.0.0.71 172.16.1.71
第一步:准备新的zabbix机器,环境检查如下:
[root@zabbix ~]# cat /etc/redhat-release
CentOS release 6.9 (Final)
[root@zabbix ~]# uname -r
2.6.32-696.el6.x86_64
[root@zabbix ~]# hostname -I
10.0.0.71 172.16.1.71
[root@zabbix ~]# getenforce
Disabled
[root@zabbix ~]# /etc/init.d/iptables status
iptables: Firewall is not running.
[root@zabbix ~]# ll -d /tmp ##1777
drwxrwxrwt. 3 root root 4096 Oct 10 09:17 /tmp
 
第二步:下载软件包:
zabbix3.0.15_yum.tar.gz(备用)



3. 监控职责

1.保障企业数据的安全可靠。
2.为客户提供7*24小时服务。
3.不断提升用户的体验。
4. 通过命令监控
4.1 如果想远程管理服务器就有远程管理卡,比如Dell idRAC,HP ILO,IBM IMM
4.2 查看硬件的温度/风扇转速,电脑有撸大师,服务器就有ipmitool。使用ipmitool实现对服务器的命令行远程管理
yum -y install OpenIPMI ipmitool  #->IPMI在物理机可以成功,虚拟机不行
[root@KVM ~]# ipmitool sdr type Temperature
Temp             | 01h | ns  |  3.1 | Disabled
Temp             | 02h | ns  |  3.2 | Disabled
Temp             | 05h | ns  | 10.1 | Disabled
Temp             | 06h | ns  | 10.2 | Disabled
Ambient Temp     | 0Eh | ok  |  7.1 | 22 degrees C
Planar Temp      | 0Fh | ns  |  7.1 | Disabled
IOH THERMTRIP    | 5Dh | ns  |  7.1 | Disabled
CPU Temp Interf  | 76h | ns  |  7.1 | Disabled
Temp             | 0Ah | ns  |  8.1 | Disabled
Temp             | 0Bh | ns  |  8.1 | Disabled
Temp             | 0Ch | ns  |  8.1 | Disabled


负载主要反映 cpu,磁盘IO    跟内存没关系
 

4.4 想知道了cpu性能好不好、忙不忙可以用lscpu、uptime、top、htop、vmstat、mpstat。
lscpu 查看cpu的信息,比如cpu的核数 (CPU(s):1)

[root@zabbix ~]# uptime(w)
10:07:47 up 50 min,  3 users,  load average: 0.00, 0.00, 0.00
当前系统时间 up 运行时间  3user 登录的用户数  load average 平均负载 1, 5, and 15 minutes

最佳负载:过去1分钟的平均负载等于CPU的核数(或者2倍)
怎么判断服务器的负载过高: 就是看你的过去1分钟的平均负载是否超过CPU的核数(或者2倍)

top 实时动态查看系统负载
 快捷键 z 加颜色  x 高亮显示排序区域  < > 向左,向右切换

[root@zabbix ~]# top
top - 10:16:32 up 59 min,  3 users,  load average: 0.00, 0.00, 0.00
# 第一行和uptime一样
Tasks:  74 total,   1 running,  73 sleeping,   0 stopped,   0 zombie
# 第二行 显示当前进程统计信息  zombie 僵尸 僵死进程
Cpu(s):  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
# 第三行 cpu的统计信息 %us 用户使用的cpu百分比   %sy 系统使用的cpu百分比   %id (idle) 空闲的cpu百分比
Mem:   1004112k total,   117104k used,   887008k free,     9480k buffers
# 第四行 内存的统计信息
Swap:   786428k total,        0k used,   786428k free,    30700k cached
# 第五行 swap的统计信息
   PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                  
 7 root      20   0     0    0    0 S  0.3  0.0   0:07.67 events/0                                                  
 1 root      20   0 19352 1532 1228 S  0.0  0.2   0:01.10 init                                                      
 2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd    

htop top命令的进阶版,支持鼠标
yum -y install htop
4.5  内存够不够可以用free、vmstat。
 free -h (CentOS6.5以前的系统free命令没有-h参数,只有-m)
 
 
4.6 磁盘剩多少写的快不快可以用df、dd、iotop、iostat。
 
 
dd if=/dev/zero of=test.data bs=1M count=10
if input file 输入文件   /dev/zero 这是系统的特殊设备,能够源源不断的产生0字符流
  
   of output file 输出设备  
  
   bs block size 块大小
   count  block块的数量
  
   总结:产生的test.data文件大小 bs * count
  
   经验:最佳测试磁盘写的速度的测试文件test.data至少大于内存的值
 
 
iotop 实时查看系统的io(输入输出)负载
yum -y install iotop
 
 
4.7  网络太卡找iftop, nethogs
iftop  查看网卡的流量
iftop默认监控eth0网卡的流量
iftop -i eth1

nethogs  查看每个进程的流量


5. 需要监控什么

cpu负载
内存
磁盘
网络
软件服务
(硬件 温度,风扇)
 

6. zabbix

 
一个软件能够实现99%监控。

6.1 服务端安装Zabbix

6.1.1 安装LAMP环境
 
 
 
要求php版本在5.4以上
 
#1. 安装apache
 yum -y install httpd
#2. 安装mysql
 yum -y install mysql-server
 
#3. 安装php5.5 默认的yum源的php版本是5.3
rpm -ivh http://repo.webtatic.com/yum/el6/x86_64/webtatic-release-6-9.noarch.rpm
yum -y install php55w php55w-mysql php55w-common php55w-gd php55w-mbstring php55w-mcrypt php55w-devel php55w-xml php55w-bcmath
#mysql
#common
#gd
#mbstring
#mcrypt
#devel
#xml
#bcmath
 
6.1.2 安装Zabbix软件
 
不使用离线包的安装方法:
rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/6/x86_64/zabbix-release-3.0-1.el6.noarch.rpm 
 
 yum -y install zabbix-web zabbix-server-mysql zabbix-web-mysql zabbix-get
 yum -y install zabbix-java-gateway wqy-microhei-fonts net-snmp net-snmp-utils -y
 
提前安装的 :
#zabbix-java-gateway :监控tomcat需要的包
#wqy-microhei-fonts : 解决中文乱码的包
#net-snmp net-snmp-utils:snmp服务安装包

6.2 配置zabbix

6.2.1 配置LAMP环境
1. apache的所有配置无需担心,因为zabbix的rpm默认帮我们配置好了apache
2. 配置mysql
\cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
# 启动MySQL    mysql不是二进制安装的
/etc/init.d/mysqld start
# 创建用户并授权
mysql
# 在mysql命令行执行下面的命令 
create database zabbix character set utf8 collate utf8_bin;
grant all on zabbix.* to zabbix@'localhost' identified by 'zabbix';
flush privileges;
exit
# 下面接着在Linux命令行操作    导数据 
 
zcat /usr/share/doc/zabbix-server-mysql-3.0.21/create.sql.gz|mysql -uzabbix -pzabbix zabbix
直接查看压缩包的内容

6.2.2. 配置php(/etc/php.ini)

# 修改php配置文件
egrep -n "^post_max_size|^max_execution_time|^max_input_time|^date.timezone" /etc/php.ini

sed -i.ori 's#max_execution_time = 30#max_execution_time = 300#;s#max_input_time = 60#max_input_time = 300#;s#post_max_size = 8M#post_max_size = 16M#;910a date.timezone = Asia/Shanghai' /etc/php.ini
 
改为
##max_execution_time = 300
##max_input_time = 300
##post_max_size = 16M
##date.timezone = Asia/Shanghai



6.2.3 配置zabbix 服务

# 修改zabbix_server配置文件
sed -i.ori '115a DBPassword=zabbix' /etc/zabbix/zabbix_server.conf

# 网页文件(给我们提供一个web界面进行监控)
mv /usr/share/zabbix/ /var/www/html/

# 文件授权
chmod -R 755 /etc/zabbix/web
chown -R apache.apache /etc/zabbix/web


6.3 启动服务

echo "ServerName 127.0.0.1:80">>/etc/httpd/conf/httpd.conf        apache 会解析主机名
/etc/init.d/httpd start
/etc/init.d/zabbix-server start


LNMP的php是单独的一个服务,启动9000端口
LAMP的php是apache的一个模块,不需要启动php服务,只需要启动http

加入开机自启动
[root@zabbix ~]# tail -4 /etc/rc.local
/etc/init.d/mysqld start
/etc/init.d/httpd start
/etc/init.d/zabbix-server start



6.4 网页完成zabbix安装最后的环节

http://10.0.0.71/zabbix/setup.php
 
用户名:Admin
密码:  zabbix

 
 
小问题
安装完总是说zbbix server not runnig 原因SElinux 没有关
[root@zabbix ~]# /etc/init.d/zabbix-server stop
Shutting down Zabbix server: [FAILED]
[root@zabbix ~]# /etc/init.d/zabbix-server status
zabbix_server is stopped
[root@zabbix ~]# /etc/init.d/zabbix-server start
Starting Zabbix server: [ OK ]
[root@zabbix ~]# /etc/init.d/zabbix-server status
zabbix_server is stopped
[root@zabbix ~]# getenforce
Enforcing
[root@zabbix ~]# 
[root@zabbix ~]# setenforce 0
[root@zabbix ~]# getenforce
Permissive
[root@zabbix ~]# /etc/init.d/zabbix-server start
Starting Zabbix server: [ OK ]
[root@zabbix ~]# /etc/init.d/zabbix-server status
zabbix_server (pid 1614) is running...
[root@zabbix ~]# tail -f /var/log/zabbix/zabbix_server.log 
  1635:20180823:115937.436 server #17 started [timer #1]
  1636:20180823:115937.439 server #18 started [http poller #1]
  1645:20180823:115937.465 server #19 started [discoverer #1]
  1646:20180823:115937.476 server #20 started [history syncer #1]
  1647:20180823:115937.478 server #21 started [history syncer #2]
  1648:20180823:115937.478 server #22 started [history syncer #3]
  1649:20180823:115937.492 server #23 started [history syncer #4]
  1650:20180823:115937.493 server #24 started [escalator #1]
  1651:20180823:115937.494 server #25 started [proxy poller #1]
  1652:20180823:115937.496 server #26 started [self-monitoring #1]
接受其他客户端发来的信息
 
 

7. 客户端监控

 

7.1 安装agent客户端程序

 
rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/6/x86_64/zabbix-agent-3.0.15-1.el6.x86_64.rpm
 
[root@web01 ~]# rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/6/x86_64/zabbix-agent-3.0.15-1.el6.x86_64.rpm
 
 
 
1
1
 
 
 
 
 
1
[root@web01 ~]# rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/6/x86_64/zabbix-agent-3.0.15-1.el6.x86_64.rpm
 
 
 
-i install 安装
-v 显示安装过程
-h 显示进度条
 
[root@web01 ~]# egrep '^[a-Z]' /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=172.16.1.71
ServerActive=127.0.0.1
Hostname=Zabbix server
Include=/etc/zabbix/zabbix_agentd.d/
[root@web01 ~]# /etc/init.d/zabbix-agent start
Starting Zabbix agent: [ OK ]
[root@web01 ~]# ss -lntup|grep zabbix
tcp LISTEN 0 128 :::10050 :::* users:(("zabbix_agentd",1650,5),("zabbix_agentd",1651,5),("zabbix_agentd",1652,5),("zabbix_agentd",1653,5),("zabbix_agentd",1654,5),("zabbix_agentd",1655,5))
tcp LISTEN 0 128 *:10050 *:* users:(("zabbix_agentd",1650,4),("zabbix_agentd",1651,4),("zabbix_agentd",1652,4),("zabbix_agentd",1653,4),("zabbix_agentd",1654,4),("zabbix_agentd",1655,4))
 
 

7.2 配置zabbix agent


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



7.3 启动zabbix agent


/etc/init.d/zabbix-agent start
echo "/etc/init.d/zabbix-agent start" >> /etc/rc.local




7.4 在web01安装zabbix Agent并正常启动


 


7.5 网页上添加主机监控

 
主机名称:zabbix程序识别用的名字
可见的名称:给人看,显示在网页上的
群组:同学(主机)与小组(群组)  方便管理
agent代理程序的接口:指定客户端主机的ip地址
 
zabbix 客户端端口
检查客户端是否能够被监控的第一手段:
[root@zabbix ~]# zabbix_get -s 172.16.1.71 -p 10050 -k "system.cpu.load[all,avg1]"
0.000000
[root@zabbix ~]# zabbix_get -s 172.16.1.8 -p 10050 -k "system.cpu.load[all,avg1]"
0.000000

 
[root@zabbix ~]# zabbix_get -s 172.16.1.8 -p 10050 -k "system.cpu.load[all,avg1]"
zabbix_get [6229]: Get value error: cannot connect to [[172.16.1.8]:10050]: [110] Connection timed out
 
[root@zabbix ~]# ping 172.16.1.8
PING 172.16.1.8 (172.16.1.8) 56(84) bytes of data.
From 172.16.1.71 icmp_seq=1 Destination Host Unreachable
From 172.16.1.71 icmp_seq=2 Destination Host Unreachable
From 172.16.1.71 icmp_seq=3 Destination Host Unreachable
解决:zabbix 端的lan区段没有设置



zabbix 监控配置 出错的原因
 
zabbix_get [4236]: Get value error: cannot connect to [[172.16.1.71]:10050]: [111] Connection refused
1. zabbix_get [3980]: Get value error: cannot connect to [[172.16.1.9]:10050]: [110] Connection timed out
ip地址不存在或者 防火墙或selinux开启
2. Assuming that agent dropped connection because of access permissions.
配置文件不对,改了没重启


 
 
 
 








3. 查看监控数据
查看数据与图形

解决中文乱码(服务端zabbix操作)
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo

yum -y install wqy-microhei-fonts

\cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf
 
看饼图乱码用下面字体   simkai.ttf
[root@zabbix ~]# \cp simkai.ttf /usr/share/fonts/dejavu/DejaVuSans.ttf
 
 


流量图的作用:
1. 判断公司业务是否正常  ---正常业务时间流量非常低
2. 为公司购买带宽时提供依据


小结:
已经掌握了:
服务端安装,客户端安装
主机监控(cpu,内存,磁盘,网络等模板自带的监控项)
查看监控数据


8. 自定义监控

监控zabbix模板没有的功能

需求:监控主机的登录用户数量,超过3个人就报警


8.1 agent客户端配置


/etc/zabbix/zabbix_agentd.conf和/etc/zabbix/zabbix_agentd.d/目录关系
类似 nginx的nginx.conf与extra目录

[root@web01 ~]# tree  /etc/zabbix/
/etc/zabbix/
├── zabbix_agentd.conf                 #conf/nginx.conf
├── zabbix_agentd.conf.ori
└── zabbix_agentd.d                    #conf/extra
    └── userparameter_mysql.conf      
 
   
在/etc/zabbix/zabbix_agentd.conf查看 UserParameter语法如下所示
### Option: UserParameter   自定义监控项
#       User-defined parameter to monitor. There can be several user-defined parameters.
#       Format: UserParameter=<key>,<shell command>
#                              监控项名称,shell命令
#       See 'zabbix_agentd' directory for examples.
#
# Mandatory: no
# Default:
# UserParameter=

正式操作如下:
# 在web01执行下面操作
echo "UserParameter=login-user,who|wc -l" >/etc/zabbix/zabbix_agentd.d/userparameter_login.conf

/etc/init.d/zabbix-agent restart
 
 
# 在zabbix操作检测
[root@zabbix ~]# zabbix_get -s 172.16.1.8 -p 10050 -k "login-user"
ZBX_NOTSUPPORTED: Unsupported item key.
 
错误原因:
a.真的没有这个监控项,名字写错了;
b.写对了没有重启agent
 

正确结果:
[root@zabbix ~]# zabbix_get -s 172.16.1.8 -p 10050 -k "login-user"
3

问题1:key是唯一的,不能重复

推广:自己在客户端准备好想要执行的命令,然后配置到/etc/zabbix/zabbix_agentd.d/,一重启,服务端就可以获取数据。
实现你想监控什么就能够监控什么。
 

8.2 网页上配置自定义监控项


1. 添加模板


模板的功能:一处创建,处处使用


2. 添加应用集

给你的监控项归类
每一类的监控类型
 
 


3.添加监控项

告诉服务端server你该去哪里获取什么方面数据
趋势,只是预测的大致走势
 


4.添加触发器


告诉server你该什么时候报警
 
 
 

严重性:
警告级别的报警发给初级运维
一般严重级别的报警发给初级运维,中级运维
严重级别的报警发给初级运维,中级运维,高级运维
灾难级别的报警发给初级运维,中级运维,高级运维,总监


5.图形


给运维出个图
 



8.3 使用模板

可以添加多个模板
 
 

 
 

 





9.报警

http://www.onealert.com 注册

 
1.报警

9.1 报警种类

邮件报警:存在收不到的风险 *
微信报警:通知即时  ***
短信报警
电话报警
APP

9.2 安装报警客户端

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

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

tar -zxf oneitsm_zabbix_release-1.0.0.tar.gz
cd oneitsm/bin
# 753f148b-cc6f-e2c0-d23a-06b37f3a52ab 这是key,【从注册的官网获取】
bash install.sh 753f148b-cc6f-e2c0-d23a-06b37f3a52ab

Zabbix管理地址: http://10.0.0.71/zabbix/
Zabbix管理员账号: Admin
Zabbix管理员密码: zabbix  # 密码不显示,但是还是输入进去
 
 

10. 监控可视化

聚合图形:将同一类型的监控放在一起看,容易对比分析
 
幻灯片:轮流播放聚合图形


3. 模板的共享
https://github.com/zhangyao8/zabbix-community-repos
 
导出,导入

4. 监控期中架构集群

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

具体内容:
一、硬件、系统、网络监控
所有集群节点(所有虚拟机)都监控上

关键点:
系统监控包括CPU,内存,磁盘,负载,流量
网络监控:主机网卡监控,交换机(路由器)监控

上面监控完全可以使用自带的模板实现功能

二、应用服务监控

1. 监控备份服务器,简单方法是监控rsync端口,如果有其他更佳方案可以说明;
2. 监控NFS服务器,使用监控NFS进程来判断NFS服务器正常,如果有其他更佳方案可以说明;
3. 监控MySQL服务器,简单方法监控mysql的3306端口
4. 监控2台web服务器,简单方法监控80端口,如果有其他更佳方案可以说明;
5. 监控URL地址来更精确的监控我们的网站运行正常;
6. 监控反向代理服务器
7. 监控Nginx的7种连接状态。



 
简单的方法:通过端口号或者进程数量
    服务    端口   进程
Rsync   873    ?
NFS     111?  ?
MySQL   3306   ?
Nginx   80     ?


怎么监控端口?

net.tcp.listen[port]      检查 TCP 端口 是否处于侦听状态。返回 0 - 未侦听;1 - 正在侦听
net.tcp.port[<ip>,port]   检查是否能建立 TCP 连接到指定端口。返回 0 - 不能连接;1 - 可以连接





[root@zabbix bin]# zabbix_get -s 172.16.1.8 -p 10050 -k 'net.tcp.listen[80]'
1
[root@zabbix bin]# zabbix_get -s 172.16.1.8 -p 10050 -k 'net.tcp.listen[81]'
0
[root@zabbix bin]# zabbix_get -s 172.16.1.8 -p 10050 -k 'net.tcp.listen[873]'
1
[root@zabbix bin]# zabbix_get -s 172.16.1.8 -p 10050 -k 'net.tcp.port[,80]'
1
[root@zabbix bin]# zabbix_get -s 172.16.1.8 -p 10050 -k 'net.tcp.port[,873]'
1
[root@zabbix bin]# zabbix_get -s 172.16.1.8 -p 10050 -k 'net.tcp.port[873]'
ZBX_NOTSUPPORTED: Invalid second parameter.


怎么监控进程?

proc.num[<name>,<user>,<state>,<cmdline>]进程数。返回整数

zabbix_get -s 172.16.1.8 -p 10050 -k 'proc.num[nginx]'


 

监控mysql

[root@zabbix bin]# zabbix_get -s 172.16.1.8 -p 10050 -k 'mysql.ping'
sh: mysqladmin: command not found
0
 
 
# 默认yum安装的mysql使用zabbix的自带userparameter_mysql.conf没有任何问题
[root@zabbix ~]# mysql -V
mysql  Ver 14.14 Distrib 5.1.73, for redhat-linux-gnu (x86_64) using readline 5.1
[root@zabbix ~]# mysqladmin ping
mysqld is alive
[root@zabbix ~]# mysqladmin ping | grep -c alive
1

# 但是我们自己二进制安装的mysql就报错了
如何排查自定义监控报错:
UserParameter=key,shell command
1. 现在命令行测试你的shell command的结果和你的期望是否一致
[root@web01 ~]# mysqladmin -uroot -poldboy123 ping 2>/dev/null|grep -c alive
1

mysqladmin 路径问题
 
[root@zabbix bin]# zabbix_get -s 172.16.1.8 -p 10050 -k 'mysql.ping'
/application/mysql/bin/mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: NO)'
0
 
这里的路径要写正确,mysql的安装路径,不然命令会报错
[root@web01 ~]# tail -3 /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf
UserParameter=mysql.ping,HOME=/var/lib/zabbix /application/mysql/bin/mysqladmin -uroot -poldboy123 ping | grep -c alive
UserParameter=mysql.version,mysql -V
UserParameter=login-user,who|wc -l
 
 
[root@web01 ~]# /etc/init.d/zabbix-agent restart
Shutting down Zabbix agent: [ OK ]
Starting Zabbix agent: [ OK ]
 
[root@zabbix bin]# zabbix_get -s 172.16.1.8 -p 10050 -k 'mysql.ping'
Warning: Using a password on the command line interface can be insecure.
1
 
 
[root@web01 ~]# tail -3 /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf
UserParameter=mysql.ping,HOME=/var/lib/zabbix /application/mysql/bin/mysqladmin -uroot -poldboy123 ping 2>/dev/null| grep -c alive
UserParameter=mysql.version,mysql -V
UserParameter=login-user,who|wc -l
 
 
[root@zabbix bin]# zabbix_get -s 172.16.1.8 -p 10050 -k 'mysql.ping'
1

 
 
 
 
 
2. 将符合预期的shell command写入到我们的自定义监控文件中
UserParameter=mysql.ping,HOME=/var/lib/zabbix mysqladmin ping | grep -c alive
改为
UserParameter=mysql.ping,HOME=/var/lib/zabbix mysqladmin -uroot -poldboy123 ping 2>/dev/null|grep -c alive

3. 改完配置文件记住重启生效
4. 在服务端用zabbix_get命令
[root@zabbix ~]# zabbix_get -s 172.16.1.8 -p 10050 -k 'mysql.ping'
0
# 发现命令找不到,返回值为0
# 使用全路径
UserParameter=mysql.ping,/application/mysql/bin/mysqladmin -uroot -poldboy123 ping 2>/dev/null|grep -c alive

[root@zabbix ~]# zabbix_get -s 172.16.1.8 -p 10050 -k 'mysql.ping'
1

5. 在网页上添加
Template App MySQL
 
 
 
 
 

教会如何修改其他人给你们的模板(Template App MySQL)及自定义监控配置文件(userparameter_mysql.conf)

昨天: 自己写了自定义监控配置文件userparameter_login.conf  添加一个Template login user【监控名】



监控url 地址



 


监控nginx状态:绘图
Nginx的配置
######status#########
server {
listen       127.0.0.1:80;
stub_status on;
access_log off;
}
 
[root@web01 extra]# curl status.lewen.com
Active connections: 1 
server accepts handled requests
 162 162 175 
Reading: 0 Writing: 1 Waiting: 0 

[root@web01 ~]# curl -sH Host:status.etiantian.org  10.0.0.8|awk 'NR==1{print $NF}'
1
[root@web01 ~]# curl -sH Host:status.etiantian.org  10.0.0.8|awk 'NR==3{print $1}'
271
[root@web01 ~]# curl -sH Host:status.etiantian.org  10.0.0.8|awk 'NR==3{print $2}'
273
[root@web01 ~]# curl -sH Host:status.etiantian.org  10.0.0.8|awk 'NR==3{print $3}'
275


 

方法:自定义监控


1. key shell command 自定义监控配置文件


vim /etc/zabbix/zabbix_agentd.d/userparameter_nginx_status.conf
UserParameter=nginx_active,curl -s  127.0.0.1|awk '/Active/ {print $NF}'
UserParameter=nginx_accepts,curl -s  127.0.0.1|awk 'NR==3 {print $1}'
UserParameter=nginx_handled,curl -s  127.0.0.1|awk 'NR==3 {print $2}'
UserParameter=nginx_requests,curl -s  127.0.0.1|awk 'NR==3 {print $3}'
UserParameter=nginx_reading,curl -s  127.0.0.1|awk 'NR==4 {print $2}'
UserParameter=nginx_writing,curl -s  127.0.0.1|awk 'NR==4 {print $4}'
UserParameter=nginx_waiting,curl -s  127.0.0.1|awk 'NR==4 {print $6}'

2. 重启
3. server上zabbix get测试
4. web界面
模板(Template Nginx Status)--应用集(nginx状态)---监控项(7个)---图形(画2张图)

 

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


具体内容:
一、硬件、系统、网络监控
所有集群节点(所有虚拟机)都监控上

关键点:
系统监控包括CPU,内存,磁盘,负载,流量
网络监控:主机网卡监控,交换机(路由器)监控

上面监控完全可以使用自带的模板实现功能

二、应用服务监控
1. 监控备份服务器,简单方法是监控rsync端口,如果有其他更佳方案可以说明;
2. 监控NFS服务器,使用监控NFS进程来判断NFS服务器正常,如果有其他更佳方案可以说明;
3. 监控MySQL服务器,简单方法监控mysql的3306端口,或者使用zabbix提供的Mysql模板,如果有其他更佳方案可以说明;
4. 监控2台web服务器,简单方法监控80端口,如果有其他更佳方案可以说明;
5. 监控URL地址来更精确的监控我们的网站运行正常;
6. 监控反向代理服务器,PPTP服务器等你在期中架构部署的服务。
7. 监控Nginx的7种连接状态。

 



1. 自动发现与自动注册


自动发现:服务端server自动发现局域网中的所有客户端agent(收小弟)
优点:方便找到所有客户端,不会遗漏
缺点:一旦agent过多,server压力山大,每隔一段时间,server都会扫描一遍局域网的所有机器。
自动注册:所有客户端Agent主动去服务端server登记注册一下(小弟上门求收留)
优点:对服务端的压力最低
缺点:配置过程稍微复杂

1.1 自动发现

1. 客户端agent配置

不需要任何配置,只要沿用前面的配置即可。

2. 服务端server配置
不需要任何配置,只要沿用前面的配置即可。

3. 网页上配置
第一步:配置自动发现规则---发现主机
[root@zabbix bin]# zabbix_get -s 172.16.1.8 -p 10050 -k 'system.uname'
Linux web01 2.6.32-573.el6.x86_64 #1 SMP Thu Jul 23 15:44:03 UTC 2015 x86_64
 
 
第二步:配置添加主机动作---添加主机
 
 

4. 小结:工作流程
a.安装好服务端
b.批量安装好客户端
c.网上配置自动发现规则及动作
d.等着
e.再来新的机器,只需安装好客户端即可
f.再等着
 


2. SNMP监控


能用zabbix Agent:系统能够安装这个软件的时候就用这种方法

但是,交换机,打印机等智能设备


snmp就是专门为设备监控开发的协议,软件  

优点:软件小巧,所以设备都可以安装
缺点:支持的功能少

生产环节建议:能够安装agent,先用Agent;如果不能装或者装不了,那么可以使用snmp



3.1 在Linux服务期启动SNMP服务
yum -y install net-snmp net-snmp-utils

配置snmp
sed -i.ori '57a view systemview   included  .1' /etc/snmp/snmpd.conf
/etc/init.d/snmpd start

使用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  类似zabbix的key



<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">

猜你喜欢

转载自www.cnblogs.com/wenyule/p/9775289.html