LoginSignup
13
14

More than 5 years have passed since last update.

CentOS7へのzabbix 3.0 の自動インストールの誘い

Last updated at Posted at 2016-03-09

前回
http://qiita.com/m_46/items/9519f959c90b3157b9d8

に懲りず、今回もshell芸でzabbixの初期構築をやってみました。構成は以下の通りです。
CentOS 7.1
php 5.6
Apache 2.4.6
PostgreSQL 9.5.1
zabbix 3.0.1

以下、事前に注意すべき点があるのでお読み下さい。

1.以下の操作によってOSのユーザとして「postgres」や「zabbix」等のユーザが作成されるので、そのユーザを利用する運用の場合はパスワードセキュリティを高めましょう。DBレイヤのセキュリティの考慮についても同様です。
2.セキュリティを考慮し、PostgreSQLのデフォルトポート5432から9876に変更しています。
3.selinuxはdisabledとするか、適切に管理しましょう。接続不可なトラブルの何割かはコレが原因です。
4.zabbixは3から暗号化通信も可能ですがここでは割愛します。適宜導入を検討して頂ければと思います。
5.サーバを公開して運用する場合、firewalldやネットワークレイヤで、入念なセキュリティ対策を行ってから運用を行って下さい。何らかの被害が出ても責任は負い兼ねます。
6.細かなconfファイル,iniファイルの修正は各自で行って下さい。ここでは自分の好みを含める"動く最低限の設定"を適用しています。

上記各項を正しく理解した上で、以下のコマンドを流し込んで下さい。

/root/setup-zabbix.sh
# OSのセキュリティ対策アップデート等の実施
yum -y update

# 導入するツールのレポジトリ登録
yum -y install epel-release
rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
rpm -ivh http://yum.postgresql.org/9.5/redhat/rhel-7.2-x86_64/pgdg-centos95-9.5-2.noarch.rpm
rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm

# レポジトリの無効化
sed -i -e "s/enabled=1/enabled=0/g" /etc/yum.repos.d/epel.repo
sed -i -e "s/enabled=1/enabled=0/g" /etc/yum.repos.d/epel-testing.repo
sed -i -e "s/enabled=1/enabled=0/g" /etc/yum.repos.d/pgdg-95-centos.repo
sed -i -e "s/enabled=1/enabled=0/g" /etc/yum.repos.d/remi-php70.repo
sed -i -e "s/enabled=1/enabled=0/g" /etc/yum.repos.d/remi-safe.repo
sed -i -e "s/enabled=1/enabled=0/g" /etc/yum.repos.d/remi.repo
sed -i -e "s/enabled=1/enabled=0/g" /etc/yum.repos.d/zabbix.repo

# 構成に必要(便利)なライブラリインストール
yum -y install libcurl-devel libzip zlib-devel libxml2-devel net-snmp net-snmp-devel libcurl-devel expect gcc
yum -y groupinstall Base

# zabbixに必要なライブラリインストール
yum -y install unixODBC  OpenIPMI-libs  OpenIPMI-modalias libtool-ltdl iksemel fping --enablerepo=zabbix,base,epel --skip-broken

# PostgreSQL9.5インストール
yum -y install postgresql95-server postgresql95-devel postgresql95-contrib --enablerepo=pgdg95

# 自動起動設定
systemctl enable postgresql-9.5.service

# initDB実行
su -c '/usr/pgsql-9.5/bin/initdb -D /var/lib/pgsql/9.5/data' postgres

# conf修正「/var/lib/pgsql/9.5/data/pg_hba.conf」
sed -i -e "s/peer/trust/g" /var/lib/pgsql/9.5/data/pg_hba.conf
sed -i -e "s/ident/trust/g" /var/lib/pgsql/9.5/data/pg_hba.conf

# conf修正「/var/lib/pgsql/9.5/data/postgresql.conf」
echo "checkpoint_timeout = 30min" >> /var/lib/pgsql/9.5/data/postgresql.conf
echo "checkpoint_completion_target = 0.8" >> /var/lib/pgsql/9.5/data/postgresql.conf
echo "listen_addresses = '*'" >> /var/lib/pgsql/9.5/data/postgresql.conf
echo "port = 9876" >> /var/lib/pgsql/9.5/data/postgresql.conf

# PostgreSQL9.5起動
systemctl start postgresql-9.5.service

# zabbixユーザの作成とDB登録
echo "create user zabbix SUPERUSER PASSWORD 'XXXXXXXXXXXX';" >> /root/create.sql
echo "create database zabbix owner=zabbix;" >> /root/create.sql
/usr/bin/psql -f /root/create.sql -U postgres -p 9876
rm -f /root/create.sql

# php,Apacheのインストール
yum -y install php php-common php-mbstring php-xml php-gd php-bcmath php-pgsql php-ldap php-cli php-pdo php-pecl-jsonc php-pecl-zip --enablerepo=remi,remi-php56

# /etc/php.iniの編集
sed -i -e "s/post_max_size = 8M/post_max_size = 16M/g" /etc/php.ini
sed -i -e "s/max_execution_time = 30/max_execution_time = 300/g" /etc/php.ini
sed -i -e "s/max_input_time = 60/max_input_time = 300/g" /etc/php.ini
sed -i -e "s/;date.timezone =/date.timezone = Asia\/Tokyo/g" /etc/php.ini
sed -i -e "s/;always_populate_raw_post_data/always_populate_raw_post_data/g" /etc/php.ini
sed -i -e "s/memory_limit = 128M/memory_limit = 256M/g" /etc/php.ini

# Apacheの設定
echo "ServerName `hostname`:80" >> /etc/httpd/conf/httpd.conf

# zabbixインストール
yum -y install zabbix-server-pgsql zabbix-web-pgsql zabbix-web-japanese --enablerepo=zabbix --skip-broken

# zabbixのDBへのスキーマ登録
cd /usr/share/doc/zabbix-server-pgsql-3.0.1/
gunzip create.sql.gz
echo "PW=\"XXXXXXXXXXXX\"" >> /usr/share/doc/zabbix-server-pgsql-3.0.1/schema.sh
echo "expect -c \"" >> /usr/share/doc/zabbix-server-pgsql-3.0.1/schema.sh
echo "set timeout 5" >> /usr/share/doc/zabbix-server-pgsql-3.0.1/schema.sh
echo "spawn psql -p 9876 -W -d zabbix -f /usr/share/doc/zabbix-server-pgsql-3.0.1/create.sql zabbix" >> /usr/share/doc/zabbix-server-pgsql-3.0.1/schema.sh
echo "expect \\\"ユーザ zabbix のパスワード:\\\" " >> /usr/share/doc/zabbix-server-pgsql-3.0.1/schema.sh
echo "send \\\"\${PW}\n\\\"" >> /usr/share/doc/zabbix-server-pgsql-3.0.1/schema.sh
echo "expect \\\"$\\\"" >> /usr/share/doc/zabbix-server-pgsql-3.0.1/schema.sh
echo "exit 0" >> /usr/share/doc/zabbix-server-pgsql-3.0.1/schema.sh
echo "\"" >> /usr/share/doc/zabbix-server-pgsql-3.0.1/schema.sh
chmod u+x /usr/share/doc/zabbix-server-pgsql-3.0.1/schema.sh
sh /usr/share/doc/zabbix-server-pgsql-3.0.1/schema.sh

# /etc/zabbix/zabbix_server.conf 修正
sed -i -e "s/LogFile=\/tmp\/zabbix_server.log/LogFile=\/var\/log\/zabbix\/zabbix_server.log/g" /etc/zabbix/zabbix_server.conf
echo "PidFile=/var/run/zabbix/zabbix_server.pid" >> /etc/zabbix/zabbix_server.conf
echo "DBHost=127.0.0.1" >> /etc/zabbix/zabbix_server.conf
echo "DBSocket=/tmp/.s.PGSQL.9876" >> /etc/zabbix/zabbix_server.conf
echo "DBPassword=XXXXXXXXXXXX" >> /etc/zabbix/zabbix_server.conf
echo "DBPort=9876" >> /etc/zabbix/zabbix_server.conf
echo "ListenPort=10051" >> /etc/zabbix/zabbix_server.conf
echo "ListenIP=127.0.0.1" >> /etc/zabbix/zabbix_server.conf

# Apacheの起動及び自動起動設定
systemctl enable httpd.service
systemctl start httpd.service

# zabbixの起動及び自動起動設定
systemctl enable zabbix-server.service
systemctl start zabbix-server.service

以上を実行した後、作業したサーバへ、ブラウザで

httpl://{サーバIP}/zabbix

とアクセスすると初期画面が表示されます。あとは適宜設定を追加してログインしてみてください。

以下はzabbix-agentの導入です。ご参考までに。

/root/setup-zabbix-agent.sh
yum -y install zabbix-agent --enablerepo=zabbix --skip-broken

sed -i -e "s/ServerActive=127.0.0.1/ServerActive=127.0.0.1:10051/g" /etc/zabbix/zabbix_agentd.conf
sed -i -e "s/Hostname=Zabbix server/Hostname=`hostname`/g" /etc/zabbix/zabbix_agentd.conf
echo "AllowRoot=1" >> /etc/zabbix/zabbix_agentd.conf
echo "EnableRemoteCommands=1" >> /etc/zabbix/zabbix_agentd.conf

systemctl enable zabbix-agent.service
systemctl start zabbix-agent.service

よきzabbixライフを!

13
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
14