centos+Zabbix搭建记录

服务器环境准备

[root@bogon etc]# cat redhat-release #查看系统版本

CentOS Linux release 7.7.1908 (Core)

<u>https://www.cnblogs.com/yaoyaojcy/p/9884130.html</u>
yum -y update

image.png

1.关闭selinux

vi /etc/selinux/config #将SELINUX=enforcing改为SELINUX=disabled 设置后需要重启才能生效


image.png

setenforce 0 #临时关闭命令

getenforce #检测selinux是否关闭,Disabled 为关闭

image.png

2.配置防火墙

在 iptables 中放行 80,10050,10051 端口

iptables -I INPUT -p tcp -m multiport --destination-port 80,10050:10051 -j ACCEPT

3.保存iptables规则

service iptables save iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]

|
image.png

firewall-cmd --state #not runningrunning

image.png

systemctl stop firewalld.service #临时关闭firewall

systemctl disable firewalld.service #禁止firewall开机启动

zabbix****服务端安装

选择zabbix 4.0 LBS 长期支持版本

1.安装zabbix的repo源

rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm
执行完毕后 /etc/yum.repos.d目录下新增zabbix.repo文件

image.png

vi /etc/yum.repos.d/zabbix.repo

替换URL地址为https://mirrors.tuna.tsinghua.edu.cn/zabbix/

2.安装zabbix-server-mysql和zabbix-web-mysql

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

3.安装配置数据库mariadb-server,导入初始数据

yum install mariadb-server -y # mariadb 安装

systemctl enable mariadb.service #设置开机自启

systemctl start mariadb.service #开启数据库

mysql_secure_installation #数据库安全初始化

mysql

MariaDB [(none)]> create database zabbix charset utf8; #创建数据库

MariaDB [(none)]> grant all on zabbix.* to zabbix@localhost identified by '123456'; #设置数据库密码

Quit #退出

[root@localhost yum.repos.d]# rpm -ql zabbix-server-mysql #查找sql文件

cd /usr/share/doc/zabbix-server-mysql-4.0.17/

[root@localhost zabbix-server-mysql-4.0.17]# gzip -d create.sql.gz

[root@localhost zabbix-server-mysql-4.0.17]# mysql -uzabbix -p123456 zabbix <create.sql #导入sql文件

4.修改zabbix配置文件

vi /etc/zabbix/zabbix_server.conf

DBHost=localhost

DBName=zabbix

DBUser=zabbix

DBPassword=123456 #修改以上配置

systemctl enable zabbix-server.service # zabbix-server开机自启

systemctl start zabbix-server.service # 打开zabbix-server服务

netstat -lntup10051 #查看10051端口监听状态 若不存在该命令执行yum install net-tools

5.修正zabbix-web配置文件

systemctl enable httpd #apache开机自启

systemctl start httpd #apache开启

更改时区

vi /etc/httpd/conf.d/zabbix.conf

php_value date.timezone Asia/Shanghai

执行完毕以上操作安装完毕.在浏览器输入http://10.180.107.23/zabbix/

Username:admin

Password:zabbix


image.png
image.png

image.png

6.zabbix服务器添加本机监控主机

服务器添加本机监控主机

yum install zabbix-agent.x86_64 -y

systemctl enable zabbix-agent.service

systemctl start zabbix-agent.service

netstat -lntup查看端口监听10050

7.在其他地方添加监控agent

安装代理服务

因为yum install zabbix-agent.x86_64 -y没有安装zabbix源。所以失败

https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/

复制链接

wget <u>https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-agent-4.0.17-2.el7.x86_64.rpm</u>

rpm-ivh zabbix-agent-4.0.17-2.el7.x86_64.rpm

8.配置代理服务

vim /etc/Zabbix/Zabbix_agented.conf

更改Server=服务主机IP

systemctl enable zabbix-agent.service

systemctl start zabbix-agent.service

netstat -lntup查看端口监听10050

以上命令行 步骤

Web页面创建主机

9.Windows平台 zabbix-agent

在windows命令行窗口下执行: 1.查看所有的端口占用情况

C:>netstat -ano

https://www.cnblogs.com/opsprobe/p/11719198.html

下载安装包

https://www.zabbix.com/cn/download_agents#tab:40LTS

**.msi

image.png
image.png

Suse 11 ps4安装zabbix-agent

安装代理

rpm –ivh 软件包名

https://blog.csdn.net/brenda2314/article/details/88320012

下载安装包

https://software.opensuse.org/download/package?package=zabbix-agent&project=home%3Aluizluca%3Abranches%3Aserver%3Amonitoring

zipper in **.rpm #suse 安装RPM软件包

配置代理 启动zabbix-agentd服务并加入开机自启动

suse11sp3: service zabbix-agentd start chkconfig zabbix-agentd on suse12: systemctl start zabbix-agentd systemctl enable zabbix-agentd

vi /etc/zabbix/zabbix-agent.conf

vi /etc/zabbix/zabbix-agentd.conf

server=服务端IP

查看redhat版本的命令

cat /etc/redhat-release

查看suse版本的命令

cat /etc/SuSE-release

查看Linux内核版本cat /proc/version或uname -a或uname -r查看操系统位数getconf LONG_BIT

vi /etc/zabbix/zabbix_agentd.conf

systemctl restart zabbix-agent.service #重启zabbix-agent

systemctl enable zabbix-agent.service #开机自启

systemctl start zabbix-agent.service #启动zabbix-agent

netstat –lntup #查看端口监听10050

firewall-cmd --query-port=10050/tcp #查看端口号是否开发

firewall-cmd --zone=public --add-port=10050/tcp #开放端口号

systemctl restart firewalld.service #重启firewall

新建监控模板


image.png

填写模板名称à群组

image.png

新建应用集


image.png

创建监控项

image.png

zabbix支持的主要监控方式:
zabbix主要Agent,Trapper,SNMP,JMX,IPMI这几种监控方式,本文章主要通过监控理论和实际操作测试等方式来简单介绍这几种方式的监控原理和优缺点等 。下面对几种监控方式的监控原理进行介绍:
1、Agent监控方式
在Agent监控方式下,zabbix-agent会主动收集本机的监控信息并通过TCP协议与zabbix-server传递信息。Agent监控方式分为主动和被动模式。在被动模式下,zabbix-agent监听10050端口,等待zabbix-server的监控信息收集信息请求;在主动模式下,zabbix-agent收集监控信息并通过10050端口主动将数据传给zabbix-server所在服务器的10051端口。
优点:
1)是zabbix最常用的监控方式,监测指标深入细致有针对性。

2)内置监控功能强大,内置监控项目丰富。

3)TCP方式实现通讯,可靠性也有保证。

缺点:

1)需要在被监控机器上安装zabbix-agent客户端,部署相对麻烦,最初需要逐个机器安装代理软件

2)zabbix-agent客户端运行在被监控机上,会收集本机信息

2、Trapper监控方式

Trapper监控方式使用zabbix-sender程序主动向zabbix-server发送数据。key的名称和发送的数据内容都可以灵活定义。发送的信息采用JSON格式,遵循zabbix-sender协议。可以自定义脚本利用zabbix-sender协议来zabbix-server发送信息。

优点:

1)不需要在被监控机器上安装zabbix-agent

2)不收集被监控机器的信息

3)可以自定义发送的信息内容

4)可以使用自定义脚本发送信息

缺点:

1)需要自定义发送的信息内容

2)无内置监控项目

3、SNMP监控方式

SNMP全称Simple Network Management Protocol,即网络管理协议,包括进程管理和被管理设备两部分。作为一种国际通用的网络管理协议被广泛的应用于各种交换机,路由器等网络设备的管理上,而现在也越来越多被用于对服务器的监控上。
优点:
1)服务器一旦部署SNMPAgent,任何能实现SNMP协议的软件都可以对其进行监测。
2)通过这种手段进行监测不需知道被监测服务器的用户名和密码,比较安全。
缺点:
1)很多服务器并非默认安装SNMPAgent,如果通过这种方式监测则需要对所有服务器安装部署。
2)能监测的参数指标比较固定不够深入,无法满足用户的特殊需求。
3)由于SNMP协议是通过UDP方式实现的。在网络状况不佳的情况下其可靠性能以保证。

4、JMX监控方式
JMX,全称Java Management Extensions,即Java管理拓展,是Java平台为应用程序,设备,系统等植入管理功能的框架。在zabbix中,JMX数据的获取由zabbix-java-gateway代理程序来负责数据的采集。
优点:
1)可以详细的监控各类Java程序的运行状态
缺点:
1)被监控机上需要安装zabbix-java-gateway

5、IPMI监控方式
IPMI,全称Interlligent Platform Management Interface,即智能平台管理接口,原本是Intel架构中企业系统的周边设备所采用的一种工业标准,以后成为业界通用的标准。用户可以利用IPMI监控服务器的物理特性,如温度,电压,电扇工作状态,电源供应以及机箱***等指标。
根据以上对zabbix各主要监控方式的梳理,结论如下:
1)根据被监控机器的环境和客户要求选用适当的监控方式,可同时配合多种监控方式。
2)有条件在监控机上部署zabbix-agent客户端时,该方法为第一选择,因为其功能强大且配置相对简便。
3)需要自定义脚本或者监控信息时,可使用Trapper方式,即使用zabbix-sender程序或者自定义脚本遵循zabbix-sender协议,已JSON形式,通过TCP发送自定义信息。

zabbix4.0配置邮件报警详细过程(带图)

https://blog.51cto.com/12226796/2440359?source=dra

https://blog.51cto.com/12226796/2440359?source=dra

https://blog.csdn.net/PpikachuP/article/details/90312556

1、安装mail

[root@zabbix alertscripts]# yum install mailx -y

2、编辑配置文件在最后一行添加

[root@zabbix alertscripts]# vim /etc/mail.rc set bsdcompat set sendcharsets=iso-8859-1,utf-8 set from=邮箱 set smtp=smtp://smtp.exmail.qq.com set smtp-auth-user=邮箱 set smtp-auth-password=邮箱密码 set smtp-auth=login

3、测试邮件发送是否正常

[root@zabbix alertscripts]# echo "zabbix test mail" |mail -s "zabbix" 邮箱

4、编写发邮件脚本

[root@zabbix alertscripts]# cd /usr/lib/zabbix/alertscripts [root@zabbix alertscripts]# vi mailx.sh

!/bin/bash #send mail

messages=echo 3 | tr '\r\n' '\n' subject=echo2 | tr '\r\n' '\n' echo "{messages}" | mail -s "{subject}" $1 >>/tmp/mailx.log 2>&1

5、修改权限

touch /tmp/mailx.log chown -R zabbix.zabbix /tmp/mailx.log chmod +x /usr/lib/zabbix/alertscripts/mailx.sh chown -R zabbix.zabbix /usr/lib/zabbix/

6、测试脚本发送邮件

[root@zabbix alertscripts]# echo "hello world" | mail -s "testmail" 你的邮箱

添加Zabbix服务端邮件发送脚本

#cd /usr/lib/zabbix/alertscripts    

进入脚本存放目录

#vim sendmail.sh

 #!/usr/bin/sh

echo 'start' >> /tmp/zabbix.log

messages=`echo $3 | tr '\r\n' '\n'`

subject=`echo $2 | tr '\r\n' '\n'`

echo "${messages}" | mail -s "${subject}" $1

echo "${messages}" >> /tmp/zabbix.log

echo "end" >> /tmp/zabbix.log

date >> /tmp/zabbix.log

echo '-------------' >> /tmp/zabbix.log

#chown zabbix.zabbix sendmail.sh

#chmod 755 sendmail.sh

#touch /tmp/zabbix.log

#chown zabbix.zabbix /tmp/zabbix.log

设置脚本所有者为zabbix用户

chmod +x sendmail.sh

设置脚本执行权限

测试

./sendmail.sh xxx@163.com zabbixserver message

1.创建报警媒介类型


image.png

添加三个脚本参数 {ALERT.SENDTO} {ALERT.SUBJECT} {ALERT.MESSAGE}

image.png

2.创建动作

image.png
image.png

3.修改用户报警媒介收件人

image.png

重要的要求:

image.png

Zabbix磁盘性能监控

iostat统计磁盘信息的时候,使用的是/proc/diskstats ,cat /proc/diskstats显示如下

iostat统计磁盘信息的时候,使用的是/proc/diskstats ,cat /proc/diskstats显示如下

复制代码

1 0 ram0 0 0 0 0 0 0 0 0 0 0 0

1 1 ram1 0 0 0 0 0 0 0 0 0 0 0

1 2 ram2 0 0 0 0 0 0 0 0 0 0 0

1 3 ram3 0 0 0 0 0 0 0 0 0 0 0

1 4 ram4 0 0 0 0 0 0 0 0 0 0 0

1 5 ram5 0 0 0 0 0 0 0 0 0 0 0

1 6 ram6 0 0 0 0 0 0 0 0 0 0 0

1 7 ram7 0 0 0 0 0 0 0 0 0 0 0

复制代码

这个命令用于显示磁盘、分区和统计信息

sda为整个硬盘的统计信息

sda1为第一个分区的统计信息

sda2为第二个分区的统计信息。

ramdisk设备为通过软件将RAM当做硬盘来使用的一项技术。

硬盘参数详解如下:

8 0 sda 3836 1551 149462 7579 3762686 31005542 278146400 23009652 0 14464012 23013470

编号 设备 读完成次数 合并完成次数 读扇区次数 读操作花费毫秒数 写完成次数 合并写完成次数 写扇区次数 写操作花费的毫秒数 正在处理的输入/输出请求数 输入/输出操作花费的毫秒数 输入/输出操作花费的加权毫秒数。

有了这些信息我们就可以添加进zabbix进行监控

1. 添加userparameter_io.conf配置文件

在/etc/zabbix/zabbix_agentd.d下添加userparameter_io.conf, 文件内容如下:

UserParameter=custom.vfs.dev.read.ops[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$4}' //磁盘读的次数

UserParameter=custom.vfs.dev.read.ms[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$7}' //磁盘读的毫秒数

UserParameter=custom.vfs.dev.write.ops[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$8}' //磁盘写的次数

UserParameter=custom.vfs.dev.write.ms[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$11}' //磁盘写的毫秒数

UserParameter=custom.vfs.dev.io.active[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$12}' //正在处理的输入输出的请求数

UserParameter=custom.vfs.dev.io.ms[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$13}' //花费在IO操作上的毫秒数

UserParameter=custom.vfs.dev.read.sectors[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$6}' //读扇区的次数(一个扇区的等于512B)

UserParameter=custom.vfs.dev.write.sectors[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$10}' //写扇区的次数(一个扇区的等于512B)

2、重启zabbix-agent服务

systemctl restart zabbix-agent

3、测试zabbix-server获取数据

zabbix_get -s 目标服务器IP -p 10050 -k custom.vfs.dev.write.ops[sda]

4、配置zabbix-server

进入web界面—》配置—》模板—创建模板,或者直接在现有的Linux模板下添加监控项

配置第一个监控项

Name: Disk:$1:Read:Bytes/sec

Key: custom.vfs.dev.read.sectors[sda]

Units: B/sec

Store value: speed per second //会进行差值计算

Use custom multiplier 512 //会对值乘以512,因为这里是一个扇区,转换为字节为512B

第二监控项:和第一个一样的配置过程

              Name:Disk:$1:Write:Bytes/sec

              Key:          custom.vfs.dev.write.sectors[sda]

              Units:        B/sec

              Store value: speed per second

              Use custom multiplier     512

第三个监控项配置参数

             Name:Disk:$1:Read:ops per second

              Key:          custom.vfs.dev.read.ops[sda]

              Units:        ops/second

              Store value: speed per second

第四个监控项配置参数:

             Name: Disk:$1:Write:ops per second

              Key:          custom.vfs.dev.write.ops[sda]

              Units:        ops/second

              Store value: speed per second

第五个监控项配置参数:

             Name: Disk:$1:Read:ms

              Key:         custom.vfs.dev.read.ms[sda]

              Units:      ms

              Store value: speed per second

第六个监控项配置参数:

             Name:Disk:$1:Write:ms

              Key:         custom.vfs.dev.write.ms[sda]

              Units:      ms

              Store value: speed per second

IO操作的输入输出没有配置监控项,主要监控的是磁盘的读写情况,接着添加相应的图形即可

创建自动发现规则
在客户机器创建发现硬盘脚本。disk_discovery.sh

linux-gpwl:/etc/zabbix # cat disk_discovery.sh
#!/bin/bash
diskarray=(`cat /proc/diskstats |grep -E "\bsd[abcdefg]\b|\bxvd[abcdefg]\b"|grep -i "\b$1\b"|awk '{print $3}'|sort|uniq   2>/dev/null`)
length=${#diskarray[@]}
printf "{\n"
printf  '\t'"\"data\":["
for ((i=0;i<$length;i++))
do
        printf '\n\t\t{'
        printf "\"{#DISK_NAME}\":\"${diskarray[$i]}\"}"
        if [ $i -lt $[$length-1] ];then
                printf ','
        fi
done
printf  "\n\t]\n"
printf "}\n"

vi /etc/zabbix/zabbix_agentd.conf在尾部添加一下内容

# UserParameter=
UserParameter=io.scandisk[*],/etc/zabbix/zabbix_agentd.d/disk_discovery.sh $1
#每秒读操作数
UserParameter=io.rps[*],/usr/bin/iostat -m -x -d |grep "$1"|tail -1|awk '{print $$4}'
#每秒写操作数
UserParameter=io.wps[*],/usr/bin/iostat -m -x -d |grep "$1" |tail -1|awk '{print $$5}'
#平均每次设备IO操作数据大小
UserParameter=io.avgrq-sz[*],/usr/bin/iostat -m -x -d |grep "$1" |tail -1|awk '{print $$8}'
#平均IO队列长度
UserParameter=io.avgqu-sz[*],/usr/bin/iostat -m -x -d |grep "$1" |tail -1|awk '{print $$9}'
#平均每次IO操作等待时间
UserParameter=io.await[*],/usr/bin/iostat -m -x -d |grep "$1" |tail -1|awk '{print $$10}'
#平均每次IO操作的服务时间
UserParameter=io.svctm[*],/usr/bin/iostat -m -x -d |grep "$1" |tail -1|awk '{print $$11}'
#一秒内用于IO操作的百分比
UserParameter=io.util[*],/usr/bin/iostat -m -x -d |grep "$1" |tail -1|awk '{print $$12}'
image.png

填入以下信息

image.png

添加监控原型


image.png
image.png

添加监控原型必须[{#DISK_NAME}]
否则会报以下错误
Cannot create item: item with the same key diskio.x.[[xxxxxx]] already exists

参照:https://my.oschina.net/u/2404183/blog/1517649

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,444评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,421评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,036评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,363评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,460评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,502评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,511评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,280评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,736评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,014评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,190评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,848评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,531评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,159评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,411评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,067评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,078评论 2 352

推荐阅读更多精彩内容