-
Notifications
You must be signed in to change notification settings - Fork 26
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
To downgrade correctly you must: * Remove fluent-package in beforehand. * Re-install td-agent v4. * Manually migrate buffer or logs Signed-off-by: Kentaro Hayashi <[email protected]>
- Loading branch information
Showing
4 changed files
with
170 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,79 @@ | ||
#!/bin/bash | ||
|
||
set -exu | ||
|
||
. $(dirname $0)/../commonvar.sh | ||
|
||
# Install v4 | ||
sudo apt install -y curl ca-certificates | ||
curl -fsSL https://toolbelt.treasuredata.com/sh/install-${distribution}-${code_name}-td-agent4.sh | sh | ||
|
||
# td-agent is running | ||
systemctl status --no-pager td-agent | ||
|
||
# fluent-package 5 (LTS) | ||
#curl -fsSL https://toolbelt.treasuredata.com/sh/install-${distribution}-${code_name}-fluent-package5-lts.sh | sh | ||
#sudo apt purge -y fluent-lts-apt-source | ||
|
||
# Ensure to install the current | ||
sudo apt install -V -y \ | ||
/vagrant/${distribution}/pool/${code_name}/${channel}/*/*/fluent-package_*_${architecture}.deb | ||
|
||
# td-agent.service is already masked (link to /dev/null), and remove td-agent.service alias not to conflict with v4 | ||
sudo systemctl unmask td-agent | ||
|
||
# Keep log and .conf and so on. dpkg reports "rc fluent-package" and "rc td-agent" status. | ||
sudo apt remove -y fluent-package td-agent | ||
|
||
# fluentd.service is already masked (link to /dev/null), then remove it. | ||
sudo systemctl unmask fluentd | ||
|
||
# Drop symbolic links and recreate real directory. | ||
sudo rm -f /var/log/td-agent | ||
sudo rm -f /etc/td-agent | ||
sudo mkdir -p /var/log/td-agent | ||
sudo chown td-agent:td-agent /var/log/td-agent | ||
|
||
# Migrate logs | ||
sudo mv /var/log/fluent/* /var/log/td-agent/ | ||
|
||
# Reinstall v4, but /etc/td-agent is empty. | ||
curl -fsSL https://toolbelt.treasuredata.com/sh/install-${distribution}-${code_name}-td-agent4.sh | sh | ||
sudo mv /etc/fluent/td-agent.conf /etc/td-agent/ | ||
|
||
sudo systemctl enable td-agent | ||
sudo systemctl start td-agent | ||
|
||
# Test: service status | ||
(! systemctl status --no-pager fluentd) | ||
(systemctl status --no-pager td-agent) | ||
|
||
# Test: config migration | ||
test -d /etc/td-agent | ||
(! test -h /etc/td-agent/fluentd.conf) | ||
test -e /etc/td-agent/td-agent.conf | ||
|
||
# Test: log file migration | ||
test -d /var/log/td-agent | ||
test -e /var/log/td-agent/td-agent.log | ||
|
||
# Test: bin file migration | ||
test -x /usr/sbin/td-agent | ||
test -x /usr/sbin/td-agent-gem | ||
|
||
# Test: environmental variables | ||
pid=$(systemctl show td-agent --property=MainPID --value) | ||
env_vars=$(sudo sed -e 's/\x0/\n/g' /proc/$pid/environ) | ||
test $(eval $env_vars && echo $HOME) = "/var/lib/td-agent" | ||
test $(eval $env_vars && echo $LOGNAME) = "td-agent" | ||
test $(eval $env_vars && echo $USER) = "td-agent" | ||
test $(eval $env_vars && echo $FLUENT_CONF) = "/etc/td-agent/td-agent.conf" | ||
test $(eval $env_vars && echo $TD_AGENT_LOG_FILE) = "/var/log/td-agent/td-agent.log" | ||
test $(eval $env_vars && echo $FLUENT_PLUGIN) = "/etc/td-agent/plugin" | ||
test $(eval $env_vars && echo $FLUENT_SOCKET) = "/var/run/td-agent/td-agent.sock" | ||
|
||
# Test: No error logs | ||
# (v4 default config outputs 'warn' log, so we should check only 'error' and 'fatal' logs) | ||
sleep 3 | ||
test -e /var/log/td-agent/td-agent.log | ||
(! grep -e '\[error\]' -e '\[fatal\]' /var/log/td-agent/td-agent.log) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,89 @@ | ||
#!/bin/bash | ||
|
||
set -exu | ||
|
||
. $(dirname $0)/commonvar.sh | ||
|
||
# Install v4 | ||
case ${distribution} in | ||
amazon) | ||
curl -fsSL https://toolbelt.treasuredata.com/sh/install-amazon2-td-agent.sh | sh | ||
;; | ||
*) | ||
curl -fsSL https://toolbelt.treasuredata.com/sh/install-redhat-td-agent4.sh | sh | ||
;; | ||
esac | ||
|
||
# Not auto started | ||
(!systemctl status --no-pager td-agent) | ||
|
||
# Start service to generate log | ||
sudo systemctl enable --now td-agent | ||
sudo systemctl stop td-agent | ||
|
||
# Install the current | ||
sudo $DNF install -y \ | ||
/vagrant/${distribution}/pool/${code_name}/${channel}/*/*/fluent-package_*_${architecture}.deb | ||
|
||
sudo systemctl daemon-reload | ||
sudo systemctl enable --now fluentd | ||
sudo systemctl stop fluentd | ||
|
||
# Remove td-agent.service alias not to conflict with v4 | ||
sudo systemctl disable td-agent | ||
|
||
sudo $DNF remove fluent-package | ||
|
||
sudo rm -f /var/log/td-agent | ||
sudo rm -f /etc/td-agent | ||
sudo mkdir -p /var/log/td-agent | ||
sudo chown td-agent:td-agent /var/log/td-agent | ||
|
||
sudo mv /var/log/fluent/* /var/log/td-agent/ | ||
|
||
# Downgrade to v4 | ||
case ${distribution} in | ||
amazon) | ||
curl -fsSL https://toolbelt.treasuredata.com/sh/install-amazon2-td-agent.sh | sh | ||
;; | ||
*) | ||
curl -fsSL https://toolbelt.treasuredata.com/sh/install-redhat-td-agent4.sh | sh | ||
;; | ||
esac | ||
|
||
sudo systemctl daemon-reload | ||
sudo systemctl enable --now td-agent | ||
|
||
# Test: service status | ||
(!systemctl status --no-pager fluentd) | ||
(systemctl status --no-pager td-agent) | ||
|
||
# Test: config migration | ||
test -d /etc/td-agent | ||
(! test -h /etc/td-agent/fluentd.conf) | ||
test -e /etc/td-agent/td-agent.conf | ||
|
||
# Test: log file migration | ||
test -d /var/log/td-agent | ||
test -e /var/log/td-agent/td-agent.log | ||
|
||
# Test: bin file migration | ||
test -x /usr/sbin/td-agent | ||
test -x /usr/sbin/td-agent-gem | ||
|
||
# Test: environmental variables | ||
pid=$(systemctl show td-agent --property=MainPID --value) | ||
env_vars=$(sudo sed -e 's/\x0/\n/g' /proc/$pid/environ) | ||
test $(eval $env_vars && echo $HOME) = "/var/lib/td-agent" | ||
test $(eval $env_vars && echo $LOGNAME) = "td-agent" | ||
test $(eval $env_vars && echo $USER) = "td-agent" | ||
test $(eval $env_vars && echo $FLUENT_CONF) = "/etc/td-agent/td-agent.conf" | ||
test $(eval $env_vars && echo $TD_AGENT_LOG_FILE) = "/var/log/td-agent/td-agent.log" | ||
test $(eval $env_vars && echo $FLUENT_PLUGIN) = "/etc/td-agent/plugin" | ||
test $(eval $env_vars && echo $FLUENT_SOCKET) = "/var/run/td-agent/td-agent.sock" | ||
|
||
# Test: No error logs | ||
# (v4 default config outputs 'warn' log, so we should check only 'error' and 'fatal' logs) | ||
sleep 3 | ||
test -e /var/log/td-agent/td-agent.log | ||
(! grep -e '\[error\]' -e '\[fatal\]' /var/log/td-agent/td-agent.log) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters