Zabbix安装

  • A+
所属分类:Linux

系统环境:Centos 7
      软件版本:Zabbix 4.0 LTS
      环境准备:LNMP

1.下载

wget  https://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/4.0.9/zabbix-4.0.9.tar.gz

2.安装依赖包

yum install net-snmp-devel libxml2-devel libcurl-devel  -y

3.增加zabbix用户

groupadd --system zabbix;
useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix

4.创建数据库

mysql -u root -p
mysql> create database zabbix character set utf8; 
mysql> grant all PRIVILEGES on zabbix.* to zabbix@'localhost' identified by 'zabbix'; 
mysql> quit;

5.解压并初始化数据库

tar zxvf zabbix-4.0.9.tar.gz
cd zabbix-4.0.9/database/mysql;
mysql -uzabbix -pzabbix zabbix < schema.sql;
mysql -uzabbix -pzabbix zabbix < images.sql;
mysql -uzabbix -pzabbix zabbix < data.sql;

注:对于Zabbix proxy数据库,只导入 schema.sql即可

6.编译安装

./configure --prefix=/opt/zabbix/ --enable-server --enable-agent  --enable-proxy --with-mysql=/usr/local/mysql/bin/mysql_config --enable-java --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2;

注:因为安装Java网关将创建整个目录树,而不仅仅是单个可执行文件。建议制定安装目录

--prefix                指定zabbix安装目录 

--enable-server   支持zabbix服务器

--enable-agent   支持zabbix代理

--enable-proxy   支持zabbix代理服务器  

--with-libcurl      使用curl包

--with-net-snmp 使用net-snmp软件包,选择性地指定路径NET-SNMP配置

--with-mysql=/usr/local/mysql/bin/mysql_config使用MySQL客户端库可以选择指定路径mysql_config

make && make install

7.为zabbix创建软链接

ln -s /opt/zabbix/etc/ /etc/zabbix;
ln -s /opt/zabbix/bin/* /usr/bin;
ln -s /opt/zabbix/sbin/* /usr/bin;

8.配置zabbix

vim /etc/zabbix/zabbix_server.conf
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
DBPort=3306

9.创建启动脚本

cp zabbix-4.0.5/misc/init.d/fedora/core/zabbix_* /etc/init.d/;
sed -i 's#BASEDIR=/usr/local#BASEDIR=/opt/zabbix#' /etc/init.d/zabbix_server;
sed -i 's#BASEDIR=/usr/local#BASEDIR=/opt/zabbix#' /etc/init.d/zabbix_agentd;

10.开机启动

echo /opt/zabbix/sbin/zabbix_server >> /etc/rc.d/rc.local;
echo /opt/zabbix/sbin/zabbix_agentd >> /etc/rc.d/rc.local;
chmod +x /etc/rc.d/rc.local;

11.zabbix程序拷贝到网站目录

rm -rf /home/wwwroot/default/*;
cp -r zabbix-4.0.5/frontends/php/* /home/wwwroot/default/;

12.修改php

sed -i 's/max_input_time = 60/max_input_time = 300/' /usr/local/php/etc/php.ini;
sed -i 's#date.timezone = PRC#date.timezone = Asia/Shanghai#' /usr/local/php/etc/php.ini;
sed -i 's/max_input_time = 60/max_input_time = 300/' /usr/local/php/etc/php.ini;

记得重启php服务,使得配置生效

13.启动服务并打开网页配置

/etc/init.d/zabbix_server start;
/etc/init.d/zabbix_agentd start;

14.添加防火墙

firewall-cmd --zone=public --add-port=10050-10051/tcp --permanent;firewall-cmd --reload;
firewall-cmd --zone=public --add-port=10050-10051/udp --permanent;firewall-cmd --reload;

15.配置动态效果图,如有报错提示,可以根据报错提示在php.ini中修改

Zabbix安装

登录动态效果图,用户名admin密码zabbix

Zabbix安装

16.解决中文乱码

复制系统字体,比如楷体C:\Windows\Fonts\simkai.ttf到桌面上

备份原字体

mv /home/wwwroot/default/assets/fonts/DejaVuSans.ttf /home/wwwroot/default/assets/fonts/DejaVuSans.ttf.bak;
mv simkai.ttf /home/wwwroot/default/assets/fonts/DejaVuSans.ttf;

17.添加邮件告警

管理--报警媒介类型--Email-配置自己的邮箱账户

Zabbix安装

Zabbix安装

18.添加微信告警(前提已有企业微信应用)

#!/bin/bash
CropID='xxxxx'
Secret='xxxxxxxx'
GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CropID&corpsecret=$Secret"
#get acccess_token
Gtoken=$(/usr/bin/curl -s -G $GURL | awk -F\" '{print $10}')
PURL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$Gtoken"
#echo `curl -s -G "https://qyapi.weixin.qq.com/cgi-bin/department/list?access_token=$Gtoken&id=ID"`
#
function body() {
         local int AppID=1000002                       #企业号中的应用id
         local UserID="xxxxx"                        #部门成员id,zabbix中定义的微信接收者
         local PartyID="2"                           #部门id,定义了范围,组内成员都可接收到消息
         local Msg=$(echo "$@" | cut -d" " -f3-)   #过滤出zabbix传递的第三个参数
         printf '{\n'
         printf '\t"touser": "'"$UserID"\"",\n"
         printf '\t"toparty": "'"$PartyID"\"",\n"
         printf '\t"msgtype": "text",\n'
         printf '\t"agentid": "'" $AppID "\"",\n"
         printf '\t"text": {\n'
         printf '\t\t"content": "'"$Msg"\""\n"
         printf '\t},\n'
         printf '\t"safe":"0"\n'
         printf '}\n'
}
echo $Msg
#/usr/bin/curl --data-ascii '{ "touser": "@all", "toparty": " @all ","msgtype": "text","agentid": "1000002","text": {"content": "'${Content}'"},"safe":"0"}' $PURL
/usr/bin/curl --data-ascii "$(body $1 $2 $3)" $PURL

把上面脚本保存到/opt/zabbix/share/zabbix/alertscripts目录下,然后加上权限

chmod +x zabbix.sh

管理--报警媒介类型--创建媒体类型--脚本加入三个参数:{ALERT.SENDTO}、{ALERT.SUBJECT}、{ALERT.MESSAGE}

Zabbix安装

配置用户

Zabbix安装

Zabbix安装

Zabbix安装

标题trigger
主机名称:{HOSTNAME}
主机地址:{HOST.IP}
故障发生时间:{EVENT.DATE}:{EVENT.TIME}
触发器类型: {TRIGGER.NAME}
触发器状态: {TRIGGER.STATUS}

Zabbix安装

标题resolve
主机名称:{HOSTNAME}
主机地址:{HOST.IP}
故障时间:{EVENT.DATE}:{EVENT.TIME}
触发器类型: {TRIGGER.NAME}
触发器状态: {TRIGGER.STATUS}

Zabbix安装

标题Acknowledged
用户:{USER.FULLNAME} 在 {ACK.DATE} {ACK.TIME} 确认这个问题,信息如下:
{ACK.MESSAGE}

当前问题是: {EVENT.STATUS}

19.创建自动发现规则

配置-自动发现-修改服务器内网网段

Zabbix安装

配置--动作--事件源--自动发现

Zabbix安装

可以自己设置发现主机自动添加到特定的群组,自动关联特定模版

Zabbix安装

20.基于curl api 认证并取得加密字段

curl -i -X POST -H 'Content-Type: application/json' -d '{"jsonrpc": "2.0","method":"user.login","params":{"user":"admin","password":"admin"},"auth": null,"id":0}' http://ip/api_jsonrpc.php; 

测试

zabbix_get -s ip -p 10050 -k "system.uptime"

附注: zabbix api在线工具:http://monitoringartist.github.io/zapix/

avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: