从 1 到 0 构建博客项目(5) --ZABBIX安装与使用

2020-11-02 10:46:48 浏览数 (1)

教程前阅读:

监控软件有很多,老牌代表:zabbix 新牌代表:prometheus.

zabbix采用的是CS模式,即有客户端和服务端,一般是由客户端主动发送采集的数据的(降低服务端的压力.)

其它的概念我就不说了,没得意思,直接上手体验体验更好,也可以看官网的描述.

本篇主要介绍zabbix的安装和使用,在此之前,你需要先准备lnmp环境2套, 一套用来作为zabbix服务端,另一套作为zabbix被监控端

代码语言:javascript复制
#如果要启用php的--enable-mbstring  则需要安装如下依赖
  yum install https://mirrors.tuna.tsinghua.edu.cn/epel/7/x86_64/Packages/o/oniguruma-devel-6.8.2-1.el7.x86_64.rpm https://mirrors.tuna.tsinghua.edu.cn/epel/7/x86_64/Packages/o/oniguruma-6.8.2-1.el7.x86_64.rpm -y

不会lnmp的可以看上一篇https://cloud.tencent.com/developer/article/1728991

zabbix官网:https://www.zabbix.com/

zabbix教程:https://www.zabbix.com/documentation/current/manual

zabbix是开源免费的. 本系列教程使用的软件尽量以开源的为主.

特别说明:zabbix服务端我们使用编译安装, 被监控端就使用rpm包安装了,简单点.

1.zabbix服务端安装:

1.1下载源码包

截至本教程时间(2020.11.1)最新版本为5.2 , 但是我们使用官方长期支持版本5.0TLS

官方的yum安装教程:https://www.zabbix.com/download?zabbix=5.0&os_distribution=centos&os_version=7&db=mysql&ws=nginx

官方源码安装教程:https://www.zabbix.com/documentation/5.0/manual/installation/install

zabbix5.0.5源码下载:https://cdn.zabbix.com/zabbix/sources/stable/5.0/zabbix-5.0.5.tar.gz

这速度慢的很..........

后续有时间的话,教大家根据.src.rpm定制rpm. 感兴趣的同学可以先自己尝试(命令提示:rpmbuild):https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/rhel/7/SRPMS/zabbix-5.0.5-1.el7.src.rpm

1.2 编译安装:

1.2.1解压,创建相应用户

https://www.zabbix.com/documentation/5.0/manual/installation/install

代码语言:javascript复制
shell> tar -xvf zabbix-5.0.5.tar.gz
shell> cd zabbix-5.0.5
shell> groupadd --system zabbix
shell> useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix
shell> mkdir -m u=rwx,g=rwx,o= -p /usr/lib/zabbix
shell> chown zabbix:zabbix /usr/lib/zabbix

1.2.2 创建zabbix-server所使用的数据库

https://www.zabbix.com/documentation/5.0/manual/appendix/install/db_scripts

代码语言:javascript复制
shell> mysql -uroot -p123456
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> create user 'zabbix'@'localhost' identified by '123456';
mysql> grant all privileges on zabbix.* to 'zabbix'@'localhost';
mysql> flush privileges;
mysql> quit;

1.2.3 导入zabbix数据

代码语言:javascript复制
shell> cd database/mysql
shell> mysql -uzabbix -p123456 zabbix < schema.sql
shell> mysql -uzabbix -p123456 zabbix < images.sql
shell> mysql -uzabbix -p123456 zabbix < data.sql
shell> cd ../../

1.2.4 配置zabbix-server

安装依赖

代码语言:javascript复制
yum install net-snmp-devel https://mirrors.tuna.tsinghua.edu.cn/centos/7.8.2003/os/x86_64/Packages/libevent-devel-2.0.21-4.el7.x86_64.rpm -y  #根据你选择的功能安装相应的依赖

配置

代码语言:javascript复制
./configure --enable-server --enable-agent --with-mysql=/usr/local/mysql/bin/mysql_config --with-net-snmp --with-libcurl

配置成功后,会列出你的配置:

1.2.5编译并安装

代码语言:javascript复制
make && make install

1.2.6 后续配置

拷贝zabbix-server和zabbix-agent服务到/etc/init.d下面 (方便用系统服务管理)

代码语言:javascript复制
cp misc/init.d/fedora/core/zabbix_* /etc/init.d/

拷贝UI到/var/www目录

代码语言:javascript复制
mkdir -p /var/www/zabbix
cp -ra ui/*  /var/www/zabbix
chown -R php:php /var/www/zabbix

配置zabbix_server.conf

代码语言:javascript复制
cat << EOF > /usr/local/etc/zabbix_server.conf
LogFile=/tmp/zabbix_server.log
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=123456
Timeout=10
LogSlowQueries=3000
CacheSize=256M
TrendCacheSize=256M
ValueCacheSize=256M
StartTrappers=30
StartPollers=10
EOF

1.2.7启动zabbix_server

代码语言:javascript复制
systemctl start zabbix_server

如果报错:

error while loading shared libraries: libmysqlclient.so.20: cannot open shared object file: No such file or directory

则需要做个软连接后,再重启即可:

代码语言:javascript复制
ln -s /usr/local/mysql/lib/libmysqlclient.so.20  /usr/lib
ldconfig
systemctl restart zabbix_server

1.2.8配置nginx并重启

nginx的server配置如下

server {

listen 80;

index index.php index.html index.htm;

root /var/www;

location /zabbix {

index index.php index.html index.htm;

root /var/www;

}

location ~ .php$ {

fastcgi_index index.php;

fastcgi_pass 127.0.0.1:9000;

include fastcgi_params;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

fastcgi_param SCRIPT_NAME $fastcgi_script_name;

}

}

代码语言:javascript复制
setenforce 0   #关闭selinux,不然访问不了
systemctl reload nginx

浏览器输入http://192.168.1.41/zabbix

有2个警告,忽略掉,我们目前不需要这2个功能有2个警告,忽略掉,我们目前不需要这2个功能
这些大家都懂,我就不解释了这些大家都懂,我就不解释了
然后登录就行,默认账号密码: Admin/zabbix然后登录就行,默认账号密码: Admin/zabbix

注意:默认账号密码: Admin/zabbix

这就是主要界面:

和4.0的界面有很大区别和4.0的界面有很大区别

第一次登录之后,建议修改默认账号的密码,最好是添加个其它用户

也可以设置语言 但是要求php开启gettext才行,我们这个环境没有开,所以就英文吧.

2.zabbix客户端(zabbix-agent)安装

专门监控java的话用zabbix-java-gateway

客户端我们使用rpm包安装, 但是官网的下载速度较慢, 所以我们还是使用清华大学源下载.

zabbix-agent下载地址:https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-agent-5.0.5-1.el7.x86_64.rpm

zabbix-agent2下载地址:https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-agent2-5.0.5-1.el7.x86_64.rpm

zabbix-agent2是zabbix-agent的增强版. 本次教程就先使用zabbix-agent吧.

2.1 安装zabbix-agent

代码语言:javascript复制
yum install https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-agent-5.0.5-1.el7.x86_64.rpm -y

2.2 配置zabbix-agent

代码语言:javascript复制
cat << EOF /etc/zabbix/zabbix_agentd.conf
idFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=192.168.1.41
ServerActive=192.168.1.41
Hostname=192.168.1.31
Include=/etc/zabbix/zabbix_agentd.d/*.conf
EOF

2.3 启动zabbix-agent并设置开机自启

代码语言:javascript复制
systemctl start zabbix-agent
systemctl enable zabbix-agent

3. 服务端定制监控项

3.1 添加主机

点击右上角添加主机点击右上角添加主机

3.2 添加模板

右上角添加模板右上角添加模板
单击模板配置监控项单击模板配置监控项

3.3 配置监控项

创建监控项

key值可以自定义,也可以用zabbix预先定义好的, 文末介绍自定义的key值可以自定义,也可以用zabbix预先定义好的, 文末介绍自定义的

3.4 配置图形

3.5 关联主机和模板

配置好之后就是这样的配置好之后就是这样的

TIPS: 没得监控项的时候 Availability 状态是看不见的

3.6 看最新监控

点击画图点击画图

3.7 设置触发器

3.8 还可以设置相应的动作比如执行脚本(几乎万能),发送邮件等.后面再讲吧,接下来讲讲自定义监控项

4.自定义监控项

只要可以自定义,那很多东西都能监控了,比如应用,数据库等都没得问题

4.1 客户端定制脚本(需重启才会生效):

代码语言:javascript复制
cat << EOF >> /etc/zabbix/zabbix_agentd.d/custom1.conf
UserParameter=custom.process.user[*], echo $[ $(ps -U $1 | wc -l) - 1 ]
EOF
systemctl restart zabbix-agent

4.2服务端配置监控项和图形

4.3 查看:

下一篇讲ansible 批量部署 感觉离自建博客系统越来越远了

0 人点赞