教程前阅读:
监控软件有很多,老牌代表: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;
}
}
setenforce 0 #关闭selinux,不然访问不了
systemctl reload nginx
浏览器输入http://192.168.1.41/zabbix
注意:默认账号密码: Admin/zabbix
这就是主要界面:
第一次登录之后,建议修改默认账号的密码,最好是添加个其它用户
也可以设置语言 但是要求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 配置监控项
创建监控项
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 批量部署 感觉离自建博客系统越来越远了