当前位置: 首页>移动开发>正文

Zabbix服务了解以及部署服务端,客户端,添加主机

一、zabbix服务初了解

1、zabbix系统概述
(1)数据采集:周期性时序数据
》 主机/对象:服务器、路由器、交换机、存储、防火墙、IP、PORT、URL、自定义监控对象...
》 采集目标:监控项,指标数据(metrics data)
(2)数据存储:
》 存储系统:
SQL: MySQL/MariaDB(Zabbix)
NoSQL:Redis(Open-falcon)
rrd: Round Robin Database(Cacti)
(3)数据:
》 历史数据: 每个监控项采集到的每个监控值
》 趋势数据: 趋势表里主要保留某个监控项一个小时内历史数据的最大值、最小值和平均值以及该监控项一个小时内所采集到的数据个数。
(4)阈值:severity,可按照等级实现层级报警
(5)告警:email, 短信, 微信,语音,故障自治愈
2、zabbix的四大核心任务
(1)采集:zabbix-server, zabbix-proxy,zabbix-agent
》 Agentless:SNMP,Telnet,ssh,IPMI, JMX,
》 Agent:zabbixagent
(2)存储: zabbixdatabase
(3)展示:zabbixweb
》graph -> screen -> slideshow(将多个screen以幻灯片的方式进行轮流展示)
(4)告警:
》 host (host groups) <-templates
》 host -> items -> triggers -> action (条件-conditions, 操作-operations)

二、使用apt模式安装程序

详细的安装步骤可以参考zabbix的官方网站,确认使用的系统和内核版本,按操作进行
https://www.zabbix.com/cn/download
1、确认zabbix的安装路径(如果下载路径不能识别,删除原文件/etc/apt/sources.list的数据,替换为阿里云的镜像路径)

wget https://repo.zabbix.com/zabbix/4.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_4.0-3%2Bfocal_all.deb
dpkg -i zabbix-release_4.0-3+focal_all.deb
apt update  #刷新本地的镜像源

2、安装zabbix server,web前端、zabbix agent

apt install zabbix-server-mysql zabbix-frontend-php zabbix-agent

3、创建初始数据库
(1)安装数据库

apt-get install mysql-server

(2)修改数据库配置文件(默认数据库监控在127地址上,保证可以正常链接数据库)

vim /etc/mysql/mysql.conf.d/mysqld.cnf
bind-address            = 192.168.43.108
#mysqlx-bind-address    = 127.0.0.1

(3)创建zabbix用户以及授权(导入数据前,先检查是否可以正常连接数据库)

create database zabbix character set utf8 collate utf8_bin;
create user zabbix@'192.168.43.108' identified by '123456';
grant all privileges on zabbix.* to zabbix@'192.168.43.108';

(4)数据库中导入初始数据

zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix

4、修改zabbix server配置文件
(1)配置数据库账户密码

vim /etc/zabbix/zabbix_server.conf
DBPassword=123456

(2)配置zabbix前端php(修改时区时,注意一下php的版本,也可以选择全部修改)

vim /etc/zabbix/apache.conf
<IfModule mod_php5.c>
    php_value date.timezone Asia/Shanghai
<IfModule mod_php7.c>
    php_value date.timezone Asia/Shanghai

5、重启程序

systemctl restart zabbix-server zabbix-agent apache2
systemctl enable zabbix-server zabbix-agent apache2

6、配置web页面


Zabbix服务了解以及部署服务端,客户端,添加主机,第1张
开始配置页面

以下配置项需要全部ok才可以进行下一项


Zabbix服务了解以及部署服务端,客户端,添加主机,第2张
设置

zabbix修改连接的数据库时,前端和服务端都要一起修改,前端修改文件为/etc/zabbix/web/zabbix.conf.php,服务端修改文件为/etc/zabbix/zabbix_server.conf
Zabbix服务了解以及部署服务端,客户端,添加主机,第3张
配置数据库

Zabbix服务了解以及部署服务端,客户端,添加主机,第4张
配置server端

默认的账户密码是Admin/zabbix


Zabbix服务了解以及部署服务端,客户端,添加主机,第5张
登录界面

Zabbix服务了解以及部署服务端,客户端,添加主机,第6张
登录正常

7、页面调试
web界面登录完之后显示的是英文界面,可以修改为中文的,
Zabbix服务了解以及部署服务端,客户端,添加主机,第7张
修改中文

(1)安装中文包
安装ubuntu系统时,系统包是安装的中文包,所以需要修改ubuntu系统的
apt-get install language-pack-zh*

(2)配置环境变量(下面文件中添加两行配置)

vim /etc/environment
LANG="zh_CN.UTF-8"
LANGUAGE="zh_CN:zh:en_US:en"

(3)重新设置本地配置

dpkg-reconfigure locales
Zabbix服务了解以及部署服务端,客户端,添加主机,第8张
空格点选,回车下一步

Zabbix服务了解以及部署服务端,客户端,添加主机,第9张
回车选定

(4)重启服务

systemctl restart zabbix-server zabbix-agent apache2
Zabbix服务了解以及部署服务端,客户端,添加主机,第10张
中文显示

(5)页面字体显示


Zabbix服务了解以及部署服务端,客户端,添加主机,第11张
字体显示

可以现在本机电脑上找到字体文件,控制面板中找到字体选项,复制一份字体文件,上传到web端


Zabbix服务了解以及部署服务端,客户端,添加主机,第12张
控制面板

Zabbix服务了解以及部署服务端,客户端,添加主机,第13张
字体
root@ubuntu20:~#  find / -name fonts  # 查找文件存放的路径
/usr/share/zabbix/assets/fonts/ 

vim /usr/share/zabbix/include/defines.inc.php
define('ZBX_GRAPH_FONT_NAME',           'simkai'); // font file name
define('ZBX_FONT_NAME', 'simkai');
Zabbix服务了解以及部署服务端,客户端,添加主机,第14张
修改后

三、源码编译

源码编译可以参考官方站点的文档
https://www.zabbix.com/cn/manuals

Zabbix服务了解以及部署服务端,客户端,添加主机,第15张
其他方式安装

四、添加主机

1、被监控主机上安装agent程序

apt-get install zabbix-agent

2、修改配置文件

vim /etc/zabbix/zabbix_agentd.conf
Server=192.168.43.108
Hostname=192.168.43.109

3、重启程序

systemctl restart zabbix-agent.service

4、web端配置添加主机
(1)创建主机


Zabbix服务了解以及部署服务端,客户端,添加主机,第16张
创建主机

(2)添加主机,群组可以新增,也可以选择,客户端监控端口可以默认


Zabbix服务了解以及部署服务端,客户端,添加主机,第17张
添加主机

(3)模板添加
Zabbix服务了解以及部署服务端,客户端,添加主机,第18张
模板

(4)添加完成,显示绿色表示添加成功
Zabbix服务了解以及部署服务端,客户端,添加主机,第19张
添加完成

五、测试数据

测试获取zabbix-agent的数据

yum install zabbix-get-4.0.1-1.el7.x86_64.rpm -y
zabbix_get-s 192.168.15.204 -p 10050 -k "system.cpu.load[all,avg1]"

(面)注:
在实际的操作中,有遇到一个问题,agent执行脚本获取到的值和使用zabbix-get获取到的值不一致的情况,例如下面
agent端:脚本是用来检查程序端口和进程是否正常,进程kill掉之后,agent端执行脚本获取值是100,

root@application2:/etc/zabbix/zabbix_agentd.d# bash /etc/zabbix/zabbix_agentd.d/process_port_check.sh process dvs
100
root@application2:/etc/zabbix/zabbix_agentd.d# cat process_port_check.sh 
#!/bin/bash
check_process(){
NUM=`ps -ef |grep -v grep |grep -v bash  | grep ${NAME} | wc -l`
if [[ $NUM = 0 ]];then
    echo 100
else
    echo 50
fi
}

check_port(){
ss -tnl  | grep  ${PORT} &> /dev/null
if [ $-eq 0 ];then
    echo 50
else 
    echo 100
fi
}

main(){
    case  in
        process)
        NAME=
        check_process;
        ;;
    port)
        PORT=
        check_port;
        ;;
    esac
}

main  

server端:获取数值一直不一致

root@devops:~# zabbix_get -s 10.10.10.32 -p 10050 -k "process_port_check[process,dvs]"
50

开始以为是脚本出现了什么问题,一直修改脚本,但是结果都是一样的,查询网络上的方法都没有适用的,有点怀疑命令是否有问题,将命令修改后,server端出现的返回值提醒了我
修改命令后的脚本

check_process(){
ps -ef |grep -v grep |grep -v bash  | grep ${NAME} 
if [ $-eq 0 ];then
    echo 50
else
    echo 100
fi
}

server端执行结果:

root@devops:~# zabbix_get -s 10.10.10.32 -p 10050 -k "process_port_check[process,dvs]"
zabbix    440136  439936  0 10:07        00:00:00 sh -c /etc/zabbix/zabbix_agentd.d/process_port_check.sh process dvs
50

看到server的返回值,发现server端执行脚本使用的环境变量是不一样的,脚本中只是将bash去除了,但是没有去除sh,果断将sh也去除,执行结果正常。
最后一版脚本:

#!/bin/bash
check_process(){
NUM=`ps -ef |grep -wv grep |grep -wv bash |grep -wv sh  | grep ${NAME}|wc -l`
if [ $NUM -eq 0 ];then
    echo 100
else
    echo 50
fi
}

check_port(){
ss -tnl  | grep  ${PORT} &> /dev/null
if [ $-eq 0 ];then
    echo 50
else 
    echo 100
fi
}

main(){
    case  in
        process)
        NAME=
        check_process;
        ;;
    port)
        PORT=
        check_port;
        ;;
    esac
}

main  

https://www.xamrdz.com/mobile/46v1997535.html

相关文章: