zabbix安装使用
未经允许不得转载
第4章 *Zabbix监控*
可通过repo.zabbix.com下载部署包文件。该服务器同时提供yum和apt源码库。这里提供从部署包安装Zabbix的详细教程。
Zabbix-Server,是一个C/S和B/S结构
4.1 *zabbix大纲*
0.单机监控
1.安装zabbix
2.zabbix基础架构
3.监控一台主机
4.自定义监控项(自己编写脚本->zabbix)
5.自定义阈值(达到预警线)
6.自定义动作(发邮件|执行命令)
7.自定义报警
4.1.1 *单机监控*
综合性监控命令:glances
监控CPU: w、top、htop
%Cpu(s): 0.3 us, 0.3 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
us 用户态: 跟用户的操作有关 阈值35%
sy 系统态: 跟内核的处理有关 阈值60%
id CPU空闲: 阈值5%
监控内存: free
[root@m02 ~]# free -m
total used free shared buff/cache available
Mem: 470 306 62 2 101 117
Swap: 3967 38 3929
监控磁盘:df(容量)、iotop(性能)
监控网络:ifconfig、route、glances、iftop、nethogs、netstat
iftop 中间的<= =>这两个左右箭头,表示的是流量的方向。
TX:发送流量、RX:接收流量、TOTAL:总流量
netstat -an|grep ESTABLISHED #查看状态
netstat -rn #查看路由信息
netstat -lntup
netstat -an
*例如**:*使用shell脚本来监控服务器内存
要求:每隔1分钟监控一次内存,当你的可用内存低于100m,发邮件报警,要求显示剩余内存
1.怎么获取内存可用的值(free -m|awk '/^Mem/{print $NF}')
2.获取到内存可用的值如何和设定的阈值进行比较
3.比较如果大于100m则不处理,如果小于100则报警
4.如何每隔1分钟执行一次
[root@m01 ~]# cat free.sh
#!/usr/bin/bash
HostName=$(hostname)_$(hostname -i)
Date=$(date +%F)
while true;do
Free=$(free -m|awk '/^Mem/{print $NF}')
if [ $Free -le 100 ];then
echo "$Date: $HostName Mem Is < ${Free}MB"
fi
sleep 5
done
*swp及内存性能*
随着时间的推移,用户不断的增多,服务随时可能扛不住会被oom(out of memory)
当系统内容不足的时候,会触发oom, 当内存不够会使用swap,当swap被大量占用。系统会特别卡。
#测试,没有swp,当内存被使用完毕时,系统会kill掉占用内存最大的进程。
[root@m01 ~]# dd if=/dev/zero of=/dev/null bs=800M
[root@m01 ~]# tail -f /var/log/messages
Out of memory: Kill process 2227 (dd) score 778 or sacrifice child
Killed process 2227 (dd) total-vm:906724kB, anon-rss:798820kB, file-rss:0kB
4.2 *Zabbix服务端安装*
从Zabbix官方的源码库安装
Zabbix SIA为Red Hat Enterprise Linux,Debian和Ubuntu LTS系统提供官方RPM和DEB部署包。
4.2.1 *安装源码库配置部署包*
安装源码库配置部署包。这个部署包包含了yum配置文件。
[root@m02 ~]# rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-1.el7.noarch.rpm
4.2.2 *安装**软件*
安装Zabbix程序包,以及MySQL、Zabbix-agent
[root@m02 ~]# yum install -y zabbix-server-mysql zabbix-web-mysql zabbix-agent mariadb-server
4.2.3 *创建数据表*
创建Zabbix数据库以及用户
#启动数据库,加入开机自启
[root@m01 ~]# systemctl enable mariadb
[root@m01 ~]# systemctl start mariadb
#创建表及授权用户
[root@zabbix-server ~]# mysql -uroot -p
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
4.2.4 *导入基础架构和数据*
[root@m01 ~]# cd /usr/share/doc/zabbix-server-mysql-3.4.12/
[root@m01 ~]# zcat create.sql.gz |mysql -uroot zabbix
4.2.5 *zabbix配置文件*
启动Zabbix Server进程,在zabbix_server.conf中编辑数据库配置
[root@m01 ~]# vi /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
# 启动Zabbix Server进程
[root@m01 ~]# systemctl enable zabbix-server
[root@m01 ~]# systemctl start zabbix-server
4.2.6 *PHP**配置文件*
编辑Zabbix前端的PHP配置,Zabbix前端的Apache配置文件位于 /etc/httpd/conf.d/zabbix.conf 。
[root@m01 ~]# vim /etc/httpd/conf.d/zabbix.conf
php_value max_execution_time 300
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300
php_value max_input_vars 10000
php_value always_populate_raw_post_data -1
php_value date.timezone Asia/Shanghai
依据所在时区,你可以取消 “date.timezone”设置的注释,并正确配置它(Asia/Shanghai)。在配置文件更改后,需要重启Apache Web服务器。
[root@m01 ~]# systemctl enable httpd
[root@m01 ~]# systemctl start httpd
4.3 *zabbix客户端安装*
代理人采集本地数据
4.3.1 *安装*
[root@web03 ~]# rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-agent-3.4.12-1.el7.x86_64.rpm
Retrieving https://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-agent-3.4.12-1.el7.x86_64.rpm
warning: /var/tmp/rpm-tmp.0ThA6X: Header V4 RSA/SHA512 Signature, key ID a14fe591: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:zabbix-agent-3.4.12-1.el7 ################################# [100%]
4.3.2 *配置*
#指定zabbix服务端(授权调取数据)
[root@web03 ~]# vim /etc/zabbix/zabbix_agentd.conf
Server=10.0.0.61 #指向Zabbix-Server
#如果有修改配置文件需要重启服务才能生效
[root@web03 ~]# systemctl restart zabbix-agent.service
4.3.3 *启动*
[root@web03 ~]# systemctl start zabbix-agent.service
[root@web03 ~]# systemctl enable zabbix-agent.service
#查看端口是否启动
[root@web03 ~]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 2848/zabbix_agentd
验证
[root@m01 ~]# zabbix_agentd -p
4.4 *web**前端**添加配置*
添加主机
先点击添加模板样式,再点击下方的添加模块
#只有绿色图标才是正常监控