部署服务器端
方法一
二进制安装
1.准备机器,环境初始化
[root@tech linux3 ~]# ifconfig ethe|awk 'NR==2{print $2}10.211.55.10
#关闭防火墙
sed -i's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/configsystemctl disable --now firewalld
2.zabbix-server内存尽量更大点,4G为好
3.获取zabbix的下载源
rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
4.更换zabbix.repo源,为阿里的
sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
5.清空缓存,下载zabbix服务端和代理
yum clean all
yum makecache
yum install zabbix-server-mysql zabbix-agent -y
6.安装工具,可以在机器上,使用多个版本的软件,并且不会影响到整个系统的依赖环境
yum install centos-release-scl -y
7.修改zabbix-front前端源,修改如下参数Izabbix-frontend]
name=Zabbix Official Repository frontend - $basearchbaseurl=https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/$basearch/frontendenabled=1 # 开启这里的参数
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gPg/RPM-GPG-KEY-ZABBIX-A14FE591
8.安装zabbix前端环境,且是安装到sc1环境下
yum install zabbix-web-mysq1-scl zabbix-apache-conf-scl -y
9.安装zabbix所需的数据库,mariadb
yum install mariadb-server -y
10.配置数据库,开机启动
[root@tech linux3 ~]# systemctl enable --now mariadb
Created symlink from /etc/systemd/system/multi-user,target.wants/mariadb.service to/usr/lib/systemd/system/mariadb.service.
11.初始化数据库,设置密码
12.添加数据库用户,以及zabbix所需的数据库信息
MariaDB [(none)]>create database zabbix character set utf8 collate utf8_bin;
Query OK,1 row affected(0.00 sec)
MariaDB [(none)]>create user zabbix@localhost identified by '123456';
Query Ok,0 rows affected(0.00 sec)
MariaDB[(none)]>grant all privileges on zabbix.* to zabbix@localhost;
Query Ok,0 rows affected(0.00 sec)
MariaDB[(none)]> flush privileges;
Query Ok,0 rows affected(0.00 sec)
MariaDB[(none)]> exit;
Bye
13.使用zabbix-mysql命令,导入数据库信息
#mysql -u用户名 -p 数据库名
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz| mysql -uzabbix -p zabbix
14.修改zabbix server配置文件,修改数据库的密码
vi /etc/zabbix/zabbix_server.conf
[root@tech linux3 ~]# grep'^DBPa'/etc/zabbix/zabbix server.confDBPassword=chaoge666
15.修改zabbix的php配置文件
/etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
[root@tech linux3 ~]# grep 'timezone" /etc/opt/rh/rh-php72/php-fpm.d/zabbix.confphp_value[date.timezone]= Asia/Shanghai
16.启动zabbix相关服务器
systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm
systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm
方法二
脚本安装
#!/bin/bash
#Zabbix-Server 5.0
#安装zabbix源、aliyun YUM源
cd /etc/yum.repos.d/
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
sed -i.bak 's#Zabbix Official Repository' zabbix.repo
sed -i 's#enabled=0#enabled=1#' zabbix.repo
#安装zabbix
yum -y install zabbix-server-mysql zabbix-agent
yum -y install centos-release-scl
yum -y install zabbix-web-mysql-scl zabbix-apache-conf-scl
#安装启动 mariadb数据库
yum -y install mariadb mariadb-server httpd
systemctl start mariadb.service
#创建数据库
mysql -e 'create database zabbix character set utf8 collate utf8_bin;'
mysql -e 'grant all privileges on zabbix.* to zabbix@localhost identified by "zabbix";'
mysql -e 'flush privileges;'
#导入数据
zcat /usr/share/doc/zabbix-server-mysql-5.0.3/create.sql.gz|mysql -uzabbix -pzabbix -Dzabbix
#配置zabbixserver连接mysql
sed -i.bak '/^# DBPassword=*/i DBPassword=zabbix' /etc/zabbix/zabbix_server.conf
#添加时区
sed -i.bak '/^; php_value[date.timezone]*/i php_value[date.timezone] = Asia/Shanghai' /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
#解决中文乱码
yum -y install wqy-microhei-fonts
\cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf
#启动服务
systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm
#开机自启动
systemctl enable mariadb.service
systemctl enable httpd
systemctl enable zabbix-server
#输出信息
echo "浏览器访问 http://`hostname -I|awk '{print $1}'`/zabbix"
部署客户端
同步时间地区
Yum install -y ntpdate
ntpdate -u ntp.aliyun.com
mv /etc/localtime{,.bak}
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
安装
Yum install -y zabbix-agent2
# 查看配置文件
/etc/zabbix/zabbix_agent2.conf
# 启动命令
[root@linux4 ~]# ls -l /usr/sbin/zabbix_agent2
-rwxr-xr-x1 root root 16053000 Nov 30 19:51 /usr/sbin/zabbix agent2
# 启动客户端
[root@linux5 ~]# systemctl enable --now zabbix-agent2
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-agent2.service to /usr/lib/systemd/system/zabbix-agent2.service.
[root@linux5 ~]# netstat -tnlp l grep zabbix
# 修改agent2配置文件,查看配置信息,根据自己的机器环境修改即可
[root@zbx-agentÃ5 ~]# grep -Ev '^#|^$'/etc/zabbix/zabbix agent2.conf
PidFile=/var/run/zabbix/zabbix agent2.pid
LogFile=/var/log/zabbix/zabbix agent2.log
LogFilesize=0
Server=10.211.55.10
ServerActive=10.211.55.10
Hostname=zbx-agent05
Include=/etc/zabbix/zabbix agent2.d/*.conf
ControlSocket=/tmp/agent.sock
重启
Systemctl restart zabbix-agent2
尝试连通性
zabbix_get -s '192.168.15.135' -p 10050 -k 'agent.ping’
连接监测客户端
找模板将需要监控设备ip绑定即可
Zabbix默认监测本端服务器
模板默认监测
进程 网络 Cpu Gpu 磁盘 内存
系统平均负载 缓存使用效率 网络系统 网络接口
自定义监测
第一
命令行层面
自带key用法
zabbix_get -s '192.168.15.135' -p 10050 -k 'system.uname'
zabbix_get -s '192.168.15.135' -p 10050 -k 'system.hostname'
zabbix_get -s '192.168.15.135' -p 10050 -k 'vfs.fs.size[/,used]’
zabbix_get -s '192.168.15.135' -p 10050 -k 'vfs.fs.size[/,total]’
1.明确需要执行的linux命令
Who |wc -l
2.手动创建zabbix的配置文件,用于自定义key/etc/zabbix/zabbix agent2.conf
3.创建配置文件,以及内容如下
[root@zbx-agent05 zabbix _agent2.d]# pwd
/etc/zabbix/zabbix_agent2.d
[root@zbx-agent05 zabbix _agent2.d]#cat userparameter_login.conf
UserParameter=login.user,who |wc -l
第二
建模板监控项
添加流程
创建模板
创建应用集(好比是一个文件夹,里面放入一堆监控项)
创建监控项,自定义item,你具体想监控的内容
创建触发器,当监控项获取到值的时候,进行和触发器比较,判断,决定是否报警
创建图形
将具体的主机和该模板链接,关联
邮件报警
登录邮箱找到pop3,smtp,imap新增授权密即可,注意需要编辑报警发送模板
左下角user应用
自定义聚合图形
自动添加主机监控
思路
克隆监控模板
自动注册和自动发现
使用zabbix的api接口,利用cur1语言,或者开发自己的编程脚本如python等。
我们日常使用的各种软件,都是提供了API接口,给开发人员进行修改以及获取数据的。
接口的定义。
curl -pe:application/json' -d'{"jsonrpc":"2.0","method":"user.login","params":{"user":"Admin","password":"zabbix"},"auth":null,"id":0}' "http://192.168.15.136/zabbix/api_jsonrpc.php”
监控实施方案
硬件监控
应用服务监控
互联网上有大量的开源模板可以下载使用
rsync服务监控
监控服务器的873端口是存活的
有关端口的监控,使用zabbix自带的 key net.tcp.port[,873]进行数据推拉,检测效果
监控NFS服务是否正常
通过key检测111端口 net.tcp.port[,111]
showmount -e ip | wc -l
监控mysq1数据库是否正常
通过端口 net.tcp.port[,3306]
mysql -uroot -p
zabbix自带了mysq1的监控模板,直接添加主板和mysql的主机关联即可
web服务器监控
net.tcp.port[,80]
zabbix也提供了对web服务器的监控模板
监控服务的具体方法
端口检测的命令
netstat
SS
lsof
结合grep查看端口是否存活
在服务端
[root@tech linux3 ~]# zabbix_get -s '192.168.15.135' -p 10050 -k 'net.tcp.port[,80]'
查询进程信息
Ps
通过客户端连接
web服务器用 curl查询
mysql 用sql语句连接验证
缓存数据库服务 数据读写验证
自动发现
练习
什么是自动发现,自动注册
自动发现(agent2是被动模式)
zabbix server主动的去发现所有的客户端,然后将客户端的信息,登记在服务端的机器上
缺点是,zabbix-server压力会较大
如果说你定义了一个网段 100~200网段,耗时较久,且压力大
自动注册(agent主动模式)
zabbix agent2主动上报自己的信息,发给zabbxi-server缺点是agent2可能找不到server(配置文件写错了,网络不通)
被动模式,主动模式的区别(站在agent2立场)
被动模式,对于agent2来说,就是server来找agent2拿数据
1.准备好一台客户端机器
[root@zbx-agent05 ~]# systemctl is-active zabbix-agent2active
2.配置hosts解析
[root@zbx-agent05 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
10.211.55.10 tech linux3
10.211.85.12 zbx-agent05
3.配置连接
自动发现
发现后动作
发现
连接上可以
查看服务器日志
tail -f /var/log/zabbix/zabbix_server.log
自动注册
1.准备机器
server
agent2
2.修改agent2的配置文件
[root@zbx-agent05 ~]# grep -Ev '^#|^$'/etc/zabbix/zabbix agent2.coPidFile=/var/run/zabbix/zabbix _agent2.pidLogFile=/var/log/zabbix/zabbix_agent2.logLogFilesize=0
Server=10.211.55.10 #写入服务端配置ServerActive=10.211.55.10#写入服务端地址Hostname=zbx-agent05 #agent2的主机名HostnameItem=system.hostnameInclude=/etc/zabbix/zabbix agent2.d/*.confControlSocket=/tmp/agent.sock
3.验证通信结果
[root@tech linux3 ~]# zabbix get-s '10.211.55.12'-p 10050 -k 'agent.ping‘
4配置连接
分布式监控
分布式监控的作用
分担server的集中式压力
Agent>proxy>server
多机房之间的网络延时问题
上海机房>proxy >server
部署分布式zabbix-proxy
1.环境准备,准备3台机器
10.211.55.10zabbix-server5.0
10.211.55.11zabbix-proxy
# 关闭agent04
10.211.55.12zabbix-agent2agent05
2.在学习阶段,关闭防火墙
具体的操作步骤如下
- 确保之前所学的自动发现,注册已经关闭
- 2.zabbix-server服务端无须变动,运行着就好
3.准备好客户端机器,agent2机器
4.来配置zabbix-proxy代理服务器,并且部署数据库,用于存储agent2发来的数据,最终发给zabbix.
server
#配置zabbix5.0的yum源
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
#修改源地址
sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
5.安装proxy,以及数据库
yum install zabbix-proxy-mysql zabbix-get -y
6启动数据库,配置数据库用户,存储zabbix-agent2信息数据
yum install mariadb-server mariadb -y
systemctl start mariadb
# 数据库sql设置
mysql -uroot -p
create database zabbix_proxy character set utf8 collate utf8_bin;
grant all privileges on zabbix_proxy.* to zabbix@'localhost' identified by 'zabbix';
flush privileges;
7导入数据
查看安装时路径
查看sql文件在哪
rpm -ql zabbix-proxy-mysql
导入
zcat /usr/share/doc/zabbix-proxy-mysql-5.0.42/schema.sql.gz |mysql -uzabbix -pzabbix zabbix_proxy
#修改zabbxi-proxy配置文件,链接数据库的信息
sed -i.ori '162a DBPassword=zabbix' /etc/zabbix/zabbix_proxy.conf
sed -i 's#Server=127.8.0.1#Server=192.168.15.136#' /etc/zabbix/zabbix_proxy.conf
sed -i 's#Hostname=Zabbix proxy#Hostname=gitlab#' /etc/zabbix/zabbix_proxy.conf
8检查代理服务器的配置文件zabbix-proxy
grep '^[a-z]’ /etc/zabbix/zabbix_proxy.conf
9启动代理服务
systemctl restart zabbix-proxy
systemctl restart zabbix-agent2
10在web上添加代理
11客户端连接代理
grep '^[a-z]' /etc/zabbix/zabbix agent2.conf
客户端配置文件IP需要改成proxy的
查看日志tail -f /var/log/zabbix/zabbix_proxy.log
SNMP
监控打印机,路由器
简单网络管理
1服务端安装snmp监控程序
yum -y install net-snmp net-snmp-utils
2开启snmp的配置
sed -i.ori '57a view systemview included .1' /etc/snmp/snmpd.conf
3.使用snmp命令
#-v 指定协议版本 -c 指定暗号 sysname snmp的key
Snmpwalk -v 2 -c public 127.0.0.1 sysname
4web添加
更换模板